/* ---------------------------------------------------------------
 * Products Ticker — homepage only
 * ---------------------------------------------------------------
 * Infinite auto-scrolling row of product-line logos, rendered
 * solid white on a black bar (see views/tickers/content-tickers.1.php).
 *
 * Structure:
 *   #products-ticker
 *     .ticker-track            <- flex row, width: max-content, animated
 *       .ticker-set            <- one full pass of logos
 *       .ticker-set[aria-hidden] <- exact duplicate, for a seamless loop
 *
 * Because both .ticker-set blocks are identical widths, translating
 * .ticker-track by -50% moves exactly one full set out of view while
 * the duplicate set slides in to take its place — the loop point is
 * invisible. This file is auto-enqueued theme-wide by
 * assets/functions/enqueue-theme-assets.php (any *.css in this folder
 * except input.css/output.css gets picked up automatically), but the
 * #products-ticker selector only ever matches markup on the home page.
 * --------------------------------------------------------------- */

.products-ticker {
  width: 100%;
  overflow: hidden;
  background-color: #000;
  border-top: 2px solid #fff;
  border-bottom: 2px solid #fff;
  position: relative;
  z-index: 2;
}

.products-ticker .ticker-track {
  display: flex;
  align-items: center;
  width: -moz-max-content;
  width: max-content;
  animation: products-ticker-scroll 28s linear infinite;
  will-change: transform;
}

.products-ticker .ticker-track:hover {
  animation-play-state: paused;
}

.products-ticker .ticker-set {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.products-ticker .ticker-logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem clamp(1.5rem, 4vw, 3.5rem);
}

.products-ticker .ticker-logo {
  display: block;
  height: 60px;
  width: auto;
  max-width: 220px;
  -o-object-fit: contain;
     object-fit: contain;
  /* Force every uploaded logo to solid white, regardless of its
     original artwork colors, to match the reference ticker style. */
  filter: brightness(0) invert(1);
  opacity: 0.95;
  transition: opacity 0.2s ease;
}

.products-ticker .ticker-logo-item:hover .ticker-logo {
  opacity: 1;
}

@keyframes products-ticker-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media screen and (max-width: 768px) {
  .products-ticker .ticker-logo {
    height: 50px;
    max-width: 180px;
  }
  .products-ticker .ticker-logo-item {
    padding: 2.25rem 1.5rem;
  }
  .products-ticker .ticker-track {
    animation-duration: 18s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .products-ticker .ticker-track {
    animation: none;
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRpY2tlci5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0VBbUJvRTs7QUFFcEU7RUFDRSxXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QiwwQkFBMEI7RUFDMUIsNkJBQTZCO0VBQzdCLGtCQUFrQjtFQUNsQixVQUFVO0FBQ1o7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUFrQjtFQUFsQixrQkFBa0I7RUFDbEIscURBQXFEO0VBQ3JELHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGNBQWM7RUFDZCxZQUFZO0VBQ1osV0FBVztFQUNYLGdCQUFnQjtFQUNoQixzQkFBbUI7S0FBbkIsbUJBQW1CO0VBQ25CO29FQUNrRTtFQUNsRSwrQkFBK0I7RUFDL0IsYUFBYTtFQUNiLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFO0lBQ0Usd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsWUFBWTtJQUNaLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSx1QkFBdUI7RUFDekI7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsZUFBZTtFQUNqQjtBQUNGIiwiZmlsZSI6InRpY2tlci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFByb2R1Y3RzIFRpY2tlciDigJQgaG9tZXBhZ2Ugb25seVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBJbmZpbml0ZSBhdXRvLXNjcm9sbGluZyByb3cgb2YgcHJvZHVjdC1saW5lIGxvZ29zLCByZW5kZXJlZFxuICogc29saWQgd2hpdGUgb24gYSBibGFjayBiYXIgKHNlZSB2aWV3cy90aWNrZXJzL2NvbnRlbnQtdGlja2Vycy4xLnBocCkuXG4gKlxuICogU3RydWN0dXJlOlxuICogICAjcHJvZHVjdHMtdGlja2VyXG4gKiAgICAgLnRpY2tlci10cmFjayAgICAgICAgICAgIDwtIGZsZXggcm93LCB3aWR0aDogbWF4LWNvbnRlbnQsIGFuaW1hdGVkXG4gKiAgICAgICAudGlja2VyLXNldCAgICAgICAgICAgIDwtIG9uZSBmdWxsIHBhc3Mgb2YgbG9nb3NcbiAqICAgICAgIC50aWNrZXItc2V0W2FyaWEtaGlkZGVuXSA8LSBleGFjdCBkdXBsaWNhdGUsIGZvciBhIHNlYW1sZXNzIGxvb3BcbiAqXG4gKiBCZWNhdXNlIGJvdGggLnRpY2tlci1zZXQgYmxvY2tzIGFyZSBpZGVudGljYWwgd2lkdGhzLCB0cmFuc2xhdGluZ1xuICogLnRpY2tlci10cmFjayBieSAtNTAlIG1vdmVzIGV4YWN0bHkgb25lIGZ1bGwgc2V0IG91dCBvZiB2aWV3IHdoaWxlXG4gKiB0aGUgZHVwbGljYXRlIHNldCBzbGlkZXMgaW4gdG8gdGFrZSBpdHMgcGxhY2Ug4oCUIHRoZSBsb29wIHBvaW50IGlzXG4gKiBpbnZpc2libGUuIFRoaXMgZmlsZSBpcyBhdXRvLWVucXVldWVkIHRoZW1lLXdpZGUgYnlcbiAqIGFzc2V0cy9mdW5jdGlvbnMvZW5xdWV1ZS10aGVtZS1hc3NldHMucGhwIChhbnkgKi5jc3MgaW4gdGhpcyBmb2xkZXJcbiAqIGV4Y2VwdCBpbnB1dC5jc3Mvb3V0cHV0LmNzcyBnZXRzIHBpY2tlZCB1cCBhdXRvbWF0aWNhbGx5KSwgYnV0IHRoZVxuICogI3Byb2R1Y3RzLXRpY2tlciBzZWxlY3RvciBvbmx5IGV2ZXIgbWF0Y2hlcyBtYXJrdXAgb24gdGhlIGhvbWUgcGFnZS5cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ucHJvZHVjdHMtdGlja2VyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZmZmO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuXG4ucHJvZHVjdHMtdGlja2VyIC50aWNrZXItdHJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIGFuaW1hdGlvbjogcHJvZHVjdHMtdGlja2VyLXNjcm9sbCAyOHMgbGluZWFyIGluZmluaXRlO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4ucHJvZHVjdHMtdGlja2VyIC50aWNrZXItdHJhY2s6aG92ZXIge1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xufVxuXG4ucHJvZHVjdHMtdGlja2VyIC50aWNrZXItc2V0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5wcm9kdWN0cy10aWNrZXIgLnRpY2tlci1sb2dvLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogM3JlbSBjbGFtcCgxLjVyZW0sIDR2dywgMy41cmVtKTtcbn1cblxuLnByb2R1Y3RzLXRpY2tlciAudGlja2VyLWxvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA2MHB4O1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgLyogRm9yY2UgZXZlcnkgdXBsb2FkZWQgbG9nbyB0byBzb2xpZCB3aGl0ZSwgcmVnYXJkbGVzcyBvZiBpdHNcbiAgICAgb3JpZ2luYWwgYXJ0d29yayBjb2xvcnMsIHRvIG1hdGNoIHRoZSByZWZlcmVuY2UgdGlja2VyIHN0eWxlLiAqL1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO1xuICBvcGFjaXR5OiAwLjk1O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cblxuLnByb2R1Y3RzLXRpY2tlciAudGlja2VyLWxvZ28taXRlbTpob3ZlciAudGlja2VyLWxvZ28ge1xuICBvcGFjaXR5OiAxO1xufVxuXG5Aa2V5ZnJhbWVzIHByb2R1Y3RzLXRpY2tlci1zY3JvbGwge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucHJvZHVjdHMtdGlja2VyIC50aWNrZXItbG9nbyB7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIG1heC13aWR0aDogMTgwcHg7XG4gIH1cbiAgLnByb2R1Y3RzLXRpY2tlciAudGlja2VyLWxvZ28taXRlbSB7XG4gICAgcGFkZGluZzogMi4yNXJlbSAxLjVyZW07XG4gIH1cbiAgLnByb2R1Y3RzLXRpY2tlciAudGlja2VyLXRyYWNrIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDE4cztcbiAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucHJvZHVjdHMtdGlja2VyIC50aWNrZXItdHJhY2sge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuIl19 */