/* =========================================================
   ROK CLIENTS LOGO
   ========================================================= */

.rok-clients-logo {
	--rok-clients-logo-gap: 60px;
	--rok-clients-logo-slide-width: 180px;
	--rok-clients-logo-width: 140px;
	--rok-clients-logo-height: 80px;
	--rok-clients-logo-opacity: 0.65;
	--rok-clients-logo-grayscale: 100%;
	--rok-clients-logo-hover-opacity: 1;
	--rok-clients-logo-hover-grayscale: 0%;
	--rok-clients-logo-hover-scale: 1;

	position: relative;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.rok-clients-logo *,
.rok-clients-logo *::before,
.rok-clients-logo *::after {
	box-sizing: border-box;
}


/* =========================================================
   HEADER
   ========================================================= */

.rok-clients-logo-header {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0 0 35px;
	padding: 0;
}

.rok-clients-logo-eyebrow {
	display: block;
	width: 100%;
	margin: 0 0 12px;
	padding: 0;

	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rok-clients-logo-heading {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0 0 12px;
	padding: 0;

	font-size: 40px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.rok-clients-logo-description {
	display: block;
	width: 100%;
	max-width: 700px;
	margin: 0;
	padding: 0;

	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
}


/* =========================================================
   GRID
   ========================================================= */

.rok-clients-logo-grid {
	display: grid;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;

	grid-template-columns: repeat(
		var(--rok-clients-logo-columns, 4),
		minmax(0, 1fr)
	);

	gap: var(--rok-clients-logo-gap, 40px);
}

.rok-clients-logo-grid .rok-clients-logo-slide {
	width: 100%;
	min-width: 0;
}

.rok-clients-logo-grid .rok-clients-logo-item {
	width: 100%;
}


/* =========================================================
   SLIDER / MARQUEE
   ========================================================= */

.rok-clients-logo-slider {
	position: relative;
	display: block;

	width: 100%;
	max-width: 100%;

	margin: 0;
	padding: 10px 0;

	overflow: hidden;
}

.rok-clients-logo-track {
	display: flex;
	align-items: center;
	justify-content: flex-start;

	width: max-content;
	max-width: none;

	margin: 0;
	padding: 0;

	gap: var(--rok-clients-logo-gap, 60px);

	flex-wrap: nowrap;

	will-change: transform;

	transform: translate3d(0, 0, 0);

	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.rok-clients-logo-slider .rok-clients-logo-slide {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 var(--rok-clients-logo-slide-width, 180px);

	width: var(--rok-clients-logo-slide-width, 180px);
	min-width: var(--rok-clients-logo-slide-width, 180px);
	max-width: var(--rok-clients-logo-slide-width, 180px);

	margin: 0;
	padding: 0;
}

.rok-clients-logo-slider .rok-clients-logo-slide,
.rok-clients-logo-slider .rok-clients-logo-item,
.rok-clients-logo-slider .rok-clients-logo-item a {
	flex-shrink: 0;
}


/* =========================================================
   LOGO ITEM
   ========================================================= */

.rok-clients-logo-item {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	margin: 0;
	padding: 0;

	text-align: center;
}

.rok-clients-logo-item a {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	height: 100%;

	margin: 0;
	padding: 0;

	text-decoration: none;
}

.rok-clients-logo-item img {
	display: block;

	width: var(--rok-clients-logo-width, 140px);
	height: var(--rok-clients-logo-height, 80px);

	max-width: 100%;
	max-height: 100%;

	margin: 0 auto;
	padding: 0;

	object-fit: contain;
	object-position: center center;

	opacity: var(--rok-clients-logo-opacity, 0.65);

	filter: grayscale(var(--rok-clients-logo-grayscale, 100%));

	transition:
		opacity 0.3s ease,
		filter 0.3s ease,
		transform 0.3s ease;

	will-change: opacity, filter, transform;
}


/* =========================================================
   LOGO HOVER
   ========================================================= */

.rok-clients-logo-item:hover img {
	opacity: var(--rok-clients-logo-hover-opacity, 1);

	filter: grayscale(
		var(--rok-clients-logo-hover-grayscale, 0%)
	);

	transform: scale(
		var(--rok-clients-logo-hover-scale, 1)
	);
}


/* =========================================================
   CLIENT NAME
   ========================================================= */

.rok-clients-logo-name {
	display: block;

	margin: 10px 0 0;
	padding: 0;

	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;

	text-align: center;
}


/* =========================================================
   EMPTY STATE
   ========================================================= */

.rok-clients-logo-empty {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	min-height: 100px;

	margin: 0;
	padding: 30px;

	border: 1px dashed #d9d9d9;
	border-radius: 6px;

	font-size: 14px;
	line-height: 1.5;
}


/* =========================================================
   SLIDER ARROWS
   ========================================================= */

.rok-clients-logo-prev,
.rok-clients-logo-next {
	position: absolute;
	top: 50%;

	z-index: 20;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 44px;
	height: 44px;

	margin: 0;
	padding: 0;

	transform: translateY(-50%);

	border: 1px solid #dedede;
	border-radius: 50%;

	background: #ffffff;

	color: #111111;

	cursor: pointer;

	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease,
		transform 0.25s ease;
}

.rok-clients-logo-prev {
	left: 12px;
}

.rok-clients-logo-next {
	right: 12px;
}

.rok-clients-logo-prev:hover,
.rok-clients-logo-next:hover {
	border-color: #111111;
	background: #111111;
	color: #ffffff;

	transform: translateY(-50%) scale(1.05);
}

.rok-clients-logo-prev:focus,
.rok-clients-logo-next:focus {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.rok-clients-logo-prev svg,
.rok-clients-logo-next svg {
	display: block;

	width: 18px;
	height: 18px;

	margin: 0;
	padding: 0;
}


/* =========================================================
   SLIDER DOTS
   ========================================================= */

.rok-clients-logo-dots {
	display: flex;
	align-items: center;
	justify-content: center;

	gap: 8px;

	width: 100%;

	margin: 25px 0 0;
	padding: 0;
}

.rok-clients-logo-dot {
	display: block;

	width: 8px;
	height: 8px;

	margin: 0;
	padding: 0;

	border: 0;
	border-radius: 50%;

	background: #cccccc;

	cursor: pointer;

	transition:
		background-color 0.25s ease,
		transform 0.25s ease;
}

.rok-clients-logo-dot:hover {
	transform: scale(1.2);
}

.rok-clients-logo-dot.active {
	background: #111111;
}


/* =========================================================
   MARQUEE FADE EDGES
   ========================================================= */

/*
 * Keep disabled by default.
 *
 * Enable this if you want the logos to softly disappear
 * at the left/right edges of the marquee.
 */

.rok-clients-logo-slider::before,
.rok-clients-logo-slider::after {
	content: "";

	position: absolute;
	top: 0;
	bottom: 0;

	z-index: 5;

	width: 0;

	pointer-events: none;
}

.rok-clients-logo-slider::before {
	left: 0;
}

.rok-clients-logo-slider::after {
	right: 0;
}


/* =========================================================
   ALIGNMENT
   ========================================================= */

.rok-clients-logo-align-left {
	text-align: left;
}

.rok-clients-logo-align-center {
	text-align: center;
}

.rok-clients-logo-align-right {
	text-align: right;
}

.rok-clients-logo-align-left
.rok-clients-logo-item {
	justify-content: flex-start;
}

.rok-clients-logo-align-center
.rok-clients-logo-item {
	justify-content: center;
}

.rok-clients-logo-align-right
.rok-clients-logo-item {
	justify-content: flex-end;
}


/* =========================================================
   GRID ALIGNMENT
   ========================================================= */

.rok-clients-logo-grid
.rok-clients-logo-item {
	min-height: 80px;
}


/* =========================================================
   MARQUEE PERFORMANCE
   ========================================================= */

.rok-clients-logo-slider .rok-clients-logo-track {
	contain: layout style;
}

.rok-clients-logo-slider .rok-clients-logo-item img {
	-webkit-user-drag: none;
	user-select: none;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {

	.rok-clients-logo {
		--rok-clients-logo-gap: 45px;
		--rok-clients-logo-slide-width: 160px;
	}

	.rok-clients-logo-header {
		margin-bottom: 30px;
	}

	.rok-clients-logo-heading {
		font-size: 34px;
	}

	.rok-clients-logo-description {
		max-width: 600px;
	}

	.rok-clients-logo-slider {
		padding: 8px 0;
	}

	.rok-clients-logo-item img {
		max-width: 100%;
	}

	.rok-clients-logo-prev {
		left: 8px;
	}

	.rok-clients-logo-next {
		right: 8px;
	}

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

	.rok-clients-logo {
		--rok-clients-logo-gap: 30px;
		--rok-clients-logo-slide-width: 140px;
		--rok-clients-logo-width: 120px;
		--rok-clients-logo-height: 70px;
	}

	.rok-clients-logo-header {
		margin-bottom: 25px;
	}

	.rok-clients-logo-eyebrow {
		font-size: 12px;
		margin-bottom: 8px;
	}

	.rok-clients-logo-heading {
		font-size: 28px;
		line-height: 1.2;
	}

	.rok-clients-logo-description {
		font-size: 15px;
		line-height: 1.5;
	}

	.rok-clients-logo-grid {
		gap: 25px;
	}

	.rok-clients-logo-slider {
		padding: 5px 0;
	}

	.rok-clients-logo-prev,
	.rok-clients-logo-next {
		width: 36px;
		height: 36px;
	}

	.rok-clients-logo-prev {
		left: 5px;
	}

	.rok-clients-logo-next {
		right: 5px;
	}

	.rok-clients-logo-prev svg,
	.rok-clients-logo-next svg {
		width: 15px;
		height: 15px;
	}

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

	.rok-clients-logo {
		--rok-clients-logo-gap: 25px;
		--rok-clients-logo-slide-width: 125px;
		--rok-clients-logo-width: 105px;
		--rok-clients-logo-height: 65px;
	}

	.rok-clients-logo-heading {
		font-size: 25px;
	}

	.rok-clients-logo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.rok-clients-logo-prev,
	.rok-clients-logo-next {
		width: 32px;
		height: 32px;
	}

}


/* =========================================================
   REDUCE MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.rok-clients-logo-item img {
		transition: none;
	}

	.rok-clients-logo-track {
		animation: none !important;
		transition: none !important;
	}

	.rok-clients-logo-prev,
	.rok-clients-logo-next,
	.rok-clients-logo-dot {
		transition: none;
	}

}