/* Nexen landing and product-type pages – copied into the theme by tools/nexen_build_pages.py (edit this file in tools/).
   Same type system as the finders: Archivo headings, Switzer text, NGC Mono capitals for labels and figures. */
.nxp {
	--ink: #17181c; --muted: #5d5f68; --rule: #dedcd6; --soft: #f3f3f1; --blue: #0061ff; --blue-dark: #0d3d8a; --nexen: #de7f1b;
	--mono: var(--ngc-mono, "NGC Mono", ui-monospace, Menlo, monospace);
	color: var(--ink);
}
.nxp :is(p, li) { max-width: none; }
.nxp img { max-width: 100%; height: auto; }
.nxp :is(ul, ol) > li { list-style: none; }
.nxp :is(ul, ol) > li::before { content: none; }
.nxp a { color: var(--blue); }
.nxp h1 { font-size: clamp(2rem, 1.4rem + 2.2vw, 3.1rem); line-height: 0.98; margin: 0 0 1.2rem; }
.nxp h2 { margin: 0 0 1.5rem; max-width: 26ch; }
.nxp h3 { margin: 0 0 0.5rem; }

/* block markup: this (classic) theme wraps each group's blocks in an inner container – let them join the group's grid */
.nxp .wp-block-group__inner-container { display: contents; }
/* block markup: WordPress's flow layout adds a top margin to every child – these pages set their own spacing */
/* :where() keeps this reset weak, so each element's own spacing below still applies */
.nxp :where(.is-layout-flow, .wp-block-group__inner-container) > *, .nxp:where(.is-layout-flow) > * { margin-block-start: 0; }
.nxp figure.wp-block-image { margin: 0; }
.nxp-logo img { display: block; width: 150px; height: auto; margin: 0 0 1.6rem; }
.nxp .wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.4rem; margin: 1.4rem 0 0; }
.nxp .wp-block-button { margin: 0; }
.nxp .wp-block-button__link { display: inline-block; background: var(--blue); color: #fff; font-family: var(--ngc-body, sans-serif); font-weight: 600; font-size: 1rem; line-height: 1.2; text-decoration: none; padding: 0.85rem 1.4rem; border: 0; border-radius: 2px; }
.nxp .wp-block-button__link:hover { background: var(--blue-dark); color: #fff; }
.nxp .is-style-outline .wp-block-button__link, .nxp .is-style-outline .wp-block-button__link:hover { background: none; color: var(--blue); padding: 0; }
.nxp .is-style-outline .wp-block-button__link::after, .nxp-links a::after { content: " →"; }
.nxp .is-style-outline .wp-block-button__link:hover, .nxp-links a:hover { text-decoration: underline; text-underline-offset: 0.15em; }
.nxp-links a { font-weight: 600; text-decoration: none; white-space: nowrap; margin-right: 1.4rem; }

/* units after a number keep their case inside the capitals labels (js/ngc-units.js wraps them) */
.nxp .u { display: inline; text-transform: none; }

/* labels */
.nxp-eyebrow, .nxp-card__solves, .nxp-certs__label, .nxp-industries__label, .nxp-tags dt, .nxp-crumbs, .nxp-series__facts, .nxp-stats li > span, .nxp-tag, .nxp-ind,
.nxp-search label, .nxp-docs em, .nxp-card__facts {
	font-family: var(--mono); font-weight: 500; letter-spacing: var(--mono-track, 0.06em); text-transform: uppercase;
}
.nxp-eyebrow { font-size: 0.75rem; margin: 0 0 0.6rem; color: var(--ink); }
.nxp-eyebrow::before { content: ""; display: inline-block; width: 0.5em; height: 0.5em; background: var(--nexen); margin-right: 0.5em; vertical-align: 0.05em; }

/* links and buttons */
.nxp-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.4rem; margin: 1.4rem 0 0; }
.nxp-link { font-weight: 600; text-decoration: none; white-space: nowrap; }
.nxp-link::after { content: " →"; }
.nxp-link:hover { text-decoration: underline; text-underline-offset: 0.15em; }
.nxp-button { display: inline-block; background: var(--blue); color: #fff !important; font-weight: 600; text-decoration: none; padding: 0.85rem 1.4rem; border-radius: 2px; }
.nxp-button:hover { background: var(--blue-dark); }

/* sections: a rule between each; a band is soft grey to the window edges */
.nxp-section { padding: var(--ngc-section-space, 3.5rem) 0; border-top: 1px solid var(--rule); } /* --ngc-section-space: ngc-type.css */
.nxp-band { background: var(--soft); box-shadow: 0 0 0 100vmax var(--soft); clip-path: inset(0 -100vmax); border-top: 0; }
.nxp-band + .nxp-section { border-top: 0; }
/* the page ends on the grey call-to-action band: drop the template's bottom padding so it meets the footer */
#content:has(.nxp) { padding-bottom: 0; }

/* hero */
.nxp-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 3rem; align-items: center; padding: 1rem 0 var(--ngc-section-space, 3.5rem); }
.nxp-logo { display: block; width: 150px; margin: 0 0 1.6rem; }
.nxp-lede { font-size: clamp(1.15rem, 1rem + 0.5vw, 1.35rem); line-height: 1.4; font-weight: 400; color: var(--ink); margin: 0 0 1.6rem; max-width: 40rem !important; }
.nxp-hero__art { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.nxp-hero__art img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: contain; background: #fff; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.nxp-hero__photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: contain; }
.nxp-hero__call { font-size: 1rem; color: var(--muted); margin: 1.4rem 0 0; }
.nxp-hero__call a { font-weight: 600; text-decoration: none; white-space: nowrap; }

/* search */
.nxp-search { margin: 0; max-width: 36rem; }
.nxp-search label { display: block; font-size: 0.72rem; margin: 0 0 0.45rem; }
.nxp-search__row { display: flex; gap: 0.5rem; }
.nxp-search input { flex: 1; min-width: 0; height: 3rem; box-sizing: border-box; padding: 0 0.85rem; border: 1px solid #c9c7c1; border-radius: 2px; font: 450 1rem var(--ngc-body, sans-serif); color: var(--ink); margin: 0; -webkit-appearance: none; appearance: none; }
.nxp-search input:focus { outline: 2px solid var(--blue); outline-offset: 1px; border-color: var(--blue); }
.nxp-search button { height: 3rem; width: 7rem; flex-shrink: 0; border: 0; border-radius: 2px; background: var(--blue); color: #fff; font: 600 1rem var(--ngc-body, sans-serif); cursor: pointer; }
.nxp-search button:hover { background: var(--blue-dark); }

/* industry filter */
.nxp-industries { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0 0 1rem; }
.nxp-industries__label { font-size: 0.72rem; margin-right: 0.5rem; color: var(--muted); }
.nxp-ind { font-size: 0.72rem; color: var(--ink); background: #fff; border: 1px solid var(--rule); border-radius: 2px; padding: 0.45rem 0.7rem; cursor: pointer; line-height: 1.2; }
.nxp-ind:hover { border-color: var(--ink); }
.nxp-ind[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.nxp-industries__more { font-size: 0.95rem; font-weight: 600; text-decoration: none; margin-left: 0.6rem; white-space: nowrap; }
.nxp-ind-note { font-size: 1rem; color: var(--muted); margin: 0 0 1.5rem; }
.nxp-ind-note b { color: var(--ink); }
.nxp [data-ind].is-dim { opacity: 0.28; }
.nxp-problem, .nxp-card { transition: opacity 0.2s ease; }

/* problem tiles */
.nxp-problems { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
/* rows grow with the section spacing: 32px / 36px on wide screens, about 22px / 25px (as before) on phones */
.nxp-problem { padding: calc(var(--ngc-section-space, 3.5rem) * 0.4) 1.4rem calc(var(--ngc-section-space, 3.5rem) * 0.45) 0; border-bottom: 1px solid var(--rule); }
.nxp-problem:not(:nth-child(3n + 1)) { padding-left: 1.4rem; border-left: 1px solid var(--rule); }
.nxp-problem p { font-size: 1rem; color: var(--muted); margin: 0 0 0.9rem; }
.nxp-problem__links { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 0.3rem 1.1rem; }
.nxp-problem__links li { margin: 0; font-size: 1rem; }
.nxp-problem__links a { font-weight: 600; text-decoration: none; }
.nxp-problem__links a::after { content: " →"; }
/* the problem grid's bottom rule is the divider – no second rule from the next section */
.nxp-section:has(.nxp-problems) { padding-bottom: 0; }
.nxp-section:has(.nxp-problems) + .nxp-section { border-top: 0; }
.nxp-problem:target { background: #fff8ef; box-shadow: -0.6rem 0 0 #fff8ef; }
/* card grids on desktop: 3 or 6 cards → rows of three, 4 or 8 → rows of four (not 5 + 1, or a row with empty slots) */
@media (min-width: 1001px) {
	.nxp-cards:has(.nxp-card:nth-child(3):last-child), .nxp-cards:has(.nxp-card:nth-child(6):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nxp-cards:has(.nxp-card:nth-child(4):last-child), .nxp-cards:has(.nxp-card:nth-child(8):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* exactly four problems: one row of four on desktop, not three plus one */
@media (min-width: 1001px) {
	.nxp-problems:has(.nxp-problem:nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.nxp-problems:has(.nxp-problem:nth-child(4):last-child) .nxp-problem:nth-child(4) { padding-left: 1.4rem; border-left: 1px solid var(--rule); }
}

/* range cards */
.nxp-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: 2.2rem 1.6rem; }
.nxp-card { display: flex; flex-direction: column; border-top: 2px solid var(--ink); padding-top: 0.9rem; }
.nxp-card__photo { display: block; margin: 0 0 0.8rem; }
.nxp-card__photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: contain; }
.nxp-card__solves { font-size: 0.68rem; color: var(--nexen); margin: 0 0 0.3rem; }
.nxp-card h3 a { color: inherit; text-decoration: none; }
.nxp-card h3 a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.12em; }
.nxp-card__pitch { font-size: 1rem; color: var(--muted); margin: 0 0 0.8rem; }
.nxp-card__facts { font-size: 0.72rem; margin: auto 0 0.6rem; padding-top: 0.6rem; border-top: 1px solid var(--rule); }
.nxp-card__links { display: flex; gap: 1.2rem; margin: 0; font-size: 1rem; }

/* NexSafe band */
.nxp-safe { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 3rem; align-items: center; }
.nxp-safe img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: contain; background: #fff; }
.nxp-safe__text { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 2rem; align-items: center; }
.nxp-safe__text > div > * { grid-column: 1 / -1; }
.nxp-safe__text > div > h2 { grid-column: 1; }
.nxp-safe .nxp-safe__logo { grid-column: 2; margin: 0; }
.nxp-safe .nxp-safe__logo img { width: clamp(9rem, 16vw, 15rem); aspect-ratio: auto; background: none; }
@media (max-width: 1100px) {
	.nxp-safe__text { grid-template-columns: minmax(0, 1fr); }
	.nxp-safe .nxp-safe__logo { grid-column: 1; grid-row: 1; margin-bottom: 1.2rem; }
	.nxp-safe .nxp-safe__logo img { width: 12rem; }
}

/* Brands page */
.nxp-hero--brands { grid-template-columns: minmax(0, 1fr); padding-bottom: 1.5rem; }
.nxp-hero--brands .nxp-lede { max-width: 46rem !important; }
.nxp-brands { padding-top: 1.5rem; }
.nxp-brands .nxp-industries { margin-bottom: 2.4rem; max-width: 64rem; }
.nxp-brands__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nxp-brand .nxp-brand__logo { margin: 0 0 0.9rem; }
.nxp-brand .nxp-brand__logo a { display: flex; align-items: center; justify-content: center; height: 7.5rem; padding: 1.2rem 1.6rem; transition: opacity 0.2s ease; }
.nxp-brand .nxp-brand__logo a:hover { opacity: 0.7; }
.nxp-brand .nxp-brand__logo img { display: block; width: auto; height: auto; max-width: 100%; max-height: 4.2rem; object-fit: contain; }
.nxp-brand .nxp-card__links { margin-top: auto; }

/* brand logo sizes – generated by tools/brand_logo_sizes.py */
#brand-horton .nxp-brand__logo img { width: 75.4%; }
#brand-nexen .nxp-brand__logo img { width: 87.4%; }
#brand-deublin .nxp-brand__logo img { width: 90.2%; }
#brand-oblan .nxp-brand__logo img { width: 44.6%; }
#brand-nett .nxp-brand__logo img { width: 77.6%; }
#brand-ibd .nxp-brand__logo img { width: 87.3%; }
#brand-boschert .nxp-brand__logo img { width: 87.5%; }
#brand-erhardt-leimer .nxp-brand__logo img { width: 90.6%; }
#brand-schlumpf .nxp-brand__logo img { width: 93.8%; }
#brand-adl-insulflex .nxp-brand__logo img { width: 68.9%; }
#brand-suco .nxp-brand__logo img { width: 56.3%; }
#brand-ogura .nxp-brand__logo img { width: 78.1%; }
#brand-paratech .nxp-brand__logo img { width: 92.4%; }
#brand-imbiber-beads .nxp-brand__logo img { width: 87.0%; }
#brand-flight-systems .nxp-brand__logo img { width: 74.5%; }
#brand-miner .nxp-brand__logo img { width: 60.2%; }
#brand-ralphs-pugh .nxp-brand__logo img { width: 78.6%; }
#brand-index .nxp-brand__logo img { width: 62.0%; }
#brand-merobel .nxp-brand__logo img { width: 73.7%; }
#brand-redex .nxp-brand__logo img { width: 74.2%; }
#brand-acs-fans .nxp-brand__logo img { width: 70.0%; }
#brand-zap-off .nxp-brand__logo img { width: 78.1%; }
#brand-pactene .nxp-brand__logo img { width: 83.3%; }
#brand-expello .nxp-brand__logo img { width: 50.1%; }
#brand-water-treatment .nxp-brand__logo img { width: 76.4%; }
/* end brand logo sizes */

/* Literature page */
.nxp-lit-jump { padding: 1.4rem 0 0.4rem; }
.nxp-lit-jump .nxp-industries { margin: 0; }
a.nxp-ind { text-decoration: none; }
a.nxp-ind span { color: var(--muted); margin-left: 0.3rem; }
.nxp-lit-finders { padding: 1.6rem 0 2rem; border-top: 0; }
.nxp-lit-finders .nxp-related { max-width: 46rem; }
.nxp-lit-sector { scroll-margin-top: 140px; }
.nxp-lit-intro { font-size: 1rem; color: var(--muted); margin: -0.4rem 0 1.8rem; max-width: 46rem; }
.nxp-litgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: 2rem 1.4rem; }
.nxp-litcard { display: flex; flex-direction: column; }
.nxp-litcard .nxp-litcard__cover { margin: 0 0 0.75rem; }
.nxp-litcard .nxp-litcard__cover a { display: flex; align-items: flex-end; justify-content: center; aspect-ratio: 3 / 4; background: var(--soft); padding: 0.9rem; transition: background 0.2s ease; }
.nxp-litcard .nxp-litcard__cover a:hover { background: #e6e7ea; }
.nxp-litcard .nxp-litcard__cover img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 6px 16px rgba(0, 0, 0, 0.08); }
.nxp .nxp-litcard h3 { font-size: 1rem; line-height: 1.25; margin: 0 0 0.35rem; }
.nxp-litcard h3 a { color: inherit; text-decoration: none; }
.nxp-litcard h3 a:hover { text-decoration: underline; }
.nxp-litcard__meta { font-size: 0.68rem; color: var(--muted); margin: auto 0 0; font-family: var(--mono); letter-spacing: var(--mono-track, 0.06em); text-transform: uppercase; }
.nxp .nxp-lit-extras__title { font-size: 1.05rem; margin: 3rem 0 0.8rem !important; }
.nxp .nxp-lit-extras { display: grid; grid-template-columns: 1fr 1fr; column-gap: 3rem; }
.nxp .nxp-lit-extras li:nth-child(2) { border-top: 1px solid var(--ink); }

/* certification logos under a brand's "Why" points (brand_build.py cert_logos): label on its own line,
   logos from the left edge, the PDF link at the end of the row; heights evened out by eye per logo */
.nxp-certs { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem 2rem; margin-top: 2.6rem; padding-top: 1.8rem; border-top: 1px solid var(--rule); }
.nxp .nxp-certs__label { grid-column: 1 / -1; margin: 0; font-size: 0.72rem; color: var(--muted); }
.nxp .nxp-certs__logos { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem 3rem; }
.nxp .nxp-certs__logos li { margin: 0; padding: 0; }
.nxp .nxp-certs__logos img { display: block; height: 40px !important; width: auto !important; max-width: none; }
.nxp .nxp-certs__logos img[src*="cert-ul"] { height: 44px !important; }
.nxp .nxp-certs__logos img[src*="cert-sae"] { height: 32px !important; }
.nxp .nxp-certs__logos img[src*="cert-nahad"] { height: 50px !important; }
.nxp-certs .nxp-link { font-size: 0.95rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
@media (max-width: 760px) {
	.nxp-certs { grid-template-columns: minmax(0, 1fr); }
	.nxp .nxp-certs__logos { gap: 1.2rem 1.8rem; }
	.nxp .nxp-certs__logos img { height: 32px !important; }
	.nxp .nxp-certs__logos img[src*="cert-ul"] { height: 35px !important; }
	.nxp .nxp-certs__logos img[src*="cert-sae"] { height: 26px !important; }
	.nxp .nxp-certs__logos img[src*="cert-nahad"] { height: 40px !important; }
}

/* NexSafe page */
.nxp-logo--nexsafe img { width: 260px; }
.nxp-cards--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nxp-card .nxp-card__photo { margin: 0 0 0.8rem; }
.nxp-safe-facts { list-style: none; padding: 0.6rem 0 0 !important; display: flex; flex-direction: column; gap: 0.25rem; }
.nxp-card .nxp-safe-facts li { margin: 0; padding: 0; font-size: 0.72rem; line-height: 1.4; letter-spacing: inherit; }
.nxp-note { font-size: 1rem; color: var(--muted); max-width: 46rem; margin: 2rem 0 0; padding-left: 1rem; border-left: 2px solid var(--nexen); }
.nxp-hero__photo .nxp-video__frame { width: 100%; }

/* four points */
.nxp-why { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.nxp-why .nxp-point { border-top: 1px solid var(--ink); padding-top: 1rem; }
.nxp-why p { font-size: 1rem; color: var(--muted); }

/* documents and related */
.nxp-docs, .nxp-related { list-style: none; margin: 0 !important; padding: 0 !important; }
.nxp-docs li, .nxp-related li { margin: 0; padding: 0.9rem 0; border-bottom: 1px solid var(--rule); font-size: 1rem; }
.nxp-docs li:first-child, .nxp-related li:first-child { border-top: 1px solid var(--ink); }
.nxp-docs a { font-weight: 600; text-decoration: none; display: block; }
.nxp-docs a::before { content: "PDF"; font-family: var(--mono); font-size: 0.65rem; font-weight: 500; letter-spacing: var(--mono-track, 0.06em); border: 1px solid currentColor; border-radius: 2px; padding: 1px 4px; margin-right: 0.6rem; vertical-align: 0.15em; }
.nxp-docs em { display: block; font-style: normal; font-size: 0.68rem; color: var(--muted); margin-top: 0.3rem; }
.nxp-docs br { display: none; }
.nxp-related a { font-weight: 600; text-decoration: none; }
.nxp-related li { color: var(--muted); }
/* landing: every catalogue, in groups */
/* up to three groups: one per column; four or more: flow them through three columns */
.nxp-lit { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); column-gap: 3rem; align-items: start; }
.nxp-lit:has(.nxp-lit__group:nth-of-type(4)) { display: block; columns: 3 22rem; }
/* spacing as padding, not margin: Safari carries a margin across the column break and pushes the next column down */
.nxp-lit .nxp-lit__group { display: inline-block; width: 100%; break-inside: avoid; margin: 0; padding: 0 0 2.6rem; }
.nxp-lit__group h3 { font-size: 1.05rem; margin: 0 0 0.8rem; }
.nxp-section:has(.nxp-lit) + .nxp-video { border-top: 0; padding-top: 0; }
.nxp-two { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }

/* video */
.nxp-video__frame { position: relative; aspect-ratio: 16 / 9; background: #000; }
.nxp-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* call to action */
.nxp-cta h2 { max-width: none; }
.nxp-cta p { max-width: 46rem; }

/* product page: crumbs, tags, stats, steps, series, choose */
.nxp-crumbs { display: flex; align-items: center; gap: 0.6rem; font-size: 0.72rem; margin: 0 0 1.5rem; color: var(--muted); }
.nxp-crumbs a { color: var(--ink); text-decoration: none; }
.nxp-crumbs__logo { display: block; width: 76px; }
.nxp-tags { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 1rem; align-items: baseline; margin: 0; }
.nxp-tags dt { font-size: 0.68rem; color: var(--muted); }
.nxp-tags dd { margin: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.nxp-tag { font-size: 0.68rem; border: 1px solid var(--rule); border-radius: 2px; padding: 0.25rem 0.5rem; color: var(--ink); text-decoration: none; }
.nxp-tag--link { border-color: var(--nexen); color: var(--ink) !important; }
.nxp-tag--link:hover { background: #fff8ef; }
.nxp-stats { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); }
.nxp-stats li { margin: 0; padding: 1.2rem 1.2rem 1.3rem 0; }
.nxp-stats li + li { padding-left: 1.2rem; border-left: 1px solid var(--rule); }
.nxp-stats b { display: block; font-family: var(--ngc-display, sans-serif); font-stretch: 110%; font-weight: 700; font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.75rem); line-height: 1.05; letter-spacing: -0.01em; margin-bottom: 0.4rem; }
.nxp-stats li > span { display: block; font-size: 0.66rem; color: var(--muted); line-height: 1.4; }
.nxp-stats + .nxp-section { border-top: 0; }
.nxp-steps { list-style: none; counter-reset: step; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.nxp-steps li { counter-increment: step; margin: 0; border-top: 1px solid var(--ink); padding-top: 1rem; font-size: 1rem; color: var(--muted); }
.nxp .nxp-steps li::before { content: counter(step, decimal-leading-zero); display: block; font-family: var(--mono); font-weight: 500; font-size: 0.8rem; letter-spacing: var(--mono-track, 0.06em); color: var(--nexen); margin-bottom: 0.6rem; }
.nxp-steps :is(b, strong) { display: block; color: var(--ink); font-family: var(--ngc-display, sans-serif); font-weight: 700; font-size: 1.15rem; line-height: 1.1; margin-bottom: 0.4rem; }
/* auto-fit: 3 cards share the full width (auto-fill kept empty columns). Each card is a subgrid of five rows – photo, name,
   description, facts, link – so names, fact lists and links line up across a row whatever the description length. */
.nxp-series-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr)); gap: 2.2rem 1.6rem; }
.nxp-series { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; align-content: start; border-top: 2px solid var(--ink); padding-top: 0.9rem; }
.nxp-series > img { grid-row: 1; }
.nxp-series > h3 { grid-row: 2; }
.nxp-series > p { grid-row: 3; }
.nxp-series > .nxp-series__facts { grid-row: 4; align-self: start; }
.nxp-series > :last-child:not(img, h3, p, ul) { grid-row: 5; align-self: start; }
.nxp-series img { display: block; width: 100%; max-width: 26rem; justify-self: center; aspect-ratio: 3 / 2; object-fit: contain; margin: 0 0 0.8rem; }
.nxp-series p { font-size: 1rem; color: var(--muted); margin: 0 0 0.8rem; }
.nxp-series__facts { list-style: none; margin: 0 0 0.8rem !important; padding: 0.6rem 0 0 !important; border-top: 1px solid var(--rule); font-size: 0.7rem; }
.nxp-series__facts li { margin: 0 0 0.25rem; font: inherit; letter-spacing: inherit; line-height: 1.4; }  /* the theme sets li tracking to 0 */
.nxp-series__facts small { font-size: 1em; color: var(--muted); text-transform: none; }
.nxp-series .nxp-link { font-size: 1rem; white-space: normal; }
@supports not (grid-template-rows: subgrid) {
	.nxp-series { display: flex; flex-direction: column; }
	.nxp-series .nxp-series__facts { margin-top: auto !important; }
}
.nxp-choose { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 3rem; }
.nxp-choose .nxp-point { border-top: 1px solid var(--ink); padding-top: 1rem; }
.nxp-choose { counter-reset: q; }
.nxp-choose .nxp-point { counter-increment: q; }
.nxp-choose h3::before { content: counter(q); font-family: var(--mono); font-weight: 500; font-size: 0.8rem; letter-spacing: var(--mono-track, 0.06em); color: var(--nexen); margin-right: 0.7rem; vertical-align: 0.1em; }
.nxp-choose p { font-size: 1rem; color: var(--muted); }
.nxp-finder { padding-top: 3rem; }
.nxp-finder #ngc-nx .finder { padding-top: 0; }

@media (max-width: 1000px) {
	.nxp-why, .nxp-steps, .nxp-stats { grid-template-columns: 1fr 1fr; }
	.nxp-stats li:nth-child(3) { padding-left: 0; border-left: 0; }
	.nxp-stats li:nth-child(n + 3) { border-top: 1px solid var(--rule); }
	.nxp-problems { grid-template-columns: 1fr 1fr; }
	.nxp-problem:not(:nth-child(3n + 1)) { padding-left: 0; border-left: 0; }
	.nxp-problem:nth-child(2n) { padding-left: 1.4rem; border-left: 1px solid var(--rule); }
}
@media (max-width: 760px) {
	.nxp-hero, .nxp-safe, .nxp-two, .nxp-choose { grid-template-columns: 1fr; gap: 2rem; }
	.nxp-problems, .nxp-why, .nxp-steps { grid-template-columns: 1fr; }
	.nxp-cards--three { grid-template-columns: 1fr; }
	.nxp-litgrid { grid-template-columns: 1fr 1fr; gap: 1.6rem 1rem; }
	.nxp .nxp-lit-extras { grid-template-columns: 1fr; }
	.nxp .nxp-lit-extras li:nth-child(2) { border-top: 0; }
	.nxp-brands__grid { grid-template-columns: 1fr 1fr; gap: 2rem 1.2rem; }
	.nxp-brand .nxp-brand__logo a { height: 5.5rem; padding: 0.8rem 1rem; }
	.nxp-brand .nxp-card__pitch { font-size: 0.9rem; }
	.nxp-brand h3 { font-size: 1.1rem; }
	.nxp-problem:nth-child(n) { padding-left: 0; border-left: 0; }
}

/* ---------- Deublin pages (same layout; Deublin red accent) ---------- */
.nxp--deublin { --nexen: #c8102e; }
.nxp-logo--deublin img { width: 200px; }
.nxp-crumbs__logo--deublin { width: 92px; }
/* tables for products sold by order code (swivel joints, washpipe kits) */
.nxp-table { margin: 1.5rem 0 0; overflow-x: auto; }
.nxp-table table { width: 100%; border-collapse: collapse; }
.nxp-table th { font-family: var(--mono); font-weight: 500; font-size: 0.7rem; letter-spacing: var(--mono-track, 0.06em); text-transform: uppercase; text-align: left; border-bottom: 1px solid var(--ink); padding: 0.6rem 1rem 0.6rem 0; }
.nxp-table td { font-size: 0.95rem; border-bottom: 1px solid var(--rule); padding: 0.7rem 1rem 0.7rem 0; vertical-align: top; text-transform: none; font-family: var(--ngc-body, sans-serif); }
.nxp-table td:first-child { font-family: var(--mono); font-size: 0.85rem; }
/* the Deublin finder inside a product page: one column, no photo rotator */
.nxp .ngc-finder--embed { grid-template-columns: minmax(0, 46rem); padding: 0 0 2rem; border-bottom: 0; }
.nxp .ngc-finder--embed h2.section-title { margin: 0 0 0.6rem; }

/* ---------- "How X works": cards – diagram on top, explanation below; four across on desktop ---------- */
.nxp-learn__intro { font-size: 1.15rem; max-width: 46rem !important; margin: 0 0 1.5rem; }
.nxp-learn { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: row dense; gap: 2.5rem 1.6rem; }
.nxp-learn__item { display: flex; flex-direction: column; gap: 0.9rem; border-top: 2px solid var(--ink); padding-top: 1rem; }
.nxp-learn__item > *, .nxp-learn__item .wp-block-group__inner-container > * { margin: 0; }
.nxp-learn__item:has(.nxp-calc) { grid-column: span 2; }
/* heading, then diagram, then text: the text group steps aside so its heading and paragraphs sit in the card's own order */
.nxp-learn__text { display: contents; }
.nxp-learn__text h3 { order: -2; margin: 0; min-height: 2.1em; }
.nxp-learn__text p { font-size: 1rem; color: var(--muted); margin: 0 !important; }
.nxp-learn__fig { order: -1; width: 100%; }
.nxp .nxp-learn__fig img { display: block; width: 100%; height: 13rem; object-fit: contain; background: #fff; cursor: zoom-in; }
.nxp .wp-block-image.nxp-learn__fig figcaption { font-family: var(--mono); font-weight: 500; font-size: 0.62rem; letter-spacing: var(--mono-track, 0.06em); text-transform: uppercase; color: var(--muted); margin: 0.6rem 0 0; text-align: left; line-height: 1.4; min-height: 2.8em; }
.nxp .wp-block-image.nxp-learn__fig figcaption a { color: inherit; font: inherit; }
@media (max-width: 1100px) { .nxp-learn { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Fewer than four items (desktop): one item takes half the width, two take a half each, three a third each – no empty columns. */
@media (min-width: 1101px) {
	.nxp-learn__item:first-child:last-child,
	.nxp-learn__item:first-child:nth-last-child(2), .nxp-learn__item:nth-child(2):last-child { grid-column: span 2; }
	.nxp-learn:not(:has(.nxp-calc)):has(.nxp-learn__item:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nxp-learn__item:first-child:nth-last-child(-n/**/+2) .nxp-learn__fig img, .nxp-learn__item:nth-child(2):last-child .nxp-learn__fig img { height: 18rem; }
	/* A single item with a picture: full width, picture on the left and the text beside it. */
	.nxp-learn__item:first-child:last-child:has(.nxp-learn__fig) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 2.5rem; align-items: start; }
	.nxp-learn__item:first-child:last-child .nxp-learn__fig { grid-column: 1; grid-row: 1; }
	.nxp-learn__item:first-child:last-child .nxp-learn__text { display: flex; flex-direction: column; gap: 0.9rem; grid-column: 2; grid-row: 1; padding-top: 0.2rem; }
	.nxp-learn__item:first-child:last-child .nxp-learn__text h3 { min-height: 0; }
	.nxp-learn__item:first-child:last-child .nxp-learn__text p { font-size: 1.1rem; }
	.nxp-learn__item:first-child:last-child .nxp-learn__fig img { height: 20rem; }
}
@media (max-width: 600px) { .nxp-learn { grid-template-columns: 1fr; } .nxp-learn__item:has(.nxp-calc) { grid-column: auto; } }
.nxp-zoom { border: 0; padding: 0; max-width: min(96vw, 1400px); background: #fff; }
.nxp-zoom::backdrop { background: rgba(23, 24, 28, 0.75); }
.nxp-zoom img { display: block; max-width: 100%; max-height: 88vh; box-sizing: border-box; padding: clamp(1.5rem, 4vw, 3.5rem); background: #fff; }  /* room round tightly cropped diagrams */
.nxp-zoom button { position: absolute; top: 0.75rem; right: 0.75rem; border: 0; border-radius: 2px; background: #17181c; color: #fff; font: 600 0.9rem/1 var(--ngc-body, "Switzer", sans-serif); padding: 0.55rem 0.8rem; cursor: pointer; }
/* the pop-up lives outside .nxp, so it uses literal colours, not the page's variables */
.nxp-zoom button:hover { background: #0061ff; }
.nxp-zoom button:focus { outline: none; }
.nxp-zoom button:focus-visible { outline: 2px solid #0061ff; outline-offset: 2px; }
/* calculators */
.nxp-calc { background: var(--soft); padding: 1.4rem 1.5rem; border-top: 2px solid var(--nexen); }
.nxp-calc__title { font-family: var(--ngc-display, sans-serif); font-weight: 700; font-size: 1.15rem; margin: 0 0 1rem; }
.nxp-calc__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem 1rem; }
.nxp-calc label { display: flex; flex-direction: column; gap: 0.3rem; font-family: var(--mono); font-weight: 500; font-size: 0.68rem; letter-spacing: var(--mono-track, 0.06em); text-transform: uppercase; }
.nxp-calc :is(input, select) { height: 2.6rem; padding: 0 0.7rem; border: 1px solid #c9c7c1; border-radius: 2px; background: #fff; font: 450 1rem var(--ngc-body, sans-serif); color: var(--ink); text-transform: none; letter-spacing: 0; margin: 0; box-sizing: border-box; width: 100%; }
.nxp-calc__out { display: block; margin: 1.2rem 0 0.8rem; font: 450 1rem/1.45 var(--ngc-body, sans-serif); color: var(--ink); }
.nxp-calc__out b { font-family: var(--ngc-display, sans-serif); font-size: 1.6rem; font-weight: 700; display: block; }
.nxp-calc__out .is-bad { color: #b3261e; }
.nxp-calc__out .is-ok { color: #1d7a3a; }
.nxp-calc__note { font-size: 0.85rem; color: var(--muted); margin: 0; }

@media (max-width: 1100px) and (min-width: 761px) { .nxp-brands__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ------------------------------------------------------------------ brand pages built by tools/brand_build.py
   (kept here, the master copy: tools/nexen_build_pages.py copies this file over the theme's css/nexen-pages.css) */
/* three-photo hero: first photo spans both columns; a single photo spans both */
.nxp-hero__art img:first-child:nth-last-child(3) { grid-column: 1 / -1; aspect-ratio: 2 / 1; }
.nxp-hero__art img:only-child { grid-column: 1 / -1; }
/* wide spec tables scroll sideways on phones instead of breaking words */
.nxp-table th { word-break: keep-all; overflow-wrap: normal; hyphens: none; }
.nxp .nxp-table th, .nxp .nxp-table td { word-break: normal; overflow-wrap: normal; }
.nxp .nxp-table table { min-width: 34rem; }
/* brand colour for the accents, and logo size */
.nxp--oblan { --nexen: #1f4f8a; }     .nxp-logo--oblan img { width: 180px; }
.nxp--nett { --nexen: #0a6e3c; }      .nxp-logo--nett img { width: 200px; }
.nxp--ibd { --nexen: #c8102e; }       .nxp-logo--ibd img { width: 160px; }
.nxp--ogura { --nexen: #0b5aa6; }     .nxp-logo--ogura img { width: 170px; }
.nxp--index { --nexen: #c4161c; }     .nxp-logo--index img { width: 170px; }
.nxp--merobel { --nexen: #e0701b; }   .nxp-logo--merobel img { width: 180px; }
.nxp--adl { --nexen: #b5321e; }       .nxp-logo--adl img { width: 190px; }
.nxp--schlumpf { --nexen: #1d6fb8; }  .nxp-logo--schlumpf img { width: 200px; }
.nxp--el { --nexen: #00549f; }        .nxp-logo--el img { width: 200px; }
.nxp--imbiber { --nexen: #c8102e; }   .nxp-logo--imbiber img { width: 190px; }
.nxp--miner { --nexen: #005baa; }     .nxp-logo--miner img { width: 190px; }
.nxp--expello { --nexen: #b8862b; }   .nxp-logo--expello img { width: 180px; }
.nxp--fs { --nexen: #1b3f7a; }        .nxp-logo--fs img { width: 200px; }
.nxp--boschert { --nexen: #004f9f; }  .nxp-logo--boschert img { width: 200px; }
.nxp--zapoff { --nexen: #1450c8; }    .nxp-logo--zapoff img { width: 170px; }
.nxp--horton { --nexen: #d71920; }    .nxp-logo--horton img { width: 190px; }
.nxp--suco { --nexen: #0f5aa8; }      .nxp-logo--suco img { width: 150px; }
.nxp--rp { --nexen: #c4122f; }        .nxp-logo--rp img { width: 190px; }
.nxp--redex { --nexen: #e3530f; }     .nxp-logo--redex img { width: 190px; }
.nxp--acs { --nexen: #1b4f9c; }       .nxp-logo--acs img { width: 160px; }
.nxp--pactene { --nexen: #0a8f5a; }   .nxp-logo--pactene img { width: 170px; }
.nxp--water { --nexen: #1c64b4; }     .nxp-logo--water img { width: 200px; }

/* About page (19, tools/about_build.py) */
.nxp--about { --nexen: #0061ff; }
.nxp-about__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; align-content: start; }
.nxp-about__photos figure { margin: 0; }
.nxp-about__photos figure:first-child { grid-column: 1 / -1; }
.nxp-about__photos img { display: block; width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; }
.nxp-about__photos figcaption { font-size: 0.8rem; color: var(--muted); margin-top: 0.35rem; }
.nxp-stats--areas { grid-template-columns: 1fr 1fr; margin-top: 1.5rem !important; }
.nxp-stats--areas li:nth-child(3) { padding-left: 0; border-left: 0; }
.nxp-steps--story { row-gap: 2.25rem; }
.nxp .nxp-steps--story li::before { content: none; }
@media (max-width: 760px) { .nxp-about__photos { grid-template-columns: 1fr; } }
.nxp-steps--story + p { margin-top: 1.75rem; }
.nxp-about__logos { list-style: none; margin: 1.5rem 0 1.25rem !important; padding: 0 !important; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.nxp-about__logos li { margin: 0; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.nxp-about__logos li::before, .nxp-about__logos li::marker { content: none; }
.nxp-about__logos a { display: flex; align-items: center; justify-content: center; height: 6rem; padding: 1rem 1.25rem; box-sizing: border-box; transition: background 0.15s ease; }
.nxp-about__logos a:hover { background: #f6f6f4; }
.nxp-about__logos img { display: block; max-width: 100%; max-height: 2.6rem; width: auto; height: auto; object-fit: contain; }
@media (max-width: 900px) { .nxp-about__logos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .nxp-about__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* About: family quote, photo timeline, people */
.nxp-about__quote { margin: 0; padding: 1.5rem 1.75rem; background: #f6f4ef; border-left: 3px solid var(--nexen); align-self: start; }
.nxp-about__quote blockquote { margin: 0; }
.nxp-about__quote p { font-family: var(--ngc-display, sans-serif); font-weight: 600; font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem); line-height: 1.35; color: var(--ink); margin: 0 0 0.9rem; }
.nxp-about__quote figcaption { font-size: 0.85rem; color: var(--muted); }
.nxp-about__timeline { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem 1.5rem; }
.nxp-about__timeline li { margin: 0; }
.nxp-about__timeline li::before, .nxp-about__timeline li::marker { content: none; }
.nxp-about__timeline figure { margin: 0 0 0.8rem; aspect-ratio: 4 / 3; background: #fff; border: 1px solid var(--rule); padding: 6px; box-sizing: border-box; }
.nxp-about__timeline img { display: block; width: 100%; height: 100%; object-fit: contain; filter: saturate(0.85); }
.nxp-about__year { margin: 0 0 0.2rem !important; font-family: var(--mono); font-weight: 600; font-size: 0.8rem; letter-spacing: var(--mono-track, 0.06em); color: var(--nexen); }
.nxp-about__timeline h3 { margin: 0 0 0.35rem; font-size: 1.1rem; line-height: 1.2; }
.nxp-about__timeline p:last-child { margin: 0; font-size: 0.92rem; line-height: 1.45; color: var(--muted); }
.nxp-about__people { list-style: none; margin: 1.25rem 0 1rem !important; padding: 0 !important; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.nxp-about__people li { margin: 0; padding: 1.1rem 1.1rem 1.2rem; border: 1px solid var(--rule); border-top: 3px solid var(--ink); display: flex; flex-direction: column; gap: 0.3rem; }
.nxp-about__people li::before, .nxp-about__people li::marker { content: none; }
.nxp-about__people b { font-family: var(--ngc-display, sans-serif); font-size: 1.15rem; line-height: 1.2; }
.nxp-about__role { font-family: var(--mono); font-size: 0.7rem; letter-spacing: var(--mono-track, 0.06em); text-transform: uppercase; color: var(--nexen); }
.nxp-about__people span:not(.nxp-about__role) { font-size: 0.92rem; line-height: 1.45; color: var(--muted); flex: 1; }
.nxp-about__people a { font-size: 0.88rem; word-break: break-all; }
@media (max-width: 1000px) { .nxp-about__timeline, .nxp-about__people { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .nxp-about__timeline, .nxp-about__people { grid-template-columns: 1fr; } }
.nxp-about__timeline figure { position: relative; padding: 0 !important; }
.nxp-about__timeline img { position: absolute; inset: 6px; width: calc(100% - 12px) !important; height: calc(100% - 12px) !important; max-width: none; }
.nxp-about__ops { list-style: none; margin: 1.25rem 0 0 !important; padding: 0 !important; display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.5rem; }
.nxp-about__ops li { margin: 0; padding: 0.6rem 0 0.6rem 1.1rem; border-top: 1px solid var(--rule); position: relative; font-size: 0.98rem; line-height: 1.45; }
.nxp-about__ops li::before { content: ""; position: absolute; left: 0; top: 1.15em; width: 0.45rem; height: 2px; background: var(--nexen); }
@media (max-width: 760px) { .nxp-about__ops { grid-template-columns: 1fr; } }
