.bosque-marquee {
    --bosque-marquee-speed: 35s;
    position: relative;
    width: 100%;
    overflow: hidden;
    box-sizing: border-box;
}

.bosque-marquee,
.bosque-marquee * {
    box-sizing: border-box;
}

.bosque-marquee__viewport {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.bosque-marquee__track {
    display: flex;
    width: max-content;
    will-change: transform;
    animation-name: bosque-marquee-left;
    animation-duration: var(--bosque-marquee-speed);
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

.bosque-marquee[data-direction="right"] .bosque-marquee__track {
    animation-name: bosque-marquee-right;
}

.bosque-marquee.is-paused .bosque-marquee__track,
.bosque-marquee[data-pause-on-hover="yes"]:hover .bosque-marquee__track {
    animation-play-state: paused;
}

.bosque-marquee__group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    white-space: nowrap;
    list-style: none;
    margin: 0;
    padding: 0;
}

.bosque-marquee__item {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    white-space: nowrap;
    margin: 0;
    padding: 0;
}


.bosque-marquee__item-inner {
    display: inline-flex;
    align-items: center;
    gap: inherit;
}

.bosque-marquee__item p {
    margin: 0;
}

.bosque-marquee__item a {
    color: inherit;
    text-decoration: none;
}

.bosque-marquee__item img,
.bosque-marquee__item svg {
    display: inline-block;
    max-width: none;
    flex: 0 0 auto;
    vertical-align: middle;
}

.bosque-marquee__item svg {
    fill: currentColor;
}

.bosque-marquee__separator {
    display: inline-block;
}

.bosque-marquee--fade .bosque-marquee__viewport {
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
}

@keyframes bosque-marquee-left {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-50%, 0, 0); }
}

@keyframes bosque-marquee-right {
    from { transform: translate3d(-50%, 0, 0); }
    to { transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .bosque-marquee__track {
        animation-duration: 120s;
    }
}

.bosque-marquee__item-inner {
    color: inherit;
    text-decoration: none;
}

.bosque-marquee__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex: 0 0 auto;
}

.bosque-marquee__icon svg,
.bosque-marquee__icon i {
    display: block;
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.bosque-marquee__content {
    display: inline-flex;
    align-items: center;
    gap: inherit;
}
