/* Sponsor Manager: scoped styles to avoid conflicts with Elementor and the theme. */
.ttvsm, .ttvsm * { box-sizing: border-box; }
.ttvsm { --ttvsm-gap: 18px; --ttvsm-visible: var(--ttvsm-cols, 4); position: relative; width: 100%; max-width: 100%; min-width: 0; }
.ttvsm__grid, .ttvsm__track { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.ttvsm__grid { display: grid; grid-template-columns: repeat(var(--ttvsm-cols, 4), minmax(0, 1fr)); gap: var(--ttvsm-gap); }
.ttvsm__item { list-style: none !important; margin: 0 !important; padding: 0 !important; min-width: 0; }
.ttvsm__item::marker { content: ''; }
.ttvsm__card { color: inherit; text-decoration: none !important; display: flex; flex-direction: column; align-items: stretch; min-height: 100%; padding: 18px; border: 1px solid #e8e9ed; border-radius: 10px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.ttvsm a.ttvsm__card:hover, .ttvsm a.ttvsm__card:focus-visible { color: inherit; text-decoration: none; border-color: #b9c6d6; box-shadow: 0 8px 24px rgba(0,0,0,.07); transform: translateY(-2px); }
.ttvsm a.ttvsm__card:focus-visible, .ttvsm__nav:focus-visible, .ttvsm__dot:focus-visible { outline: 2px solid #a70d24; outline-offset: 3px; }
.ttvsm__logo { height: var(--ttvsm-logo-height, 140px); min-width: 0; width: 100%; display: flex; align-items: center; justify-content: center; }
.ttvsm__logo img { display: block; width: auto; height: auto; max-width: 100%; max-height: calc(var(--ttvsm-logo-height, 140px) - 10px); object-fit: contain; }
.ttvsm__missing-logo { color: #333; font-size: 1rem; font-weight: 600; text-align: center; }
.ttvsm__body { text-align: center; margin-top: 12px; }
.ttvsm__title { display: block; color: #242424; font-size: 1rem; font-weight: 600; line-height: 1.35; }
.ttvsm__description { display: block; color: #626773; font-size: .875rem; line-height: 1.5; margin-top: 6px; overflow-wrap: anywhere; }

/* Lightweight responsive, swipe-enabled slider: no jQuery or external carousel library. */
.ttvsm--carousel { --ttvsm-gap: 20px; --ttvsm-visible: 1; }
.ttvsm--carousel .ttvsm__viewport { overflow: hidden; max-width: 100%; width: 100%; min-width: 0; touch-action: pan-y pinch-zoom; }
.ttvsm--carousel ul.ttvsm__track { display: flex !important; width: 100%; min-width: 0; align-items: stretch; gap: var(--ttvsm-gap); transform: translate3d(0,0,0); will-change: transform; }
.ttvsm--carousel .ttvsm__item { display: block; flex: 0 0 calc((100% - (var(--ttvsm-visible) - 1) * var(--ttvsm-gap)) / var(--ttvsm-visible)); }
.ttvsm--carousel .ttvsm__card { width: 100%; border: 0; border-radius: 0; background: transparent; padding: 8px 6px; min-height: 100%; justify-content: center; box-shadow: none; }
.ttvsm--carousel a.ttvsm__card:hover, .ttvsm--carousel a.ttvsm__card:focus-visible { border: 0; box-shadow: none; transform: none; }
.ttvsm--carousel a.ttvsm__card:hover .ttvsm__logo img { filter: saturate(1.1); }
.ttvsm--carousel .ttvsm__logo { height: var(--ttvsm-logo-height, 100px); }
.ttvsm--carousel .ttvsm__logo img { max-height: calc(var(--ttvsm-logo-height, 100px) - 8px); }
.ttvsm--carousel .ttvsm__body { margin-top: 6px; }
/* Minimal neutral chevrons: no tinted circles, backgrounds or shadows. */
.ttvsm--carousel.ttvsm--has-arrows .ttvsm__viewport { padding-inline: min(42px, 19%); }
.ttvsm--carousel button.ttvsm__nav,
.ttvsm--carousel button.ttvsm__nav:hover,
.ttvsm--carousel button.ttvsm__nav:active,
.ttvsm--carousel button.ttvsm__nav:focus {
  appearance: none;
  -webkit-appearance: none;
  position: absolute;
  z-index: 2;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 44px;
  min-width: 42px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  background: transparent;
  background-image: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: #999da3;
  font: inherit;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: color .18s ease;
}
.ttvsm--carousel button.ttvsm__nav--prev { left: 0; }
.ttvsm--carousel button.ttvsm__nav--next { right: 0; }
.ttvsm--carousel button.ttvsm__nav svg { display: block; width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.7; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.ttvsm--carousel button.ttvsm__nav:hover,
.ttvsm--carousel button.ttvsm__nav:active { color: #60656b; }
.ttvsm--carousel button.ttvsm__nav:focus { outline: none; }
.ttvsm--carousel button.ttvsm__nav:focus-visible { color: #60656b; outline: 2px solid #aeb2b7; outline-offset: -3px; }
.ttvsm__nav[hidden], .ttvsm__dots[hidden] { display: none !important; }
.ttvsm__nav:disabled { opacity: .35; cursor: default; }
.ttvsm__dots { display: flex; gap: 8px; align-items: center; justify-content: center; margin: 12px 0 0; }
.ttvsm__dot { width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; background: #d2d2d2; cursor: pointer; }
.ttvsm__dot[aria-current="true"] { background: #a70d24; }
.ttvsm--static .ttvsm__viewport { touch-action: auto; }

@media (max-width: 1024px) {
  .ttvsm--grid { --ttvsm-gap: 16px; }
  .ttvsm__grid { grid-template-columns: repeat(var(--ttvsm-tablet-cols, 3), minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ttvsm--grid { --ttvsm-gap: 12px; }
  .ttvsm__grid { grid-template-columns: repeat(var(--ttvsm-mobile-cols, 2), minmax(0, 1fr)); }
  .ttvsm--grid .ttvsm__card { padding: 12px; }
  .ttvsm--carousel.ttvsm--has-arrows .ttvsm__viewport { padding-inline: min(38px, 19%); }
  .ttvsm--carousel button.ttvsm__nav, .ttvsm--carousel button.ttvsm__nav:hover, .ttvsm--carousel button.ttvsm__nav:active, .ttvsm--carousel button.ttvsm__nav:focus { width: 38px; min-width: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .ttvsm__card { transition: none; }
  .ttvsm--carousel .ttvsm__track { transition: none !important; }
}
