/**
 * Additional CSS for IV drip product cards.
 * Loaded after style.css. The Preview hover on service and product images
 * stays in style.css.
 *
 * Two Elementor layouts are in use:
 * - Title first: heading, label, image, price, button (San Francisco template)
 * - Image first: image panel, label, heading, price, button (newer city templates)
 */

/* Title-first card (San Francisco / Miami template) */
.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image):has(> .elementor-widget-button),
/* Image-first card (Los Angeles / Dubai template) */
.e-con.e-child:has(> .e-con:first-child .elementor-widget-image):has(> .elementor-widget-heading):has(> .elementor-widget-button) {
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
	align-items: stretch !important;
	align-self: stretch !important;
	justify-self: stretch !important;
	gap: 15px !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	--width: 100%;
	height: 100%;
	box-sizing: border-box !important;
	background: #fff !important;
	border: 1px solid #e4edf0 !important;
	border-radius: 18px !important;
	box-shadow: 0 0 42px -26px rgba(0, 0, 0, 0.22) !important;
	padding: 20px !important;
	text-align: center !important;
	transition: transform 0.2s, box-shadow 0.2s, background 0.2s, border-color 0.2s !important;
}

.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image):has(> .elementor-widget-button):hover,
.e-con.e-child:has(> .e-con:first-child .elementor-widget-image):has(> .elementor-widget-heading):has(> .elementor-widget-button):hover {
	background: #fff !important;
	border-color: #cff6fa !important;
	transform: translateY(-4px);
	box-shadow: 0 22px 60px rgba(20, 35, 42, 0.18) !important;
}

/* Four-up grid, same as the San Francisco treatments section */
.e-con:has(> .e-con.e-child > .elementor-widget-heading:first-child):has(> .e-con.e-child > .elementor-widget-image),
.e-con:has(> .e-con.e-child > .e-con:first-child .elementor-widget-image):has(> .e-con.e-child > .elementor-widget-button) {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	grid-template-rows: none !important;
	gap: 30px !important;
	align-items: stretch !important;
	--e-con-grid-template-columns: repeat(4, minmax(0, 1fr));
	--e-con-grid-template-rows: none;
	--gap: 30px;
	--column-gap: 30px;
	--row-gap: 30px;
}

/* Title */
.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image):has(h3) .elementor-widget-heading {
	text-align: center !important;
	width: 100% !important;
}

.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image) h3,
.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image) h3 a {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	color: #14232a !important;
	text-align: center !important;
	text-decoration: none !important;
	margin: 0 0 6px !important;
}

/* Eyebrow sits above the title in both layouts */
.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image) > .elementor-widget-heading:nth-child(2) h4,
.e-con.e-child:has(> .e-con:first-child .elementor-widget-image) > .elementor-widget-heading:nth-child(2) h4 {
	font-family: Inter, sans-serif !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	line-height: 1.5 !important;
	text-transform: uppercase !important;
	color: #0c8c9b !important;
	text-align: center !important;
	margin: 0 0 6px !important;
}

/* Price */
.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image) > .elementor-widget-heading:nth-child(4) h4,
.e-con.e-child:has(> .e-con:first-child .elementor-widget-image) > .elementor-widget-heading:nth-child(4) h4 {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	color: #14232a !important;
	text-align: center !important;
	margin: 0 0 14px !important;
}

/* Pull the title under the eyebrow on the title-first template */
.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image):has(> .elementor-widget-button) > .elementor-widget:nth-child(1) {
	order: 3;
}

.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image):has(> .elementor-widget-button) > .elementor-widget:nth-child(2) {
	order: 2;
}

.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image):has(> .elementor-widget-button) > .elementor-widget:nth-child(3) {
	order: 1;
}

.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image):has(> .elementor-widget-button) > .elementor-widget:nth-child(4) {
	order: 4;
}

.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image):has(> .elementor-widget-button) > .elementor-widget:nth-child(5) {
	order: 5;
}

/* Image panel */
.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-button) > .elementor-widget-image,
.e-con.e-child:has(> .elementor-widget-button) > .e-con:first-child:has(.elementor-widget-image) {
	position: relative;
	overflow: hidden;
	background: #eaf8fa !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 14px !important;
	padding: 10px !important;
	margin: 0 0 14px !important;
	width: 100% !important;
}

.e-con.e-child:has(> .elementor-widget-button) > .e-con:first-child:has(.elementor-widget-image) .elementor-widget-image {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image) .elementor-widget-image img {
	width: 72% !important;
	max-width: 72% !important;
	height: auto !important;
	margin: 0 auto !important;
	aspect-ratio: 1 / 1.3;
	object-fit: contain;
}

/* Book Now */
.e-con.e-child:has(> .elementor-widget-heading:first-child):has(> .elementor-widget-image) > .elementor-widget-button,
.e-con.e-child:has(> .e-con:first-child .elementor-widget-image) > .elementor-widget-button {
	order: 5;
	width: 100% !important;
	margin-top: auto !important;
}

.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image):has(h3) .elementor-button-wrapper {
	width: 100%;
}

.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image):has(h3) .elementor-button {
	display: block !important;
	width: 100% !important;
	padding: 11px !important;
	border: none !important;
	border-radius: 999px !important;
	background: #12b4c6 !important;
	color: #fff !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-weight: 700 !important;
	font-size: 12.5px !important;
	line-height: 1.2 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
	transition: background 0.2s, transform 0.2s, box-shadow 0.2s !important;
}

.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image):has(h3) .elementor-button:hover {
	background: #0c8c9b !important;
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(18, 180, 198, 0.35) !important;
}

.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image):has(h3) .elementor-button-text,
.e-con.e-child:has(> .elementor-widget-button):has(.elementor-widget-image):has(h3) .elementor-button-content-wrapper {
	color: inherit !important;
	justify-content: center;
}

@media (max-width: 1024px) {
	.e-con:has(> .e-con.e-child > .elementor-widget-heading:first-child):has(> .e-con.e-child > .elementor-widget-image),
	.e-con:has(> .e-con.e-child > .e-con:first-child .elementor-widget-image):has(> .e-con.e-child > .elementor-widget-button) {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		--e-con-grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px !important;
		--gap: 20px;
		--column-gap: 20px;
		--row-gap: 20px;
	}
}

@media (max-width: 767px) {
	.e-con:has(> .e-con.e-child > .elementor-widget-heading:first-child):has(> .e-con.e-child > .elementor-widget-image),
	.e-con:has(> .e-con.e-child > .e-con:first-child .elementor-widget-image):has(> .e-con.e-child > .elementor-widget-button) {
		grid-template-columns: minmax(0, 1fr) !important;
		--e-con-grid-template-columns: minmax(0, 1fr);
	}
}
