.cabo-hotels-marquee {
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
  padding: 8px 0;
  width: 100%;
}

.cabo-hotels-marquee__row {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  overflow: hidden;
  width: 100%;
}

.cabo-hotels-marquee__track {
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  display: flex;
  width: max-content;
  will-change: transform;
}

.cabo-hotels-marquee:not(.is-ready) .cabo-hotels-marquee__track {
  animation: none;
}

.cabo-hotels-marquee__row--right .cabo-hotels-marquee__track {
  animation-name: cabo-hotels-marquee-right;
}

.cabo-hotels-marquee__row--left .cabo-hotels-marquee__track {
  animation-name: cabo-hotels-marquee-left;
}

.cabo-hotels-marquee__list {
  display: flex;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0 6px;
}

.cabo-hotels-marquee__item {
  display: flex;
  flex: 0 0 auto;
}

.cabo-hotels-marquee__link {
  align-items: center;
  background: var(--cabo-site-white);
  border: 1px solid var(--cabo-site-line);
  border-radius: 999px;
  color: var(--cabo-site-ink);
  display: flex;
  font-size: 13px;
  font-weight: 600;
  gap: 8px;
  padding: 10px 18px;
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease;
  white-space: nowrap;
}

.cabo-hotels-marquee__link:hover,
.cabo-hotels-marquee__link:focus-visible {
  border-color: var(--cabo-site-orange);
  transform: translateY(-2px);
}

.cabo-hotels-marquee__row:has(.cabo-hotels-marquee__link:hover) .cabo-hotels-marquee__track,
.cabo-hotels-marquee__row:has(.cabo-hotels-marquee__link:focus-visible) .cabo-hotels-marquee__track {
  animation-play-state: paused;
}

.cabo-hotels-marquee__icon {
  color: var(--cabo-site-orange);
  flex: 0 0 auto;
  height: 16px;
  width: 16px;
}

@keyframes cabo-hotels-marquee-left {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@keyframes cabo-hotels-marquee-right {
  from { transform: translateX(-50%); }
  to { transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .cabo-hotels-marquee__track {
    animation: none;
  }
}
