/* ==========================================================================
   Sliders — [categoryslider], [brandslider], [productslider].
   Cards per view: --dd-pv (set per slider from PHP). Native scroll-snap track.
   ========================================================================== */
.dd-slider {
	--dd-pv: 1;
	--dd-slider-gap: 20px;
	padding-block: 15px;
}
.dd-slider__title {
	position: relative;
	margin: 0 0 28px;
	padding-bottom: 14px;
	font-size: clamp(1.4rem, 1.15rem + 1vw, 2rem);
	text-align: center;
}
.dd-slider__title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 48px;
	height: 3px;
	border-radius: 2px;
	background: var(--dd-primary);
	transform: translateX(-50%);
}

.dd-slider__viewport { position: relative; }
.dd-slider__track {
	display: flex;
	gap: var(--dd-slider-gap);
	margin: 0;
	padding: 6px 2px 14px; /* room for the hover shadow */
	overflow-x: auto;
	overscroll-behavior-x: contain;
	list-style: none;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.dd-slider__track::-webkit-scrollbar { display: none; }
.dd-slider__slide {
	flex: 0 0 calc((100% - (var(--dd-pv) - 1) * var(--dd-slider-gap)) / var(--dd-pv));
	min-width: 0;
	scroll-snap-align: start;
}

/* Arrows: shown on hover / keyboard focus, hidden at either end and on touch screens */
.dd-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--dd-border);
	border-radius: 50%;
	background: var(--dd-white);
	color: var(--dd-dark);
	font-size: 20px;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-50%);
	transition: opacity var(--dd-ease), visibility var(--dd-ease), background-color var(--dd-ease), color var(--dd-ease);
}
.dd-slider__arrow--prev { left: -14px; }
.dd-slider__arrow--next { right: -14px; }
.dd-slider__arrow--prev .dd-icon { transform: rotate(90deg); }
.dd-slider__arrow--next .dd-icon { transform: rotate(-90deg); }
.dd-slider__viewport:hover .dd-slider__arrow:not(:disabled),
.dd-slider__viewport:focus-within .dd-slider__arrow:not(:disabled) { opacity: 1; visibility: visible; }
.dd-slider__arrow:hover { border-color: var(--dd-primary); background: var(--dd-primary); color: var(--dd-white); }
.dd-slider.is-static .dd-slider__arrow { display: none; }
@media (hover: none) {
	.dd-slider__arrow { display: none; }
}

.dd-slider__empty { padding: 16px; border: 1px dashed var(--dd-border); color: var(--dd-muted); text-align: center; }

/* --------------------------------------------------------------------------
   Cards
   ----------------------------------------------------------------------- */
.dd-slider-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--dd-border);
	border-radius: 8px;
	background: var(--dd-white);
	color: var(--dd-dark);
	text-decoration: none;
	transition: border-color var(--dd-ease), box-shadow var(--dd-ease), transform var(--dd-ease);
}
.dd-slider-card:hover {
	border-color: transparent;
	box-shadow: 0 10px 24px rgba(0, 0, 0, .1);
	transform: translateY(-3px);
}
.dd-slider-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	padding: 14px;
	background: var(--dd-light);
}
.dd-slider-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
	transition: transform .3s ease;
}
.dd-slider-card:hover .dd-slider-card__media img { transform: scale(1.05); }
.dd-slider-card__title {
	display: -webkit-box;
	overflow: hidden;
	font: 500 15px/1.4 var(--dd-font-heading);
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

/* Category */
/* margin (not padding) so the 2-line clamp never shows a sliver of a 3rd line */
.dd-slider-card--category .dd-slider-card__title { min-height: 2.8em; margin: 14px 12px; text-align: center; }
.dd-slider-card--category:hover .dd-slider-card__title { color: var(--dd-primary); }

/* Brand: logo only */
.dd-slider-card--brand .dd-slider-card__media { aspect-ratio: 3 / 2; padding: 18px 22px; background: var(--dd-white); }
.dd-slider-card--brand img { filter: grayscale(1); opacity: .75; transition: filter var(--dd-ease), opacity var(--dd-ease), transform .3s ease; }
.dd-slider-card--brand:hover img { filter: none; opacity: 1; }

/* Product: category, image, name, Request Quote */
.dd-slider-card--product:hover { transform: none; }
.dd-slider-card__link { display: flex; flex: 1; flex-direction: column; padding: 12px 12px 0; color: inherit; text-decoration: none; }
.dd-slider-card--product .dd-slider-card__media { margin-bottom: 12px; border-radius: 6px; }
.dd-slider-card__cat { margin-bottom: 4px; color: var(--dd-primary); font: 600 11px/1.3 var(--dd-font-heading); letter-spacing: .06em; text-transform: uppercase; }
.dd-slider-card--product .dd-slider-card__title { font-size: 14px; }
.dd-slider-card--product .dd-slider-card__link:hover .dd-slider-card__title { color: var(--dd-primary); }
.dd-slider-card__quote { width: calc(100% - 24px); margin: 12px; }
