/**
 * Badge Marquee – frontend styles.
 * Loaded only when the widget is on the page (Elementor get_style_depends).
 */

/* =============================================
   Elementor widget wrapper – allow flex shrink
   ============================================= */
.elementor-widget-drunel-badge-marquee {
	flex: 1 1 0% !important;
	min-width: 0 !important;
	width: auto !important;
	margin-bottom: 0 !important;
}

/* =============================================
   Wrapper
   ============================================= */
.drunel-bm {
	position: relative;
	overflow: hidden;
	width: 100%;
	min-width: 0;
}

/* Edge fade mask */
.drunel-bm--fade {
	--drunel-bm-fade: 40px;
	-webkit-mask-image: linear-gradient(
		to right,
		transparent 0,
		#000 var(--drunel-bm-fade),
		#000 calc(100% - var(--drunel-bm-fade)),
		transparent 100%
	);
	mask-image: linear-gradient(
		to right,
		transparent 0,
		#000 var(--drunel-bm-fade),
		#000 calc(100% - var(--drunel-bm-fade)),
		transparent 100%
	);
}

/* =============================================
   Track
   ============================================= */
.drunel-bm__track {
	display: flex;
	align-items: center;
	gap: 10px;
	width: max-content;
	will-change: transform;
}

/* Static mode: wrap normally */
.drunel-bm--static .drunel-bm__track {
	width: 100%;
	flex-wrap: wrap;
	justify-content: center;
}

/* =============================================
   Badge
   ============================================= */
.drunel-bm__badge {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	font-size: 13px;
	line-height: 1;
	border: 1px solid #e0e0e0;
	border-style: solid;
	background-color: #f5f5f5;
	color: #333;
	transition: opacity 0.2s ease, filter 0.2s ease;
	cursor: default;
	flex-shrink: 0;
	user-select: none;
	-webkit-user-select: none;
}

/* Linked badges */
.drunel-bm a {
	color: inherit;
	text-decoration: none;
	flex-shrink: 0;
}

.drunel-bm a:hover .drunel-bm__badge {
	filter: brightness(0.92);
}

/* =============================================
   Icon
   ============================================= */
.drunel-bm__icon {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	line-height: 1;
}

.drunel-bm__icon svg {
	fill: currentColor;
}

/* =============================================
   Count
   ============================================= */
.drunel-bm__count {
	margin-left: 4px;
	opacity: 0.65;
	font-size: 0.9em;
}

/* =============================================
   Separator
   ============================================= */
.drunel-bm__sep {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	line-height: 1;
	user-select: none;
	-webkit-user-select: none;
}

/* =============================================
   Auto-scroll animation (CSS-driven via JS)
   ============================================= */
.drunel-bm--animating .drunel-bm__track {
	animation: drunel-bm-scroll var(--drunel-bm-duration, 20s) linear infinite;
}

.drunel-bm--animating.drunel-bm--rtl .drunel-bm__track {
	animation-name: drunel-bm-scroll-rtl;
}

/* Pause on hover / touch */
.drunel-bm--paused .drunel-bm__track {
	animation-play-state: paused;
}

@keyframes drunel-bm-scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@keyframes drunel-bm-scroll-rtl {
	0% {
		transform: translateX(-50%);
	}
	100% {
		transform: translateX(0);
	}
}

/* =============================================
   Manual drag mode
   ============================================= */
.drunel-bm--draggable {
	cursor: grab;
}

.drunel-bm--dragging {
	cursor: grabbing;
}

.drunel-bm--dragging .drunel-bm__track {
	transition: none !important;
}

/* =============================================
   Reduced motion
   ============================================= */
@media (prefers-reduced-motion: reduce) {
	.drunel-bm--respect-motion .drunel-bm__track {
		animation: none !important;
		transform: none !important;
	}

	.drunel-bm--respect-motion .drunel-bm__track {
		flex-wrap: wrap;
		width: 100%;
		justify-content: center;
	}
}
