/**
 * Custom Product Showcase - front-end styles.
 * Get Pro Services - https://getproservices.net
 */

.cps-showcase-wrapper {
	--cps-accent: #1a6dff;
	--cps-accent-dark: #0f4fc4;
	--cps-ink: #0d1b3e;
	--cps-muted: #6b7a99;
	--cps-line: #d9e5fb;
	--cps-surface: #ffffff;
	--cps-tint: #eff5ff;
	--cps-whatsapp: #22c55e;
	--cps-whatsapp-dark: #16a34a;
	--cps-columns: 4;
	--cps-gap: 24px;
	--cps-radius: 18px;

	margin: 24px 0;
}

.cps-products {
	display: grid;
	grid-template-columns: repeat( var( --cps-columns, 4 ), minmax( 0, 1fr ) );
	gap: var( --cps-gap );
	margin: 0;
	padding: 0;
	list-style: none;
}

.cps-products.columns-1 { --cps-columns: 1; }
.cps-products.columns-2 { --cps-columns: 2; }
.cps-products.columns-3 { --cps-columns: 3; }
.cps-products.columns-4 { --cps-columns: 4; }
.cps-products.columns-5 { --cps-columns: 5; }
.cps-products.columns-6 { --cps-columns: 6; }

.cps-layout-classic .cps-products.columns-1 { max-width: 320px; }

.cps-showcase-wrapper .cps-icon {
	display: block;
	width: 24px;
	height: 24px;
	flex: 0 0 auto;
}

.cps-showcase-wrapper .cps-icon--sm {
	width: 18px;
	height: 18px;
}

/* ============================================================ Card layout */

.cps-layout-card ul.cps-products li.cps-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	padding: 14px;
	list-style: none;
	background: linear-gradient( 180deg, #f7faff 0%, #eef4ff 100% );
	border: 1px solid var( --cps-line );
	border-radius: var( --cps-radius );
	box-shadow: 0 2px 10px rgba( 13, 27, 62, 0.05 );
	text-align: left !important;
	float: none !important;
	width: auto !important;
	clear: none !important;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.cps-layout-card ul.cps-products li.cps-card:hover {
	box-shadow: 0 10px 28px rgba( 13, 27, 62, 0.12 );
	transform: translateY( -2px );
}

.cps-layout-card ul.cps-products li.cps-card::before,
.cps-layout-card ul.cps-products li.cps-card::after {
	content: none !important;
}

/* --- Media ------------------------------------------------------------- */

.cps-card__media {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	background: var( --cps-surface );
	line-height: 0;
}

.cps-card__media-link {
	display: block;
	line-height: 0;
	text-decoration: none;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__media img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 !important;
	border-radius: 14px;
}

.cps-card__ribbon {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px 7px 11px;
	border-radius: 999px;
	background: var( --cps-ink );
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}

.cps-card__ribbon .cps-icon {
	color: #ffd54a;
}

/* --- Feature strip ----------------------------------------------------- */

.cps-card__features {
	display: grid;
	grid-template-columns: repeat( var( --cps-feature-count, 5 ), minmax( 0, 1fr ) );
	gap: 6px;
	margin: 12px 0 0;
	padding: 14px 8px;
	list-style: none;
	background: var( --cps-surface );
	border: 1px solid var( --cps-line );
	border-radius: 14px;
}

.cps-card__feature {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0 2px;
	list-style: none;
	text-align: center;
}

.cps-card__feature-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var( --cps-accent );
}

.cps-card__feature-label {
	color: var( --cps-ink );
	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;
	/* Wrap between words only — never split a word like "Professional". */
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	text-align: center;
}

/* --- Body -------------------------------------------------------------- */

.cps-layout-card ul.cps-products li.cps-card .cps-card__body {
	text-align: left !important;
}

.cps-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 12px;
	margin-top: 12px;
	padding: 16px;
	background: linear-gradient( 180deg, #ffffff 0%, #f4f8ff 100% );
	border: 1px solid var( --cps-line );
	border-radius: 14px;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__title {
	margin: 0 !important;
	padding: 0 !important;
	color: var( --cps-ink );
	font-size: 19px !important;
	font-weight: 700;
	line-height: 1.3;
	text-align: left !important;
	text-transform: none;
}

.cps-card__title a {
	color: inherit;
	text-decoration: none;
}

.cps-card__title a:hover {
	color: var( --cps-accent );
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__price-row {
	text-align: left !important;
}

.cps-card__price-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	min-width: 0;
	margin: 0;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__price,
.cps-layout-card ul.cps-products li.cps-card .price {
	display: inline-block;
	margin: 0 !important;
	padding: 0 !important;
	color: var( --cps-accent ) !important;
	font-size: 30px !important;
	font-weight: 800 !important;
	line-height: 1.1;
	letter-spacing: -0.5px;
	min-width: 0;
	overflow-wrap: break-word;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__regular,
.cps-layout-card ul.cps-products li.cps-card .cps-card__regular .amount,
.cps-layout-card ul.cps-products li.cps-card .cps-card__regular bdi {
	color: var( --cps-muted ) !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	text-decoration: line-through !important;
}

.cps-card__save {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-left: auto;
	padding: 6px 12px;
	border-radius: 999px;
	background: #dbe9ff;
	color: var( --cps-accent-dark );
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

/* --- Buttons -----------------------------------------------------------
 *
 * WooCommerce themes style `.button` / `.add_to_cart_button` aggressively,
 * often with selectors like `.woocommerce ul.products li.product .button`.
 * The rules below are deliberately specific, and the properties themes most
 * commonly override are forced, so the split button survives any theme.
 */

.cps-layout-card .cps-card .cps-card__actions {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	overflow: hidden;
	margin: 0;
	padding: 0;
	border: 1px solid var( --cps-line );
	border-radius: 12px;
	background: var( --cps-surface );
}

.cps-layout-card .cps-card .cps-card__actions > .cps-card__btn:only-child {
	grid-column: 1 / -1;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__btn,
.cps-layout-card ul.cps-products li.cps-card a.cps-card__btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	width: auto !important;
	min-height: 52px;
	margin: 0 !important;
	padding: 12px 14px !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2;
	letter-spacing: normal;
	text-align: center;
	text-decoration: none !important;
	text-transform: none !important;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__btn--cart,
.cps-layout-card ul.cps-products li.cps-card a.cps-card__btn--cart {
	background: var( --cps-surface ) !important;
	color: var( --cps-accent ) !important;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__btn--cart:hover,
.cps-layout-card ul.cps-products li.cps-card .cps-card__btn--cart:focus {
	background: var( --cps-tint ) !important;
	color: var( --cps-accent-dark ) !important;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__btn--checkout,
.cps-layout-card ul.cps-products li.cps-card a.cps-card__btn--checkout {
	background: var( --cps-accent ) !important;
	color: #fff !important;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__btn--checkout:hover,
.cps-layout-card ul.cps-products li.cps-card .cps-card__btn--checkout:focus {
	background: var( --cps-accent-dark ) !important;
	color: #fff !important;
}

/* WooCommerce's ajax add-to-cart appends a "View cart" link and spinner
   pseudo-elements; keep them from breaking the split button. */
.cps-layout-card .cps-card .cps-card__btn.added::after,
.cps-layout-card .cps-card .cps-card__btn.loading::after {
	margin-left: 6px;
}

.cps-layout-card .cps-card .added_to_cart {
	display: none !important;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__whatsapp,
.cps-layout-card ul.cps-products li.cps-card a.cps-card__whatsapp {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	width: auto !important;
	min-height: 54px;
	margin: 0 !important;
	padding: 12px 18px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: linear-gradient( 180deg, var( --cps-whatsapp ) 0%, var( --cps-whatsapp-dark ) 100% ) !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.2;
	letter-spacing: normal;
	text-align: center;
	text-decoration: none !important;
	text-transform: none !important;
	box-shadow: 0 4px 12px rgba( 22, 163, 74, 0.25 );
	transition: filter 0.15s ease, box-shadow 0.15s ease;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__whatsapp:hover,
.cps-layout-card ul.cps-products li.cps-card .cps-card__whatsapp:focus {
	color: #fff !important;
	filter: brightness( 1.05 );
	box-shadow: 0 6px 18px rgba( 22, 163, 74, 0.35 );
}

.cps-card__whatsapp-label {
	flex: 0 1 auto;
	min-width: 0;
}

.cps-layout-card ul.cps-products li.cps-card .cps-card__btn > span {
	min-width: 0;
	overflow-wrap: break-word;
}

.cps-card__whatsapp-arrow {
	margin-left: 4px;
}

/* ========================================================= Classic layout */

.cps-layout-classic ul.cps-products li.cps-product {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: center;
}

.cps-layout-classic .cps-product::before,
.cps-layout-classic .cps-product::after {
	content: none;
}

.cps-layout-classic .cps-product img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}

.cps-layout-classic .cps-product-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.cps-layout-classic .woocommerce-loop-product__title {
	margin: 10px 0 4px;
	font-size: 15px;
	line-height: 1.4;
	overflow-wrap: break-word;
}

.cps-layout-classic .price {
	display: block;
	margin: 0 0 8px;
}

.cps-layout-classic .button {
	display: inline-block;
	margin-top: auto;
	align-self: center;
}

/* ================================================================ Notices */

.cps-notice {
	padding: 8px 12px;
	border-left: 4px solid #d63638;
	background: #fcf0f1;
	font-size: 14px;
}

/* ============================================================ Breakpoints
 *
 * Every rule below carries the same specificity as the others (three
 * classes), so the cascade is decided purely by source order — narrower
 * breakpoints come last and win. Matching the base `.cps-products.columns-N`
 * rules with only two classes would let those base rules beat the queries.
 */

@media (max-width: 1200px) {
	.cps-layout-card .cps-products.columns-4,
	.cps-layout-card .cps-products.columns-5,
	.cps-layout-card .cps-products.columns-6 { --cps-columns: 3; }
}

@media (max-width: 1024px) {
	.cps-layout-classic .cps-products.columns-5,
	.cps-layout-classic .cps-products.columns-6 { --cps-columns: 3; }

	.cps-layout-card .cps-products.columns-3,
	.cps-layout-card .cps-products.columns-4,
	.cps-layout-card .cps-products.columns-5,
	.cps-layout-card .cps-products.columns-6 { --cps-columns: 2; }

	.cps-layout-card ul.cps-products li.cps-card .cps-card__price,
	.cps-layout-card ul.cps-products li.cps-card .price { font-size: 26px !important; }

	.cps-layout-card ul.cps-products li.cps-card .cps-card__btn {
		gap: 6px;
		padding: 12px 8px !important;
		font-size: 14px !important;
	}

	.cps-layout-card ul.cps-products li.cps-card .cps-card__whatsapp {
		font-size: 15px !important;
	}
}

@media (max-width: 782px) {
	.cps-showcase-wrapper { --cps-gap: 16px; }

	.cps-layout-classic .cps-products.columns-3,
	.cps-layout-classic .cps-products.columns-4,
	.cps-layout-classic .cps-products.columns-5,
	.cps-layout-classic .cps-products.columns-6 { --cps-columns: 2; }

	.cps-layout-card .cps-products.columns-2,
	.cps-layout-card .cps-products.columns-3,
	.cps-layout-card .cps-products.columns-4,
	.cps-layout-card .cps-products.columns-5,
	.cps-layout-card .cps-products.columns-6 { --cps-columns: 2; }

	.cps-card__features {
		grid-template-columns: repeat( auto-fit, minmax( 84px, 1fr ) );
	}
}

@media (max-width: 680px) {
	.cps-layout-card .cps-products.columns-1,
	.cps-layout-card .cps-products.columns-2,
	.cps-layout-card .cps-products.columns-3,
	.cps-layout-card .cps-products.columns-4,
	.cps-layout-card .cps-products.columns-5,
	.cps-layout-card .cps-products.columns-6 { --cps-columns: 1; }

	.cps-layout-classic .cps-products.columns-1,
	.cps-layout-classic .cps-products.columns-2,
	.cps-layout-classic .cps-products.columns-3,
	.cps-layout-classic .cps-products.columns-4,
	.cps-layout-classic .cps-products.columns-5,
	.cps-layout-classic .cps-products.columns-6 { --cps-columns: 1; }

	.cps-layout-classic .cps-products.columns-1 { max-width: none; }
}

@media (max-width: 420px) {
	.cps-layout-card ul.cps-products li.cps-card { padding: 10px; }

	.cps-layout-card ul.cps-products li.cps-card .cps-card__body { padding: 14px; }

	.cps-layout-card ul.cps-products li.cps-card .cps-card__price,
	.cps-layout-card ul.cps-products li.cps-card .price { font-size: 24px !important; }

	.cps-layout-card .cps-card .cps-card__actions { grid-template-columns: 1fr; }

	.cps-layout-card ul.cps-products li.cps-card .cps-card__btn--cart {
		border-bottom: 1px solid var( --cps-line ) !important;
	}

	.cps-card__save { margin-left: 0; }

	.cps-card__features {
		grid-template-columns: repeat( auto-fit, minmax( 76px, 1fr ) );
		padding: 12px 6px;
	}
}
