/* FRB Categories Slider */

.frb-cs {
	--frb-cs-slides-desktop: 6;
	--frb-cs-slides-tablet: 4;
	--frb-cs-slides-mobile: 3;
	--frb-cs-gap: 16px;
	--frb-cs-image-size: 120px;
	--frb-cs-border-color: #d4d4d4;
	--frb-cs-border-hover: #c9a227;
	--frb-cs-name-color: #333;
	--frb-cs-arrow-color: #333;
	--frb-cs-dot-color: #ccc;
	--frb-cs-dot-active: #c9a227;
	--frb-cs-arrow-hover-y: 0;
	--frb-cs-arrow-hover-scale: 1;
	--frb-cs-arrows-gap: 8px;
	--frb-cs-arrows-distance: 12px;
	--frb-cs-arrow-long-width: 52px;
	--frb-cs-arrow-long-height: 22px;

	position: relative;
	width: 100%;
}

.frb-cs__title {
	margin: 0 0 1.25rem;
	font-size: 1.5rem;
	line-height: 1.2;
	text-align: center;
	color: #111;
}

.frb-cs--no-title .frb-cs__title {
	display: none;
}

.frb-cs__viewport {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
}

/* Arrow group (top / bottom) */

.frb-cs__arrows {
	display: none;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--frb-cs-arrows-gap);
	width: 100%;
}

.frb-cs--arrows-top .frb-cs__arrows,
.frb-cs--arrows-bottom .frb-cs__arrows {
	display: flex;
}

.frb-cs--arrows-top .frb-cs__arrows {
	justify-content: flex-start;
	margin-bottom: var(--frb-cs-arrows-distance);
}

.frb-cs--arrows-bottom .frb-cs__arrows {
	justify-content: flex-start;
	margin-top: var(--frb-cs-arrows-distance);
}

.frb-cs--arrows-align-left.frb-cs--arrows-top .frb-cs__arrows,
.frb-cs--arrows-align-left.frb-cs--arrows-bottom .frb-cs__arrows {
	justify-content: flex-start;
}

.frb-cs--arrows-align-center.frb-cs--arrows-top .frb-cs__arrows,
.frb-cs--arrows-align-center.frb-cs--arrows-bottom .frb-cs__arrows {
	justify-content: center;
}

.frb-cs--arrows-align-right.frb-cs--arrows-top .frb-cs__arrows,
.frb-cs--arrows-align-right.frb-cs--arrows-bottom .frb-cs__arrows {
	justify-content: flex-end;
}

/* Top/bottom: track full width, no lateral arrows */

.frb-cs--arrows-top .frb-cs__viewport,
.frb-cs--arrows-bottom .frb-cs__viewport {
	gap: 0;
}

.frb-cs--arrows-top .frb-cs__track,
.frb-cs--arrows-bottom .frb-cs__track {
	width: 100%;
}

.frb-cs__track {
	flex: 1;
	display: flex;
	flex-wrap: nowrap;
	flex-direction: row;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	scroll-padding-inline: 2px;
	box-sizing: border-box;
}

.frb-cs__track::-webkit-scrollbar {
	display: none;
}

.frb-cs__slides {
	display: flex;
	flex-wrap: nowrap;
	flex-direction: row;
	flex: 0 0 auto;
	gap: var(--frb-cs-gap);
	padding: 0.25rem 0;
}

.frb-cs__slide {
	flex: 0 0 auto;
	flex-basis: calc((100% - (var(--frb-cs-gap) * (var(--frb-cs-slides-visible) - 1))) / var(--frb-cs-slides-visible));
	max-width: calc((100% - (var(--frb-cs-gap) * (var(--frb-cs-slides-visible) - 1))) / var(--frb-cs-slides-visible));
	scroll-snap-align: start;
	min-width: 0;
}

/* Elementor editor / preview: keep horizontal layout before JS runs */
.elementor-editor-active .frb-cs__viewport,
.elementor-page .frb-cs__viewport,
.elementor-widget-frb_categories_slider .frb-cs__viewport {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
}

.elementor-editor-active .frb-cs--arrows-top .frb-cs__arrows,
.elementor-page .frb-cs--arrows-top .frb-cs__arrows,
.elementor-widget-frb_categories_slider .frb-cs--arrows-top .frb-cs__arrows,
.elementor-editor-active .frb-cs--arrows-bottom .frb-cs__arrows,
.elementor-page .frb-cs--arrows-bottom .frb-cs__arrows,
.elementor-widget-frb_categories_slider .frb-cs--arrows-bottom .frb-cs__arrows {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
}

.elementor-editor-active .frb-cs__track,
.elementor-page .frb-cs__track,
.elementor-widget-frb_categories_slider .frb-cs__track {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
}

.elementor-editor-active .frb-cs__slides,
.elementor-page .frb-cs__slides,
.elementor-widget-frb_categories_slider .frb-cs__slides {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
}

.elementor-editor-active .frb-cs__slide,
.elementor-page .frb-cs__slide,
.elementor-widget-frb_categories_slider .frb-cs__slide {
	flex: 0 0 auto !important;
}

.elementor-editor-active .frb-cs__arrow,
.elementor-page .frb-cs__arrow,
.elementor-widget-frb_categories_slider .frb-cs__arrow {
	flex-shrink: 0 !important;
}

.frb-cs {
	--frb-cs-slides-visible: var(--frb-cs-slides-mobile);
}

@media (min-width: 768px) {
	.frb-cs {
		--frb-cs-slides-visible: var(--frb-cs-slides-tablet);
	}
}

@media (min-width: 1025px) {
	.frb-cs {
		--frb-cs-slides-visible: var(--frb-cs-slides-desktop);
	}
}

.frb-cs__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	text-decoration: none;
	color: inherit;
	outline: none;
}

.frb-cs__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--frb-cs-image-size);
	height: var(--frb-cs-image-size);
	border: 2px solid var(--frb-cs-border-color);
	background: #fff;
	overflow: hidden;
	border-radius: 12px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.frb-cs--circle .frb-cs__media {
	border-radius: 50%;
}

.frb-cs__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.frb-cs__item:hover .frb-cs__media,
.frb-cs__item:focus-visible .frb-cs__media {
	border-color: var(--frb-cs-border-hover);
	box-shadow: 0 4px 16px rgba(201, 162, 39, 0.25);
}

.frb-cs__name {
	display: block;
	max-width: 100%;
	font-size: 0.875rem;
	line-height: 1.3;
	text-align: center;
	color: var(--frb-cs-name-color);
	transition: color 0.2s ease;
}

.frb-cs__item:hover .frb-cs__name,
.frb-cs__item:focus-visible .frb-cs__name {
	color: var(--frb-cs-border-hover);
}

.frb-cs--no-name .frb-cs__name {
	display: none;
}

/* Arrows */

.frb-cs__arrow {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 2.5rem;
	height: 2.5rem;
	min-width: 2.5rem;
	min-height: 2.5rem;
	margin: 0;
	padding: 0;
	border: 1px solid var(--frb-cs-border-color);
	border-radius: 50%;
	background: #fff;
	color: var(--frb-cs-arrow-color, #333);
	cursor: pointer;
	line-height: 1;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		border-color 0.25s ease,
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.frb-cs__arrow-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	line-height: 1;
}

.frb-cs__arrow:not(.frb-cs__arrow--long) svg,
.frb-cs__arrow-icon:not(.frb-cs__arrow-icon--long) svg,
.frb-cs__arrow:not(.frb-cs__arrow--long) i,
.frb-cs__arrow-icon:not(.frb-cs__arrow-icon--long) i {
	width: 1em;
	height: 1em;
	display: block;
}

/* Long elegant arrow — larger SVG, centered in button */
.frb-cs--arrow-icon-long .frb-cs__arrow.frb-cs__arrow--long {
	width: auto;
	min-width: 3.5rem;
	min-height: 3rem;
	padding: 0.45rem 0.6rem;
}

.frb-cs--arrow-icon-long {
	--frb-cs-arrow-long-height: calc(var(--frb-cs-arrow-long-width, 52px) * 22 / 52);
}

.frb-cs__arrow--long svg,
.frb-cs__arrow--long .frb-cs__arrow-long-svg {
	width: var(--frb-cs-arrow-long-width, 52px);
	height: var(--frb-cs-arrow-long-height, 22px);
	max-width: 100%;
	display: block;
	flex-shrink: 0;
}

.frb-cs__arrow:hover,
.frb-cs__arrow:focus-visible {
	transform: translateY(var(--frb-cs-arrow-hover-y, 0)) scale(var(--frb-cs-arrow-hover-scale, 1));
}

.frb-cs__arrow:disabled {
	opacity: 0.35;
	cursor: not-allowed;
	pointer-events: none;
}

.frb-cs--no-arrows .frb-cs__arrow,
.frb-cs--no-arrows .frb-cs__arrows {
	display: none;
}

.frb-cs--no-scrollable .frb-cs__dots {
	display: none;
}

.frb-cs--no-scrollable .frb-cs__arrow {
	pointer-events: none;
	opacity: 0.35;
}

/* Arrow shapes */

.frb-cs--arrows-square .frb-cs__arrow {
	border-radius: 4px;
}

.frb-cs--arrows-rectangle .frb-cs__arrow {
	width: 2.75rem;
	height: 2.25rem;
	min-width: 2.75rem;
	min-height: 2.25rem;
	border-radius: 6px;
}

.frb-cs--arrows-long .frb-cs__arrow {
	width: 3.25rem;
	height: 2.125rem;
	min-width: 3.25rem;
	min-height: 2.125rem;
	border-radius: 6px;
}

.frb-cs--arrows-circle .frb-cs__arrow {
	border-radius: 50%;
}

/* Dots */

.frb-cs__dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1rem;
}

.frb-cs--no-dots .frb-cs__dots {
	display: none;
}

.frb-cs__dot {
	width: 8px;
	height: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--frb-cs-dot-color);
	cursor: pointer;
	transition: transform 0.2s ease, background 0.2s ease;
}

.frb-cs__dot.is-active {
	background: var(--frb-cs-dot-active);
	transform: scale(1.2);
}

.frb-cs__dot:hover,
.frb-cs__dot:focus-visible {
	background: var(--frb-cs-dot-active);
}
