/**
 * Modulul „Vezi mai multe" — stiluri.
 *
 * Strategie:
 * - Contorul nativ WooCommerce e ascuns peste tot; contorul nostru (jos) îl înlocuiește.
 * - Paginarea numerotată e ascunsă vizual peste tot, DAR rămâne în DOM: link-urile
 *   /page/N/ sunt descoperite de Googlebot la crawl (înainte de CSS) și sunt și în
 *   sitemap; fără JS, userul paginează prin butonul-link al blocului nostru.
 * - NU ascundem wrapper-ele de sorting ca atare — doar conținutul lor. Bara de sus
 *   trebuie să-și păstreze margin-bottom-ul (ul.products nu are margin-top; tot spațiul
 *   de deasupra grilei vine de la el). Dacă am ascunde wrapper-ul, ar sări grila pe mobil.
 * - Butonul moștenește .button al temei — nu îl restilizăm.
 */


/* Paginarea numerotată: ascunsă vizual peste tot (rămâne în DOM pentru crawl + fallback
   fără JS prin butonul-link). Ascundem DOAR paginarea, nu wrapper-ul de sorting. */
.shoptimizer-archive .woocommerce-pagination {
	display: none;
}

/* Bara de jos (.sorting-end), acum golită (count + paginare ascunse): colapsăm marginea
   ei ca să nu rămână spațiu fantomă deasupra blocului nostru. Spațierea de jos o dă
   margin-top-ul lui .ct-archive-loadmore. Bara de sus rămâne neatinsă (își păstrează
   margin-bottom-ul = spațiul de deasupra grilei). */
.shoptimizer-archive .shoptimizer-sorting.sorting-end {
	margin: 0;
}

/* Blocul nostru: contor + buton, centrate. */
.ct-archive-loadmore {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 1rem;
	margin: 2rem 0 0;
}

/* Contorul (range acumulat). Tonul contorului nativ, dar e elementul nostru. */
.ct-archive-count {
	margin: 0;
	color: #111;
	font-size: 14px;
}

/* Butonul: doar comportamentul de interacțiune; aspectul vine din .button al temei. */
.ct-load-more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.ct-load-more__icon {
	flex: 0 0 auto;
}

/* Stare: încărcare. Butonul rămâne pe loc, dezactivat vizual; chevronul devine spinner. */
.ct-archive-loadmore.is-loading .ct-load-more {
	pointer-events: none;
	opacity: 0.7;
}

.ct-archive-loadmore.is-loading .ct-load-more__icon {
	animation: ct-lm-spin 0.7s linear infinite;
	transform-origin: center;
}

@media (prefers-reduced-motion: reduce) {
	.ct-archive-loadmore.is-loading .ct-load-more__icon {
		animation: none;
	}
}

@keyframes ct-lm-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Stare: eroare. Mesaj discret sub buton; butonul rămâne acționabil pentru retry. */
.ct-archive-loadmore__error {
	display: none;
	margin: 0;
	color: #d63638;
	font-size: 14px;
}

.ct-archive-loadmore.has-error .ct-archive-loadmore__error {
	display: block;
}