/* Smart Load More & Infinite Scroll */

.slm-hide {
	display: none !important;
}

.slm-wrap {
	clear: both;
	width: 100%;
	min-height: 1px;
	margin: 30px 0;
	text-align: center;
}

.slm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 220px;
	padding: 14px 32px;
	border: 0;
	border-radius: var(--slm-radius, 6px);
	background: var(--slm-bg, #1a1a1a);
	color: var(--slm-color, #fff);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: opacity .2s ease, transform .2s ease;
}

.slm-btn:hover {
	opacity: .88;
}

.slm-btn:active {
	transform: translateY(1px);
}

.slm-btn:disabled {
	cursor: default;
	opacity: .75;
}

/* Spinner (only while loading) */
.slm-spinner {
	display: none;
	width: 16px;
	height: 16px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: slmSpin .7s linear infinite;
}

.slm-wrap.is-loading .slm-spinner {
	display: inline-block;
}

/* Infinite scroll: hide the button unless loading or failed */
.slm-mode-scroll:not(.is-loading):not(.has-error) .slm-btn {
	visibility: hidden;
}

/* Finished */
.slm-wrap.is-done .slm-btn {
	display: none;
}

.slm-end {
	margin: 0;
	color: #777;
	font-size: 14px;
}

/* New items */
.slm-new {
	animation: slmIn .4s ease backwards;
}

@keyframes slmIn {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
}

@keyframes slmSpin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.slm-new,
	.slm-spinner {
		animation: none;
	}
}
