/* Abbott Child theme styles. Loaded after the parent theme's CSS, so rules here override it. */

/* ------------------------------------------------------------ fonts */
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("../fonts/ibm-plex-mono-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
/* The parent theme (and page content written for it) names "Roboto" in many rules, with
   no fallback. Roboto is no longer loaded, so those spots would fall back to a serif;
   the name is mapped to the site font instead, so older content matches without edits. */
@font-face { font-family: "Roboto"; src: url("../fonts/public-sans-400.woff2") format("woff2"); font-weight: 100 449; font-style: normal; font-display: swap; }
@font-face { font-family: "Roboto"; src: url("../fonts/public-sans-400-italic.woff2") format("woff2"); font-weight: 100 900; font-style: italic; font-display: swap; }
@font-face { font-family: "Roboto"; src: url("../fonts/public-sans-500.woff2") format("woff2"); font-weight: 450 549; font-style: normal; font-display: swap; }
@font-face { font-family: "Roboto"; src: url("../fonts/public-sans-600.woff2") format("woff2"); font-weight: 550 649; font-style: normal; font-display: swap; }
@font-face { font-family: "Roboto"; src: url("../fonts/public-sans-700.woff2") format("woff2"); font-weight: 650 900; font-style: normal; font-display: swap; }

/* ------------------------------------------------------------ tokens */
:root {
	--abc-red: #d6141a;
	--abc-red-dark: #b10f14;
	--abc-ink: #1f1f1f;
	--abc-text: #343434;
	--abc-muted: #656565;
	--abc-line: #e1e1e1;
	--abc-line-soft: #eeeeee;
	--abc-line-strong: #c4c4c4; /* control borders */
	--abc-faint: #8a8a8a; /* separators, blanks, disabled text */
	--abc-tint: #f5f5f5;
	--abc-tile: #ffffff;
	--abc-dark: #292929;
	--abc-dark-2: #3d3d3d;
	--abc-on-dark: #ededed;
	--abc-on-dark-2: #b3b3b3;
	--abc-font: "Public Sans", "Helvetica Neue", Arial, sans-serif;
	--abc-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
	--abc-wrap: 1240px;
	--abc-gutter: clamp(16px, 4vw, 40px);
	--abc-radius: 3px;
	--abc-header-h: 76px;
	--abc-onpage-h: 52px;
	--abc-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 6px 18px rgba(0, 0, 0, .06);
}

/* ------------------------------------------------------------ base */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body.abc {
	display: block;
	font-family: var(--abc-font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--abc-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
body.abc h1, body.abc h2, body.abc h3, body.abc h4, body.abc h5, body.abc h6 {
	text-transform: none;
	font-family: var(--abc-font);
	color: var(--abc-ink);
	letter-spacing: -0.01em;
	line-height: 1.2;
	font-weight: 600;
}
body.abc a { color: var(--abc-red); text-decoration-thickness: 1px; text-underline-offset: 2px; }
body.abc a:hover { color: var(--abc-red-dark); }
body.abc :focus-visible { outline: 2px solid var(--abc-red); outline-offset: 2px; }
/* On the charcoal and photo areas the red outline is too faint (2.75:1 on #292929); white there.
   Over the slideshow only the header's own links count: its drop-down panels are white. */
body.abc :is(.abc-topbar, .abc-pagehead, .abc-hero, .abc-band__text, .abc-ctaband, .abc-footer__main) :focus-visible,
.abc-js body.abc .abc-header--overlay:not(.is-solid) :is(.abc-header__logo, .abc-menu > li > a, .abc-menu > li > .abc-menu__open, .abc-header__cta, .abc-header__toggle):focus-visible { outline-color: #fff; }
body.abc img { max-width: 100%; height: auto; }
body.abc #wrapper { display: flow-root; width: 100%; overflow: visible; }
[hidden] { display: none !important; }

.abc-wrap { max-width: var(--abc-wrap); margin: 0 auto; padding-left: var(--abc-gutter); padding-right: var(--abc-gutter); box-sizing: border-box; width: 100%; }
.abc-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.abc-skip { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; padding: 10px 16px; }
.abc-skip:focus { left: 16px; top: 16px; }
.abc-pn, .abc-mono { font-family: var(--abc-mono); font-weight: 500; letter-spacing: 0; }
.abc-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-red); margin: 0 0 10px; }

/* ------------------------------------------------------------ buttons and links */
.abc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 10px 20px; box-sizing: border-box;
	font: 600 14px/1.2 var(--abc-font); letter-spacing: .01em;
	border: 1px solid transparent; border-radius: var(--abc-radius);
	text-decoration: none !important; cursor: pointer; white-space: nowrap;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.abc-btn--primary { background: var(--abc-red); color: #fff !important; }
.abc-btn--primary:hover { background: var(--abc-red-dark); }
.abc-btn--ghost { background: #fff; color: var(--abc-ink) !important; border-color: var(--abc-line-strong); }
.abc-btn--ghost:hover { border-color: var(--abc-ink); }
.abc-btn--ghost-light { background: transparent; color: #fff !important; border-color: rgba(255, 255, 255, .45); }
.abc-btn--ghost-light:hover { background: #fff; border-color: #fff; color: var(--abc-ink) !important; }
.abc-btn--sm { min-height: 36px; padding: 6px 14px; font-size: 14px; }
.abc-btn__meta { font: 500 11px/1 var(--abc-mono); opacity: .7; }
.abc-btnrow { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.abc-link-arrow { font-weight: 600; text-decoration: none !important; white-space: nowrap; }
.abc-link-arrow::after { content: " \2192"; }
.abc-chip {
	display: inline-flex; align-items: center; min-height: 36px; padding: 6px 12px; box-sizing: border-box;
	font: 500 14px/1.2 var(--abc-font); color: var(--abc-ink);
	background: #fff; border: 1px solid var(--abc-line-strong); border-radius: 2px; cursor: pointer;
}
.abc-chip:hover { border-color: var(--abc-ink); }
.abc-chip.is-on { background: var(--abc-ink); border-color: var(--abc-ink); color: #fff; }
.abc-chip:disabled { color: var(--abc-faint); border-color: var(--abc-line-soft); background: var(--abc-tint); cursor: not-allowed; text-decoration: line-through; }

/* ------------------------------------------------------------ header */
.abc-header { position: sticky; top: 0; z-index: 900; background: #fff; }
.admin-bar .abc-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .abc-header { top: 0; } }
.abc-topbar { background: var(--abc-dark); color: var(--abc-on-dark-2); font-size: 13px; }
.abc-topbar__inner { display: flex; justify-content: space-between; gap: 16px; padding-top: 7px; padding-bottom: 7px; }
.abc-topbar__right { color: var(--abc-on-dark); font-weight: 500; letter-spacing: .02em; }
.abc-header__bar { border-bottom: 1px solid var(--abc-line); transition: box-shadow .2s ease; }
.abc-header.is-scrolled .abc-header__bar { box-shadow: 0 2px 12px rgba(0, 0, 0, .08); }
.abc-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--abc-header-h); }
.abc-header__logo { flex: 0 0 auto; display: block; line-height: 0; }
body.abc .abc-header__logo img { width: auto; height: 44px; }
.abc-nav { margin-left: auto; display: flex; align-items: center; }
.abc-nav__cta { display: none; }
.abc-menu, .abc-menu ul { list-style: none; margin: 0; padding: 0; }
.abc-menu li { margin: 0; padding: 0; background: none; }
.abc-menu li::before { display: none !important; }
.abc-menu > li { position: relative; display: inline-flex; align-items: center; }
.abc-menu > li > a {
	display: block; padding: 26px 14px; font-size: 14px; font-weight: 600; color: var(--abc-ink);
	text-decoration: none; border-bottom: 2px solid transparent;
}
.abc-menu > li > a:hover, .abc-menu > li.current-menu-item > a, .abc-menu > li.current-menu-ancestor > a { color: var(--abc-red); border-bottom-color: var(--abc-red); }
.abc-menu__open { display: none; }
.abc-menu .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 260px; padding: 10px 0;
	background: #fff; border: 1px solid var(--abc-line); border-top: 2px solid var(--abc-red); box-shadow: var(--abc-shadow);
	opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.abc-menu > li:hover > .sub-menu, .abc-menu > li:focus-within > .sub-menu, .abc-menu > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.abc-menu .sub-menu a { display: block; padding: 7px 20px; font-size: 14px; font-weight: 500; color: var(--abc-text); text-decoration: none; }
.abc-menu .sub-menu a:hover { color: var(--abc-red); background: var(--abc-tint); }
.abc-menu .sub-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; padding: 0 0 6px; min-width: 0; }
.abc-menu .sub-menu .sub-menu a { padding-left: 32px; font-weight: 400; color: var(--abc-muted); }
/* Wide panel for menus with many items (Products). */
.abc-menu > li.abc-mega { position: static; }
.abc-menu > li.abc-mega > .sub-menu {
	left: 50%; transform: translate(-50%, 4px); width: min(1080px, calc(100vw - 48px));
	padding: 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px 24px; box-sizing: border-box;
}
.abc-menu > li.abc-mega:hover > .sub-menu, .abc-menu > li.abc-mega:focus-within > .sub-menu, .abc-menu > li.abc-mega.is-open > .sub-menu { transform: translate(-50%, 0); }
/* Escape closes a panel opened by keyboard focus (abbott.js marks the item dismissed). */
@media (min-width: 1025px) { .abc-menu > li.is-dismissed > .sub-menu { opacity: 0; visibility: hidden; } }
.abc-menu > li.abc-mega > .sub-menu > li > a { padding: 8px 10px; font-weight: 600; color: var(--abc-ink); }
.abc-menu > li.abc-mega > .sub-menu > li.menu-item-has-children { grid-row: span 3; }
.abc-menu > li.abc-mega .sub-menu .sub-menu a { padding: 4px 10px 4px 22px; }
.abc-header__cta { flex: 0 0 auto; }
.abc-header__toggle { display: none; }

@media (max-width: 1100px) {
	.abc-menu > li > a { padding-left: 9px; padding-right: 9px; font-size: 14px; }
}
/* Phones and tablets. The collapsed menu (toggle button, fixed panel) needs abbott.js,
   so it applies only under .abc-js, which header.php sets on <html> and removes again
   if the script never runs. Without it the menu is a plain stacked list under the
   logo, with every sub-menu open, and the header button stays visible. */
@media (max-width: 1024px) {
	:root { --abc-header-h: 64px; }
	body.abc .abc-header__logo img { height: 36px; }
	html:not(.abc-js) .abc-header { position: relative; top: 0; }
	html:not(.abc-js) .abc-header__inner { flex-wrap: wrap; gap: 0 16px; }
	html:not(.abc-js) .abc-header__cta { display: inline-flex; margin-left: auto; }
	html:not(.abc-js) .abc-nav { position: static; display: block; flex: 1 0 100%; order: 1; margin: 0 0 12px; padding: 0; border-top: 1px solid var(--abc-line); }
	html:not(.abc-js) .abc-menu .sub-menu, html:not(.abc-js) .abc-menu > li.abc-mega > .sub-menu { display: block; }
	.abc-js .abc-header__cta { display: none; }
	.abc-js .abc-header__toggle {
		display: inline-flex; align-items: center; justify-content: center; margin-left: auto;
		width: 44px; height: 44px; border: 1px solid var(--abc-line); border-radius: var(--abc-radius); background: #fff; cursor: pointer;
	}
	.abc-header__toggle-bars, .abc-header__toggle-bars::before, .abc-header__toggle-bars::after { display: block; width: 20px; height: 2px; background: var(--abc-ink); position: relative; transition: transform .2s ease; }
	.abc-header__toggle-bars::before, .abc-header__toggle-bars::after { content: ""; position: absolute; left: 0; }
	.abc-header__toggle-bars::before { top: -6px; }
	.abc-header__toggle-bars::after { top: 6px; }
	.abc-nav-open .abc-header__toggle-bars { background: transparent; }
	.abc-nav-open .abc-header__toggle-bars::before { transform: translateY(6px) rotate(45deg); }
	.abc-nav-open .abc-header__toggle-bars::after { transform: translateY(-6px) rotate(-45deg); }
	.abc-js .abc-nav {
		position: fixed; left: 0; right: 0; bottom: 0; top: var(--abc-nav-top, 100px); margin: 0;
		display: none; flex-direction: column; align-items: stretch; overflow-y: auto;
		background: #fff; border-top: 1px solid var(--abc-line); padding: 8px var(--abc-gutter) 32px;
	}
	.abc-nav-open .abc-nav { display: flex; }
	.abc-nav-open { overflow: hidden; }
	.abc-menu > li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--abc-line-soft); }
	.abc-menu > li > a { flex: 1; padding: 14px 0; font-size: 16px; border: 0; }
	.abc-menu__open { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; background: none; cursor: pointer; }
	.abc-menu__open::before { content: ""; width: 9px; height: 9px; border-right: 2px solid var(--abc-ink); border-bottom: 2px solid var(--abc-ink); transform: rotate(45deg); transition: transform .2s ease; }
	.abc-menu__open[aria-expanded="true"]::before { transform: rotate(-135deg); }
	.abc-menu .sub-menu, .abc-menu > li.abc-mega > .sub-menu {
		position: static; display: none; width: 100%; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 10px; grid-template-columns: 1fr;
	}
	.abc-menu > li.is-open > .sub-menu, .abc-menu > li.abc-mega.is-open > .sub-menu { display: block; transform: none; }
	.abc-menu > li:hover > .sub-menu { opacity: 1; }
	.abc-menu .sub-menu a { padding: 9px 12px; }
	.abc-js .abc-nav__cta { display: inline-flex; margin-top: 20px; }
}

/* ------------------------------------------------------------ crumbs, page head */
.abc-crumbs { font-size: 13px; color: var(--abc-muted); margin-bottom: 14px; }
.abc-crumbs a { color: inherit; text-decoration: none; }
.abc-crumbs a:hover { color: var(--abc-red); text-decoration: underline; }
.abc-crumbs .trail-items { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; margin: 0; padding: 0; }
.abc-crumbs .trail-items li { margin: 0; padding: 0; background: none; }
.abc-crumbs .trail-items li::before { display: none; }
.abc-crumbs .trail-items li:not(:last-child)::after { content: "/"; margin: 0 8px; color: var(--abc-faint); }
.abc-pagehead { position: relative; background: var(--abc-dark); color: var(--abc-on-dark); overflow: hidden; }
.abc-pagehead__media { position: absolute; inset: 0 0 0 auto; width: 46%; }
body.abc .abc-pagehead__media img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.abc-pagehead__media::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--abc-dark) 0%, rgba(41, 41, 41, .55) 35%, rgba(41, 41, 41, 0) 70%); z-index: 1; }
.abc-pagehead__inner { position: relative; z-index: 2; padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(40px, 6vw, 72px); }
.abc-pagehead__inner > * { max-width: 680px; }
.abc-pagehead .abc-crumbs { color: var(--abc-on-dark-2); }
.abc-pagehead .abc-crumbs .trail-items li:not(:last-child)::after { color: var(--abc-faint); }
body.abc .abc-pagehead__title { color: #fff; font-size: clamp(30px, 4vw, 44px); margin: 0 0 14px; font-weight: 500; letter-spacing: -.02em; }
.abc-pagehead__lead { font-size: clamp(17px, 1.6vw, 19px); line-height: 1.55; color: var(--abc-on-dark); margin: 0; }
@media (max-width: 760px) {
	.abc-pagehead__media { width: 100%; opacity: .35; }
	.abc-pagehead__media::before { background: rgba(41, 41, 41, .55); }
}

/* ------------------------------------------------------------ sections */
.abc-section { padding: clamp(40px, 6vw, 80px) 0; }
.abc-section--first { padding-top: clamp(32px, 4vw, 56px); }
.abc-section--tint { background: var(--abc-tint); }
.abc-section__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
body.abc .abc-section__title { font-size: clamp(24px, 2.6vw, 32px); margin: 0 0 24px; }
.abc-section__head .abc-section__title { margin: 0; }

/* ------------------------------------------------------------ prose (editor content) */
.abc-prose { max-width: 820px; font-size: 16px; }
.abc-page__body .abc-prose { max-width: 900px; }
.abc-prose > :first-child { margin-top: 0; }
.abc-prose p { margin: 0 0 1em; }
.abc-prose h2 { font-size: 28px; margin: 1.6em 0 .6em; padding: 0 !important; clear: both; }
.abc-prose h3 { font-size: 22px; margin: 1.4em 0 .5em; }
.abc-prose h4, .abc-prose h5 { font-size: 18px; margin: 1.3em 0 .5em; text-transform: none; letter-spacing: 0; }
.abc-prose ul, .abc-prose ol { margin: 0 0 1.1em 1.3em; padding: 0; }
.abc-prose ul li { list-style: disc; margin: .3em 0; padding: 0; background: none; }
.abc-prose ul li::before { display: none; }
.abc-prose ol li { list-style: decimal; margin: .3em 0; }
.abc-prose hr { border: 0; border-top: 1px solid var(--abc-line); margin: 2em 0; }
.abc-prose img { display: block; height: auto; margin: 0 0 1em; }
.abc-prose img.alignleft { float: left; max-width: 40%; margin: 4px 24px 12px 0; }
.abc-prose img.alignright { float: right; max-width: 40%; margin: 4px 0 12px 24px; }
.abc-prose img.aligncenter { margin-left: auto; margin-right: auto; }
.abc-prose a.abc-zoom { display: inline-block; cursor: zoom-in; }
.abc-prose blockquote { margin: 1.2em 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--abc-red); color: var(--abc-ink); }
.abc-prose::after { content: ""; display: table; clear: both; }
@media (max-width: 640px) { .abc-prose img.alignleft, .abc-prose img.alignright { float: none; max-width: 100%; margin: 0 0 1em; } }

/* ------------------------------------------------------------ tables */
/* position: relative keeps screen-reader-only labels in the table (position: absolute)
   inside the scrolling box; without it they are placed against the page and widen it. */
.abc-tablewrap { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 24px; border: 1px solid var(--abc-line); border-radius: var(--abc-radius); }
.abc-table, .abc-prose table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; background: #fff; }
.abc-prose .abc-tablewrap table { border: 0; }
.abc-table th, .abc-table td, .abc-prose table th, .abc-prose table td {
	padding: 10px 14px; border: 0; border-bottom: 1px solid var(--abc-line-soft); text-align: left; vertical-align: top;
	font-variant-numeric: tabular-nums;
}
.abc-table thead th, .abc-prose table thead th, .abc-prose table:not(:has(thead)) tr:first-child th {
	background: var(--abc-tint); color: var(--abc-ink); font-weight: 600; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
	border-bottom: 1px solid var(--abc-line); white-space: nowrap;
}
.abc-table tbody tr:last-child > *, .abc-prose table tbody tr:last-child > * { border-bottom: 0; }
.abc-table tbody tr:hover > * { background: #fafafa; }
/* Spec tables: label column + value column, with optional group rows. */
.abc-table--spec { border: 1px solid var(--abc-line); border-radius: var(--abc-radius); }
.abc-table--spec th[scope="row"] { width: 34%; color: var(--abc-ink); font-weight: 600; }
.abc-table--spec tr.noborder > * { border-bottom: 0; }
.abc-table__group th { background: var(--abc-dark); color: #fff !important; font-size: 12px !important; letter-spacing: .06em; text-transform: uppercase; padding: 8px 14px; }
@media (max-width: 640px) {
	.abc-table--spec th[scope="row"], .abc-table--spec td { display: block; width: auto; }
	.abc-table--spec th[scope="row"] { padding-bottom: 0; border-bottom: 0; }
}
.abc-table--compare thead button { all: unset; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.abc-table--compare thead button::after { content: "\2195"; opacity: .35; font-size: 12px; }
.abc-table--compare thead th[aria-sort="ascending"] button::after { content: "\2191"; opacity: 1; }
.abc-table--compare thead th[aria-sort="descending"] button::after { content: "\2193"; opacity: 1; }
.abc-table--compare th[scope="row"] { min-width: 220px; }
.abc-table--compare th[scope="row"] a { color: var(--abc-ink); font-weight: 600; text-decoration: none; }
.abc-table__thumb { display: inline-flex; width: 64px; height: 48px; margin-right: 12px; vertical-align: middle; background: var(--abc-tile); align-items: center; justify-content: center; }
.abc-table__thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }

/* ------------------------------------------------------------ tiles (product images: whole unit, never cropped) */
.abc-tile { display: flex; align-items: center; justify-content: center; background: var(--abc-tile); aspect-ratio: 4 / 3; padding: 6%; box-sizing: border-box; overflow: hidden; }
body.abc .abc-tile img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; margin: 0; }

/* ------------------------------------------------------------ cards */
.abc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.abc-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--abc-line); border-radius: var(--abc-radius); overflow: hidden; transition: box-shadow .2s ease, border-color .2s ease; }
.abc-card:hover { box-shadow: var(--abc-shadow); border-color: var(--abc-line-strong); }
.abc-card__media { border-bottom: 1px solid var(--abc-line-soft); }
.abc-card__body { display: flex; flex-direction: column; gap: 12px; padding: 20px 22px 22px; flex: 1; }
body.abc .abc-card__title { font-size: 18px; margin: 0; }
body.abc .abc-card__title a { color: var(--abc-ink); text-decoration: none; }
body.abc .abc-card__title a:hover { color: var(--abc-red); }
.abc-card__text { font-size: 14px; color: var(--abc-text); max-width: none; }
.abc-card__text p:last-child { margin-bottom: 0; }
.abc-card__actions { margin-top: auto; padding-top: 6px; }
.abc-cards--products { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.abc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 0; margin: 0; border-top: 1px solid var(--abc-line-soft); border-bottom: 1px solid var(--abc-line-soft); }
.abc-facts > div { padding: 8px 0; }
.abc-facts dt { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); margin: 0; }
.abc-facts dd { margin: 2px 0 0; font-size: 14px; color: var(--abc-ink); font-weight: 500; }
.abc-facts--wide { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 24px; }

/* Compare bar */
.abc-compare { margin: 0 0 24px; }
.abc-compare__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 14px 16px; background: var(--abc-tint); border: 1px solid var(--abc-line); border-radius: var(--abc-radius); }
.abc-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.abc-filter__label { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); margin-right: 4px; }
.abc-compare__count { margin-left: auto; font-size: 14px; color: var(--abc-muted); }

/* Lists */
.abc-checklist { list-style: none; margin: 0; padding: 0; }
.abc-checklist li { position: relative; padding: 6px 0 6px 28px; margin: 0; background: none; border-bottom: 1px solid var(--abc-line-soft); }
.abc-checklist li::before {
	content: "" !important; display: block !important; position: absolute; left: 4px; top: 13px; width: 10px; height: 6px;
	border-left: 2px solid var(--abc-red); border-bottom: 2px solid var(--abc-red); transform: rotate(-45deg); background: none;
}
.abc-checklist--cols { columns: 2; column-gap: 40px; }
.abc-checklist--cols li { break-inside: avoid; }
@media (max-width: 760px) { .abc-checklist--cols { columns: 1; } }
.abc-lists__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px; margin: 0 0 32px; }
body.abc .abc-lists__title { font-size: 18px; margin: 0 0 10px; }

/* ------------------------------------------------------------ home */
/* Home slideshow: full-bleed photo, slow zoom, fixed scrim,
   per-slide copy, numbered tabs with autoplay progress, pause button. */
.abc-hero { position: relative; display: flex; flex-direction: column; min-height: clamp(540px, 78vh, 780px); background: var(--abc-dark); color: #fff; overflow: hidden; }
.abc-hero__slides { position: absolute; inset: 0; }
.abc-hero__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1s ease; }
.abc-hero__slide.is-active { opacity: 1; }
.abc-hero__slide picture { position: absolute; inset: 0; display: block; }
body.abc .abc-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; margin: 0; object-fit: cover; object-position: center 60%; transform: scale(1.05); transition: transform 9s ease-out; }
.abc-hero__slide.is-active .abc-hero__img { transform: scale(1); }
.abc-hero__scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 0, .82) 0%, rgba(0, 0, 0, .55) 42%, rgba(0, 0, 0, .1) 78%), linear-gradient(180deg, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, 0) 26%), linear-gradient(0deg, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, 0) 36%); }
.abc-hero__body { position: relative; flex: 1; display: flex; align-items: center; padding-top: calc(var(--abc-hero-top, 120px) + 32px); padding-bottom: 24px; }
.abc-hero__panels { position: relative; max-width: 40em; }
.abc-hero__copy.is-active { animation: abcHeroIn .7s ease both; }
@keyframes abcHeroIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.abc-hero__kicker { margin: 0 0 18px; font: 500 12px/1.5 var(--abc-mono); letter-spacing: .12em; text-transform: uppercase; color: #dadada; }
body.abc .abc-hero__title { margin: 0 0 32px; color: #fff; font-size: clamp(36px, 4.6vw, 64px); font-weight: 500; line-height: 1.06; letter-spacing: -.02em; text-wrap: balance; }
.abc-btn--lg { min-height: 52px; padding: 14px 28px; font-size: 16px; }
.abc-hero__nav { position: relative; display: flex; align-items: stretch; gap: 16px; padding-bottom: 32px; }
.abc-hero__tabs { flex: 1; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0 24px; }
.abc-hero__tab { position: relative; display: block; padding: 16px 0 4px; border: 0; border-top: 1px solid rgba(255, 255, 255, .3); background: none; color: #b2b2b2; text-align: left; cursor: pointer; font-family: var(--abc-font); }
.abc-hero__tab:hover, .abc-hero__tab[aria-selected="true"] { color: #fff; }
.abc-hero__tabn { display: block; margin-bottom: 4px; font: 500 12px var(--abc-mono); color: var(--abc-faint); }
.abc-hero__tab[aria-selected="true"] .abc-hero__tabn { color: #ff6b70; }
.abc-hero__tab strong { display: block; font-size: 16px; font-weight: 600; }
.abc-hero__bar { position: absolute; left: 0; right: 0; top: -1px; height: 2px; overflow: hidden; }
.abc-hero__bar i { display: block; width: 0; height: 100%; background: var(--abc-red); }
.abc-hero__tab[aria-selected="true"] .abc-hero__bar i { width: 100%; }
.abc-hero__tab.is-running .abc-hero__bar i { width: 0; animation: abcHeroBar var(--abc-hero-interval, 8s) linear forwards; }
.abc-hero.is-held .abc-hero__tab.is-running .abc-hero__bar i { animation-play-state: paused; }
@keyframes abcHeroBar { from { width: 0; } to { width: 100%; } }
.abc-hero__pause { align-self: flex-start; flex-shrink: 0; display: grid; place-items: center; width: 44px; height: 44px; margin-top: 12px; border: 1px solid rgba(255, 255, 255, .5); border-radius: var(--abc-radius); background: transparent; color: #fff; cursor: pointer; }
.abc-hero__pause:hover { border-color: #fff; }
.abc-hero__pause span { box-sizing: border-box; width: 10px; height: 12px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.abc-hero__pause[aria-pressed="true"] span { width: 0; height: 0; margin-left: 3px; border: 0; border-left: 11px solid currentColor; border-top: 7px solid transparent; border-bottom: 7px solid transparent; }
@media (prefers-reduced-motion: reduce) { .abc-hero__slide, body.abc .abc-hero__img { transition: none !important; } .abc-hero__copy.is-active { animation: none; } }
@media (max-width: 760px) {
	.abc-hero { min-height: 620px; }
	.abc-hero__body { align-items: flex-end; }
	.abc-hero__scrim { background: linear-gradient(0deg, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .55) 55%, rgba(0, 0, 0, .4) 100%); }
	/* Two columns of tabs instead of a sideways strip, so no tab is cut off under the pause button. */
	.abc-hero__tabs { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
	.abc-hero__tab strong { font-size: 14px; }
}
.abc-intro__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; }
body.abc .abc-intro__title { font-size: clamp(26px, 3vw, 36px); margin: 0; }
@media (max-width: 860px) { .abc-intro__inner { grid-template-columns: 1fr; gap: 16px; } }
.abc-prodlinks__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.abc-prodlinks__grid li { margin: 0; padding: 0; background: none; }
.abc-prodlinks__grid li::before { display: none; }
.abc-prodlinks__item {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 14px 18px; box-sizing: border-box;
	background: #fff; border: 1px solid var(--abc-line); border-radius: var(--abc-radius); color: var(--abc-ink) !important; font-weight: 600; text-decoration: none !important;
}
.abc-prodlinks__item::after { content: "\2192"; color: var(--abc-red); }
.abc-prodlinks__item:hover { border-color: var(--abc-ink); }
.abc-spot__grid { display: grid; gap: 56px; }
.abc-spot__item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.abc-spot__item:nth-child(even) .abc-spot__media { order: 2; }
body.abc .abc-spot__title { font-size: clamp(24px, 2.6vw, 32px); margin: 0 0 14px; }
.abc-spot__text p { margin: 0 0 18px; }
@media (max-width: 860px) { .abc-spot__item { grid-template-columns: 1fr; gap: 20px; } .abc-spot__item:nth-child(even) .abc-spot__media { order: 0; } }
.abc-why__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.abc-why__media img { width: 100%; border-radius: var(--abc-radius); }
.abc-why__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 32px; }
.abc-why__item { display: flex; gap: 16px; margin: 0; padding: 0; background: none; }
.abc-why__item::before { display: none; }
.abc-why__icon { flex: 0 0 44px; }
.abc-why__icon img { width: 44px; height: 44px; object-fit: contain; }
body.abc .abc-why__title { font-size: 18px; margin: 0 0 6px; }
.abc-why__item p { margin: 0 0 8px; font-size: 16px; }
@media (max-width: 960px) { .abc-why__grid { grid-template-columns: 1fr; gap: 28px; } }
@media (max-width: 600px) { .abc-why__list { grid-template-columns: 1fr; } }
.abc-band { background: var(--abc-dark); color: var(--abc-on-dark); }
.abc-band__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
body.abc .abc-band__title { color: #fff; font-size: clamp(26px, 3vw, 36px); margin: 0 0 16px; }
.abc-band .abc-eyebrow { color: #ff8a8d; }
.abc-band p { color: var(--abc-on-dark); }
.abc-band__media { position: relative; }
.abc-band__media img { width: 100%; border-radius: var(--abc-radius); }
@media (max-width: 860px) { .abc-band__grid { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ series pages */
.abc-serieshead { background: linear-gradient(180deg, #fff 0%, var(--abc-tint) 100%); border-bottom: 1px solid var(--abc-line); }
.abc-serieshead__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 48px; align-items: center; padding-top: clamp(28px, 4vw, 48px); padding-bottom: clamp(32px, 4vw, 56px); }
body.abc .abc-serieshead__title { font-size: clamp(32px, 4.4vw, 52px); margin: 0 0 20px; font-weight: 500; letter-spacing: -.02em; }
.abc-serieshead__media { border: 1px solid var(--abc-line); border-radius: var(--abc-radius); background: #fff; }
.abc-keyfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin: 0 0 28px; border-top: 1px solid var(--abc-line); }
.abc-keyfacts > div { padding: 12px 16px 12px 0; border-bottom: 1px solid var(--abc-line); }
.abc-keyfacts dt { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); margin: 0 0 3px; }
.abc-keyfacts dd { margin: 0; font-size: 16px; font-weight: 600; color: var(--abc-ink); }
@media (max-width: 860px) { .abc-serieshead__grid { grid-template-columns: 1fr; gap: 24px; } .abc-serieshead__media { order: -1; max-width: 520px; } }

.abc-onpage { position: sticky; top: calc(var(--abc-header-h) + 1px); z-index: 800; background: #fff; border-bottom: 1px solid var(--abc-line); }
.admin-bar .abc-onpage { top: calc(var(--abc-header-h) + 33px); }
.abc-onpage__inner { display: flex; align-items: center; gap: 16px; min-height: var(--abc-onpage-h); }
.abc-onpage__list { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; flex: 1; }
.abc-onpage__list::-webkit-scrollbar { display: none; }
.abc-onpage__list li { margin: 0; padding: 0; background: none; flex: 0 0 auto; }
.abc-onpage__list li::before { display: none; }
.abc-onpage__list a { display: block; padding: 14px 12px; font-size: 14px; font-weight: 600; color: var(--abc-muted); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; }
.abc-onpage__list a:hover, .abc-onpage__list a.is-current { color: var(--abc-ink); border-bottom-color: var(--abc-red); }
.abc-onpage__cta { flex: 0 0 auto; }
@media (max-width: 640px) { .abc-onpage__cta { display: none; } }

.abc-series__body { padding-top: 8px; padding-bottom: 72px; }
.abc-mod { padding: 44px 0 8px; scroll-margin-top: calc(var(--abc-header-h) + var(--abc-onpage-h) + 16px); }
.abc-mod + .abc-mod { border-top: 1px solid var(--abc-line-soft); }
.abc-mod--cta, .abc-mod--contact_us { border-top: 0 !important; }
body.abc .abc-mod__title { font-size: clamp(22px, 2.4vw, 28px); margin: 0 0 20px; }
body.abc .abc-mod__subtitle { font-size: 16px; margin: 24px 0 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--abc-muted); }
.abc-mod--information .abc-table--spec, .abc-mod--environmental .abc-table--spec { max-width: 960px; }
.abc-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.abc-gallery li { margin: 0; padding: 0; background: none; }
.abc-gallery li::before { display: none; }
.abc-gallery__item { border: 1px solid var(--abc-line); border-radius: var(--abc-radius); cursor: zoom-in; transition: border-color .15s ease; }
.abc-gallery__item:hover { border-color: var(--abc-ink); }
.abc-caption { font-size: 13px; color: var(--abc-muted); margin: 8px 0 0; }
.abc-drawing { margin: 24px 0 0; padding: 16px; border: 1px solid var(--abc-line); border-radius: var(--abc-radius); background: #fff; }
.abc-drawing a { display: block; cursor: zoom-in; }
.abc-drawing img { display: block; width: 100%; height: auto; margin: 0 auto; }
.abc-ctaband { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding: 28px 32px; background: var(--abc-dark); color: #fff; border-radius: var(--abc-radius); }
.abc-ctaband__text { margin: 0; font-size: 22px; font-weight: 600; color: #fff; }
.abc-endbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 0 0; border-top: 2px solid var(--abc-ink); }
.abc-endbar__text { margin: 0; font-size: 18px; font-weight: 600; color: var(--abc-ink); }
.abc-fold { border: 1px solid var(--abc-line); border-radius: var(--abc-radius); margin: 0 0 16px; background: #fff; }
.abc-fold__summary { cursor: pointer; padding: 14px 18px; font-weight: 600; color: var(--abc-ink); list-style: none; display: flex; align-items: center; gap: 10px; }
.abc-fold__summary::-webkit-details-marker { display: none; }
.abc-fold__summary::before { content: ""; width: 7px; height: 7px; border-right: 2px solid var(--abc-red); border-bottom: 2px solid var(--abc-red); transform: rotate(-45deg); transition: transform .2s ease; }
.abc-fold[open] > .abc-fold__summary::before { transform: rotate(45deg); }
.abc-fold__body { padding: 0 18px 18px; }
.abc-fold__body .abc-tablewrap { margin-bottom: 0; }
/* Old pasted model tables inside content keep working; tidy their look. */
.abc-prose .ab-modeltable { position: static !important; left: auto !important; transform: none !important; width: auto !important; max-width: 100% !important; }

/* ------------------------------------------------------------ part finder */
.abc-finder__intro { max-width: 760px; margin: -8px 0 20px; color: var(--abc-muted); }
.abc-finder__panel { border: 1px solid var(--abc-line); border-radius: var(--abc-radius); background: var(--abc-tint); padding: 20px; margin: 0 0 16px; }
.abc-finder__filters { display: grid; gap: 14px; }
.abc-finder__group { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 12px; align-items: start; }
.abc-finder__label { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-ink); padding-top: 9px; }
.abc-finder__chips { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 700px) { .abc-finder__group { grid-template-columns: 1fr; gap: 6px; } .abc-finder__label { padding-top: 0; } }
.abc-finder__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--abc-line); }
.abc-finder__count { font-size: 14px; font-weight: 600; color: var(--abc-ink); }
.abc-finder__selected { margin-top: 18px; padding: 20px; background: #fff; border: 1px solid var(--abc-ink); border-left: 4px solid var(--abc-red); border-radius: var(--abc-radius); }
.abc-finder__selected-label { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); }
.abc-finder__selected-pn { margin: 2px 0 6px; font-size: clamp(24px, 3vw, 32px); color: var(--abc-ink); }
.abc-finder__selected-nsn { margin: 0 0 12px; font: 500 14px var(--abc-mono); color: var(--abc-text); }
.abc-finder__selected .abc-facts { margin: 0 0 16px; }
.abc-finder__tablewrap { max-height: none; }
.abc-table--parts th, .abc-table--parts td { white-space: nowrap; font-size: 14px; padding: 8px 12px; }
.abc-table--parts .abc-pn { font-size: 14px; color: var(--abc-ink); }
.abc-finder__more { margin: 0 0 16px; }
.abc-finder__foot { font-size: 14px; color: var(--abc-muted); }
.abc-finder__note { margin: 0 0 6px; }
.abc-notice { margin: 0 0 16px; padding: 12px 16px; border: 1px solid #e3b341; background: #fff8e5; border-radius: var(--abc-radius); font-size: 14px; }
.abc-notice--error { border-color: var(--abc-red); background: #fdeeee; }
.abc-notice ul { margin: 8px 0 0 18px; }

/* Table search (NSN listing) */
.abc-tsearch { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 12px; }
.abc-tsearch label { font-weight: 600; font-size: 14px; color: var(--abc-ink); }
.abc-tsearch input { flex: 1 1 260px; max-width: 420px; min-height: 44px; padding: 8px 12px; font: 16px var(--abc-font); border: 1px solid var(--abc-line-strong); border-radius: var(--abc-radius); }
.abc-tsearch__count { font-size: 14px; color: var(--abc-muted); }

/* ------------------------------------------------------------ parent templates (contact, news, posts, default pages) */
body.abc #main { min-height: 0; }
body.abc .container { max-width: var(--abc-wrap); padding-left: var(--abc-gutter); padding-right: var(--abc-gutter); box-sizing: border-box; }
body.abc .btn { font-family: var(--abc-font); font-weight: 600; background-color: var(--abc-red); border-radius: var(--abc-radius); padding: 12px 20px; }
body.abc .btn:hover { background-color: var(--abc-red-dark); }
/* Trademark sign raised to cap height (abc_marks()); the font's own sign sits on the baseline. */
body.abc sup.abc-tm { position: relative; top: -.3em; font-size: 1em; line-height: 0; vertical-align: baseline; }
/* Buttons typed into page text (.btn) match the theme's outlined buttons: ink outline,
   ink fill on hover. Red stays for the header's Request a Quote and form submits. */
body.abc .btn:not(.btn-gray) { background-color: #fff; border: 1px solid var(--abc-ink); color: var(--abc-ink); text-decoration: none; }
body.abc .btn:not(.btn-gray):hover, body.abc .btn:not(.btn-gray):focus-visible { background-color: var(--abc-ink); border-color: var(--abc-ink); color: #fff; text-decoration: none; }
body.abc .btn.btn-gray { background-color: #fff; color: var(--abc-ink); border: 1px solid var(--abc-line-strong); }

/* ------------------------------------------------------------ print */
@media print {
	.abc-header, .abc-onpage, .abc-footer, .abc-hero__nav, .abc-finder__panel, .abc-finder__more, .abc-tsearch { display: none !important; }
	.abc-fold { border: 0; }
	.abc-fold:not([open]) > .abc-fold__body { display: block; }
	body.abc { font-size: 11pt; }
}
.abc-finder__common { margin: 0 0 16px; padding: 0 2px; }

/* Product-line pages: series sections from the page text, shown as cards */
.abc-series-list > .abc-prose { max-width: 900px; margin-bottom: 8px; }
.abc-cards--series { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); margin: 16px 0 40px; }
body.abc .abc-groupttl { font-size: clamp(22px, 2.4vw, 28px); margin: 40px 0 12px; padding-top: 28px; border-top: 1px solid var(--abc-line); }
.abc-card__sub { margin: -6px 0 0; font-size: 14px; color: var(--abc-muted); font-weight: 500; }
body.abc .abc-pcard .abc-card__title { font-size: 18px; }
.abc-products .abc-compare { margin-top: 0; }

.abc-spot__media.abc-tile { padding: 10%; }

/* Breadcrumbs (parent theme markup: .breadcrumb-trail with a and span.sep) */
body.abc .abc-crumbs .breadcrumb, body.abc .abc-crumbs .breadcrumb-trail { margin: 0; padding: 0; background: none; font: 400 13px/1.5 var(--abc-font); letter-spacing: 0; text-transform: none; color: inherit; }
body.abc .abc-crumbs a { color: inherit; font: inherit; letter-spacing: 0; text-transform: none; text-decoration: none; }
body.abc .abc-crumbs a:hover { color: var(--abc-red); text-decoration: underline; }
body.abc .abc-pagehead .abc-crumbs a:hover { color: #fff; }
body.abc .abc-crumbs .sep { display: inline-block; width: auto; margin: 0 6px; background: none; }
body.abc .abc-crumbs .sep::before { content: "/"; color: var(--abc-faint); }
.abc-series-list .abc-products { padding: 8px 0 24px; }
.abc-series-list .abc-products > .abc-wrap { padding: 0; max-width: none; }

/* Definition lists: undo parent floats */
body.abc .abc-keyfacts dt, body.abc .abc-keyfacts dd, body.abc .abc-facts dt, body.abc .abc-facts dd, body.abc .abc-footer__contact dt, body.abc .abc-footer__contact dd { display: block; float: none !important; width: auto !important; padding: 0; }
body.abc .abc-onpage__list a { color: var(--abc-muted); }
body.abc .abc-onpage__list a:hover, body.abc .abc-onpage__list a.is-current { color: var(--abc-ink); }
.abc-finder__notlisted .abc-link-arrow { white-space: normal; }
body.abc .breadcrumb-trail { font-family: var(--abc-font); font-size: 13px; letter-spacing: 0; text-transform: none; }

/* Home: header over the slideshow photo until the page scrolls. abbott.js makes it
   solid on scroll (is-solid), so without the script (no .abc-js) it is the normal
   white header above the slideshow. */
.abc-js .abc-header--overlay { position: fixed; left: 0; right: 0; top: 0; background: transparent; transition: background-color .25s ease, box-shadow .25s ease; }
.abc-js .admin-bar .abc-header--overlay { top: 32px; }
@media (max-width: 782px) { .abc-js .admin-bar .abc-header--overlay { top: 46px; } }
.abc-js .abc-header--overlay .abc-topbar { background: rgba(0, 0, 0, .45); }
.abc-js .abc-header--overlay .abc-header__bar { border-bottom-color: rgba(255, 255, 255, .16); }
.abc-js .abc-header--overlay.is-solid { background: #fff; }
.abc-js .abc-header--overlay.is-solid .abc-topbar { background: var(--abc-dark); }
.abc-js .abc-header--overlay.is-solid .abc-header__bar { border-bottom-color: var(--abc-line); }
.abc-header__logo-light { display: none; }
.abc-header__logo-light svg { display: block; width: auto; height: 44px; }
.abc-js .abc-header--overlay:not(.is-solid) .abc-header__logo img { display: none; }
.abc-js .abc-header--overlay:not(.is-solid) .abc-header__logo-light { display: block; }
.abc-js body.abc .abc-header--overlay:not(.is-solid) .abc-menu > li > a { color: #fff; }
.abc-js body.abc .abc-header--overlay:not(.is-solid) .abc-menu > li > a:hover, .abc-js body.abc .abc-header--overlay:not(.is-solid) .abc-menu > li:focus-within > a { border-bottom-color: #fff; }
.abc-js .abc-header--overlay:not(.is-solid) .abc-header__toggle { background: transparent; border-color: rgba(255, 255, 255, .5); }
.abc-js .abc-header--overlay:not(.is-solid) .abc-header__toggle-bars,
.abc-js .abc-header--overlay:not(.is-solid) .abc-header__toggle-bars::before,
.abc-js .abc-header--overlay:not(.is-solid) .abc-header__toggle-bars::after { background: #fff; }
@media (max-width: 1024px) { .abc-header__logo-light svg { height: 36px; } }

/* Menu: nested lists inherit the panel's visibility, so a closed panel never catches the mouse */
.abc-menu .sub-menu .sub-menu { visibility: inherit; }


/* Phones: the admin bar scrolls away below 600 px, so the header sits at the top; slide tabs swipe without a scrollbar */
@media (max-width: 600px) { .abc-js .admin-bar .abc-header--overlay { top: 0; } }
.abc-hero__tabs { scrollbar-width: none; }
.abc-hero__tabs::-webkit-scrollbar { display: none; }

/* Images without frames: product images sit on the page itself (still whole and uncropped) */
.abc-tile { background: transparent; }
.abc-serieshead__media { border: 0; background: transparent; }
.abc-card__media { border-bottom: 0; }
.abc-gallery__item { border: 0; }
.abc-gallery__item:hover { border: 0; opacity: .85; }
.abc-drawing { padding: 0; border: 0; background: transparent; }
.abc-table__thumb { background: transparent; }


/* Product line selector (Products page) */
.abc-selector { background: var(--abc-tint); border-bottom: 1px solid var(--abc-line); }
.abc-selector__intro { max-width: 760px; margin: -12px 0 20px; color: var(--abc-muted); }
.abc-selector__form { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 4fr) minmax(0, 3fr); gap: 16px; padding: 20px; margin: 0 0 24px; background: #fff; border: 1px solid var(--abc-line); border-radius: var(--abc-radius); }
.abc-selector__form fieldset { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
.abc-selector__form legend { grid-column: 1 / -1; margin: 0 0 8px; padding: 0; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-ink); }
.abc-selector__form label { display: grid; gap: 4px; font-size: 13px; color: var(--abc-muted); }
.abc-selector__form input, .abc-selector__form select { box-sizing: border-box; width: 100%; min-height: 44px; padding: 8px 10px; font: 16px var(--abc-font); color: var(--abc-ink); background: #fff; border: 1px solid var(--abc-line-strong); border-radius: var(--abc-radius); }
.abc-selector__bar { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid var(--abc-line); }
.abc-selector__count { font-weight: 600; color: var(--abc-ink); }
.abc-selector__results { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.abc-selcard .abc-card__body { gap: 6px; padding: 16px 18px 18px; }
.abc-selcard .abc-eyebrow { margin: 0; }
body.abc .abc-selcard .abc-card__title { font-size: 18px; }
.abc-selcard__why { margin: 0; font-size: 14px; color: var(--abc-muted); }
.abc-selector__none { margin: 0; }
@media (max-width: 960px) { .abc-selector__form { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ footer (compact) */
body.abc #footer.abc-footer { display: block; width: 100%; height: auto; overflow: visible; margin: 0; padding: 0; background: var(--abc-dark); color: var(--abc-on-dark-2); font-size: 14px; line-height: 1.55; }
body.abc .abc-footer a { color: var(--abc-on-dark); text-decoration: none; }
body.abc .abc-footer a:hover { color: #fff; text-decoration: underline; }
.abc-footer__main { display: grid; grid-template-columns: minmax(0, 3.2fr) minmax(0, 3fr) minmax(0, 5.8fr); gap: 48px; padding-top: 28px; padding-bottom: 24px; align-items: start; }
.abc-footer__logo { display: inline-block; line-height: 0; }
.abc-footer__logo img, .abc-footer__logo svg { display: block; width: auto; height: 36px; }
body.abc .abc-footer__tagline { margin: 12px 0 8px; color: #fff; font-weight: 600; }
body.abc .abc-footer__line { margin: 0 0 2px; color: var(--abc-on-dark-2); }
body.abc .abc-footer__heading { margin: 0 0 12px; color: #fff; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
body.abc .abc-footer__contactrow { margin: 0 0 8px; color: var(--abc-on-dark); }
.abc-footer__contactrow br + br { display: none; }
.abc-footer__label { display: block; font-size: 12px; color: var(--abc-on-dark-2); }
.abc-footer__more { display: inline-block; margin-top: 4px; font-size: 14px; }
.abc-footer__menu, .abc-footer__menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.abc-footer__menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.abc-footer__menu li { margin: 0 0 6px; padding: 0; background: none; }
.abc-footer__menu li::before { display: none; }
body.abc .abc-footer__menu > li.menu-item-has-children > a { display: block; margin-bottom: 12px; color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; pointer-events: none; }
.abc-footer__bottom { border-top: 1px solid var(--abc-dark-2); font-size: 13px; }
.abc-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; padding-top: 12px; padding-bottom: 12px; }
.abc-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 20px; list-style: none; margin: 0; padding: 0; }
.abc-footer__legal li { margin: 0; padding: 0; background: none; }
.abc-footer__legal li::before { display: none; }
@media (max-width: 1024px) { .abc-footer__main { grid-template-columns: 1fr 1fr; gap: 32px; } .abc-footer__links { grid-column: 1 / -1; } }
@media (max-width: 600px) { .abc-footer__main { grid-template-columns: 1fr; } .abc-footer__menu { grid-template-columns: 1fr 1fr; } .abc-footer__bottom-inner { justify-content: flex-start; } }
.abc-selector__form fieldset, .abc-selector__form label { align-content: start; align-items: start; }
.abc-cards--products { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.abc-selcard__facts { margin: 4px 0 2px; }
.abc-selcard__facts > div { padding: 6px 0; }
.abc-selcard__facts dd { font-size: 14px; }

/* ==========================================================================
   Home page, header and footer
   ========================================================================== */

/* ------------------------------------------------------------ slideshow text */
/* The first slide's text is on screen at first paint with no entrance
   animation, so it never depends on an animation running (background tabs,
   automated renderers). Later slides still fade in. Slide 1 fades in again on
   return once the slideshow script marks the carousel with .is-changed. */
.abc-hero .abc-hero__copy--first.is-active { animation: none; }
@media (prefers-reduced-motion: no-preference) {
	.abc-hero.is-changed .abc-hero__copy--first.is-active { animation: abcHeroIn .7s ease both; }
}

/* ------------------------------------------------------------ proof points */
/* A quiet row of facts between the slideshow and the company introduction:
   figure on top, small label under it, thin rules between. No icons. */
.abc-proof { background: #fff; border-bottom: 1px solid var(--abc-line); }
.abc-proof__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--abc-proof-n, 5), minmax(0, 1fr)); }
.abc-proof__item { margin: 0; padding: clamp(22px, 2.6vw, 32px) clamp(16px, 2vw, 28px); background: none; border-left: 1px solid var(--abc-line); }
.abc-proof__item::before { display: none; }
.abc-proof__item:first-child { padding-left: 0; border-left: 0; }
.abc-proof__item:last-child { padding-right: 0; }
.abc-proof__figure { display: block; font-size: clamp(22px, 2.3vw, 30px); font-weight: 600; line-height: 1.1; letter-spacing: -.01em; color: var(--abc-ink); font-variant-numeric: lining-nums tabular-nums; }
.abc-proof__label { display: block; margin-top: 8px; font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); }
body.abc .abc-proof__link { display: block; color: inherit; text-decoration: none; }
body.abc .abc-proof__link:hover .abc-proof__label { color: var(--abc-red); }
@media (max-width: 860px) {
	.abc-proof__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.abc-proof__item { padding: 16px 16px 16px 0; border-left: 0; border-top: 1px solid var(--abc-line-soft); }
	.abc-proof__item:nth-child(-n+2) { border-top: 0; }
	.abc-proof__item:nth-child(even) { padding-left: 16px; padding-right: 0; border-left: 1px solid var(--abc-line-soft); }
	/* An odd last item takes the whole row. */
	.abc-proof__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* ------------------------------------------------------------ one heading size for the home sections */
body.abc .abc-home .abc-intro__title,
body.abc .abc-home .abc-section__title,
body.abc .abc-home .abc-spot__title,
body.abc .abc-home .abc-band__title { font-size: clamp(26px, 2.8vw, 34px); line-height: 1.15; }

/* ------------------------------------------------------------ products: an index, not boxed tiles */
body.abc .abc-home .abc-prodlinks__grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0 40px; }
body.abc .abc-home .abc-prodlinks__item {
	min-height: 0; padding: 17px 2px 17px 0;
	background: transparent; border: 0; border-top: 1px solid var(--abc-line-strong); border-radius: 0;
	font-size: 18px; line-height: 1.35;
}
body.abc .abc-home .abc-prodlinks__item:hover { color: var(--abc-red) !important; border-top-color: var(--abc-red); }

/* ------------------------------------------------------------ why abbott */
/* Optional item icons sit in their own small row above the heading. The row
   is printed (empty where an item has no icon) only when at least one item
   has an icon, so all headings share one left edge and baseline. */
.abc-home .abc-why__item { display: block; }
.abc-home .abc-why__icon { display: block; height: 28px; margin: 0 0 10px; line-height: 0; }
body.abc .abc-home .abc-why__icon img { display: block; width: auto; height: 28px; max-width: 56px; margin: 0; object-fit: contain; object-position: left center; }
.abc-why__grid > .abc-why__body:only-child { grid-column: 1 / -1; }
body.abc .abc-home .abc-why__media img { display: block; }

/* ------------------------------------------------------------ power solutions band */
/* Split band. Text aligned with the page column; the photo runs to the screen
   edge at full band height. The whole band takes --abc-band-photo-bg, set by
   page-templates/home.php from Home Settings > Photo Background (the flat
   background of the photo), so text, photo and band read as one light surface,
   with a hairline above it. A band without a photo stays charcoal. */
.abc-home .abc-band--split, .abc-home .abc-band--text { padding: 0; }
.abc-home .abc-band__grid {
	display: grid; gap: 0; align-items: stretch;
	grid-template-columns:
		minmax(var(--abc-gutter), 1fr)
		minmax(0, calc(var(--abc-wrap) / 2 - var(--abc-gutter)))
		minmax(0, calc(var(--abc-wrap) / 2 - var(--abc-gutter)))
		minmax(var(--abc-gutter), 1fr);
}
.abc-home .abc-band__text { grid-column: 2; align-self: center; padding: clamp(48px, 6vw, 88px) clamp(32px, 4.5vw, 64px) clamp(48px, 6vw, 88px) 0; }
.abc-home .abc-band--text .abc-band__text { grid-column: 2 / 4; max-width: 760px; padding-right: 0; }
.abc-home .abc-band__text > :last-child { margin-bottom: 0; }
.abc-home .abc-band__media { grid-column: 3 / 5; display: flex; align-items: center; justify-content: center; padding: clamp(24px, 3vw, 40px) var(--abc-gutter); background: var(--abc-band-photo-bg); }
.abc-band__frame { position: relative; max-width: 100%; line-height: 0; }
.abc-home .abc-band--split { background: var(--abc-band-photo-bg); color: var(--abc-text); border-top: 1px solid var(--abc-line); }
body.abc .abc-home .abc-band--split .abc-band__title { color: var(--abc-ink); }
.abc-home .abc-band--split p { color: var(--abc-text); }
.abc-home .abc-band--split .abc-eyebrow { color: var(--abc-red); }
body.abc .abc-home .abc-band--split .abc-band__text :focus-visible { outline-color: var(--abc-red); }
body.abc .abc-home .abc-band__media img { display: block; width: auto; max-width: 100%; height: auto; margin: 0; border-radius: 0; }
@media (max-width: 860px) {
	.abc-home .abc-band__grid { grid-template-columns: minmax(0, 1fr); }
	.abc-home .abc-band__text, .abc-home .abc-band--text .abc-band__text { grid-column: 1; max-width: none; padding: 48px var(--abc-gutter) 40px; }
	.abc-home .abc-band__media { grid-column: 1; padding: 24px var(--abc-gutter); }
}

/* ------------------------------------------------------------ footer: certification marks */
/* Certification band: one row of marks across the top of the footer on white, so each
   mark shows exactly as the registrar supplies it (original colors, no filters). The rest
   of the footer stays charcoal. On narrow screens the row wraps instead of scrolling
   sideways. Marks are 46px tall on wide screens. */
body.abc #footer .abc-footer__roll { background: #fff; border-top: 1px solid var(--abc-line); }
.abc-footer__roll-inner { display: flex; align-items: center; gap: 12px 40px; padding-top: 10px; padding-bottom: 10px; }
body.abc #footer .abc-footer__roll-label { flex: 0 0 auto; max-width: 14em; margin: 0; color: var(--abc-muted); font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; }
body.abc #footer .abc-footer__marks { flex: 1 1 auto; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; list-style: none; margin: 0; padding: 0; }
body.abc #footer .abc-footer__mark { margin: 0; padding: 0; background: none; line-height: 0; }
body.abc #footer .abc-footer__mark::before { display: none; }
body.abc #footer .abc-footer__mark a { display: block; text-decoration: none; }
body.abc #footer .abc-footer__mark img { display: block; width: auto; height: 46px; max-width: none; object-fit: contain; }
/* The whole footer is charcoal: white focus outlines throughout (the red one is 2.75:1 here). */
body.abc #footer :focus-visible { outline-color: #fff; }
body.abc #footer .abc-footer__mark a:focus-visible { outline-color: var(--abc-ink); outline-offset: 4px; }
/* Bottom bar: copyright and legal links only, on the same charcoal. */
body.abc #footer .abc-footer__bottom { background: none; color: var(--abc-on-dark-2); }
.abc-footer__meta { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 32px; width: 100%; }
body.abc #footer .abc-footer__meta .abc-footer__legal { gap: 4px 20px; }
@media (max-width: 1199px) { body.abc #footer .abc-footer__mark img { height: 42px; } }
@media (max-width: 960px) {
	.abc-footer__roll-inner { flex-direction: column; align-items: flex-start; gap: 10px; padding-top: 16px; padding-bottom: 16px; }
	body.abc #footer .abc-footer__marks { width: 100%; justify-content: flex-start; }
	body.abc #footer .abc-footer__mark img { height: 40px; }
}
@media (max-width: 600px) {
	body.abc #footer .abc-footer__marks { gap: 8px; }
	body.abc #footer .abc-footer__mark img { height: 36px; }
	.abc-footer__meta { justify-content: flex-start; }
}

/* ==========================================================================
   Text pages (About template) and series pages (Product Modules template)
   ========================================================================== */

/* ------------------------------------------------------------ sticky offset
   abbott.js sets --abc-hero-top to the header's real height (top bar + bar,
   wraps included). The header sticks below the admin bar from 783 px up
   (see .admin-bar .abc-header), so sticky things start under both. */
:root { --abc-stick-top: var(--abc-hero-top, calc(var(--abc-header-h) + 34px)); }
body.admin-bar { --abc-stick-top: calc(var(--abc-hero-top, calc(var(--abc-header-h) + 34px)) + 32px); }
@media (max-width: 782px) {
	body.admin-bar { --abc-stick-top: var(--abc-hero-top, calc(var(--abc-header-h) + 34px)); }
}
.abc-onpage, .admin-bar .abc-onpage { top: var(--abc-stick-top); }
.abc-mod, .abc-series__body > span[id] { scroll-margin-top: calc(var(--abc-stick-top) + var(--abc-onpage-h) + 16px); }
.abc-page [id] { scroll-margin-top: calc(var(--abc-stick-top) + 16px); }

/* ------------------------------------------------------------ editor text: site font
   Parent rules such as `.simple-content p { font-family: Roboto; font-weight: 300 }`
   would set page text in Roboto, which this theme does not load (the browser falls
   back to Times). The templates do not print those classes; these rules cover the
   same classes typed into page text. */
body.abc #main .simple-content p,
body.abc #main .learn-more p,
body.abc #main .text-content-widget p,
body.abc #main .text-content-widget div { font: inherit; letter-spacing: inherit; color: inherit; }
body.abc #main .simple-content { margin-bottom: 0; }

/* ------------------------------------------------------------ lists in editor text
   The parent numbers ol items with its own counter in ::before, which doubles the
   browser's numbering ("1. 1"). Browser numbering stays; the parent's counter,
   indent, 14 px size and 23 px item gap go. */
body.abc .abc-prose ol > li::before { content: none; display: none; }
body.abc .abc-prose ol:not([class]), body.abc .abc-prose ul:not([class]) { font-size: inherit; letter-spacing: inherit; color: inherit; }
body.abc .abc-prose ol:not([class]) li, body.abc .abc-prose ul:not([class]) li { padding-left: 0; }
body.abc .abc-prose ol:not([class]) li + li, body.abc .abc-prose ul:not([class]) li + li { margin-top: .3em; }
body.abc .abc-prose ol li { padding-left: .25em; }
body.abc .abc-prose ol li::marker { color: var(--abc-muted); font-weight: 600; }

/* ------------------------------------------------------------ page head (About template)
   The photo fades into the charcoal instead of starting at a hard edge. The fade
   is a mask on the photo itself, so there is no second layer to line up. Photo
   strength under the title and lead stays low enough for 4.5:1 text contrast. */
.abc-pagehead--image .abc-pagehead__media { inset: 0 0 0 30%; width: auto; -webkit-mask-image: linear-gradient(90deg, transparent 14%, #000 71%); mask-image: linear-gradient(90deg, transparent 14%, #000 71%); }
.abc-pagehead--image .abc-pagehead__media::before { display: none; }
body.abc .abc-pagehead--image .abc-pagehead__media img { display: block; max-width: none; opacity: .6; object-position: center; }
.abc-pagehead--image { border-bottom: 1px solid rgba(255, 255, 255, .08); }
@media (max-width: 1100px) {
	body.abc .abc-pagehead--image .abc-pagehead__media img { opacity: .3; }
}
@media (max-width: 760px) {
	.abc-pagehead--image .abc-pagehead__media { inset: 0; opacity: 1; -webkit-mask-image: none; mask-image: none; }
	body.abc .abc-pagehead--image .abc-pagehead__media img { opacity: .28; }
}
/* Pages without a banner photo: a short red rule above the title, so the band
   reads as intended rather than as a missing image. */
.abc-pagehead:not(.abc-pagehead--image) .abc-pagehead__title::before { content: ""; display: block; width: 40px; height: 3px; margin: 0 0 18px; background: var(--abc-red); }

/* ------------------------------------------------------------ side panel (About template) */
.abc-aside__inner { border-top: 2px solid var(--abc-ink); padding-top: 16px; }
body.abc .abc-aside__title { margin: 0 0 10px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); line-height: 1.4; }
.abc-aside__text { margin: 0 0 16px; font-size: 14px; line-height: 1.55; color: var(--abc-text); }
.abc-aside__links { list-style: none; margin: 0 0 20px; padding: 0; border-top: 1px solid var(--abc-line-soft); }
.abc-aside__links li { margin: 0; padding: 0; background: none; border-bottom: 1px solid var(--abc-line-soft); }
.abc-aside__links li::before { display: none; }
body.abc .abc-aside__link { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 0; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--abc-ink); text-decoration: none; }
body.abc .abc-aside__link:hover { color: var(--abc-red); }
.abc-aside__cta { width: 100%; }
@media (min-width: 1100px) {
	.abc-page__body--aside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(232px, 264px); column-gap: clamp(40px, 4.5vw, 72px); align-items: start; }
	.abc-page__main { min-width: 0; }
	/* Text and tables fill the column; a table wider than that scrolls inside its own frame. */
	.abc-page__body--aside .abc-prose, .abc-page__body--aside .abbott-std { max-width: none; }
}
@media (min-width: 1100px) and (min-height: 620px) {
	.abc-aside { position: sticky; top: calc(var(--abc-stick-top) + 24px); }
}
@media (max-width: 1099px) {
	.abc-aside { margin-top: 48px; max-width: 560px; }
}

/* ------------------------------------------------------------ tables in page text
   Standards and company pages set their own table look in the page text (red
   header row, zebra rows, boxed cells). Match the site tables instead: tint
   header with small uppercase labels, thin rules. */
body.abc .abc-prose .abbott-std table { margin: 0; font-size: 14px; color: var(--abc-text); }
body.abc .abc-prose .abbott-std th, body.abc .abc-prose .abbott-std td { padding: 10px 14px; border: 0; border-bottom: 1px solid var(--abc-line-soft); }
body.abc .abc-prose .abbott-std thead th { background: var(--abc-tint); color: var(--abc-ink); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; border-bottom: 1px solid var(--abc-line); }
body.abc .abc-prose .abbott-std tbody tr:nth-child(even) { background: none; }
body.abc .abc-prose .abbott-std tbody tr:last-child > * { border-bottom: 0; }
body.abc .abc-prose .abbott-std .table-scroll { margin: 1.1rem 0 1.5rem; border: 1px solid var(--abc-line); border-radius: var(--abc-radius); }
body.abc .abc-prose .abbott-std .abc-tablewrap { margin: 1.1rem 0 1.5rem; }
/* Short credential lists laid out as a row: no list bullets beside them. */
body.abc .abc-prose .abbott-std ul.cred-strip li { list-style: none; }

/* ------------------------------------------------------------ series pages */
/* Spec tables: one label style whatever the case it was typed in. */
body.abc .abc-table--spec th[scope="row"], body.abc .abc-table--spec .abc-table__sub th { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-ink); line-height: 1.45; }
.abc-table--spec .abc-table__sub th { padding-bottom: 4px; background: none; }
/* Headings typed in content modules match the module headings. */
body.abc .abc-mod .abc-prose h2 { font-size: clamp(22px, 2.4vw, 28px); margin: 40px 0 16px; }
body.abc .abc-mod .abc-prose > h2:first-child { margin-top: 0; }
/* h4 holds dimension notes and h5 short labels (Key Terms, Mechanical Drawings) in old series text. */
body.abc .abc-mod .abc-prose h4 { font-size: 16px; font-weight: 600; line-height: 1.5; color: var(--abc-text); letter-spacing: 0; }
body.abc .abc-mod .abc-prose h5 { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); margin: 28px 0 10px; }

/* ------------------------------------------------------------ comparison table */
.abc-table--compare td.abc-table__empty { color: var(--abc-muted); font-size: 14px; }

/* ==========================================================================
   Data tools: product line selector, part number finder, table search and paging
   ========================================================================== */

.abc-nw { white-space: nowrap; }

/* ------------------------------------------------------------ product line selector */
.abc-selcard { position: relative; }
/* Power / Input / Output as full-width label and value rows. The labels share
   one column (display: contents on each row), so the values line up. */
.abc-selcard .abc-selcard__facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 14px; margin: 6px 0 4px; }
.abc-selcard__facts > div { display: contents; }
body.abc .abc-selcard__facts dt, body.abc .abc-selcard__facts dd { margin: 0; padding: 7px 0; line-height: 20px; border-top: 1px solid var(--abc-line-soft); }
body.abc .abc-selcard__facts > div:first-child > dt, body.abc .abc-selcard__facts > div:first-child > dd { border-top: 0; }
body.abc .abc-selcard__facts dt { font-size: 11px; letter-spacing: .06em; }
body.abc .abc-selcard__facts dd { font-size: 14px; }
.abc-selcard__why:empty { display: none; }
/* Every product line is in the page. With JavaScript on, the ones after the first
   few stay hidden until parts.js has applied the count and the Show All button. */
.abc-js .abc-selector:not(.is-ready) .abc-selcard--later { display: none; }
.abc-selector__more { display: flex; width: max-content; max-width: 100%; margin: 28px auto 0; white-space: normal; text-align: center; }
/* Selector after the page content (Product Selector Position): a rule above it as well. */
.abc-section--first ~ .abc-selector { border-top: 1px solid var(--abc-line); }
/* Page header link down to the selector: a quiet outline button with a down arrow. */
.abc-pagehead__jump { margin: 22px 0 0; }
.abc-btn.abc-jump { white-space: normal; text-align: left; }
.abc-jump::after { content: "\2193"; content: "\2193" / ""; font-weight: 400; } /* The arrow is not read out where the browser supports alt text. */

/* Phones and tablets: compact rows, small picture left, name and specs right. */
@media (max-width: 860px) {
	.abc-selector__results { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 0 28px; border-top: 1px solid var(--abc-line); }
	.abc-selcard { display: grid; grid-template-columns: 88px minmax(0, 1fr); column-gap: 14px; align-items: start; padding: 16px 0; overflow: visible; background: transparent; border: 0; border-bottom: 1px solid var(--abc-line); border-radius: 0; }
	.abc-selcard:hover { box-shadow: none; border-color: var(--abc-line); }
	.abc-selcard .abc-card__media { padding: 0; }
	.abc-selcard--noimg .abc-card__body { grid-column: 1 / -1; }
	.abc-selcard .abc-card__body { gap: 2px; padding: 0; }
	.abc-selcard .abc-eyebrow { font-size: 11px; }
	body.abc .abc-selcard .abc-card__title { font-size: 16px; }
	/* The whole row opens the series page; the separate button is not needed here. */
	body.abc .abc-selcard .abc-card__title a::after { content: ""; position: absolute; inset: 0; }
	.abc-selcard .abc-card__actions { display: none; }
	.abc-selcard .abc-selcard__facts { margin: 4px 0 2px; border-bottom: 0; }
	body.abc .abc-selcard__facts dt, body.abc .abc-selcard__facts dd { padding: 4px 0; }
	.abc-selcard__why { font-size: 13px; }
	.abc-selector__more { width: 100%; }
}

/* ------------------------------------------------------------ part number finder
   Each part is one <tbody>: the main row (part number, details that vary, Quote)
   and a row with its options. Columns shrink to fit the container; the script
   switches to stacked rows when they cannot (is-stacked). */
.abc-table--parts th, .abc-table--parts td { white-space: normal; padding: 9px 10px; font-size: 14px; }
.abc-table--parts thead th { font-size: 12px; line-height: 1.3; vertical-align: bottom; white-space: normal; }
/* A long heading wraps instead of widening a column of short numbers. */
.abc-finder__th { display: inline-block; max-width: 8.5em; }
.abc-table--parts .abc-pn, .abc-table--parts .abc-finder__q { white-space: nowrap; }
.abc-table--parts .abc-finder__q { width: 1%; text-align: right; }
/* One click selects the whole part number, ready to copy. */
.abc-finder__pn { -webkit-user-select: all; user-select: all; }
.abc-table--parts > tbody { border-bottom: 1px solid var(--abc-line-soft); }
.abc-table--parts > tbody:last-child { border-bottom: 0; }
.abc-table--parts > tbody > tr > * { border-bottom: 0; }
.abc-table--parts > tbody:hover > tr > * { background: #fafafa; }
.abc-table--parts > tbody > tr:first-child:has(+ .abc-finder__sub:not([hidden])) > * { padding-bottom: 3px; }
.abc-finder__sub > td { padding-top: 0; padding-bottom: 11px; font-size: 13px; line-height: 1.5; color: var(--abc-text); }
.abc-finder__opt { display: inline-block; margin: 0 20px 2px 0; }
.abc-finder__optlabel { margin-right: 5px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); }

/* Stacked rows (narrow screens, or a list too wide for its container). */
.abc-finder.is-stacked .abc-finder__tablewrap { overflow: visible; border: 0; border-top: 1px solid var(--abc-line); border-radius: 0; }
.abc-finder.is-stacked .abc-table--parts { display: block; width: 100%; }
.abc-finder.is-stacked .abc-table--parts > thead { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
/* Each part is a grid: part number and Quote on top, then options and details as small
   label-over-value pairs, two per line (three from 540px). A long value (is-wide, set by
   the script) takes the full width. */
.abc-finder.is-stacked .abc-table--parts > tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; padding: 12px 0; border-bottom: 1px solid var(--abc-line); }
.abc-finder.is-stacked .abc-table--parts > tbody:hover > tr > * { background: none; }
.abc-finder.is-stacked .abc-table--parts > tbody > tr:first-child { display: contents; }
.abc-finder.is-stacked .abc-table--parts > tbody > tr > * { display: block; padding: 0; background: none; }
.abc-finder.is-stacked .abc-table--parts .abc-pn { grid-column: 1 / -2; grid-row: 1; font-size: 16px; }
.abc-finder.is-stacked .abc-table--parts .abc-finder__q { grid-column: -2 / -1; grid-row: 1; width: auto; text-align: right; }
.abc-finder.is-stacked .abc-finder__sub { display: block; grid-column: 1 / -1; grid-row: 2; }
.abc-finder.is-stacked .abc-table--parts > tbody > .abc-finder__sub > td { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.abc-finder.is-stacked .abc-table--parts td[data-c] { grid-column: auto; }
.abc-finder.is-stacked .abc-finder__opt, .abc-finder.is-stacked .abc-table--parts td[data-c] { display: block; margin: 0; padding: 0; font-size: 14px; line-height: 1.4; }
.abc-finder.is-stacked .abc-finder__opt.is-wide, .abc-finder.is-stacked .abc-table--parts td.is-wide:not(.is-repeat) { grid-column: 1 / -1; }
.abc-finder.is-stacked .abc-table--parts td[data-c]:empty, .abc-finder.is-stacked .abc-table--parts td.is-empty { display: none; }
.abc-finder.is-stacked .abc-finder__optlabel, .abc-finder.is-stacked .abc-table--parts td[data-c]::before { display: block; margin: 0 0 1px; font-size: 11px; font-weight: 600; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; color: var(--abc-muted); }
.abc-finder.is-stacked .abc-table--parts td[data-c]::before { content: attr(data-label); }
@media (min-width: 540px) {
	.abc-finder.is-stacked .abc-table--parts > tbody, .abc-finder.is-stacked .abc-table--parts > tbody > .abc-finder__sub > td { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; }
}
/* A long text (a note) identical to the part above is not repeated: the cell says so
   instead (Finder Wording > Long Text Same as the Part Above). Table and stacked layouts alike. */
.abc-table--parts td.is-repeat > .abc-finder__v { display: none; }
.abc-table--parts td.is-repeat::after { content: attr(data-repeat); color: var(--abc-muted); }
/* A blank value: the cell stays (every column is shown for every part) and says so quietly. */
.abc-finder__none { color: var(--abc-muted); }
/* Column widths are measured with every part of the list laid out and full values in
   place of "Same as above" (parts.js, fit()); then fixed, so a filter shifts nothing. */
.abc-finder.is-measuring .abc-table--parts > tbody[hidden] { display: table-row-group !important; }
.abc-finder.is-measuring .abc-table--parts td.is-repeat > .abc-finder__v { display: inline; }
.abc-finder.is-measuring .abc-table--parts td.is-repeat::after { content: none; }
/* Fixed column widths: a long word wraps inside its cell instead of overflowing it
   (break-word, not anywhere, so the measurement still sees each word's full width). */
.abc-table--parts td[data-c] { overflow-wrap: break-word; }

/* ------------------------------------------------------------ table search and paging (NSN listing) */
/* The table uses the full content width; running text keeps a readable measure. */
.abc-page__body .abc-prose[data-abc-table-search] { max-width: none; }
.abc-prose[data-abc-table-search] > div, .abc-prose[data-abc-table-search] .table-scroll { max-width: none; }
.abc-prose[data-abc-table-search] :is(p, h2, h3, h4, h5, h6, ul, ol, blockquote) { max-width: 900px; }
/* Paging replaces the inner scroll box; a table wider than a phone still scrolls inside its frame. */
.abc-prose[data-abc-table-search] .table-scroll { max-height: none; overflow-x: auto; }
/* Screen-reader-only headings inside a scrolling frame stay inside it (otherwise they widen the page on phones). */
[data-abc-table-search] .table-scroll, [data-abc-table-search] .abc-tablewrap, .abc-finder__tablewrap { position: relative; }
.abc-tsearch { scroll-margin-top: calc(var(--abc-header-h) + 16px); }
.abc-tsearch__count { font-variant-numeric: tabular-nums; }
/* Table pager (built by abbott.js). Its own class: the article pager is .abc-pager. */
.abc-tpager { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 14px 0 28px; }
body.abc .abc-tpager__btn {
	display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; margin: 0; padding: 6px 12px; box-sizing: border-box;
	font: 600 14px/1.2 var(--abc-font); font-variant-numeric: tabular-nums; letter-spacing: 0; text-transform: none;
	color: var(--abc-ink); background: #fff; border: 1px solid var(--abc-line-strong); border-radius: 2px; box-shadow: none; cursor: pointer;
}
body.abc .abc-tpager__btn:hover { border-color: var(--abc-ink); }
body.abc .abc-tpager__btn[aria-current="page"] { color: #fff; background: var(--abc-ink); border-color: var(--abc-ink); cursor: default; }
body.abc .abc-tpager__btn[aria-disabled="true"] { color: var(--abc-faint); background: #fff; border-color: var(--abc-line); cursor: default; }
.abc-tpager__gap { padding: 0 2px; color: var(--abc-muted); }

/* ------------------------------------------------------------ print: no controls
   A searched table prints every matching row, not only the current page. The part
   finder prints the parts and columns shown on screen. */
@media print {
	.abc-tpager, .abc-pager, .abc-selector__more { display: none !important; }
	[data-abc-table-search] tr.is-off-page { display: table-row !important; }
}

/* ==========================================================================
   Contact, forms, articles, search, page not found
   ========================================================================== */
/* Gravity Forms loads its legacy stylesheets after the theme and the parent
   theme sets several form rules with !important, so the form rules below
   carry !important where those do. */

:root {
	--abc-field-line: #8a8a8a; /* 3.4:1 on white: field edges meet WCAG 1.4.11 */
}

/* ------------------------------------------------------------ page head extras */
.abc-pagehead__lead > p { margin: 0 0 .6em; }
.abc-pagehead__lead > :last-child { margin-bottom: 0; }
.abc-pagehead .abc-eyebrow { color: #ff8a8d; margin-bottom: 12px; }
body.abc .abc-pagehead .abc-eyebrow a { color: inherit; text-decoration: none; }
body.abc .abc-pagehead .abc-eyebrow a:hover { color: #fff; text-decoration: underline; }
.abc-pagehead__meta { margin: 16px 0 0; font-size: 14px; color: var(--abc-on-dark-2); }

/* ------------------------------------------------------------ Gravity Forms (every form on the site) */
body.abc .gform_wrapper { margin: 0 !important; max-width: 100%; font-family: var(--abc-font); color: var(--abc-text); }
body.abc .gform_wrapper form { max-width: none !important; margin: 0; }
body.abc .gform_wrapper .gform_body { width: 100% !important; }

/* Form title: only shown where it does not repeat the page heading (inc/legacy.php). */
body.abc .gform_wrapper .gform_heading { width: auto; margin: 0 0 28px; }
body.abc .gform_wrapper .gform_title { margin: 0 0 6px !important; font-size: 22px !important; font-weight: 600 !important; letter-spacing: 0 !important; color: var(--abc-ink); }
body.abc .gform_wrapper .gform_description { display: block; margin: 0; font-size: 14px; color: var(--abc-muted); }

/* Field grid: one column on phones; 12 columns above 640 px so the Gravity
   Forms half, third and quarter classes sit side by side. */
body.abc .gform_wrapper ul.gform_fields {
	display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 22px 20px;
	width: 100%; margin: 0 !important; padding: 0 !important; list-style: none !important;
}
body.abc .gform_wrapper ul.gform_fields > li.gfield {
	position: relative; grid-column: 1 / -1; box-sizing: border-box; min-width: 0;
	width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important;
	float: none !important; clear: none !important; list-style: none !important; background: none !important; border: 0 !important;
}
body.abc .gform_wrapper ul.gform_fields > li.gfield::before,
body.abc .gform_wrapper ul.gform_fields > li.gfield::after { content: none !important; display: none !important; }
body.abc .gform_wrapper ul.gform_fields > li.gform_validation_container,
body.abc .gform_wrapper ul.gform_fields > li.gfield_visibility_hidden { display: none !important; }
@media (min-width: 641px) {
	body.abc .gform_wrapper ul.gform_fields { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	body.abc .gform_wrapper ul.gform_fields > li.gf_left_half,
	body.abc .gform_wrapper ul.gform_fields > li.gf_right_half,
	body.abc .gform_wrapper ul.gform_fields > li.gfield--width-half { grid-column: span 6; }
	body.abc .gform_wrapper ul.gform_fields > li.gf_left_third,
	body.abc .gform_wrapper ul.gform_fields > li.gf_middle_third,
	body.abc .gform_wrapper ul.gform_fields > li.gf_right_third,
	body.abc .gform_wrapper ul.gform_fields > li.gfield--width-third { grid-column: span 4; }
	body.abc .gform_wrapper ul.gform_fields > li.gf_first_quarter,
	body.abc .gform_wrapper ul.gform_fields > li.gf_second_quarter,
	body.abc .gform_wrapper ul.gform_fields > li.gf_third_quarter,
	body.abc .gform_wrapper ul.gform_fields > li.gf_fourth_quarter,
	body.abc .gform_wrapper ul.gform_fields > li.gfield--width-quarter { grid-column: span 3; }
	body.abc .gform_wrapper ul.gform_fields > li.gfield--width-two-thirds { grid-column: span 8; }
	body.abc .gform_wrapper ul.gform_fields > li.gfield--width-three-quarter { grid-column: span 9; }
	/* A labelled field followed on the same row by one whose label is hidden
	   (Contact: "Name" over First Name, Last Name unlabelled): drop the second
	   by one label height so both boxes line up. 26px = label line + gap. */
	body.abc .gform_wrapper ul.gform_fields > li:is(.gf_left_half, .gf_left_third, .gf_middle_third):not(.hidden-label):not(.no-label) + li:is(.gf_right_half, .gf_middle_third, .gf_right_third):is(.hidden-label, .no-label) { padding-top: 26px !important; }
}

/* Labels, required marker, help text */
body.abc .gform_wrapper .gfield_label {
	display: block !important; float: none; width: auto; margin: 0 0 6px !important; padding: 0 !important;
	font-family: var(--abc-font); font-size: 14px !important; font-weight: 600 !important; line-height: 20px !important;
	letter-spacing: 0 !important; text-transform: none; color: var(--abc-ink) !important; opacity: 1 !important;
}
body.abc .gform_wrapper .gfield_required { margin-left: 3px !important; font-weight: 600; color: var(--abc-red) !important; }
body.abc .gform_wrapper .gfield_required .gfield_required { margin-left: 0 !important; }
/* Hidden labels stay readable by screen readers (the parent theme removed
   them with display:none). */
body.abc .gform_wrapper .hidden-label .gfield_label,
body.abc .gform_wrapper .no-label .gfield_label,
body.abc .gform_wrapper .hidden_label .gfield_label,
body.abc .gform_wrapper .gfield_label.screen-reader-text,
body.abc .gform_wrapper .gfield .screen-reader-text {
	display: block !important; position: absolute !important; width: 1px !important; height: 1px !important;
	margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%); white-space: nowrap !important; border: 0 !important; opacity: 1 !important;
}
body.abc .gform_wrapper .gfield .gfield_description,
body.abc .gform_wrapper .gfield .gsection_description,
body.abc .gform_wrapper .gfield .gform_fileupload_rules {
	display: block; width: auto !important; max-width: 760px; margin: 0; padding: 0 !important;
	font-size: 14px !important; line-height: 1.45 !important; letter-spacing: 0; color: var(--abc-muted);
}
body.abc .gform_wrapper .field_description_above .gfield_description:not(.validation_message) { margin: 0 0 8px; }
body.abc .gform_wrapper .field_description_below .gfield_description,
body.abc .gform_wrapper .gfield .gform_fileupload_rules,
body.abc .gform_wrapper .gfield .gsection_description { margin: 6px 0 0; }
body.abc .gform_wrapper .gfield .ginput_container { margin: 0 !important; padding: 0 !important; }

/* Text boxes, text areas, selects */
body.abc .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]):not([type=hidden]),
body.abc .gform_wrapper .gfield textarea,
body.abc .gform_wrapper .gfield select {
	display: block; box-sizing: border-box; width: 100% !important; max-width: 100% !important; min-width: 0 !important;
	height: 46px; margin: 0 !important; padding: 10px 12px !important;
	font-family: var(--abc-font) !important; font-size: 16px !important; font-weight: 400; line-height: 1.4 !important; letter-spacing: 0 !important;
	color: var(--abc-ink) !important; background-color: #fff !important;
	border: 1px solid var(--abc-field-line) !important; border-radius: var(--abc-radius) !important; box-shadow: none !important;
	-webkit-appearance: none; appearance: none; transition: border-color .15s ease;
}
body.abc .gform_wrapper .gfield textarea { height: 160px !important; min-height: 96px; resize: vertical; }
body.abc .gform_wrapper .gfield select {
	padding-right: 40px !important; cursor: pointer; text-overflow: ellipsis;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231f1f1f' stroke-width='1.6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 12px 8px !important;
}
body.abc .gform_wrapper .gfield select::-ms-expand { display: none; }
body.abc .gform_wrapper .gfield select[multiple],
body.abc .gform_wrapper .gfield select[size]:not([size="1"]) { height: auto !important; min-height: 0; padding: 6px !important; background-image: none !important; cursor: default; }
body.abc .gform_wrapper .gfield select[multiple] option { padding: 5px 8px; border-radius: 2px; }
body.abc .gform_wrapper .gfield input::placeholder,
body.abc .gform_wrapper .gfield textarea::placeholder { color: var(--abc-muted) !important; opacity: 1; }
body.abc .gform_wrapper .ginput_container input:hover,
body.abc .gform_wrapper .ginput_container textarea:hover,
body.abc .gform_wrapper .ginput_container select:hover { border-color: var(--abc-ink) !important; }
body.abc .gform_wrapper .ginput_container input:focus,
body.abc .gform_wrapper .ginput_container textarea:focus,
body.abc .gform_wrapper .ginput_container select:focus { border-color: var(--abc-ink) !important; outline: 2px solid var(--abc-red) !important; outline-offset: 1px; }
body.abc .gform_wrapper .ginput_container input:disabled,
body.abc .gform_wrapper .ginput_container select:disabled,
body.abc .gform_wrapper .ginput_container textarea:disabled { background-color: var(--abc-tint) !important; color: var(--abc-muted) !important; cursor: not-allowed; }

/* Name and address: two columns, sub-labels under the boxes */
body.abc .gform_wrapper .gfield .ginput_complex.ginput_container {
	display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px;
	width: 100% !important; margin: 0 !important; padding: 0 !important;
}
body.abc .gform_wrapper .gfield .ginput_complex.ginput_container > span,
body.abc .gform_wrapper .gfield .ginput_complex.ginput_container > div:not(.gf_clear) {
	display: block !important; box-sizing: border-box; width: auto !important; max-width: none !important; min-width: 0; min-height: 0 !important;
	margin: 0 !important; padding: 0 !important; float: none !important;
}
body.abc .gform_wrapper .gfield .ginput_complex.ginput_container > .ginput_full { grid-column: 1 / -1; }
body.abc .gform_wrapper .gfield .ginput_complex.ginput_container > .gf_clear { display: none !important; }
body.abc .gform_wrapper .gfield .ginput_complex.ginput_container label {
	display: block !important; margin: 5px 0 0 !important; padding: 0 !important;
	font-size: 13px !important; font-weight: 400 !important; line-height: 1.4 !important; letter-spacing: 0 !important; color: var(--abc-muted) !important;
}
body.abc .gform_wrapper .field_sublabel_above .ginput_complex.ginput_container label { margin: 0 0 5px !important; }
@media (max-width: 480px) { body.abc .gform_wrapper .gfield .ginput_complex.ginput_container { grid-template-columns: minmax(0, 1fr); } }

/* Checkboxes and radio buttons: native controls in the site red, laid out in columns */
body.abc .gform_wrapper .gfield .gfield_checkbox,
body.abc .gform_wrapper .gfield .gfield_radio {
	display: grid !important; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px 24px;
	margin: 4px 0 0 !important; padding: 0 !important; list-style: none !important;
}
body.abc .gform_wrapper .gfield .gfield_checkbox > li,
body.abc .gform_wrapper .gfield .gfield_radio > li,
body.abc .gform_wrapper .gfield .gfield_checkbox > .gchoice,
body.abc .gform_wrapper .gfield .gfield_radio > .gchoice {
	display: flex !important; align-items: flex-start; gap: 10px; width: auto !important;
	margin: 0 !important; padding: 0 !important; float: none !important; overflow: visible !important;
	list-style: none !important; background: none !important; line-height: 1.4;
}
body.abc .gform_wrapper .gfield .gfield_checkbox > li::before,
body.abc .gform_wrapper .gfield .gfield_radio > li::before { content: none !important; display: none !important; }
body.abc .gform_wrapper .gfield .gfield_checkbox input[type=checkbox],
body.abc .gform_wrapper .gfield .gfield_radio input[type=radio] {
	flex: 0 0 18px; width: 18px !important; height: 18px !important; margin: 1px 0 0 !important; accent-color: var(--abc-red); cursor: pointer;
}
body.abc .gform_wrapper .gfield .gfield_checkbox label,
body.abc .gform_wrapper .gfield .gfield_radio label {
	display: block !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important;
	font-size: 16px !important; font-weight: 400 !important; line-height: 1.4 !important; letter-spacing: 0; color: var(--abc-text) !important; cursor: pointer;
}

/* Section breaks: thin rule and a small uppercase group heading */
body.abc .gform_wrapper ul.gform_fields > li.gfield.gsection {
	grid-column: 1 / -1; margin: 18px 0 0 !important; padding: 20px 0 0 !important;
	border: 0 !important; border-top: 1px solid var(--abc-line) !important;
}
body.abc .gform_wrapper ul.gform_fields > li.gfield.gsection:first-child,
body.abc .gform_wrapper ul.gform_fields > li.gform_validation_container:first-child + li.gfield.gsection { margin-top: 0 !important; }
/* A section directly followed by another (PS form: Output Selection, then
   Output 1): the second reads as a sub-heading, without a second rule. */
body.abc .gform_wrapper ul.gform_fields > li.gfield.gsection + li.gfield.gsection { margin-top: -8px !important; padding-top: 0 !important; border-top: 0 !important; }
body.abc .gform_wrapper ul.gform_fields > li.gfield.gsection + li.gfield.gsection .gsection_title { color: var(--abc-muted) !important; }
body.abc .gform_wrapper .gsection .gsection_title {
	margin: 0 !important; padding: 0 !important; clear: none;
	font-family: var(--abc-font); font-size: 12px !important; font-weight: 600 !important; line-height: 1.4 !important;
	letter-spacing: .06em !important; text-transform: uppercase; color: var(--abc-ink) !important;
}

/* File upload (design forms) */
body.abc .gform_wrapper .gform_fileupload_multifile .gform_drop_area {
	margin: 0 !important; padding: 22px 20px !important; text-align: center;
	font-size: 14px; color: var(--abc-muted) !important; background: var(--abc-tint) !important;
	border: 1px dashed var(--abc-field-line) !important; border-radius: var(--abc-radius) !important;
}
body.abc .gform_wrapper .gform_drop_instructions { margin-right: 6px; }
body.abc .gform_wrapper .gform_button_select_files {
	-webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; min-height: 40px; margin: 4px 0 !important; padding: 8px 16px !important;
	font: 600 14px/1.2 var(--abc-font) !important; color: var(--abc-ink) !important; background: #fff !important;
	border: 1px solid var(--abc-field-line) !important; border-radius: var(--abc-radius) !important; cursor: pointer;
}
body.abc .gform_wrapper .gform_button_select_files:hover { border-color: var(--abc-ink) !important; }
body.abc .gform_wrapper .ginput_preview { margin: 8px 0 0; font-size: 14px; }

/* reCAPTCHA */
body.abc .gform_wrapper .ginput_recaptcha { margin: 0 !important; }

/* Errors: summary above the form, a red rule beside each field, message under it */
body.abc .gform_wrapper .gform_validation_errors,
body.abc .gform_wrapper div.validation_error {
	box-sizing: border-box; width: 100%; margin: 0 0 28px !important; padding: 14px 18px !important;
	font-size: 14px !important; font-weight: 600 !important; line-height: 1.45; text-align: left !important;
	color: var(--abc-red-dark) !important; background: #fdeeee !important;
	border: 1px solid var(--abc-red) !important; border-left-width: 4px !important; border-radius: var(--abc-radius) !important; box-shadow: none !important;
}
body.abc .gform_wrapper .gform_validation_errors > h2 {
	display: block; margin: 0 !important; padding: 0 !important;
	font-size: 16px !important; font-weight: 600 !important; line-height: 1.4 !important; letter-spacing: 0 !important; color: var(--abc-red-dark) !important;
}
body.abc .gform_wrapper .gform_validation_errors > h2::before { content: none !important; display: none !important; }
body.abc .gform_wrapper .gform_validation_errors > ol { margin: 8px 0 0 !important; padding: 0 !important; }
body.abc .gform_wrapper .gform_validation_errors > ol li { margin: 4px 0 !important; padding: 0 !important; font-size: 14px !important; list-style: none !important; background: none; }
body.abc .gform_wrapper .gform_validation_errors > ol li::before { content: none !important; display: none !important; }
body.abc .gform_wrapper .gform_validation_errors > ol a { color: var(--abc-red-dark) !important; font-size: 14px !important; text-decoration: underline; }
body.abc .gform_wrapper ul.gform_fields > li.gfield.gfield_error,
body.abc .gform_wrapper.gform_validation_error .gform_body ul.gform_fields > li.gfield.gfield_error {
	max-width: none !important; padding: 0 0 0 14px !important; border: 0 !important; border-left: 3px solid var(--abc-red) !important; background: none !important;
}
body.abc .gform_wrapper .gfield_error .gfield_label { color: var(--abc-red-dark) !important; }
body.abc .gform_wrapper .gfield_error .ginput_container input,
body.abc .gform_wrapper .gfield_error .ginput_container textarea,
body.abc .gform_wrapper .gfield_error .ginput_container select,
body.abc .gform_wrapper .ginput_container [aria-invalid="true"] { border-color: var(--abc-red) !important; }
body.abc .gform_wrapper .gfield .validation_message,
body.abc .gform_wrapper .gfield .gfield_validation_message {
	display: block; margin: 6px 0 0 !important; padding: 0 !important; max-width: none;
	font-size: 14px !important; font-weight: 600 !important; color: var(--abc-red-dark) !important; background: none !important; border: 0 !important;
}
body.abc .gform_wrapper .gfield .validation_message:empty { display: none; }

/* Submit: the site's primary button */
body.abc .gform_wrapper .gform_footer,
body.abc .gform_wrapper .gform_page_footer {
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; box-sizing: border-box;
	width: 100% !important; margin: 32px 0 0 !important; padding: 24px 0 0 !important;
	text-align: left !important; border-top: 1px solid var(--abc-line); clear: both;
}
body.abc .gform_wrapper .gform_footer input[type=submit],
body.abc .gform_wrapper .gform_footer button,
body.abc .gform_wrapper .gform_page_footer input[type=submit],
body.abc .gform_wrapper .gform_page_footer input[type=button],
body.abc .gform_wrapper .gform_page_footer button {
	-webkit-appearance: none; appearance: none; display: inline-block; box-sizing: border-box;
	width: auto !important; min-width: 160px !important; max-width: none !important; min-height: 48px; height: auto;
	margin: 0 !important; padding: 13px 32px !important;
	font-family: var(--abc-font) !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1.2 !important;
	letter-spacing: .01em; text-align: center !important; text-transform: none; text-decoration: none;
	color: #fff !important; background: var(--abc-red) !important; border: 1px solid var(--abc-red) !important;
	border-radius: var(--abc-radius) !important; box-shadow: none !important; cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease;
}
body.abc .gform_wrapper .gform_footer input[type=submit]:hover,
body.abc .gform_wrapper .gform_footer button:hover,
body.abc .gform_wrapper .gform_page_footer input[type=submit]:hover,
body.abc .gform_wrapper .gform_page_footer .gform_next_button:hover { background: var(--abc-red-dark) !important; border-color: var(--abc-red-dark) !important; }
body.abc .gform_wrapper .gform_footer input[type=submit]:focus-visible,
body.abc .gform_wrapper .gform_footer button:focus-visible,
body.abc .gform_wrapper .gform_page_footer input:focus-visible,
body.abc .gform_wrapper .gform_page_footer button:focus-visible { outline: 2px solid var(--abc-ink) !important; outline-offset: 2px; }
body.abc .gform_wrapper .gform_footer input[type=submit]:disabled,
body.abc .gform_wrapper .gform_footer button:disabled { opacity: .6; cursor: progress; }
body.abc .gform_wrapper .gform_page_footer .gform_previous_button { color: var(--abc-ink) !important; background: #fff !important; border-color: var(--abc-field-line) !important; }
body.abc .gform_wrapper .gform_page_footer .gform_previous_button:hover { border-color: var(--abc-ink) !important; background: #fff !important; }
body.abc .gform_wrapper .gform_ajax_spinner { width: 20px; height: 20px; margin: 0; padding: 0; }
@media (max-width: 480px) {
	body.abc .gform_wrapper .gform_footer input[type=submit],
	body.abc .gform_wrapper .gform_footer button { width: 100% !important; }
}

/* Message after sending */
body.abc .gform_confirmation_message {
	margin: 0; padding: 18px 20px; font-size: 16px; color: var(--abc-ink);
	background: var(--abc-tint); border-left: 4px solid var(--abc-ink); border-radius: var(--abc-radius);
}

/* The parent theme's select script (jcf). Gravity Forms selects are marked
   "jcf-ignore" (inc/legacy.php) and stay native. These rules only matter if
   a select is ever replaced anyway: match the native look. */
body.abc .gform_wrapper .jcf-select { display: block; box-sizing: border-box; width: 100%; min-width: 0; height: 46px; margin: 0; background: #fff; border: 1px solid var(--abc-field-line); border-radius: var(--abc-radius); }
body.abc .gform_wrapper .jcf-select .jcf-select-text { margin: 0 40px 0 12px; font-size: 16px; line-height: 44px; color: var(--abc-ink); }
body.abc .gform_wrapper .jcf-select .jcf-select-opener::after { top: 50%; left: 12px; width: 8px; height: 8px; background: none; border-right: 1.6px solid var(--abc-ink); border-bottom: 1.6px solid var(--abc-ink); transform: translateY(-70%) rotate(45deg); }
body.abc .gform_wrapper .jcf-select.jcf-focus { border-color: var(--abc-ink); outline: 2px solid var(--abc-red); outline-offset: 1px; }
body.abc .gform_wrapper .jcf-list-box { display: block; box-sizing: border-box; max-height: 220px; overflow: auto; padding: 4px; background: #fff; border: 1px solid var(--abc-field-line); border-radius: var(--abc-radius); }
body.abc .gform_wrapper .jcf-list-box.jcf-focus { outline: 2px solid var(--abc-red); outline-offset: 1px; }
body.abc .gform_wrapper .jcf-list-box ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
body.abc .gform_wrapper .jcf-list-box li { margin: 0 !important; padding: 0 !important; list-style: none !important; background: none; }
body.abc .gform_wrapper .jcf-list-box li::before { content: none !important; display: none !important; }
body.abc .gform_wrapper .jcf-list-box .jcf-option { display: block; padding: 5px 8px; font-size: 14px; color: var(--abc-ink); border-radius: 2px; cursor: pointer; }
body.abc .gform_wrapper .jcf-list-box .jcf-hover { background: var(--abc-tint); }
body.abc .gform_wrapper .jcf-list-box .jcf-selected { color: #fff; background: var(--abc-ink); }

/* ------------------------------------------------------------ Contact Us */
.abc-contact__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
@media (min-width: 900px) {
	.abc-contact__grid--two { grid-template-columns: minmax(0, 7fr) minmax(300px, 5fr); gap: clamp(40px, 5vw, 72px); align-items: start; }
}
.abc-contact__form { min-width: 0; }
.abc-contact__aside { box-sizing: border-box; min-width: 0; padding: clamp(24px, 3vw, 32px); background: var(--abc-tint); border-top: 2px solid var(--abc-ink); }
body.abc .abc-contact__logo { display: block; width: auto; height: 40px; max-width: 100%; margin: 0 0 22px; }
.abc-contact__details { font-size: 16px; line-height: 1.75; color: var(--abc-text); }
.abc-contact__details p { margin: 0 0 1em; }
.abc-contact__details > :last-child { margin-bottom: 0; }
body.abc .abc-contact__details a { font-weight: 600; text-decoration: none; }
body.abc .abc-contact__details a:hover { text-decoration: underline; }
.abc-contact__map { margin: 24px 0 0; }
body.abc .abc-contact__map iframe { display: block; width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; min-height: 240px; border: 0 !important; }

/* ------------------------------------------------------------ article lists (category archives, search results) */
.abc-newscats { margin: 0 0 28px; }
.abc-newscats ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.abc-newscats li { margin: 0; padding: 0; background: none; }
.abc-newscats li::before { content: none; display: none; }
body.abc .abc-newscats a.abc-chip { color: var(--abc-ink); text-decoration: none; }
body.abc .abc-newscats a.abc-chip:hover { color: var(--abc-ink); border-color: var(--abc-ink); }
body.abc .abc-newscats a.abc-chip.is-on { color: #fff; }

.abc-newslist { max-width: 860px; border-top: 1px solid var(--abc-line); }
.abc-newsitem { padding: 28px 0 30px; border-bottom: 1px solid var(--abc-line); }
.abc-newsitem__meta { display: flex; flex-wrap: wrap; align-items: center; margin: 0 0 8px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); }
.abc-newsitem__sep { display: inline-block; width: 1px; height: 12px; margin: 0 12px; background: var(--abc-line-strong); }
body.abc .abc-newsitem__meta a { color: var(--abc-red); text-decoration: none; }
body.abc .abc-newsitem__meta a:hover { text-decoration: underline; }
body.abc .abc-newsitem__title { margin: 0 0 10px; font-size: clamp(20px, 2.2vw, 24px); line-height: 1.25; }
body.abc .abc-newsitem__title a { color: var(--abc-ink); text-decoration: none; }
body.abc .abc-newsitem__title a:hover { color: var(--abc-red); text-decoration: underline; }
.abc-newsitem__excerpt { max-width: 720px; margin: 0 0 14px; color: var(--abc-text); }
.abc-newsitem__more { font-size: 14px; }
.abc-newsnone { max-width: 720px; color: var(--abc-muted); }

/* Other articles at the end of an article */
.abc-newsgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 32px; }
.abc-newsgrid .abc-newsitem { padding: 20px 0 0; border-top: 2px solid var(--abc-ink); border-bottom: 0; }
body.abc .abc-newsgrid .abc-newsitem__title { font-size: 18px; }
.abc-newsgrid .abc-newsitem__excerpt { font-size: 14px; }

/* Page links */
.abc-pager { margin: 36px 0 0; }
.abc-pager ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.abc-pager li { margin: 0; padding: 0; background: none; }
.abc-pager li::before { content: none; display: none; }
.abc-pager--inline { display: flex; flex-wrap: wrap; gap: 6px; }
body.abc .abc-pager .page-numbers,
body.abc .abc-pager .post-page-numbers {
	display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-width: 44px; min-height: 44px; padding: 0 14px;
	font-size: 14px; font-weight: 600; color: var(--abc-ink); text-decoration: none;
	background: #fff; border: 1px solid var(--abc-line-strong); border-radius: var(--abc-radius);
}
body.abc .abc-pager a.page-numbers:hover,
body.abc .abc-pager a.post-page-numbers:hover { color: var(--abc-ink); border-color: var(--abc-ink); }
body.abc .abc-pager .page-numbers.current,
body.abc .abc-pager .post-page-numbers.current { color: #fff; background: var(--abc-ink); border-color: var(--abc-ink); }
body.abc .abc-pager .page-numbers.dots { min-width: 0; padding: 0 4px; background: none; border-color: transparent; }

/* ------------------------------------------------------------ single article */
.abc-article { max-width: 760px; font-size: 18px; line-height: 1.7; }
/* Content images are wrapped in a zoom link by abbott.js; float the link,
   not the image inside it, so text still wraps beside the photo. */
.abc-article a.abc-zoom:has(> img.alignleft) { float: left; max-width: 40%; margin: 4px 28px 12px 0; }
.abc-article a.abc-zoom:has(> img.alignright) { float: right; max-width: 40%; margin: 4px 0 12px 28px; }
.abc-article a.abc-zoom > img.alignleft,
.abc-article a.abc-zoom > img.alignright { float: none; max-width: 100%; margin: 0; }
@media (max-width: 640px) {
	.abc-article a.abc-zoom:has(> img.alignleft),
	.abc-article a.abc-zoom:has(> img.alignright) { float: none; max-width: 100%; margin: 0 0 1em; }
}
.abc-article .abc-pager--inline { margin-top: 32px; }

/* ------------------------------------------------------------ search box (search results, page not found) */
.abc-search { display: flex; flex-wrap: wrap; gap: 10px; max-width: 640px; margin: 0 0 36px; }
body.abc .abc-search .abc-search__input {
	flex: 1 1 240px; box-sizing: border-box; min-width: 0; height: 48px; margin: 0; padding: 10px 14px;
	font: 16px/1.4 var(--abc-font); color: var(--abc-ink); background: #fff;
	border: 1px solid var(--abc-field-line); border-radius: var(--abc-radius); -webkit-appearance: none; appearance: none;
}
body.abc .abc-search .abc-search__input:hover { color: var(--abc-ink); background: #fff; border-color: var(--abc-ink); }
body.abc .abc-search .abc-search__input:focus { border-color: var(--abc-ink); outline: 2px solid var(--abc-red); outline-offset: 1px; }
.abc-search__button { min-height: 48px; padding-left: 24px; padding-right: 24px; }
.abc-notfound .abc-search { margin-bottom: 0; }

/* ==========================================================================
   Design polish (1.1.3), from research/design-review-2026-11-13.md
   ========================================================================== */

/* T1: body text at the font's own spacing and full color. The parent theme gives every
   p 0.5px letter-spacing and 90% grey. :where() keeps this at element weight, so any
   class rule (text on dark bands, leads) still sets its own color. */
:where(body.abc) :is(p, li, dd) { letter-spacing: 0; }
:where(body.abc) p { color: inherit; }
/* X1: the 404 and search lead is a div around a p; the p takes the lead's color. */
.abc-pagehead__lead p { color: inherit; margin: 0; }

/* T2: proof figures at the display weight. */
.abc-proof__figure { font-weight: 500; letter-spacing: -.02em; }

/* T3: one text measure on series pages (text, content tables, spec tables); the part
   finder and galleries use the full column. */
:root { --abc-measure: 900px; }
.abc-series__body .abc-prose, .abc-mod--information .abc-table--spec, .abc-mod--environmental .abc-table--spec { max-width: var(--abc-measure); }

/* C1: red marks the page's main action. Repeated actions are quiet: outlined card
   buttons, ink links in tables with a red arrow, grey card eyebrows. */
.abc-btn--key { border-color: var(--abc-ink); }
.abc-btn--key:hover { background: var(--abc-ink); color: #fff !important; }
body.abc .abc-table--parts .abc-finder__q a,
body.abc .abc-table--compare td a,
body.abc .abc-prose[data-abc-table-search] td a { color: var(--abc-ink); font-weight: 600; text-decoration: none; }
body.abc .abc-table--parts .abc-finder__q a::after,
body.abc .abc-table--compare td a.abc-link-arrow::after { color: var(--abc-red); }
body.abc .abc-table--parts .abc-finder__q a:hover,
body.abc .abc-table--compare td a:hover,
body.abc .abc-prose[data-abc-table-search] td a:hover { color: var(--abc-red); text-decoration: underline; }
.abc-selcard .abc-eyebrow { color: var(--abc-muted); }

/* S1: open product cards. A hairline above each card instead of a box, no hover shadow,
   card text held to five lines (the full text is on the series page). */
.abc-card { background: transparent; border: 0; border-top: 1px solid var(--abc-line); border-radius: 0; overflow: visible; transition: border-color .2s ease; }
.abc-card:hover { box-shadow: none; border-color: var(--abc-ink); }
.abc-card__media { border-bottom: 0; margin-top: 16px; }
.abc-card__body { padding: 18px 0 4px; }
.abc-card__text.abc-prose { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; overflow: hidden; }
.abc-card__text.abc-prose:has(a) { display: block; -webkit-line-clamp: unset; overflow: visible; }
@media (min-width: 1240px) {
	/* Four across when the count fills whole rows or leaves a row of three. */
	:is(.abc-cards--series, .abc-cards--products):has(> :nth-child(4):last-child),
	:is(.abc-cards--series, .abc-cards--products):has(> :nth-child(7):last-child),
	:is(.abc-cards--series, .abc-cards--products):has(> :nth-child(8):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* X3: styling carried in older page text (.abbott-std on About, Quality and the MIL-STD
   pages) brought in line with the site: hairlines instead of red rules, ink figures,
   quiet callouts, no boxes around images. The page text itself is not changed. */
body.abc .abc-prose .abbott-std h2 { border-bottom: 1px solid var(--abc-line); padding-bottom: .35rem; }
body.abc .abc-prose .abbott-std :is(.amp-cta, .std-note) { background: var(--abc-tint); border-left: 2px solid var(--abc-ink); }
body.abc .abc-prose .abbott-std .statbar { background: none; border-top: 1px solid var(--abc-line); border-bottom: 1px solid var(--abc-line); }
body.abc .abc-prose .abbott-std .statbar .stat b { color: var(--abc-ink); font-weight: 500; letter-spacing: -.01em; }
body.abc .abc-prose .abbott-std .info-grid { background: var(--abc-line-soft); border-color: var(--abc-line-soft); }
body.abc .abc-prose .abbott-std .info-grid .cell { background: #fff; }
body.abc .abc-prose .abbott-std .info-grid .cell b { color: var(--abc-muted); }
body.abc .abc-prose .abbott-std .cred-strip li { background: #fff; border: 1px solid var(--abc-line); }
body.abc .abc-prose .abbott-std .cards .card { border: 1px solid var(--abc-line); border-radius: var(--abc-radius); }
body.abc .abc-prose .abbott-std .gallery figure { border: 0; }
body.abc .abc-prose .abbott-std .gallery figcaption { border-top: 1px solid var(--abc-line); }

/* D2: comparison table. Readable columns on desktop; on phones each series becomes a
   block of label and value rows instead of a table that scrolls sideways. */
.abc-table--compare th[scope="row"] { min-width: 0; white-space: nowrap; }
.abc-table--compare .abc-col-input { min-width: 150px; }
.abc-table--compare .abc-col-envelope { white-space: nowrap; }
.abc-table.abc-table--compare :is(th, td) { padding: 10px 12px; }
.abc-table__thumb { width: 72px; height: 54px; }
@media (max-width: 760px) {
	.abc-tablewrap:has(> .abc-table--compare) { border: 0; overflow: visible; }
	.abc-table--compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.abc-table--compare, .abc-table--compare tbody, .abc-table--compare tr { display: block; width: 100%; }
	.abc-table--compare tr { padding: 14px 0; border-top: 1px solid var(--abc-line); }
	.abc-table--compare tr[hidden] { display: none; }
	body.abc .abc-table--compare th[scope="row"] { display: flex; align-items: center; min-width: 0; padding: 0 0 8px; border: 0; }
	body.abc .abc-table--compare td { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 4px 0; border: 0; white-space: normal; }
	.abc-table--compare td[data-label]::before { content: attr(data-label); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--abc-muted); }
	.abc-table--compare td.abc-col-links { display: block; padding-top: 8px; }
	.abc-table--compare tbody tr:hover > * { background: none; }
}

/* D3: data tables read as data: NSNs in the technical font, blank cells as a quiet dash
   (the Empty Value wording stays for screen readers and the option chips). */
.abc-table--parts .abc-nsn { font-family: var(--abc-mono); font-size: 14px; }
.abc-table--parts td.is-empty::before { content: "\2013"; color: var(--abc-faint); }
.abc-table--parts td.is-empty .abc-finder__none { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.abc-prose[data-abc-table-search] :is(.table-scroll, .abc-tablewrap) { max-width: var(--abc-measure, 900px); }
.abc-prose[data-abc-table-search] tbody td:nth-child(-n+3) { font-family: var(--abc-mono); font-size: 14px; }

/* N1: Products mega menu as column-aligned lists the width of the page column, read top
   to bottom, with hairlines between columns. Menu items are unchanged (wp-admin). */
@media (min-width: 1025px) {
	.abc-menu > li.abc-mega > .sub-menu {
		display: block; width: min(calc(var(--abc-wrap) - 2 * var(--abc-gutter)), calc(100vw - 48px));
		padding: 28px 32px; columns: 4; column-gap: 32px; column-rule: 1px solid var(--abc-line-soft);
	}
	.abc-menu > li.abc-mega > .sub-menu > li { display: block; break-inside: avoid; padding-bottom: 10px; }
	.abc-menu > li.abc-mega > .sub-menu > li > a { padding: 6px 0; font-size: 14px; }
	.abc-menu > li.abc-mega .sub-menu .sub-menu a { padding: 3px 0 3px 12px; font-size: 14px; }
	.abc-menu > li.abc-mega .sub-menu a:hover { background: none; }
}

/* P1: phone menu. Second-level items with their own list keep the arrow on the same
   line as the label, and their list opens below. */
@media (max-width: 1024px) {
	.abc-menu .sub-menu > li.menu-item-has-children { display: flex; flex-wrap: wrap; align-items: center; }
	.abc-menu .sub-menu > li.menu-item-has-children > a { flex: 1; }
	.abc-menu .sub-menu > li.menu-item-has-children > .sub-menu { flex: 0 0 100%; }
	.abc-menu .sub-menu > li.is-open > .sub-menu { display: block; }
	.abc-menu .sub-menu .abc-menu__open { width: 40px; height: 40px; }
}

/* ==========================================================================
   Follow-ups from research/design-review-2-2026-11-13.md (L1 to L7)
   ========================================================================== */

/* L2: selector cards flush with their hairline like the other cards; the spec sheet
   is a quiet link on the same line as View Series, and stays reachable on phones. */
body.abc .abc-selcard .abc-card__body { padding: 18px 0 4px; }
.abc-selcard .abc-card__actions { flex-wrap: nowrap; align-items: center; }
body.abc .abc-selcard__spec { position: relative; z-index: 1; margin-left: auto; font-size: 14px; font-weight: 600; color: var(--abc-ink); text-decoration: none; white-space: nowrap; }
body.abc .abc-selcard__spec:hover { color: var(--abc-red); text-decoration: underline; }
@media (max-width: 760px) {
	body.abc .abc-selcard .abc-card__actions { display: flex; padding-top: 2px; }
	body.abc .abc-selcard .abc-card__actions .abc-btn { display: none; }
	body.abc .abc-selcard__spec { margin-left: 0; font-size: 13px; }
}

/* L3: running text keeps the measure; a block holding a table may use the whole column
   (and scrolls inside it only when wider still). */
.abc-series__body .abc-prose { max-width: none; }
.abc-series__body .abc-prose > * { max-width: var(--abc-measure); }
.abc-series__body .abc-prose > :is(.abc-tablewrap, .table-scroll, div:has(table)) { width: fit-content; max-width: 100%; }

/* L4: MIL-STD hub (.abbott-standards page text) matches the site like .abbott-std. */
body.abc .abc-prose .abbott-standards h2 { border-bottom: 1px solid var(--abc-line); padding-bottom: .35rem; }
body.abc .abc-prose .abbott-standards .amp-cta { background: var(--abc-tint); border-left: 2px solid var(--abc-ink); }
body.abc .abc-prose .abbott-standards :is(.std-link, .std-card a) { color: var(--abc-ink); font-weight: 600; text-decoration: none; }
body.abc .abc-prose .abbott-standards :is(.std-link, .std-card a):hover { color: var(--abc-red); text-decoration: underline; }

/* L6: open cards. A wider row gap, so each hairline reads as the top of its own card. */
.abc-cards--series, .abc-cards--products { row-gap: 40px; }

/* L7: finder selected part, long values across the row; table search field looks active. */
.abc-finder__selected .abc-facts > .abc-facts__full { grid-column: 1 / -1; }
body.abc .abc-tsearch input { background: #fff; border-color: var(--abc-line-strong); color: var(--abc-ink); }
body.abc .abc-tsearch input::placeholder { color: var(--abc-faint); }

/* ==========================================================================
   1.1.4: numeric columns, series bar, series header actions, file details
   ========================================================================== */

/* D10: columns whose values are all numbers line up on the right, in tabular figures. */
:is(.abc-table, .abc-prose table) :is(th, td).abc-num { text-align: right; font-variant-numeric: tabular-nums; }

/* E2: once the series header has scrolled away, the section bar names the series and
   offers its spec sheet (wide screens). */
.abc-onpage__name, .abc-onpage__spec { display: none; }
@media (min-width: 1025px) {
	.abc-onpage.is-past .abc-onpage__name { display: block; flex: 0 0 auto; max-width: 16em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 16px; margin-right: 4px; border-right: 1px solid var(--abc-line); font-size: 14px; font-weight: 600; color: var(--abc-ink); }
	.abc-onpage.is-past .abc-onpage__spec { display: inline-flex; flex: 0 0 auto; }
}

/* D6: series header gives the text column more room, so its buttons stay on one line. */
@media (min-width: 861px) { .abc-serieshead__grid { grid-template-columns: minmax(0, 8fr) minmax(0, 5fr); } }
.abc-serieshead__actions { gap: 8px; }
.abc-serieshead__actions .abc-btn { padding-left: 16px; padding-right: 16px; }

/* D13: file details on download links (type, size, optional date). */
.abc-btn__meta { white-space: nowrap; }
