/**
 * Nisargo Natural Care - Top Selling Products Static Grid
 *
 * Namespace: .ntsc-* (Nisargo Top Selling Grid)
 * Dedicated, responsive CSS Grid layout:
 * - Desktop (> 1024px): Exactly 4 equal-width product cards in one row (max-width: 1300px).
 * - Tablet (601px - 1024px): 2 equal-width product cards per row.
 * - Mobile (<= 600px): 2 equal-width product cards side by side, zero horizontal overflow.
 *
 * Card Design:
 * - Aspect ratio: 3:4 with border-radius: 18px.
 * - Product images fill card area cleanly with zero inner padding and edge-to-edge coverage (object-fit: cover).
 * - Subtle brand-green gradient concentrated only near lower ~48%, fading upward smoothly.
 * - Product title, regular/sale price, SALE badge, and Add to Cart button aligned consistently.
 * - Zero carousel/slider behavior, zero scrollbars, zero empty arrow margins.
 */

/* ==========================================================================
   HOMEPAGE SECTION ALIGNMENT (Match neighboring sections bd6dbc2 & e7c9a41)
   ========================================================================== */

.elementor-14 .elementor-element.elementor-element-a933681,
body.home .elementor-element.elementor-element-a933681 {
	--padding-left: 32px !important;
	--padding-right: 32px !important;
	padding-left: 32px !important;
	padding-right: 32px !important;
	box-sizing: border-box !important;
}

@media (max-width: 1024px) {
	.elementor-14 .elementor-element.elementor-element-a933681,
	body.home .elementor-element.elementor-element-a933681 {
		--padding-left: 24px !important;
		--padding-right: 24px !important;
		padding-left: 24px !important;
		padding-right: 24px !important;
	}
}

@media (max-width: 767px) {
	.elementor-14 .elementor-element.elementor-element-a933681,
	body.home .elementor-element.elementor-element-a933681 {
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}

/* Zero out unnecessary inner container & widget wrapper padding/margins */
.elementor-14 .elementor-element.elementor-element-a933681 > .e-con-inner,
body.home .elementor-element.elementor-element-a933681 > .e-con-inner {
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-sizing: border-box !important;
}

.elementor-14 .elementor-element.elementor-element-86b0b7b,
body.home .elementor-element.elementor-element-86b0b7b,
.elementor-14 .elementor-element.elementor-element-77bcf41,
body.home .elementor-element.elementor-element-77bcf41,
.elementor-14 .elementor-element.elementor-element-77bcf41 .elementor-shortcode,
body.home .elementor-element.elementor-element-77bcf41 .elementor-shortcode {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	--padding-left: 0px !important;
	--padding-right: 0px !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* ==========================================================================
   1. GRID CONTAINER (DESKTOP: 4 EQUAL COLUMNS)
   ========================================================================== */

.ntsc-grid-wrapper,
.ntsc-carousel-wrapper {
	position: relative;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

.ntsc-grid,
.ntsc-track {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 20px !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
}

.ntsc-card-item {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	flex: none !important;
	box-sizing: border-box !important;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

/* ==========================================================================
   2. CARD STRUCTURE & IMAGE PRESENTATION
   ========================================================================== */

.ntsc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 100%;
	aspect-ratio: 3 / 4;
	border-radius: 18px;
	overflow: hidden;
	background-color: #FFFFFF;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.07);
	box-sizing: border-box;
	transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	isolation: isolate;
}

.ntsc-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 26px rgba(27, 67, 41, 0.16);
}

/* Image Link & Product Photo Container */
.ntsc-image-link {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	display: block;
	overflow: hidden;
	text-decoration: none;
	background-color: #FFFFFF;
}

/* Product image: fill card area with clean CSS-only crop of source margins */
.ntsc-img {
	width: 100% !important;
	max-width: 100% !important;
	height: 100% !important;
	max-height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	padding: 0 !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	display: block !important;
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.ntsc-card:hover .ntsc-img {
	transform: scale(1.04);
}

/* Lower Green Gradient Overlay (fades up smoothly, leaves upper bottle clear) */
.ntsc-gradient-overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 48%;
	background: linear-gradient(
		180deg,
		rgba(27, 67, 41, 0) 0%,
		rgba(27, 67, 41, 0.28) 25%,
		rgba(27, 67, 41, 0.78) 65%,
		rgba(18, 48, 28, 0.94) 100%
	);
	pointer-events: none;
	z-index: 2;
}

/* Compact Sale Badge (Top-Left) */
.ntsc-badge-sale {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 4;
	background-color: #356D48;
	color: #FFFFFF;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	padding: 5px 10px;
	border-radius: 9999px;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
	pointer-events: none;
	user-select: none;
}

/* ==========================================================================
   3. CARD CONTENT & UNIFORM ALIGNMENT
   ========================================================================== */

.ntsc-content {
	position: relative;
	z-index: 3;
	padding: 16px 14px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
}

/* Fixed 2-line title height ensures identical baseline for price across cards */
.ntsc-title {
	margin: 0 !important;
	font-family: inherit !important;
	font-size: 14.5px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: #FFFFFF !important;
	min-height: 38px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}

.ntsc-title a,
.ntsc-card .ntsc-title a,
.ntsc-grid-wrapper .ntsc-title a {
	color: #FFFFFF !important;
	text-decoration: none !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color 0.2s ease;
}

.ntsc-title a:hover,
.ntsc-title a:focus {
	color: #D6F0DE !important;
	text-decoration: underline !important;
}

/* Consistent price container height */
.ntsc-price,
.ntsc-card .ntsc-price {
	margin: 0 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #FFFFFF !important;
	display: flex !important;
	align-items: baseline !important;
	gap: 6px !important;
	flex-wrap: wrap !important;
	min-height: 22px;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
	line-height: 1.2 !important;
}

.ntsc-price del,
.ntsc-price del span,
.ntsc-price del bdi {
	color: rgba(255, 255, 255, 0.72) !important;
	font-size: 12.5px !important;
	font-weight: 400 !important;
	text-decoration: line-through !important;
}

.ntsc-price ins,
.ntsc-price ins span,
.ntsc-price ins bdi {
	color: #FFFFFF !important;
	font-size: 15.5px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	background: none !important;
}

.ntsc-price .woocommerce-Price-amount,
.ntsc-price .woocommerce-Price-currencySymbol {
	color: inherit !important;
}

/* Add to Cart Action Area */
.ntsc-action {
	margin-top: 4px;
	width: 100%;
}

.ntsc-btn-add-to-cart,
.ntsc-card a.ntsc-btn-add-to-cart,
.ntsc-grid-wrapper .ntsc-action a.button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 10px 14px !important;
	min-height: 38px !important;
	background-color: #FFFFFF !important;
	color: #1B4329 !important;
	border: none !important;
	border-radius: 9999px !important;
	font-family: inherit !important;
	font-size: 13.5px !important;
	font-weight: 700 !important;
	text-align: center !important;
	text-decoration: none !important;
	cursor: pointer !important;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.16) !important;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
	line-height: 1.2 !important;
}

.ntsc-btn-add-to-cart:hover,
.ntsc-btn-add-to-cart:focus {
	background-color: #F0F7F2 !important;
	color: #112d1b !important;
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.22) !important;
	transform: translateY(-2px);
}

.ntsc-btn-add-to-cart:active {
	transform: translateY(0);
}

.ntsc-btn-add-to-cart.loading {
	opacity: 0.75;
	cursor: wait;
}

.ntsc-btn-add-to-cart.added::after {
	content: " ✓";
	margin-left: 5px;
	font-weight: 700;
}

/* Explicitly hide any residual carousel buttons */
.ntsc-nav-btn {
	display: none !important;
}

/* ==========================================================================
   4. RESPONSIVE BREAKPOINTS (TABLET: 2 COLS, MOBILE: 2 COLS)
   ========================================================================== */

/* Tablet (601px to 1024px): 2 Equal-Width Columns */
@media (max-width: 1024px) and (min-width: 601px) {
	.elementor-14 .elementor-element.elementor-element-a933681,
	body.home .elementor-element.elementor-element-a933681 {
		--padding-left: 24px !important;
		--padding-right: 24px !important;
		padding-left: 24px !important;
		padding-right: 24px !important;
	}

	.ntsc-grid,
	.ntsc-track {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 20px !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.ntsc-card-item {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.ntsc-card {
		width: 100% !important;
		aspect-ratio: 3 / 4;
		border-radius: 18px;
	}

	.ntsc-content {
		padding: 16px 14px;
		gap: 6px;
	}

	.ntsc-title {
		font-size: 15.5px !important;
		line-height: 1.3 !important;
		min-height: 40px;
	}

	.ntsc-price,
	.ntsc-card .ntsc-price {
		font-size: 15.5px !important;
		min-height: 22px;
		gap: 6px !important;
	}

	.ntsc-btn-add-to-cart,
	.ntsc-card a.ntsc-btn-add-to-cart,
	.ntsc-grid-wrapper .ntsc-action a.button {
		padding: 10px 16px !important;
		min-height: 38px !important;
		font-size: 13.5px !important;
	}
}

/* Mobile (<= 600px): 2 Product Cards Side by Side */
@media (max-width: 600px) {
	.elementor-14 .elementor-element.elementor-element-a933681,
	body.home .elementor-element.elementor-element-a933681 {
		--padding-left: 14px !important;
		--padding-right: 14px !important;
		padding-left: 14px !important;
		padding-right: 14px !important;
	}

	.ntsc-grid-wrapper,
	.ntsc-carousel-wrapper {
		padding: 0 !important;
		margin: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	.ntsc-grid,
	.ntsc-track {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 11px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		box-sizing: border-box !important;
	}

	.ntsc-card-item {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		box-sizing: border-box !important;
	}

	.ntsc-card {
		width: 100% !important;
		max-width: 100% !important;
		aspect-ratio: 3 / 4;
		border-radius: 14px;
		box-sizing: border-box !important;
		overflow: hidden !important;
	}

	.ntsc-badge-sale {
		top: 8px !important;
		left: 8px !important;
		font-size: 9.5px !important;
		font-weight: 700 !important;
		padding: 3px 7px !important;
		letter-spacing: 0.4px !important;
		line-height: 1 !important;
		border-radius: 9999px !important;
	}

	.ntsc-gradient-overlay {
		height: 56% !important;
	}

	.ntsc-content {
		padding: 10px 9px !important;
		gap: 4px !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	.ntsc-title {
		font-size: 12.5px !important;
		line-height: 1.25 !important;
		min-height: 31px !important;
		display: -webkit-box !important;
		-webkit-line-clamp: 2 !important;
		-webkit-box-orient: vertical !important;
		overflow: hidden !important;
		text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
		margin: 0 !important;
	}

	.ntsc-title a,
	.ntsc-card .ntsc-title a,
	.ntsc-grid-wrapper .ntsc-title a {
		font-size: inherit !important;
		line-height: inherit !important;
		display: -webkit-box !important;
		-webkit-line-clamp: 2 !important;
		-webkit-box-orient: vertical !important;
		overflow: hidden !important;
	}

	.ntsc-price,
	.ntsc-card .ntsc-price {
		font-size: 13.5px !important;
		min-height: 18px !important;
		line-height: 1.2 !important;
		gap: 4px !important;
		flex-wrap: wrap !important;
		align-items: baseline !important;
		text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
		margin: 0 !important;
	}

	.ntsc-price del,
	.ntsc-price del span,
	.ntsc-price del bdi {
		font-size: 11px !important;
	}

	.ntsc-price ins,
	.ntsc-price ins span,
	.ntsc-price ins bdi {
		font-size: 13.5px !important;
	}

	.ntsc-action {
		margin-top: 3px !important;
		width: 100% !important;
	}

	.ntsc-btn-add-to-cart,
	.ntsc-card a.ntsc-btn-add-to-cart,
	.ntsc-grid-wrapper .ntsc-action a.button {
		width: 100% !important;
		min-height: 33px !important;
		padding: 7px 8px !important;
		font-size: 11.5px !important;
		font-weight: 700 !important;
		letter-spacing: 0.2px !important;
		border-radius: 9999px !important;
		box-sizing: border-box !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}
}

/* Extra Narrow Mobile (<= 360px) */
@media (max-width: 360px) {
	.elementor-14 .elementor-element.elementor-element-a933681,
	body.home .elementor-element.elementor-element-a933681 {
		--padding-left: 10px !important;
		--padding-right: 10px !important;
		padding-left: 10px !important;
		padding-right: 10px !important;
	}

	.ntsc-grid,
	.ntsc-track {
		gap: 8px !important;
	}

	.ntsc-card {
		border-radius: 12px !important;
	}

	.ntsc-badge-sale {
		top: 6px !important;
		left: 6px !important;
		font-size: 8.5px !important;
		padding: 2.5px 6px !important;
	}

	.ntsc-content {
		padding: 8px 7px !important;
		gap: 3px !important;
	}

	.ntsc-title {
		font-size: 11.5px !important;
		min-height: 28px !important;
		line-height: 1.2 !important;
	}

	.ntsc-price,
	.ntsc-card .ntsc-price {
		font-size: 12.5px !important;
		min-height: 16px !important;
		gap: 3px !important;
	}

	.ntsc-price del,
	.ntsc-price del span,
	.ntsc-price del bdi {
		font-size: 10px !important;
	}

	.ntsc-price ins,
	.ntsc-price ins span,
	.ntsc-price ins bdi {
		font-size: 12.5px !important;
	}

	.ntsc-btn-add-to-cart,
	.ntsc-card a.ntsc-btn-add-to-cart,
	.ntsc-grid-wrapper .ntsc-action a.button {
		padding: 6px 6px !important;
		min-height: 30px !important;
		font-size: 10.5px !important;
	}
}
