/* Adapted from the AccountPro Core WooCommerce Categories card presentation. */
.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 175.734375px), 175.734375px));
	grid-auto-flow: row dense;
	direction: rtl;
	align-items: end;
	justify-content: start;
	column-gap: var(--ns-grid-column-gap, var(--ns-card-gap, 20px));
	row-gap: var(--ns-grid-row-gap, var(--ns-card-gap, 20px));
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card {
	position: relative;
	display: block;
	min-width: 0;
	min-height: var(--ns-card-min-height, auto);
	overflow: hidden;
	transition: box-shadow .3s ease, border-color .3s ease, background .3s ease;
	color: inherit;
	text-decoration: none;
}

.elementor-widget-ns_custom_card_grid a.ns-custom-card-grid__card:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -2px;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__content {
	text-align: right;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__title {
	margin-top: 0;
	margin-bottom: 0;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__image-area {
	position: relative;
	display: flex;
	width: 100%;
	direction: ltr;
	min-width: 0;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__image {
	position: relative;
	flex: 0 1 auto;
	width: 100%;
	max-width: 100%;
	height: 95px;
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--grayscale-until-hover .ns-custom-card-grid__image {
	filter: grayscale(1);
	transition: filter .3s ease;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--grayscale-until-hover:hover .ns-custom-card-grid__image,
.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--grayscale-until-hover:focus .ns-custom-card-grid__image,
.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--grayscale-until-hover:focus-visible .ns-custom-card-grid__image {
	filter: grayscale(0);
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__image img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	margin: 0;
	object-fit: cover;
	transition: opacity .3s ease;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__img--normal {
	opacity: 1;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__img--hover {
	opacity: 0;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-hover-image:hover .ns-custom-card-grid__img--normal,
.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-hover-image:focus-visible .ns-custom-card-grid__img--normal {
	opacity: 0;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-hover-image:hover .ns-custom-card-grid__img--hover,
.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-hover-image:focus-visible .ns-custom-card-grid__img--hover {
	opacity: 1;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: opacity .3s ease;
	pointer-events: none;
}

@media (max-width: 768px) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__image img {
		height: 100%;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__image {
		height: 55px;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-image {
		--ns-card-image-height: 55px;
	}

}

@media (prefers-reduced-motion: reduce) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card,
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--grayscale-until-hover .ns-custom-card-grid__image,
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__image img,
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__overlay {
		transition: none;
	}
}

/* Keep image pixels in a card-level layer while a flow spacer preserves auto card height. */
.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card {
	box-sizing: border-box;
	isolation: isolate;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__content {
	position: relative;
	z-index: 2;
	box-sizing: border-box;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__image-area {
	position: absolute;
	inset: 0;
	align-items: flex-end;
	width: auto;
	height: auto;
	margin: 0;
	z-index: 0;
	pointer-events: none;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-image::after {
	content: '';
	display: block;
	height: var(--ns-card-image-height, 95px);
	flex: 0 0 auto;
	pointer-events: none;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-content.ns-custom-card-grid__card--has-image::after {
	margin-block-start: var(--ns-card-image-spacing, 10px);
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__image {
	position: relative;
	z-index: 0;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__overlay {
	z-index: 1;
}

/* On tablet and mobile, put the RTL title and image beside each other in normal flow. */
@media (max-width: 1199.98px) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 175.734375px), 1fr));
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-content.ns-custom-card-grid__card--has-image {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(4rem, 35%);
		column-gap: var(--ns-card-image-spacing, 10px);
		align-items: center;
		direction: rtl;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-content.ns-custom-card-grid__card--has-image::after {
		display: none;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-content.ns-custom-card-grid__card--has-image > .ns-custom-card-grid__content {
		grid-column: 1;
		grid-row: 1;
		min-width: 0;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card--has-content.ns-custom-card-grid__card--has-image > .ns-custom-card-grid__image-area {
		position: relative;
		inset: auto;
		grid-column: 2;
		grid-row: 1;
		align-items: center;
		width: 100%;
		height: auto;
		min-width: 0;
		margin: 0;
	}
}

/* The roomy Home row uses the exact supplied desktop card geometry. */
@media (min-width: 1200px) {
	.elementor-2 .elementor-element.elementor-element-3c90012.elementor-widget-ns_custom_card_grid {
		width: 958.671875px;
		max-width: 100%;
		flex: 0 0 auto;
	}

	.elementor-2 .elementor-element.elementor-element-3c90012 .ns-custom-card-grid {
		width: 100%;
	}

	.elementor-2 .elementor-element.elementor-element-3c90012 .ns-custom-card-grid__card:not(:hover),
	.elementor-2 .elementor-element.elementor-element-3c90012 .ns-custom-card-grid__card:hover {
		height: var(--ns-card-height, 169.3984375px);
		min-height: var(--ns-card-min-height, 0px);
		border-radius: 24px 8px 24px 24px;
		opacity: 1;
		box-sizing: border-box;
	}

	.elementor-2 .elementor-element.elementor-element-3c90012 .ns-custom-card-grid__card:not(:hover) {
		box-shadow: 0px 25px 34.3px -16px #00000040;
	}

	.elementor-2 .elementor-element.elementor-element-3c90012 .ns-custom-card-grid__card:hover {
		box-shadow: 0px 25px 34.3px -16px #00000040;
	}
}

/* Responsive layout settings live on the Elementor widget wrapper. Style queries
 * let CSS consume those responsive values without a JavaScript layout engine. */
.elementor-widget-ns_custom_card_grid {
	container-name: ns-custom-card-grid;
	container-type: normal;
}

.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
	margin: 0 auto;
}

@container ns-custom-card-grid style(--ns-grid-mode: preferred) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		--ns-preferred-track-width: min(
			100%,
			max(
				var(--ns-card-min-width, 175.734375px),
				calc((100% + var(--ns-grid-column-gap, var(--ns-card-gap, 20px))) / var(--ns-grid-columns, 5) - var(--ns-grid-column-gap, var(--ns-card-gap, 20px)))
			)
		);
		grid-template-columns: repeat(auto-fit, minmax(var(--ns-preferred-track-width), var(--ns-preferred-track-width)));
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card {
		min-width: min(100%, var(--ns-card-min-width, 175.734375px));
	}
}

@container ns-custom-card-grid style(--ns-grid-mode: auto) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--ns-card-min-width, 175.734375px)), 1fr));
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card {
		min-width: min(100%, var(--ns-card-min-width, 175.734375px));
	}
}

@container ns-custom-card-grid style(--ns-grid-mode: preferred) and style(--ns-grid-alignment: stretch) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		grid-template-columns: repeat(auto-fit, minmax(var(--ns-preferred-track-width), 1fr));
		justify-content: stretch;
	}
}

@container ns-custom-card-grid style(--ns-grid-mode: auto) and style(--ns-grid-alignment: stretch) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ns-card-min-width, 175.734375px)), 1fr));
		justify-content: stretch;
	}
}

@container ns-custom-card-grid style(--ns-grid-alignment: right) {
	.elementor-widget-ns_custom_card_grid > .elementor-widget-container {
		display: flex;
		flex-direction: row;
		direction: ltr;
		justify-content: flex-end;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		width: 100%;
		margin: 0;
		justify-content: right;
		grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ns-card-min-width, 175.734375px)), min(100%, var(--ns-card-min-width, 175.734375px))));
	}
}

@container ns-custom-card-grid style(--ns-grid-alignment: center) {
	.elementor-widget-ns_custom_card_grid > .elementor-widget-container {
		display: flex;
		flex-direction: row;
		direction: ltr;
		justify-content: center;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		width: 100%;
		margin: 0;
		justify-content: center;
		grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ns-card-min-width, 175.734375px)), min(100%, var(--ns-card-min-width, 175.734375px))));
	}
}

@container ns-custom-card-grid style(--ns-grid-alignment: left) {
	.elementor-widget-ns_custom_card_grid > .elementor-widget-container {
		display: flex;
		flex-direction: row;
		direction: ltr;
		justify-content: flex-start;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		width: 100%;
		margin: 0;
		justify-content: left;
		grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ns-card-min-width, 175.734375px)), min(100%, var(--ns-card-min-width, 175.734375px))));
	}
}

@container ns-custom-card-grid style(--ns-grid-alignment: right) and style(--ns-grid-mode: preferred),
	style(--ns-grid-alignment: center) and style(--ns-grid-mode: preferred),
	style(--ns-grid-alignment: left) and style(--ns-grid-mode: preferred) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		grid-template-columns: repeat(auto-fit, minmax(var(--ns-preferred-track-width), var(--ns-preferred-track-width)));
	}
}

@container ns-custom-card-grid style(--ns-grid-alignment: stretch) {
	.elementor-widget-ns_custom_card_grid > .elementor-widget-container {
		display: flex;
		flex-direction: row;
		direction: ltr;
		align-items: stretch;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid {
		width: 100%;
		max-width: 100%;
		margin: 0;
		justify-content: stretch;
	}
}

@container ns-custom-card-grid style(--ns-grid-alignment: right),
	style(--ns-grid-alignment: center),
	style(--ns-grid-alignment: left) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid__card {
		min-width: min(100%, var(--ns-card-min-width, 175.734375px));
	}
}

@container ns-custom-card-grid style(--ns-card-content-layout: vertical) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card {
		display: grid;
		direction: ltr;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto;
		grid-template-areas: "content" "image";
		row-gap: var(--ns-card-image-spacing, 10px);
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card.ns-custom-card-grid__card .ns-custom-card-grid__content {
		position: relative;
		grid-area: content;
		z-index: 2;
		direction: rtl;
		display: flex;
		flex-direction: column;
		text-align: var(--ns-card-vertical-text-alignment, right);
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card.ns-custom-card-grid__card .ns-custom-card-grid__image-area {
		position: relative;
		inset: auto;
		grid-area: image;
		align-items: center;
		width: 100%;
		height: auto;
		min-width: 0;
		margin: 0;
		z-index: 0;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card::after {
		display: none;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card--has-image:not(.ns-custom-card-grid__card--has-content) {
		grid-template-rows: auto;
		grid-template-areas: "image";
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card--has-content:not(.ns-custom-card-grid__card--has-image) {
		grid-template-rows: auto;
		grid-template-areas: "content";
	}
}

@media (min-width: 1200px) {
	@container ns-custom-card-grid style(--ns-card-content-layout: vertical) {
		.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card.ns-custom-card-grid__card:not(:hover),
		.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card.ns-custom-card-grid__card:hover {
			height: auto;
			min-height: max(var(--ns-card-min-height, 0px), 169.3984375px);
		}
	}
}

@container ns-custom-card-grid style(--ns-card-content-layout: vertical) and style(--ns-card-vertical-order: image_first) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card {
		grid-template-rows: auto auto;
		grid-template-areas: "image" "content";
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card--has-image:not(.ns-custom-card-grid__card--has-content) {
		grid-template-rows: auto;
		grid-template-areas: "image";
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card--has-content:not(.ns-custom-card-grid__card--has-image) {
		grid-template-rows: auto;
		grid-template-areas: "content";
	}
}

@container ns-custom-card-grid style(--ns-card-vertical-text-alignment: stretch) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card.ns-custom-card-grid__card .ns-custom-card-grid__content {
		width: 100%;
		justify-self: stretch;
		text-align: right;
	}
}

@container ns-custom-card-grid style(--ns-card-content-layout: horizontal) {
	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card {
		display: grid;
		direction: ltr;
		grid-template-columns: minmax(0, min(var(--ns-card-image-column-width, max(4rem, 35%)), max(0px, calc(100% - var(--ns-card-image-spacing, 10px))))) minmax(0, 1fr);
		grid-template-rows: minmax(0, 1fr);
		grid-template-areas: "image content";
		column-gap: var(--ns-card-image-spacing, 10px);
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card.ns-custom-card-grid__card .ns-custom-card-grid__content {
		position: relative;
		grid-area: content;
		z-index: 2;
		direction: rtl;
		align-self: var(--ns-horizontal-content-align, center);
		text-align: var(--ns-card-horizontal-text-alignment, right);
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card.ns-custom-card-grid__card .ns-custom-card-grid__image-area {
		position: relative;
		inset: auto;
		grid-area: image;
		align-items: center;
		align-self: var(--ns-horizontal-image-align, center);
		width: 100%;
		height: auto;
		min-width: 0;
		margin: 0;
		z-index: 0;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card::after {
		display: none;
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card--has-image:not(.ns-custom-card-grid__card--has-content) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "image";
	}

	.elementor-widget-ns_custom_card_grid .ns-custom-card-grid .ns-custom-card-grid__card--has-content:not(.ns-custom-card-grid__card--has-image) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "content";
	}
}

/* Expand only this title/card row where the exact five-card row otherwise cannot fit. */
@media (min-width: 1200px) and (max-width: 1379.98px) {
	.elementor-2 .elementor-element.elementor-element-77fa35e.e-child {
		--width: 100%;
	}
}

/* Center every wrapped line of centered, preferred-column grids on smaller layouts. */
@media (max-width: 1199.98px) {
	@container ns-custom-card-grid style(--ns-grid-mode: preferred) and style(--ns-grid-alignment: center) {
		.elementor-element.elementor-widget-ns_custom_card_grid[data-widget_type="ns_custom_card_grid.default"] > .elementor-widget-container > .ns-custom-card-grid {
			--ns-flex-track-width: var(--ns-preferred-track-width);
			--ns-flex-card-width: min(
				100%,
				max(
					var(--ns-card-min-width, 175.734375px),
					min(var(--ns-flex-track-width), var(--ns-card-max-width, var(--ns-flex-track-width)))
				)
			);
			display: flex;
			flex-wrap: wrap;
			justify-content: center;
			column-gap: calc(
				var(--ns-grid-column-gap, var(--ns-card-gap, 20px))
				+ max(0px, calc(var(--ns-flex-track-width) - var(--ns-flex-card-width)))
			);
			row-gap: var(--ns-grid-row-gap, var(--ns-card-gap, 20px));
		}

		.elementor-element.elementor-widget-ns_custom_card_grid[data-widget_type="ns_custom_card_grid.default"] > .elementor-widget-container > .ns-custom-card-grid > .ns-custom-card-grid__card {
			flex: 0 0 var(--ns-flex-card-width);
		}
	}
}
