/* Legacy sections: readable measures, stable grids and contained media.
 * Production pages use separate .pmi-product-* / .pmi-production-* classes.
 */
.page-heading {
  padding-top: 36px;
  padding-bottom: 38px;
}
.page-heading .breadcrumbs { margin-bottom: 30px; }
.page-heading h1 { max-width: 1000px; line-height: 1.13; }
.page-heading .lede { max-width: 760px; line-height: 1.7; }

.standard-layout { max-width: 1180px; padding-bottom: 24px; }
.standard-layout,
.catalog-layout,
.source-content,
.source-content > .b-page,
.source-content > .b-side,
.source-content .catalog-card,
.source-content .table-scroll { min-width: 0; }
.source-content { color: var(--ink); font-size: 16px; line-height: 1.8; }
.source-content p { margin-bottom: 22px; }
.source-content > .b-page > p:not(:has(img)),
.source-content > .b-page > ul,
.source-content > .b-page > ol { max-width: 78ch; }
.source-content > .b-page > h2,
.source-content > .b-page > h3 { max-width: 30em; }
.source-content h2 { margin-top: 38px; margin-bottom: 20px; line-height: 1.25; }
.source-content h3 { margin-top: 30px; margin-bottom: 16px; line-height: 1.35; }
.source-content h4 { margin-top: 26px; line-height: 1.4; }
.source-content > :first-child > :first-child { margin-top: 0; }
.source-content li { margin-top: 8px; margin-bottom: 8px; }
.source-content img { max-width: 100%; height: auto; }
.source-content section.b-page > img.m-img_lft {
  width: min(32%, 310px);
  margin: 5px 34px 24px 0;
}
.source-content iframe {
  display: block;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  margin-block: 26px;
  border-radius: 10px;
}

/* A separate prose column and supporting content, without float wrapping. */
.source-content:has(> aside) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 36px;
  align-items: start;
}
.source-content:has(> aside) > .b-page {
  width: auto;
  max-width: none;
  float: none;
}
.source-content .b-side {
  width: auto;
  padding-left: 25px;
  border-left: 1px solid var(--line);
  font-size: 13px;
  line-height: 1.7;
}
.source-content .b-side__block { margin-bottom: 25px; }
.source-content .b-side h2 { font-size: 20px; margin-top: 0; line-height: 1.35; }
.source-content .b-side .b-bblock,
.source-content .b-side__block.b-bblock { padding: 22px; border-radius: 10px; }
.source-content .b-side p { margin-bottom: 16px; }
.source-content .b-prodside__img { border-radius: 10px; padding: 20px; margin-bottom: 0; }
.source-content .b-prodside__img img { display: block; width: 100%; height: 230px; object-fit: contain; }
.source-content .b-prodside__producer img { display: block; max-height: 60px; max-width: 180px; margin-bottom: 20px; }

/* Root groups adjacent single-card wrappers into one collection. No text is clipped. */
.source-content .pmi-listing-collection {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0 0 32px;
  align-items: stretch;
}
.source-content .pmi-listing-collection > .listing-grid { display: contents; }
.source-content .pmi-listing-collection .catalog-card { margin: 0; }
.source-content .listing-grid { gap: 24px; }
.source-content .catalog-card {
  padding: 27px;
  border-radius: 12px;
  line-height: 1.75;
  height: 100%;
}
.source-content .catalog-card h2 { font-size: 23px; line-height: 1.32; margin: 0 0 20px; }
.source-content .catalog-card .b-cat__img {
  float: none;
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  margin: 18px 0 22px;
  padding: 15px;
  border-radius: 8px;
  background: #f4f6f2;
}
.source-content .catalog-card .b-cat__img a { display: block; width: 100%; }
.source-content .catalog-card .b-cat__img img {
  display: block;
  width: 100%;
  height: 170px;
  max-width: 310px;
  margin-inline: auto;
  object-fit: contain;
  mix-blend-mode: normal;
}
.source-content .catalog-card p,
.source-content .catalog-card > div { font-size: 14px; line-height: 1.8; }
.source-content .catalog-card > div:last-child { margin-bottom: 0; }

/* Legacy equipment navigation stays separate from the result grid. */
.catalog-layout { grid-template-columns: 242px minmax(0, 1fr); gap: 32px; align-items: start; }
.catalog-layout > .source-content { width: 100%; }
.catalog-layout .catalog-nav { border-radius: 10px; }
.catalog-layout .catalog-tree { line-height: 1.55; }
.catalog-layout .catalog-tree summary,
.catalog-layout .catalog-tree a { overflow-wrap: anywhere; }
.catalog-layout .catalog-card { padding: 24px; }
.catalog-layout .catalog-card h2 { font-size: 21px; }
.catalog-layout .catalog-card .b-cat__img img { height: 150px; }

/* All 105 technical tables already have .table-scroll wrappers. */
.source-content .table-scroll {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  margin: 26px 0 32px;
  border-radius: 10px;
}
.source-content .table-scroll > table { min-width: 540px; width: 100%; table-layout: auto; }
.source-content td,
.source-content th { padding: 15px 18px; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.source-content th { min-width: 150px; }
.source-content td > p:last-child,
.source-content th > p:last-child { margin-bottom: 0; }
.source-content caption { padding: 20px; line-height: 1.35; }
.source-content .table-scroll:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }

/* Providers: root adds .pmi-provider-copy while retaining every original node. */
.source-content .b-provider { padding-block: 40px; }
.source-content .b-provider:has(> .pmi-provider-copy) {
  display: grid;
  grid-template-columns: 245px minmax(0, 1fr);
  gap: 26px 38px;
  align-items: start;
}
.source-content .b-provider:has(> .pmi-provider-copy)::after { content: none; }
.source-content .b-provider:has(> .pmi-provider-copy) > .b-provider__brief {
  float: none;
  grid-column: 1;
  width: 100%;
  margin: 0;
}
.source-content .b-provider > .pmi-provider-copy { grid-column: 2; min-width: 0; }
.source-content .pmi-provider-copy > :first-child { margin-top: 0; }
.source-content .pmi-provider-copy p,
.source-content .pmi-provider-copy ul { max-width: 76ch; font-size: 15px; line-height: 1.8; }
.source-content .pmi-provider-copy > h3 { font-size: 24px; }
.source-content .b-provider__brief { padding: 23px; border-radius: 10px; }
.source-content .b-provider__brief h2 { margin: 0 0 18px; }
.source-content .b-provider__brief img { display: block; width: 100%; height: 72px; max-width: 190px; object-fit: contain; background: white; border-radius: 5px; padding: 6px; }
.source-content .b-provider__brief h3 { margin-top: 22px; font-size: 15px; }
.source-content .b-provider__brief a { overflow-wrap: anywhere; }
.source-content .b-provider > .b-provider__products { grid-column: 1 / -1; width: 100%; padding-top: 8px; }
.source-content .b-carousel__in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.source-content .b-plist__el { min-width: 0; padding: 18px; border-radius: 10px; line-height: 1.6; }
.source-content .b-plist__el img { height: 135px; width: 100%; object-fit: contain; }

/* Contact details and the map are supporting blocks, not oversized illustrations. */
.source-content .b-contacts { display: grid; gap: 16px; margin-block: 0 28px; }
.source-content .b-contacts > .b-contacts__bl {
  margin: 0;
  padding: 21px 24px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--soft);
  font-size: 15px;
  line-height: 1.8;
}
.source-content .b-contacts__bl .b-contacts__bl { margin: 16px 0 0; font-size: inherit; }
.source-content .b-contacts strong { display: inline; margin-right: 7px; }
.source-content .rightimg { width: 86px; height: auto; margin: 0 0 20px 24px; }
.source-content .Maps { max-width: 760px; margin-block: 30px 38px; }
.source-content .Maps img {
  display: block;
  width: 100%;
  max-width: 100%;
  max-height: 390px;
  object-fit: contain;
  border-radius: 10px;
  background: white;
}
.source-content .map-link { display: inline-block; margin-top: 16px; font-size: 14px; }

/* A consistent document index, including long equipment titles. */
.documents-list { max-width: 1120px; padding-bottom: 65px; }
.documents-list .filter-input { max-width: 760px; padding: 16px 18px; border-radius: 8px; }
.documents-list #document-count { margin: 4px 0 10px; font-size: 13px; color: var(--muted); }
.documents-list .document-row { display: grid; grid-template-columns: 54px minmax(0, 1fr) 44px; gap: 22px; align-items: center; padding-block: 22px; }
.documents-list .document-row > div > a:first-child { display: inline-block; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.documents-list .document-context { font-size: 12px; line-height: 1.65; margin-top: 7px; }
.documents-list .document-row > a:last-child { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 8px; background: var(--soft); }
.documents-list .file-type { min-width: 0; border-radius: 6px; padding: 11px 6px; }

/* Gallery previews keep a common rhythm; full photographs remain uncropped in the dialog. */
.source-content .b-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 0; }
.source-content .b-gallery + .b-gallery { margin-top: 44px; padding-top: 35px; border-top: 1px solid var(--line); }
.source-content .b-gallery__header { grid-column: 1 / -1; width: auto; margin-bottom: 5px; }
.source-content .b-gallery__header h2 { margin: 0 0 7px; font-size: 27px; }
.source-content .b-gallery__date { font-size: 12px; color: var(--muted); }
.source-content .b-gallery__item { display: block; width: 100%; border-radius: 9px; min-width: 0; }
.source-content .b-gallery__item figure { margin: 0; }
.source-content .b-gallery__item img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.source-content .b-gallery__item figcaption { font-size: 12px; line-height: 1.6; }

/* Compact application tiles; labels remain fully visible. */
.source-content .b-apps:not(.good_card) { gap: 18px; }
.source-content .b-apps_bgr { border-radius: 10px; padding: 24px; }
.source-content .b-app { width: calc(33.333% - 12px); min-width: 0; align-items: flex-start; font-size: 12px; line-height: 1.55; }
.source-content .b-side .b-app { width: 100%; align-items: center; }
.source-content .b-app__img { width: 42px; height: 42px; }
.source-content .b-app__img img { width: 38px; height: 38px; }
.standard-layout + .project-cta { margin-top: 48px; }

html[data-theme="dark"] .source-content .catalog-card,
html[data-theme="dark"] .source-content .b-provider__brief,
html[data-theme="dark"] .source-content .b-plist__el,
html[data-theme="dark"] .source-content .table-scroll { background: #17211c; border-color: #2c3b34; }
html[data-theme="dark"] .source-content .b-contacts > .b-contacts__bl { background: #1c2822; border-color: #2c3b34; }
html[data-theme="dark"] .source-content .catalog-card .b-cat__img { background: #f4f6f2; }
html[data-theme="dark"] .documents-list .document-row > a:last-child { background: #1c2822; color: #b7e09a; }

@media (max-width: 1100px) {
  .catalog-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 25px; }
  .source-content:has(> aside) { grid-template-columns: minmax(0, 1fr) 250px; gap: 26px; }
  .source-content .b-side { padding-left: 20px; }
  .source-content .pmi-listing-collection { gap: 18px; }
  .source-content .catalog-card { padding: 22px; }
  .source-content .catalog-card h2 { font-size: 21px; }
  .source-content .b-provider:has(> .pmi-provider-copy) { grid-template-columns: 220px minmax(0, 1fr); gap: 24px 28px; }
  .source-content .b-carousel__in { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .source-content .b-app { width: calc(50% - 9px); }
}
@media (max-width: 900px) {
  .catalog-layout { display: block; }
  .catalog-layout .catalog-nav { width: 100%; max-height: 320px; overflow-y: auto; margin-bottom: 28px; }
  .catalog-layout .catalog-nav-title { position: sticky; top: 0; z-index: 2; background: var(--paper); }
  .source-content:has(> aside) { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .source-content .b-side { width: 100%; padding: 28px 0 0; border-left: 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .source-content .b-side__block { margin: 0; min-width: 0; }
  .source-content .b-side__block.b-bblock { grid-column: 1 / -1; }
  .source-content .b-side .b-app { width: 100%; }
  .source-content .b-provider:has(> .pmi-provider-copy) { grid-template-columns: 200px minmax(0, 1fr); gap: 24px; }
  .source-content .b-provider__brief { padding: 19px; }
  .source-content .pmi-provider-copy p,
  .source-content .pmi-provider-copy ul { font-size: 14px; }
  .source-content .b-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .page-heading { padding-top: 25px; padding-bottom: 28px; }
  .page-heading .breadcrumbs { margin-bottom: 24px; }
  .page-heading h1 { font-size: 34px; line-height: 1.15; }
  .page-heading .lede { font-size: 15px; }
  .source-content { font-size: 15px; line-height: 1.8; }
  .source-content h2 { font-size: 26px; margin-top: 32px; }
  .source-content h3 { font-size: 21px; margin-top: 25px; }
  .source-content section.b-page > img.m-img_lft { width: 100%; max-width: 100%; float: none; margin: 0 0 24px; }
  .source-content .pmi-listing-collection { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .source-content .catalog-card { padding: 22px; }
  .source-content .catalog-card h2 { font-size: 23px; }
  .source-content .catalog-card .b-cat__img img { height: 185px; }
  .source-content .b-side { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .source-content .b-side__block.b-bblock { padding: 22px; }
  .source-content .b-provider:has(> .pmi-provider-copy) { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .source-content .b-provider:has(> .pmi-provider-copy) > .b-provider__brief,
  .source-content .b-provider > .pmi-provider-copy { grid-column: 1; }
  .source-content .b-provider__brief { float: none; width: 100%; margin: 0 0 22px; padding: 23px; }
  .source-content .b-provider__brief img { height: 68px; }
  .source-content .b-provider { padding-block: 30px; }
  .source-content .pmi-provider-copy > h3 { font-size: 23px; }
  .source-content .b-carousel__in { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .source-content .b-plist__el { padding: 15px; }
  .source-content .b-plist__el img { height: 115px; }
  .source-content .b-contacts > .b-contacts__bl { padding: 19px; font-size: 14px; }
  .source-content .rightimg { width: 68px; margin-left: 15px; }
  .source-content .Maps { margin-block: 26px 32px; }
  .source-content .Maps img { max-height: 280px; }
  .source-content .b-gallery { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .source-content .b-gallery__header h2 { font-size: 25px; }
  .source-content .b-gallery + .b-gallery { margin-top: 34px; padding-top: 28px; }
  .source-content .b-apps_bgr { padding: 19px; }
  .source-content .b-app { width: 100%; min-width: 0; align-items: center; font-size: 13px; }
  .source-content .b-side .b-app { width: 100%; }
  .source-content td,
  .source-content th { padding: 12px 14px; font-size: 12px; }
  .documents-list .document-row { grid-template-columns: 44px minmax(0, 1fr) 38px; gap: 12px; padding-block: 20px; }
  .documents-list .document-row > div > a:first-child { font-size: 14px; }
  .documents-list .document-row > a:last-child { width: 38px; height: 40px; }
  .documents-list .file-type { font-size: 10px; padding: 10px 4px; }
  .documents-list .document-context { font-size: 11px; }
  .standard-layout + .project-cta { margin-top: 35px; }
}
@media (prefers-reduced-motion: reduce) {
  .source-content .b-gallery__item img { transition: none; }
  .source-content .b-gallery__item:hover img { transform: none; }
}
