/* Pattriz Product Slideshow
 * Static hero + horizontal-sliding slideshow. No lightbox.
 * Tweak --pps-ratio for a different frame shape, --pps-accent for arrow/dot colour.
 */

.pps-wrap { margin: 0 0 1.5rem; }

/* Static hero (replace mode only) */
.pps-hero { margin: 0 0 16px; }
.pps-hero-img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 6px;
}

/* Sliding slideshow */
.pps-slider {
	--pps-ratio: 4 / 3;          /* frame shape */
	--pps-accent: #2c2bd6;       /* arrows + active dot */

	position: relative;
	width: 100%;
	margin: 0 0 1.5rem;
	border-radius: 6px;
	overflow: hidden;
}

.pps-viewport {
	width: 100%;
	overflow: hidden;
}

/* The flex row that actually slides. */
.pps-track {
	display: flex;
	width: 100%;
	transition: transform 0.5s ease;
	will-change: transform;
}

.pps-slide {
	flex: 0 0 100%;
	max-width: 100%;
	aspect-ratio: var(--pps-ratio);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Aspect-ratio fallback for old browsers. */
@supports not (aspect-ratio: 1 / 1) {
	.pps-slide { position: relative; height: 0; padding-top: 75%; }
	.pps-slide > img { position: absolute; inset: 0; }
}

.pps-slide img,
.pps-img {
	width: 100%;
	height: 100%;
	object-fit: contain;     /* whole image, no cropping */
	display: block;
}

/* Arrows */
.pps-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.85);
	color: var(--pps-accent);
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
	transition: background 0.2s ease, transform 0.2s ease;
	z-index: 2;
	padding-bottom: 6px;
}

.pps-arrow:hover { background: #fff; }
.pps-arrow:active { transform: translateY(-50%) scale(0.94); }
.pps-prev { left: 10px; }
.pps-next { right: 10px; }

/* Dots */
.pps-dots {
	position: absolute;
	bottom: 12px;
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	gap: 8px;
	z-index: 2;
}

.pps-dot {
	width: 9px;
	height: 9px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.pps-dot:hover { background: rgba(0, 0, 0, 0.45); }

.pps-dot.is-active {
	background: var(--pps-accent);
	transform: scale(1.25);
}

/* Honour reduced-motion: snap instead of slide. */
@media (prefers-reduced-motion: reduce) {
	.pps-track { transition: none; }
}

/* Link colour — literal a, all states (default included, not just hover) */
a,
a:link,
a:visited,
a:hover,
a:active,
a:focus {
	color: #5f43d6 !important;
}
