/* Manufacturer Directory public surfaces.
   This is deliberately independent from styles.css: only rendered directory
   pages load it, so a directory canary cannot restyle the rest of the site. */

/* Encyclopedia manufacturer products: one category surface, no duplicate
   category-directory / comparison step. Desktop = 4 columns × 5 rows (20). */
.mfr-manufacturer-grid {
  grid-column: 1 / -1;
  /* The encyclopedia TOC intentionally spans the chapter rows. Once the
     full-width manufacturer module begins, this local surface must paint
     above that sticky rail so the fourth product column remains readable and
     clickable instead of sitting under the TOC. */
  position: relative;
  z-index: 2;
  scroll-margin-top: calc(var(--h-header, 68px) + 20px);
  margin: 56px 0 0;
  padding: 28px 0 0;
  border-top: 2px solid var(--c-primary, #0e5560);
  background: var(--c-bg, #fbf8f2);
}

.powerpage:has(.mfr-manufacturer-grid) .powerpage__toc { z-index: 1; }

.mfr-manufacturer-grid__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, .58fr);
  gap: 32px;
  align-items: end;
  margin-bottom: 24px;
}

.mfr-manufacturer-grid__header h2 {
  margin: 0;
  color: var(--c-text, #173c41);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.04;
  letter-spacing: -.03em;
  text-wrap: balance;
}

.mfr-manufacturer-grid__header p {
  max-width: 48ch;
  margin: 0;
  color: var(--c-text-mid, #4d6165);
  font-size: 14px;
  line-height: 1.55;
}

.mfr-manufacturer-grid__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 22px 18px;
  align-items: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
}

.mfr-product-card {
  display: flex;
  height: 100%;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--c-line, #d7d2c8) 76%, transparent);
  background: var(--c-surface, #fcfcf6);
  transition: border-color 180ms cubic-bezier(.22, 1, .36, 1), background-color 180ms cubic-bezier(.22, 1, .36, 1);
}

.mfr-product-card__media {
  display: grid;
  aspect-ratio: 1 / 1;
  place-items: center;
  overflow: hidden;
  border-bottom: 1px solid var(--c-line, #d7d2c8);
  background: color-mix(in srgb, var(--c-surface-sunken, #f0eee5) 78%, white);
}

.mfr-product-card__media:empty::before {
  content: "Product image not retained";
  max-width: 16ch;
  color: var(--c-text-soft, #64777a);
  font-size: 11px;
  line-height: 1.4;
  text-align: center;
}

.mfr-product-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 8px;
  object-fit: contain;
  transition: transform 180ms cubic-bezier(.22, 1, .36, 1);
}

.mfr-product-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 16px 16px 14px;
}

.mfr-product-card__meta {
  display: flex;
  min-height: 18px;
  gap: 8px;
  justify-content: space-between;
  color: var(--c-text-soft, #64777a);
  font-size: 11px;
  line-height: 1.4;
}

.mfr-product-card__badge {
  color: var(--c-accent, #c2632c);
  font-weight: 750;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.mfr-product-card h3 {
  display: -webkit-box;
  min-height: calc(1.22em * 2);
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 12px 0 0;
  font-size: 18px;
  line-height: 1.22;
  letter-spacing: -.018em;
  text-wrap: pretty;
}

.mfr-product-card h3 a,
.mfr-product-card__link {
  color: var(--c-primary, #0e5560);
  text-decoration-color: color-mix(in srgb, var(--c-primary, #0e5560) 38%, transparent);
  text-underline-offset: 4px;
}

.mfr-product-card__range {
  display: -webkit-box;
  min-height: calc(1.5em * 2);
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 8px 0 0;
  color: var(--c-text, #173c41);
  font-size: 13px;
  line-height: 1.5;
}

.mfr-product-card__facts {
  display: grid;
  gap: 8px;
  margin: 14px 0 16px;
}

.mfr-product-card__facts div {
  display: grid;
  grid-template-columns: minmax(5rem, .42fr) minmax(0, 1fr);
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--c-line, #d7d2c8);
}

.mfr-product-card__facts dt {
  color: var(--c-text-soft, #64777a);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .04em;
  line-height: 1.35;
  text-transform: uppercase;
}

.mfr-product-card__facts dd {
  margin: 0;
  color: var(--c-text, #173c41);
  font-size: 12px;
  line-height: 1.42;
}

.mfr-product-card__link {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding: 10px 12px;
  background: color-mix(in srgb, var(--c-primary, #0e5560) 8%, transparent);
  font-size: 12px;
  font-weight: 750;
  text-decoration: none;
}

.mfr-product-card__link::after {
  content: "→";
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
}

.mfr-product-card a:focus-visible {
  outline: 2px solid var(--c-accent, #c2632c);
  outline-offset: -2px;
}

@media (hover: hover) and (pointer: fine) {
  .mfr-product-card:hover {
    border-color: color-mix(in srgb, var(--c-primary, #0e5560) 48%, var(--c-line, #d7d2c8));
    background: color-mix(in srgb, var(--c-surface, #fcfcf6) 88%, var(--c-primary, #0e5560));
  }
  .mfr-product-card:hover .mfr-product-card__media img { transform: scale(1.025); }
  .mfr-product-card__link:hover { background: color-mix(in srgb, var(--c-primary, #0e5560) 13%, transparent); }
}

@media (max-width: 980px) {
  .mfr-manufacturer-grid__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .mfr-manufacturer-grid { margin-top: 40px; padding-top: 22px; }
  .mfr-manufacturer-grid__header { grid-template-columns: 1fr; gap: 12px; }
  .mfr-manufacturer-grid__list { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .mfr-manufacturer-grid__list { gap: 18px; }
  .mfr-product-card__media { aspect-ratio: 16 / 9; }
  .mfr-product-card__media img { padding: 8px; }
  .mfr-product-card__body { padding: 16px; }
  .mfr-product-card h3,
  .mfr-product-card__range {
    display: block;
    min-height: 0;
    overflow: visible;
  }
  .mfr-product-card__facts div { grid-template-columns: minmax(5rem, .34fr) minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .mfr-product-card,
  .mfr-product-card__media img { transition: none; }
}

.mfr-category-directory {
  /* The encyclopedia TOC occupies grid column 2 on desktop.  Keep the
     directory in the editorial column so its facts never sit underneath the
     sticky table of contents. */
  grid-column: 1;
  /* Direct links land on this section. Clear the existing sticky site header
     so the H2 remains visible instead of beginning behind navigation chrome. */
  scroll-margin-top: calc(var(--h-header, 68px) + 20px);
  margin: 48px 0 0;
  padding: 24px 0 0;
  border-top: 2px solid var(--c-primary, #0e5560);
}

.mfr-category-directory__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, .62fr);
  gap: 32px;
  align-items: start;
  margin: 0 0 24px;
}

.mfr-category-directory h2 {
  margin: 0;
  color: var(--c-text, #173c41);
  font-size: clamp(27px, 3vw, 40px);
  line-height: 1.04;
  letter-spacing: -.03em;
  text-wrap: balance;
}

.mfr-category-directory--page h1 {
  margin: 0;
  color: var(--c-text, #173c41);
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1;
  letter-spacing: -.035em;
}

.mfr-category-directory--page .mfr-category-directory__entity h2 {
  margin: 0;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -.018em;
}

.mfr-category-directory--page .mfr-category-directory__entity h2 a {
  color: var(--c-text, #173c41);
  text-decoration-color: color-mix(in srgb, var(--c-primary, #0e5560) 45%, transparent);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.mfr-category-directory__header p {
  margin: 0;
  color: var(--c-text-mid, #4d6165);
  font-size: 15px;
  line-height: 1.62;
  text-wrap: pretty;
}

.mfr-category-directory__deck { max-width: 62ch; margin-top: 16px !important; }

.mfr-category-directory__scope {
  margin: 0;
  border-top: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__scope > div {
  display: grid;
  grid-template-columns: minmax(7rem, .45fr) minmax(0, 1fr);
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__scope dt,
.mfr-category-directory__product span,
.mfr-category-directory__procurement dt,
.mfr-category-directory__meta span {
  color: var(--c-text-soft, #64777a);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .06em;
  line-height: 1.35;
  text-transform: uppercase;
}

.mfr-category-directory__scope dd {
  margin: 0;
  color: var(--c-text, #173c41);
  font-size: 13px;
  line-height: 1.5;
}

.mfr-category-directory__list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__item {
  display: grid;
  grid-template-columns: minmax(15rem, .62fr) minmax(23rem, 1.15fr) minmax(10.5rem, .4fr);
  gap: 16px 24px;
  align-items: start;
  padding: 16px 0;
  border-bottom: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__item--with-media {
  grid-template-columns: 84px minmax(15rem, .62fr) minmax(23rem, 1.15fr) minmax(10.5rem, .4fr);
}

.mfr-category-directory__media {
  display: grid;
  width: 84px;
  aspect-ratio: 1;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--c-line, #d7d2c8);
  background: var(--c-surface-sunken, #f0eee5);
}

.mfr-category-directory__media > * { grid-area: 1 / 1; }

.mfr-category-directory__media span {
  align-self: center;
  padding: 8px;
  color: var(--c-text-soft, #64777a);
  font-size: 10px;
  line-height: 1.35;
  text-align: center;
}

.mfr-category-directory__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 7px;
}

.mfr-category-directory__entity h3 {
  margin: 0;
  font-size: 19px;
  line-height: 1.2;
  letter-spacing: -.018em;
}

.mfr-category-directory__entity h3 a {
  color: var(--c-text, #173c41);
  text-decoration-color: color-mix(in srgb, var(--c-primary, #0e5560) 45%, transparent);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.mfr-category-directory__product {
  margin: 8px 0 0;
  color: var(--c-text-mid, #4d6165);
  font-size: 14px;
  line-height: 1.55;
}

.mfr-category-directory__product span,
.mfr-category-directory__meta span { display: block; margin-bottom: 4px; }

.mfr-category-directory__procurement {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
  margin: 0;
  border-top: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__procurement > div {
  min-width: 0;
  padding: 8px 0;
  border-bottom: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__procurement > div:nth-child(odd):not(.mfr-category-directory__procurement-fit) {
  padding-right: 16px;
  border-right: 1px solid color-mix(in srgb, var(--c-line, #d7d2c8) 72%, transparent);
}

.mfr-category-directory__procurement-fit { grid-column: 1 / -1; }

.mfr-category-directory__procurement dd {
  margin: 4px 0 0;
  color: var(--c-text, #173c41);
  font-size: 13px;
  line-height: 1.48;
}

.mfr-category-directory__meta {
  display: grid;
  gap: 12px;
  align-content: start;
  padding-left: 16px;
  border-left: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__meta p { margin: 0; color: var(--c-text-mid, #4d6165); font-size: 13px; line-height: 1.5; }
.mfr-category-directory__meta a { color: var(--c-primary, #0e5560); font-weight: 700; text-underline-offset: 4px; }

.mfr-category-directory__browse {
  margin: 24px 0 0;
  font-size: 14px;
  font-weight: 700;
}

.mfr-category-directory__browse a {
  color: var(--c-primary, #0e5560);
  text-underline-offset: 4px;
}

.mfr-category-directory__badge {
  display: inline-block;
  margin: 0 0 8px;
  color: var(--c-primary, #0e5560);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.mfr-category-directory__badge--sponsored { color: var(--c-accent, #c2632c); }

/* The comparison strip is a source-row view, not a generic directory card.
   It stays opt-in in the local depth canary and uses hairlines/table layout so
   dense product facts remain scanable without turning the page into a SaaS UI. */
.mfr-category-directory__comparison {
  display: grid;
  grid-template-columns: minmax(15rem, .45fr) minmax(0, 1fr);
  gap: 24px 32px;
  margin: 8px 0 32px;
  padding: 24px 0;
  border-top: 2px solid var(--c-primary, #0e5560);
  border-bottom: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__comparison h2 {
  margin: 0;
  font-size: clamp(25px, 2.5vw, 34px);
}

.mfr-category-directory__comparison > div > p:not(.mfr-profile__type) {
  margin: 12px 0 0;
  color: var(--c-text-mid, #4d6165);
  font-size: 14px;
  line-height: 1.58;
}

.mfr-category-directory__comparison-scroll { overflow-x: auto; }

.mfr-category-directory__comparison table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  border-top: 1px solid var(--c-line, #d7d2c8);
}

.mfr-category-directory__comparison th,
.mfr-category-directory__comparison td {
  padding: 11px 12px;
  border-bottom: 1px solid var(--c-line, #d7d2c8);
  text-align: left;
  vertical-align: top;
}

.mfr-category-directory__comparison thead th {
  color: var(--c-text-soft, #64777a);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.mfr-category-directory__comparison tbody th {
  width: 34%;
  color: var(--c-text, #173c41);
  font-size: 14px;
  line-height: 1.45;
}

.mfr-category-directory__comparison tbody th a {
  color: var(--c-primary, #0e5560);
  text-decoration-color: color-mix(in srgb, var(--c-primary, #0e5560) 45%, transparent);
  text-underline-offset: 4px;
}

.mfr-category-directory__comparison td { color: var(--c-text, #173c41); font-size: 13px; line-height: 1.5; }
.mfr-category-directory__comparison ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.mfr-category-directory__comparison li span { display: inline-block; min-width: 7.5rem; margin-right: 8px; color: var(--c-text-soft, #64777a); font-size: 11px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }

/* The global fixed Q&A control is useful on reference articles, but it can
   cover live supplier rows or a dossier's evidence.  Keep this restraint
   scoped to pages that load the directory stylesheet. */
@supports selector(body:has(*)) {
  body:has(.mfr-category-directory) .ask-bar,
  body:has(.mfr-profile) .ask-bar { display: none !important; }
}

.mfr-profile {
  margin: 32px 0 64px;
  border-top: 2px solid var(--c-primary, #0e5560);
  border-bottom: 1px solid var(--c-line, #d7d2c8);
}

.mfr-profile__masthead { padding: 32px 0; }

.mfr-profile__masthead--with-media {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .42fr);
  gap: 24px 32px;
  align-items: start;
}

.mfr-profile__media {
  display: grid;
  min-height: 248px;
  place-items: center;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--c-line, #d7d2c8);
  background: var(--c-surface-sunken, #f0eee5);
}

.mfr-profile__media img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 310px;
  box-sizing: border-box;
  padding: 18px;
}

.mfr-profile__media figcaption {
  align-self: stretch;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border-top: 1px solid var(--c-line, #d7d2c8);
  color: var(--c-text-soft, #64777a);
  font-size: 12px;
  line-height: 1.45;
}

.mfr-profile__type {
  margin: 0 0 10px;
  color: var(--c-text-soft, #64777a);
  font-size: 13px;
  line-height: 1.4;
}

.mfr-profile h1 {
  max-width: 18ch;
  margin: 0;
  color: var(--c-text, #173c41);
  font-size: clamp(38px, 5vw, 66px);
  line-height: .98;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.mfr-profile__lede {
  max-width: 66ch;
  margin: 18px 0 0;
  color: var(--c-text-mid, #4d6165);
  font-size: clamp(16px, 1.65vw, 19px);
  line-height: 1.58;
  text-wrap: pretty;
}

.mfr-profile__facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 0;
  margin: 32px 0 0;
  border-top: 1px solid var(--c-line, #d7d2c8);
  border-left: 1px solid var(--c-line, #d7d2c8);
}

.mfr-profile__facts > div {
  min-height: 86px;
  padding: 15px 16px;
  border-right: 1px solid var(--c-line, #d7d2c8);
  border-bottom: 1px solid var(--c-line, #d7d2c8);
}

.mfr-profile__facts dt {
  color: var(--c-text-soft, #64777a);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.mfr-profile__facts dd {
  margin: 7px 0 0;
  color: var(--c-text, #173c41);
  font-size: 15px;
  line-height: 1.45;
}

.mfr-profile__facts a { color: var(--c-primary, #0e5560); text-underline-offset: 4px; }

.mfr-profile__content-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
  gap: 48px clamp(36px, 4vw, 72px);
  align-items: start;
  padding: 8px 0 40px;
}

.mfr-profile__body { min-width: 0; }

.mfr-profile__citation {
  display: inline-block;
  margin-left: 3px;
  color: var(--c-primary, #0e5560);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .01em;
  line-height: 1;
  text-decoration: none;
  text-underline-offset: 2px;
  vertical-align: super;
}

.mfr-profile__citation:hover,
.mfr-profile__citation:focus-visible { text-decoration: underline; }

.mfr-profile__section { padding: 32px 0 0; }

.mfr-profile__overview { padding-top: 28px; border-top: 1px solid var(--c-line, #d7d2c8); }
.mfr-profile__overview h2 { margin-bottom: 2px; }

.mfr-profile__brief {
  margin-top: 8px;
  padding: 24px 0 0;
  border-top: 1px solid var(--c-line, #d7d2c8);
}

.mfr-profile__brief h2 {
  margin: 0 0 12px;
  color: var(--c-text-soft, #64777a);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .07em;
  line-height: 1.3;
  text-transform: uppercase;
}

.mfr-profile__brief-intro {
  max-width: 66ch;
  margin: 0 0 14px;
  color: var(--c-text-mid, #4d6165);
  font-size: 14px;
  line-height: 1.58;
}

.mfr-profile__brief dl { margin: 0; }

.mfr-profile__brief dl > div {
  display: grid;
  grid-template-columns: minmax(8.5rem, .34fr) minmax(0, 1fr);
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid color-mix(in srgb, var(--c-line, #d7d2c8) 80%, transparent);
}

.mfr-profile__brief dt {
  color: var(--c-text-soft, #64777a);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .035em;
  line-height: 1.45;
  text-transform: uppercase;
}

.mfr-profile__brief dd { margin: 0; color: var(--c-text, #173c41); font-size: 15px; line-height: 1.55; }
.mfr-profile__brief dd span,
.mfr-profile__products li span { display: block; margin-top: 4px; color: var(--c-text-mid, #4d6165); }

.mfr-profile__section h2,
.mfr-profile__categories span,
.mfr-profile__sources summary,
.mfr-profile__coverage summary {
  color: var(--c-text, #173c41);
  font-size: 22px;
  font-weight: 750;
  letter-spacing: -.02em;
  line-height: 1.2;
}

.mfr-profile__section p {
  margin: 12px 0 0;
  color: var(--c-text, #173c41);
  font-size: 16px;
  line-height: 1.68;
  text-wrap: pretty;
}

.mfr-profile__products { margin: 16px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--c-line, #d7d2c8); }
.mfr-profile__products li { padding: 12px 0; border-bottom: 1px solid var(--c-line, #d7d2c8); color: var(--c-text, #173c41); font-size: 15px; line-height: 1.5; }
.mfr-profile__products li strong { font-weight: 700; }

.mfr-profile__discovery {
  position: sticky;
  top: calc(var(--h-header, 68px) + 24px);
  min-width: 0;
  border-top: 2px solid var(--c-primary, #0e5560);
}

.mfr-profile__discovery-inner { padding-top: 20px; }

.mfr-profile__discovery h2 {
  margin: 0;
  color: var(--c-text, #173c41);
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -.025em;
}

.mfr-profile__discovery h3 {
  margin: 24px 0 0;
  color: var(--c-text-soft, #64777a);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .06em;
  line-height: 1.4;
  text-transform: uppercase;
}

.mfr-profile__discovery-guides,
.mfr-profile__discovery-peers,
.mfr-profile__discovery-news { display: grid; }

.mfr-profile__discovery-guides a,
.mfr-profile__discovery-peers a,
.mfr-profile__discovery-news a {
  padding: 13px 0;
  border-bottom: 1px solid var(--c-line, #d7d2c8);
  color: var(--c-primary, #0e5560);
  font-size: 14px;
  font-weight: 680;
  line-height: 1.4;
  text-decoration-color: color-mix(in srgb, var(--c-primary, #0e5560) 36%, transparent);
  text-underline-offset: 4px;
}

.mfr-profile__discovery-guides a span,
.mfr-profile__discovery-news a span {
  display: block;
  margin-top: 4px;
  color: var(--c-text-mid, #4d6165);
  font-size: 12px;
  font-weight: 450;
  line-height: 1.5;
}

.mfr-profile__not-published .mfr-profile__products { border-top-color: var(--c-accent, #c2632c); }
.mfr-profile__not-published h2 { color: var(--c-accent, #c2632c); }

.mfr-profile__coverage,
.mfr-profile__sources { margin-top: 32px; padding: 16px 0 0; border-top: 1px solid var(--c-line, #d7d2c8); }
.mfr-profile__coverage summary,
.mfr-profile__sources summary { cursor: pointer; font-size: 16px; }
.mfr-profile__coverage p,
.mfr-profile__sources p,
.mfr-profile__sources li { color: var(--c-text-mid, #4d6165); font-size: 14px; line-height: 1.6; }
.mfr-profile__coverage ul { margin: 12px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--c-line, #d7d2c8); }
.mfr-profile__coverage li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; padding: 10px 0; border-bottom: 1px solid var(--c-line, #d7d2c8); }
.mfr-profile__coverage li > span { color: var(--c-text, #173c41); font-size: 14px; font-weight: 650; }
.mfr-profile__coverage li small { color: var(--c-text-soft, #64777a); font-size: 12px; }
.mfr-profile__coverage-status { font-size: 11px; font-weight: 750; letter-spacing: .045em; text-transform: uppercase; }
.mfr-profile__coverage-status--verified { color: var(--c-primary, #0e5560); }
.mfr-profile__coverage-status--stated { color: var(--c-text-mid, #4d6165); }
.mfr-profile__coverage-status--unverified { color: var(--c-accent, #c2632c); }
.mfr-profile__sources ul { margin: 10px 0 0; padding-left: 18px; }
.mfr-profile__sources a { color: var(--c-primary, #0e5560); text-underline-offset: 3px; }
.mfr-profile__sources li span { display: block; margin-top: 2px; color: var(--c-text-soft, #64777a); }
.mfr-profile__depth-state { padding-left: 12px; border-left: 2px solid var(--c-accent, #c2632c); }
.mfr-profile__depth-state[data-depth-status="ready"] { border-left-color: var(--c-primary, #0e5560); }

.mfr-profile__faq details { padding: 16px 0; border-bottom: 1px solid var(--c-line, #d7d2c8); }
.mfr-profile__faq details:first-of-type { margin-top: 16px; border-top: 1px solid var(--c-line, #d7d2c8); }
.mfr-profile__faq summary { cursor: pointer; color: var(--c-text, #173c41); font-size: 15px; font-weight: 700; line-height: 1.45; }
.mfr-profile__faq p { margin: 10px 0 0; color: var(--c-text-mid, #4d6165); font-size: 15px; line-height: 1.65; }

@media (hover: hover) and (pointer: fine) {
  .mfr-category-directory__entity h3 a:hover { text-decoration-color: currentColor; }
}

@media (max-width: 880px) {
  .mfr-category-directory { margin-top: 32px; padding-top: 24px; }
  .mfr-category-directory__header,
  .mfr-category-directory__item { grid-template-columns: 1fr; gap: 12px; }
  .mfr-category-directory__comparison { grid-template-columns: 1fr; gap: 16px; }
  .mfr-category-directory__item--with-media { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; }
  .mfr-category-directory__item--with-media .mfr-category-directory__media { width: 72px; }
  .mfr-category-directory__item--with-media .mfr-category-directory__procurement,
  .mfr-category-directory__item--with-media .mfr-category-directory__meta { grid-column: 1 / -1; }
  .mfr-category-directory__header { margin-bottom: 16px; }
  .mfr-category-directory__scope > div { grid-template-columns: 1fr; gap: 4px; }
  .mfr-category-directory__procurement { grid-template-columns: 1fr; }
  .mfr-category-directory__procurement > div:nth-child(odd):not(.mfr-category-directory__procurement-fit) { padding-right: 0; border-right: 0; }
  .mfr-category-directory__meta { padding-left: 0; border-left: 0; }
  .mfr-profile { margin-top: 22px; }
  .mfr-profile__masthead { padding: 24px 0; }
  .mfr-profile__masthead--with-media { grid-template-columns: 1fr; gap: 24px; }
  .mfr-profile__media { min-height: 210px; max-width: 440px; }
  .mfr-profile__facts { grid-template-columns: 1fr 1fr; }
  .mfr-profile__facts > div { min-height: 80px; padding: 12px; }
  .mfr-profile__facts > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .mfr-profile__brief dl > div { grid-template-columns: 1fr; gap: 3px; }
  .mfr-profile__content-layout { grid-template-columns: 1fr; gap: 36px; }
  .mfr-profile__discovery { position: static; }
}

/* Columnised spec matrix: one shared attribute per column, tabular numerals so
   dimension strings align; the em-dash gap is a deliberate absence marker. */
.mfr-category-directory__matrix td {
  font-variant-numeric: tabular-nums;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--c-text, #173c41);
  white-space: nowrap;
}

.mfr-category-directory__matrix tbody th { width: auto; min-width: 13rem; }

@media (max-width: 880px) {
  .mfr-category-directory__matrix td { white-space: normal; }
}

/* Profile "Documented specifications": a parameter/value reference table in
   the same hairline language as the profile fact grid. */
.mfr-profile__spec-scroll { overflow-x: auto; }

.mfr-profile__spec-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--c-line, #d7d2c8);
}

.mfr-profile__spec-table th,
.mfr-profile__spec-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--c-line, #d7d2c8);
  text-align: left;
  vertical-align: top;
  font-size: 14px;
  line-height: 1.5;
}

.mfr-profile__spec-table th {
  width: 34%;
  color: var(--c-text-soft, #64777a);
  font-size: 11.5px;
  font-weight: 750;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.mfr-profile__spec-table td {
  font-variant-numeric: tabular-nums;
  color: var(--c-text, #173c41);
}

/* The product image now sits in the body, after the procurement snapshot, so
   the reading order is the same in the DOM as on screen and needs no ordering
   trick. On desktop it floats beside the following prose; on phones it is a
   plain block that cannot claim the first screen. */
.mfr-profile__media--inline {
  margin: 0 0 28px;
  max-width: 460px;
}

.mfr-profile__category-nav ul {
  list-style: none;
  margin: 0 0 32px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.mfr-profile__category-nav li a {
  font-size: .875rem;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

.mfr-profile__category { scroll-margin-top: 88px; }

.mfr-profile__category-series,
.mfr-profile__category-fit { font-size: .9375rem; }

/* Compiled category prose quotes addresses, order codes and model strings that
   have no break opportunity. Without this a single such token widens the whole
   article past the viewport on a phone. */
.mfr-profile__category-summary,
.mfr-profile__category-series,
.mfr-profile__category-fit,
.mfr-profile__category-facts dd {
  overflow-wrap: anywhere;
}

.mfr-profile__spec-table caption {
  text-align: left;
  font-size: .8125rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding-bottom: 8px;
}

@media (max-width: 560px) {
  .mfr-profile__media--inline { max-width: 100%; }
  .mfr-profile__media--inline img { max-height: 34vh; object-fit: contain; }
  .mfr-profile__spec-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
