/** Shopify CDN: Minification failed

Line 293:1 Expected "}" to go with "{"

**/
/* ============================================================
   Modulo Logo Cloud — infinite scrolling wordmark / image strip
   RTL-aware, pause-on-hover, optional shadow + edge fade.
   ============================================================ */

/* ─── Layer 1: section root ─────────────────────────────── */
.modulo-lc {
  background: var(--modulo-lc-bg, #ffffff);
  padding:
    var(--modulo-lc-pad-top, 48px)
    var(--modulo-section-padding-x, 24px)
    var(--modulo-lc-pad-bottom, 48px);
  font-family: inherit;
  box-sizing: border-box;
}

.modulo-lc--width-boxed {
  max-width: var(--modulo-section-max-width, 1200px);
  margin-inline: auto;
  margin-top: clamp(16px, 3vw, 32px);
  margin-bottom: clamp(16px, 3vw, 32px);
  border-radius: var(--modulo-lc-outer-radius, 24px);
  overflow: hidden;
}

@media (max-width: 860px) {
  .modulo-lc--width-boxed {
    margin-inline: 16px;
    max-width: calc(100% - 32px);
  }
}

.modulo-section__container--full {
  max-width: none;
  padding: 0;
}

/* ─── Layer 2: header ───────────────────────────────────── */
.modulo-lc__header {
  max-width: 720px;
  margin: 0 auto clamp(20px, 3vw, 32px);
}

.modulo-lc--align-left .modulo-lc__header {
  margin-inline: 0;
  text-align: left;
}

.modulo-lc--align-center .modulo-lc__header {
  text-align: center;
}

.modulo-lc__heading {
  margin: 0;
  font-size: var(--modulo-lc-heading-size, 14px);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--modulo-lc-heading-color, #1A1A2E);
  opacity: var(--modulo-lc-heading-opacity, 0.65);
  line-height: 1.4;
}

/* ─── Layer 3: slider strip ─────────────────────────────── */
.modulo-lc__slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--modulo-lc-slider-bg, transparent);
  padding: var(--modulo-lc-slider-pad, 32px) 0;
  border-radius: var(--modulo-lc-slider-radius, 0);
  /* Soft edge fade so logos don't pop in at the borders */
  mask-image: linear-gradient(
    to right,
    transparent 0,
    #000 var(--modulo-lc-edge-fade, 80px),
    #000 calc(100% - var(--modulo-lc-edge-fade, 80px)),
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0,
    #000 var(--modulo-lc-edge-fade, 80px),
    #000 calc(100% - var(--modulo-lc-edge-fade, 80px)),
    transparent 100%
  );
}

.modulo-lc--shadow .modulo-lc__slider {
  box-shadow:
    0 10px 30px -15px rgba(0, 0, 0, 0.15),
    inset 0 0 0 1px rgba(0, 0, 0, 0.04);
}

/* ─── Layer 4: track (the animated container) ───────────── */
.modulo-lc__track {
  display: flex;
  align-items: center;
  gap: var(--modulo-lc-logo-gap, 72px);
  width: max-content;
  flex-shrink: 0;
  will-change: transform;
}

/* Animation distance = one full cycle (set by JS as --modulo-lc-cycle-width).
   The animation only attaches once JS has measured — avoids a jumpy first
   frame when the cycle width is still unknown. */
.modulo-lc--dir-left .modulo-lc__track[data-modulo-lc-ready="1"] {
  animation: modulo-lc-scroll-left var(--modulo-lc-speed, 30s) linear infinite;
}

.modulo-lc--dir-right .modulo-lc__track[data-modulo-lc-ready="1"] {
  animation: modulo-lc-scroll-right var(--modulo-lc-speed, 30s) linear infinite;
}

@keyframes modulo-lc-scroll-left {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(calc(-1 * var(--modulo-lc-cycle-width, 0px)), 0, 0); }
}

@keyframes modulo-lc-scroll-right {
  from { transform: translate3d(calc(-1 * var(--modulo-lc-cycle-width, 0px)), 0, 0); }
  to   { transform: translate3d(0, 0, 0); }
}

/* RTL auto-reverse — unless the merchant explicitly set a direction
   that already matches the RTL reading order, flip the animation */
html[dir="rtl"] .modulo-lc--dir-left .modulo-lc__track  { animation-name: modulo-lc-scroll-right; }
html[dir="rtl"] .modulo-lc--dir-right .modulo-lc__track { animation-name: modulo-lc-scroll-left; }

/* Pause on hover (CSS-only — no JS listeners needed) */
.modulo-lc--pausable .modulo-lc__slider:hover .modulo-lc__track,
.modulo-lc--pausable .modulo-lc__slider:focus-within .modulo-lc__track {
  animation-play-state: paused;
}

/* ─── Layer 5: item + logo ──────────────────────────────── */
.modulo-lc__item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--modulo-lc-logo-height, 48px);
}

.modulo-lc__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  text-decoration: none;
  border-radius: 6px;
  outline-offset: 4px;
}

.modulo-lc__link:focus-visible {
  outline: 2px solid var(--modulo-lc-logo-color, #1A1A2E);
}

.modulo-lc__img {
  display: block;
  width: auto;
  height: var(--modulo-lc-logo-height, 48px);
  max-height: 100%;
  object-fit: contain;
}

.modulo-lc--grayscale .modulo-lc__img {
  filter: grayscale(100%);
  transition: filter 250ms ease;
}

.modulo-lc--grayscale .modulo-lc__item:hover .modulo-lc__img {
  filter: grayscale(0%);
}

/* Wordmark placeholder — typographic fallback when no image.
   Per-block font_family modifier creates visual variety across wordmarks
   (real press strips look credible because every masthead is typographically
   distinct — Vogue serif, ELLE sans, Cosmo italic, etc.). */
.modulo-lc__wordmark {
  display: inline-flex;
  align-items: center;
  padding: 0 0.15em;
  font-family: inherit;
  font-size: calc(var(--modulo-lc-logo-height, 48px) * 0.5);
  font-weight: 700;
  letter-spacing: 0;
  color: var(--modulo-lc-logo-color, #1A1A2E);
  line-height: 1;
  white-space: nowrap;
}
/* Display serif — Vogue / NYT vibe (high-contrast, heavy serif) */
.modulo-lc__wordmark--display-serif {
  font-family: "Instrument Serif", "Playfair Display", "Iowan Old Style", "Palatino", Georgia, serif;
  font-weight: 900;
  letter-spacing: 0.01em;
  font-size: calc(var(--modulo-lc-logo-height, 48px) * 0.55);
}
/* Bold sans — ELLE vibe (heavy geometric sans) */
.modulo-lc__wordmark--bold-sans {
  font-family: inherit;
  font-weight: 800;
  letter-spacing: 0.06em;
}
/* Tracked sans — ALLURE vibe (medium weight, wide letter-spacing, uppercase) */
.modulo-lc__wordmark--tracked-sans {
  font-family: inherit;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: calc(var(--modulo-lc-logo-height, 48px) * 0.42);
}
/* Italic serif — Glamour / Cosmopolitan vibe */
.modulo-lc__wordmark--italic-serif {
  font-family: "Instrument Serif", "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.01em;
  font-size: calc(var(--modulo-lc-logo-height, 48px) * 0.58);
}
/* Condensed sans — byrdie / Refinery29 vibe (tight tracking) */
.modulo-lc__wordmark--condensed-sans {
  font-family: inherit;
  font-weight: 700;
  letter-spacing: -0.025em;
  font-size: calc(var(--modulo-lc-logo-height, 48px) * 0.55);
}
/* Wide tracked serif — GOOP vibe (wide letter-spacing, uppercase, smaller) */
.modulo-lc__wordmark--wide-serif {
  font-family: "Instrument Serif", "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  font-weight: 400;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  font-size: calc(var(--modulo-lc-logo-height, 48px) * 0.36);
}
/* Slab serif — Forbes vibe (heavier, slabby) */
.modulo-lc__wordmark--slab-serif {
  font-family: "DM Serif Display", "Iowan Old Style", "Times New Roman", "Georgia", serif;
  font-weight: 700;
  letter-spacing: 0.01em;
  font-size: calc(var(--modulo-lc-logo-height, 48px) * 0.52);
}

.modulo-lc--grayscale .modulo-lc__wordmark {
  opacity: 0.7;
  transition: opacity 250ms ease;
}

.modulo-lc--grayscale .modulo-lc__item:hover .modulo-lc__wordmark {
  opacity: 1;
}

/* ─── Mobile (≤860px) ───────────────────────────────────── */
@media (max-width: 860px) {
  .modulo-lc__slider {
    --modulo-lc-edge-fade: 48px;
  }
  .modulo-lc__track {
    gap: calc(var(--modulo-lc-logo-gap, 72px) * 0.7);
  }
}

/* ─── Phone (≤480px) ────────────────────────────────────── */
@media (max-width: 480px) {
  .modulo-lc {
    padding-left: 16px;
    padding-right: 16px;
  }
  .modulo-lc__slider {
    --modulo-lc-edge-fade: 32px;
  }
}

/* ─── Reduced motion ────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .modulo-lc__track {
    animation-play-state: paused !important;
  }
  .modulo-lc__img,
  .modulo-lc__wordmark {
    transition: none !important;
  }
.modulo-lc__item:not(:last-child)::after {
  content: "•" !important;
  margin: 0 16px !important;
  opacity: 0.8;
}