/* Shared logo treatment for the original homepage and every review concept.
   Map each PNG's measured ink level to #8c8c8c and retain its white background.
   Linear mappings preserve soft edges without thresholding the raster artwork. */
:root {
  --partner-logo-gray: calc(140 / 255);
  --partner-logo-source: 0;
}

.partners-logos,
.client-logos {
  opacity: 1;
}

.partners-logos img,
.client-logos img {
  --partner-logo-slope: calc((1 - var(--partner-logo-gray)) / (1 - var(--partner-logo-source)));
  filter: grayscale(1) contrast(calc(var(--partner-logo-slope) / (2 - var(--partner-logo-slope)))) brightness(calc(2 - var(--partner-logo-slope)));
}

/* Source ink measurements; layouts share the target gray above. */
img[src$="/partners/cog.png"] { --partner-logo-source: calc(20 / 255); }
img[src$="/partners/das.png"] { --partner-logo-source: calc(33 / 255); }
img[src$="/partners/kia.png"] { --partner-logo-source: calc(28 / 255); }
img[src$="/partners/oces.png"] { --partner-logo-source: calc(17 / 255); }
img[src$="/partners/sangwha.png"] { --partner-logo-source: calc(88 / 255); }
img[src$="/partners/tium.png"] { --partner-logo-source: calc(83 / 255); }
img[src$="/partners/innosimulation.png"] {
  --partner-logo-source: calc(154 / 255);
  /* Darkening needs the inverse order so white is not clipped between filters. */
  filter: grayscale(1) brightness(calc(var(--partner-logo-slope) / (2 * var(--partner-logo-slope) - 1))) contrast(calc(2 * var(--partner-logo-slope) - 1));
}
