/*
 * Premier Plasmotec public-site hygiene release.
 * Loaded last so legacy Gutenberg content gains the corrected presentation
 * without changing the stored records or their editing model.
 */

/*
 * Commercial control geometry.
 * Text-bearing controls are deliberately angular; circular geometry is
 * reserved for map points and non-text status indicators.
 */
:root {
  --ppps-radius-small: 2px;
  --ppps-radius-medium: 4px;
  --pp-radius: 4px;
  --radius: 4px;
}

:is(
  .button,
  .button-link,
  .header-cta,
  .contact-link,
  .menu-toggle,
  .navigation-toggle,
  .wp-element-button,
  .wp-block-button__link,
  .pp-button,
  .pp-text-link,
  .pp-block__actions a,
  .pp-enquiry-cta a,
  .rail-controls button,
  .pp-filters button,
  .pp-native-form button,
  button:not(.map-pin):not(.pp-plant-map__pin)
) {
  border-radius: 2px !important;
}

/* Essential labels must remain readable on desktop, mobile and zoomed pages. */
:is(.eyebrow, .pp-block__eyebrow, .pp-record-meta, .ppna-kicker, .pp-documentary-film__label,
  .pp-documentary-film__index, .pp-process__number, .pp-timeline time,
  .pp-equipment dt, .pp-plant-facts dt, .pp-filters label span,
  .component-dossier__facts dt, figcaption) {
  font-size: max(.75rem, 12px) !important;
  line-height: 1.5 !important;
  letter-spacing: .075em;
}

.site-header :is(.primary-menu a > span, .header-cta > span),
.site-main :is(figcaption, time, dt, small),
.page-studio-content figure > span,
.page-studio-content .pp-mosaic__caption,
.page-studio-content .pp-technical-card > span,
.page-studio-content .pp-document :is(p, a),
.site-main .ppna-shell > p:first-child,
.site-main .ppna-body > div:first-child,
.pp-factory-world-homepage :is(.hero-chapters small, .journey-controls span, .component-card__meta span, .map-pin span, .location-progress li) {
  font-size: max(.75rem, 12px) !important;
  line-height: 1.5 !important;
}

.pp-native-form label,
.pp-native-form .pp-form-grid label > span,
.pp-native-form :is(.pp-form-consent, .pp-file-field, .pp-form-footer p, .pp-form-message),
.pp-native-form :is(.pp-form-consent, .pp-file-field, .pp-form-message) > span {
  font-size: max(.875rem, 14px) !important;
  line-height: 1.5 !important;
}

:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 4px;
}

.navigation-toggle {
  min-width: 44px !important;
  min-height: 44px !important;
}

/* Retired indexed stories become compact, factual editorial sequences. */
.pp-block--process-chain.pp-process--compact-editorial {
  min-height: 0 !important;
  overflow: clip;
}

.pp-process--compact-editorial .pp-block__inner {
  width: min(100%, var(--pp-wide));
}

.pp-process--compact-editorial .pp-block__header {
  max-width: 960px;
  margin-bottom: clamp(42px, 6vw, 76px);
}

.pp-process--compact-editorial .pp-process {
  display: grid;
  width: 100% !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  overflow: visible;
  scroll-snap-type: none;
  border-top: 1px solid currentColor;
  gap: 0;
}

.pp-process--compact-editorial .pp-process::before,
.pp-process--compact-editorial .pp-process__stage::before {
  display: none;
}

.pp-process--compact-editorial .pp-process__stage {
  position: relative !important;
  display: flex;
  min-height: 0 !important;
  min-width: 0;
  flex: none;
  flex-direction: column;
  padding: clamp(24px, 3vw, 42px);
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
  transition: none !important;
}

.pp-process--compact-editorial .pp-process__stage:nth-child(3n) {
  border-right: 0;
}

.pp-process--compact-editorial .pp-process__number {
  margin: 0 0 clamp(28px, 5vw, 64px);
  font-variant-numeric: tabular-nums;
  opacity: .58;
}

.pp-process--compact-editorial .pp-process__stage-media {
  position: relative;
  display: grid;
  width: 100%;
  aspect-ratio: 16 / 10;
  margin: 0 0 28px;
  overflow: hidden;
  background: rgba(127, 135, 138, .12);
}

.pp-process--compact-editorial .pp-process__stage-media :is(img, video) {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pp-process--compact-editorial .pp-process h3 {
  max-width: 18ch;
  margin: 0 0 14px;
  font-size: clamp(1.55rem, 2.4vw, 2.8rem);
  line-height: 1.05;
  letter-spacing: -.035em;
}

.pp-process--compact-editorial .pp-process p {
  max-width: 48ch;
  margin-bottom: 20px;
  font-size: 1rem;
  line-height: 1.6;
}

.pp-process--compact-editorial .pp-text-link {
  width: fit-content;
  min-height: 40px;
  margin-top: auto;
  padding: 8px 0 5px;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
}

/* Eliminate ornamental interface marks that survived in old saved content. */
.pp-icon--arrow,
.pp-text-link > svg,
.button-link > svg,
.pp-news-item > [aria-hidden="true"] {
  display: none !important;
}

.pp-v19-hero__phases,
.pp-v19-hero__scroll-prompt,
.ppps-page-transition > i {
  display: none !important;
}

/* Product evidence is never stretched to simulate resolution. */
.ppps-singular-pp_component .entry-hero__media {
  display: grid;
  min-height: min(72svh, 760px);
  place-items: center;
  padding: clamp(24px, 5vw, 72px);
  background: #eef0f0;
}

.ppps-singular-pp_component .entry-hero__media img {
  width: auto !important;
  height: auto !important;
  max-width: 100%;
  max-height: min(62svh, 680px);
  object-fit: contain;
  transform: none !important;
}

body.ppps-module-component-record .entry-hero__media img,
body.ppps-module-component-category .pp-component-card img,
body.ppps-module-components .pp-component-card img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  transform: none !important;
}

/* Long numeric proofs must stay inside their own measured column. */
.metrics-grid,
.pp-metrics {
  min-width: 0;
}

.metrics-grid > article,
.pp-metric {
  min-width: 0;
  container-type: inline-size;
}

.metrics-grid strong,
.pp-metric__value {
  display: block;
  max-width: 100%;
  overflow: hidden;
  font-size: clamp(2.25rem, 18cqi, 6.5rem) !important;
  font-variant-numeric: tabular-nums;
  line-height: .92 !important;
  letter-spacing: -.055em !important;
  white-space: nowrap;
}

@supports not (font-size: 1cqi) {
  .metrics-grid strong,
  .pp-metric__value {
    font-size: clamp(2.25rem, 5vw, 5.75rem) !important;
  }
}

.component-dossier {
  align-items: start;
  gap: clamp(38px, 6vw, 84px);
}

.component-dossier__route {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--ppps-light-line);
}

.component-dossier__route article {
  padding: 24px 0;
  border-bottom: 1px solid var(--ppps-light-line);
}

.component-dossier__route h3 {
  max-width: 28ch;
  margin: 8px 0 0;
  font-size: clamp(1.35rem, 2vw, 2rem);
  line-height: 1.15;
}

/* Logos stay independent of headlines and use their full transparent canvas. */
.pp-customer-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.pp-customer {
  min-height: 210px;
  align-content: center;
  padding: clamp(20px, 2.4vw, 36px);
  isolation: isolate;
}

.pp-factory-world-homepage :is(
  .journey-media,
  .material-bridge,
  .proof-card,
  .logo-row figure,
  .quality-room,
  .quality-grid article,
  .certificate-row a,
  .programme-card,
  .advanced-grid img,
  .csr-grid article,
  .journey-panel,
  .plant-record
) {
  border-radius: 4px !important;
}

.pp-customer figure {
  display: grid;
  width: 100%;
  height: 90px;
  margin: 0 0 24px;
  place-items: center start;
  overflow: hidden;
}

.pp-customer figure img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 180px;
  max-height: 90px;
  object-fit: contain;
  object-position: left center;
}

.pp-customer h3 {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 1rem;
  line-height: 1.25;
}

/* Awards and certificates retain their source aspect ratios. */
.pp-award {
  height: auto;
  min-height: 610px;
}

.pp-award figure,
.ppps-singular-pp_news .entry-hero__media,
.ppps-singular-pp_award .entry-hero__media,
.ppps-singular-pp_document .entry-hero__media {
  overflow: hidden;
  background: #fff;
}

.pp-award figure :is(img, .pp-award__image),
.ppps-singular-pp_news .entry-hero__media img,
.ppps-singular-pp_award .entry-hero__media img,
.ppps-singular-pp_document .entry-hero__media img {
  width: 100%;
  height: 100%;
  padding: clamp(14px, 2vw, 28px);
  object-fit: contain;
}

.pp-document-grid,
.pp-document-list {
  align-items: stretch;
}

.pp-document :is(figure, .pp-document__preview) {
  overflow: hidden;
}

.pp-document :is(figure, .pp-document__preview) img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* A working form should feel like primary content, not technical footnotes. */
.pp-native-form :is(input:not([type="checkbox"]), select, textarea) {
  font-size: 1rem;
}

.pp-native-form button[type="submit"] {
  border-radius: 4px;
}

@media (max-width: 1100px) {
  .pp-process--compact-editorial .pp-process {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pp-process--compact-editorial .pp-process__stage:nth-child(3n) {
    border-right: 1px solid currentColor;
  }

  .pp-process--compact-editorial .pp-process__stage:nth-child(2n) {
    border-right: 0;
  }

  .pp-customer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .pp-process--compact-editorial .pp-process {
    grid-template-columns: 1fr;
  }

  .pp-process--compact-editorial .pp-process__stage,
  .pp-process--compact-editorial .pp-process__stage:nth-child(2n),
  .pp-process--compact-editorial .pp-process__stage:nth-child(3n) {
    padding: 30px 0;
    border-right: 0;
  }

  .pp-process--compact-editorial .pp-process__number {
    margin-bottom: 24px;
  }

  .pp-customer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pp-customer {
    min-height: 170px;
    padding: 20px;
  }

  .component-dossier {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pp-process--compact-editorial *,
  .pp-customer *,
  .pp-award * {
    animation: none !important;
    transition: none !important;
  }
}

/* Final presentation layer: documentary video always fills its authored frame.
 * Per-route focal positions remain authoritative; only letterboxing and extra
 * video-element zoom are prohibited here. */
body.ppps-page-studio video {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  transform: none !important;
}
