/*
Theme Name: Melsanta Astra Child
Theme URI: https://melsanta.cl
Description: Tema hijo de Astra para el proyecto Melsanta.
Author: Jim
Template: astra
Version: 1.0.0
Text Domain: melsanta-astra-child
*/

/*
----------------------------------------------------
Aquí agregaremos todo el CSS personalizado.
Codex trabajará principalmente sobre este archivo.
----------------------------------------------------
*/

/*
 * Sprint 1: header responsive.
 * Keep Astra's approved desktop header unchanged.
 */
.melsanta-mobile-header-cart {
	display: none;
}

.ast-site-title-wrap {
	display: none;
}

@media (max-width: 921px) {
	#ast-mobile-header .site-primary-header-wrap {
		padding-right: 16px;
		padding-left: 16px;
	}

	#ast-mobile-header .ast-main-header-wrap {
		position: relative;
	}

	#ast-mobile-header .ast-builder-grid-row {
		min-height: 104px;
		grid-template-columns: minmax(0, 1fr) auto;
	}

	#ast-mobile-header .site-branding {
		min-width: 0;
		padding-top: 8px;
		padding-bottom: 8px;
	}

	#ast-mobile-header .site-logo-img {
		padding-right: 0;
	}

	#ast-mobile-header .site-logo-img .custom-logo-link {
		display: flex;
		align-items: center;
	}

	#ast-mobile-header .site-logo-img img.custom-logo {
		width: 150px;
		max-width: 100%;
		height: auto;
	}

	#ast-mobile-header .site-header-primary-section-right {
		gap: 8px;
		align-items: center;
	}

	#ast-mobile-header .melsanta-mobile-header-cart {
		display: flex;
		position: absolute;
		top: 50%;
		right: 68px;
		z-index: 2;
		align-items: center;
		transform: translateY(-50%);
	}

	#ast-mobile-header .melsanta-mobile-header-cart .cart-container,
	#ast-mobile-header .menu-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		min-width: 44px;
		height: 44px;
		min-height: 44px;
		padding: 10px;
	}

	#ast-mobile-header .melsanta-mobile-header-cart .ast-addon-cart-wrap {
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0;
	}

	#ast-mobile-header .melsanta-mobile-header-cart i.astra-icon {
		position: relative;
		padding: 0 2px;
	}

	#ast-mobile-header .melsanta-mobile-header-cart i.astra-icon::after {
		content: attr(data-cart-total);
		position: absolute;
		top: -10px;
		right: -12px;
		z-index: 3;
		min-width: 18px;
		height: 18px;
		padding-right: 1px;
		border-radius: 99px;
		background-color: #1b197b;
		box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.3);
		color: #ffffff;
		font-size: 11px;
		font-style: normal;
		font-weight: bold;
		letter-spacing: -0.5px;
		line-height: 17px;
		text-align: center;
	}

	#ast-mobile-header .melsanta-mobile-header-cart i.astra-icon.no-cart-total::after {
		display: none;
	}

	#ast-mobile-header .ast-mobile-header-content .menu-link {
		display: flex;
		min-height: 44px;
		align-items: center;
	}
}

@media (max-width: 544px) {
	#ast-mobile-header .site-primary-header-wrap {
		padding-right: 12px;
		padding-left: 12px;
	}

	#ast-mobile-header .ast-builder-grid-row {
		min-height: 92px;
	}

	#ast-mobile-header .site-logo-img img.custom-logo {
		width: 132px;
	}

	#ast-mobile-header .site-header-primary-section-right {
		gap: 4px;
	}
}

/*
 * Sprint 2: Home content responsive.
 * Scope: Hero, Discover CTA, animal gallery, Benefits and Footer.
 */

/* Keep the footer brand block on the approved corporate blue. */
.elementor-19 .elementor-element.elementor-element-ce20d7a:not(.elementor-motion-effects-element-type-background),
.elementor-19 .elementor-element.elementor-element-36fd5b1 {
	background-color: #1B197B;
}

.elementor-19 .elementor-element.elementor-element-464245a img {
	display: block;
	mix-blend-mode: lighten;
}

/* Expand the animal gallery to the full useful width. */
.elementor-19 .elementor-element.elementor-element-70e3d93 {
	--content-width: 100%;
}

.elementor-19 .elementor-element.elementor-element-fa035a0 {
	width: 100%;
	margin-right: 0;
	margin-left: 0;
}

.elementor-19 .elementor-element.elementor-element-fa035a0 img {
	display: block;
	width: 100%;
	height: auto;
}

/* Keep the Hero CTA in normal layout flow; Elementor's offsets must not move it. */
.elementor-19 .elementor-element.elementor-element-16f9061 {
	position: static;
	text-align: center;
}
/* Preserve the approved desktop composition while refining CTA alignment. */
@media (min-width: 1025px) {
	.elementor-19 .elementor-element.elementor-element-16f9061 {
		width: 50%;
		max-width: 50%;
		margin: 0 auto 48px 0;
		align-self: flex-end;
	}

	.elementor-19 .elementor-element.elementor-element-361fc68 .elementor-button {
		min-width: 160px;
		min-height: 48px;
		padding: 14px 32px;
	}
}

/* Tablet: show the complete Hero artwork and balance Benefit cards. */
@media (min-width: 545px) and (max-width: 1024px) {
	.elementor-19 .elementor-element.elementor-element-ad0ab41 {
		--min-height: 54.34vw;
		min-height: 54.34vw;
	}

	.elementor-19 .elementor-element.elementor-element-ad0ab41:not(.elementor-motion-effects-element-type-background) {
		background-position: center top;
		background-size: contain;
	}

	.elementor-19 .elementor-element.elementor-element-16f9061 {
		width: 50%;
		max-width: 50%;
		margin: 0 auto 28px 0;
		align-self: flex-end;
	}

	.elementor-19 .elementor-element.elementor-element-3082ab2 {
		--flex-wrap: wrap;
		flex-wrap: wrap;
		align-items: stretch;
	}

	.elementor-19 .elementor-element.elementor-element-3082ab2 > .e-con {
		--width: calc((100% - 50px) / 3);
		flex: 1 1 calc((100% - 50px) / 3);
		min-width: 210px;
		min-height: 340px;
	}
}

/* Mobile: keep Hero proportions and stack content for comfortable reading. */
@media (max-width: 544px) {
	.elementor-19 .elementor-element.elementor-element-ad0ab41 {
		--min-height: calc(54.34vw + 68px);
		min-height: calc(54.34vw + 68px);
	}

	.elementor-19 .elementor-element.elementor-element-ad0ab41:not(.elementor-motion-effects-element-type-background) {
		background-position: center top;
		background-size: contain;
	}

	.elementor-19 .elementor-element.elementor-element-16f9061 {
		width: 100%;
		max-width: 100%;
		margin: 0 0 10px;
		padding: 0 16px;
		align-self: flex-end;
	}

	.elementor-19 .elementor-element.elementor-element-16f9061 .elementor-button {
		padding: 14px 24px;
		font-size: 16px;
		white-space: nowrap;
	}

	.elementor-19 .elementor-element.elementor-element-3082ab2 {
		--flex-direction: column;
		--flex-wrap: wrap;
		flex-direction: column;
		flex-wrap: wrap;
		align-items: stretch;
		gap: 24px;
	}

	.elementor-19 .elementor-element.elementor-element-3082ab2 > .e-con {
		--width: 100%;
		width: 100%;
		min-height: 280px;
		flex: 0 0 auto;
	}

	.elementor-19 .elementor-element.elementor-element-ce20d7a {
		--flex-direction: column;
		--flex-wrap: wrap;
		flex-direction: column;
		flex-wrap: wrap;
		align-items: center;
		gap: 32px;
		padding: 44px 24px;
	}

	.elementor-19 .elementor-element.elementor-element-ce20d7a > .e-con {
		--width: 100%;
		width: 100%;
		align-items: center;
	}

	.elementor-19 .elementor-element.elementor-element-218d82c,
	.elementor-19 .elementor-element.elementor-element-eb8f596 {
		text-align: center;
	}

	.elementor-19 .elementor-element.elementor-element-12906ce,
	.elementor-19 .elementor-element.elementor-element-a35fa27 {
		width: 100%;
		text-align: center;
	}

	.elementor-19 .elementor-element.elementor-element-0429cb6 {
		justify-content: center;
	}
}

/* Sprint 2: separación lateral de Carrito y Checkout en móvil. */
@media (max-width: 544px) {
	body.woocommerce-cart .wp-block-woocommerce-cart,
	body.woocommerce-checkout .wp-block-woocommerce-checkout {
		box-sizing: border-box;
		width: 100%;
		margin-right: auto;
		margin-left: auto;
		padding-right: 16px;
		padding-left: 16px;
	}
}

/*
 * Sprint 3: visual refinements.
 * Scoped to the approved Elementor sections on Home (19) and Discover (69).
 */

/* The Hero heading is part of its background artwork; move the composition
 * down slightly while the CTA remains in normal layout flow. */
@media (min-width: 1025px) {
	.elementor-19 .elementor-element.elementor-element-ad0ab41:not(.elementor-motion-effects-element-type-background) {
		background-position: center calc(50% + 24px);
	}

	.elementor-19 .elementor-element.elementor-element-16f9061 {
		margin-bottom: 72px;
	}
}

@media (min-width: 545px) and (max-width: 1024px) {
	.elementor-19 .elementor-element.elementor-element-16f9061 {
		margin-bottom: 42px;
	}
}

@media (max-width: 544px) {
	.elementor-19 .elementor-element.elementor-element-16f9061 {
		margin-bottom: 28px;
	}
}

/* Give every Benefit card the same icon and text reference points. */
.elementor-19 .elementor-element.elementor-element-3082ab2 > .e-con {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
}

.elementor-19 .elementor-element.elementor-element-3082ab2 .elementor-widget-image {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
}

.elementor-19 .elementor-element.elementor-element-3082ab2 .elementor-widget-image img {
	transform: scale(1.2);
	transform-origin: center;
}

.elementor-19 .elementor-element.elementor-element-3082ab2 .elementor-widget-heading {
	display: flex;
	min-height: 2em;
	align-items: flex-start;
	justify-content: center;
	text-align: center;
}

.elementor-19 .elementor-element.elementor-element-3082ab2 .elementor-widget-text-editor {
	align-self: stretch;
	text-align: center;
}

/* Align the Home product formats by the base of each package. */
@media (min-width: 545px) {
	.elementor-19 .elementor-element.elementor-element-92a52d1 {
		align-items: flex-end;
	}
}

.elementor-19 .elementor-element.elementor-element-92a52d1 .elementor-button {
	white-space: nowrap;
}

/* Center the Results section independently from surrounding sections. */
.elementor-69 .elementor-element.elementor-element-c346fbd,
.elementor-69 .elementor-element.elementor-element-c346fbd .elementor-widget-container {
	text-align: center;
}

/* Keep Ingredient cards visually equal while improving readable body copy. */
@media (min-width: 545px) {
	.elementor-69 .elementor-element.elementor-element-34077a3 {
		align-items: stretch;
	}

	.elementor-69 .elementor-element.elementor-element-34077a3 > .e-con {
		align-self: stretch;
	}
}

.elementor-69 .elementor-element.elementor-element-34077a3 .elementor-widget-text-editor {
	font-size: 18px;
}

@media (max-width: 544px) {
	.elementor-69 .elementor-element.elementor-element-34077a3 .elementor-widget-text-editor {
		font-size: 17px;
	}
}

/* Match the Discover footer background and logo treatment to Home. */
.elementor-69 .elementor-element.elementor-element-120ff5d,
.elementor-69 .elementor-element.elementor-element-0cc110f {
	background-color: #1b197b;
}

.elementor-69 .elementor-element.elementor-element-24ac1c2 img {
	display: block;
	mix-blend-mode: lighten;
}

/*
 * Sprint 03.1: follow-up corrections from the latest visual review.
 * Limit these overrides to the approved Home and Discover sections.
 */

/* Use the supplied Hero artwork without changing Elementor's saved content. */
.elementor-19 .elementor-element.elementor-element-ad0ab41:not(.elementor-motion-effects-element-type-background),
.elementor-19 .elementor-element.elementor-element-ad0ab41 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	//background-image: url("assets/images/hero-home-v2.png");
	background-position: center center;
}

/* The new artwork already positions the integrated heading; raise only its CTA. */
@media (min-width: 1025px) {
	.elementor-19 .elementor-element.elementor-element-16f9061 {
		margin-bottom: 90px;
	}
}

@media (min-width: 545px) and (max-width: 1024px) {
	.elementor-19 .elementor-element.elementor-element-16f9061 {
		margin-bottom: 60px;
	}
}

@media (max-width: 544px) {
	.elementor-19 .elementor-element.elementor-element-16f9061 {
		margin-bottom: 42px;
	}
}

/* Stretch the existing Benefit cards to their row's common visual height. */
@media (min-width: 545px) {
	.elementor-19 .elementor-element.elementor-element-3082ab2 {
		align-items: stretch;
	}

	.elementor-19 .elementor-element.elementor-element-3082ab2 > .e-con {
		align-self: stretch;
	}
}

/* Lift only the two taller formats, preserving their natural size difference. */
@media (min-width: 545px) {
	.elementor-19 .elementor-element.elementor-element-beae6fe {
		transform: translateY(-20px);
	}

	.elementor-19 .elementor-element.elementor-element-31aa6dd {
		transform: translateY(-30px);
	}
}

/* Keep the Results content vertically centered even if its container grows. */
.elementor-69 .elementor-element.elementor-element-c346fbd {
	display: flex;
	justify-content: center;
}

/* Sprint 04: final visual-experience refinements. */

/* Keep the Results content centered along both axes without enlarging its block. */
.elementor-69 .elementor-element.elementor-element-c346fbd {
	align-items: center;
	justify-content: center;
}

/* Reuse the approved Home package alignment for Discover's format selector. */
@media (min-width: 545px) {
	.elementor-69 .elementor-element.elementor-element-d7bba25 {
		align-items: flex-end;
	}

	.elementor-69 .elementor-element.elementor-element-5376d99 {
		transform: translateY(-20px);
	}

	.elementor-69 .elementor-element.elementor-element-28c88e6 {
		transform: translateY(-30px);
	}
}

/* Fixed Home-only contact entry, placed above Astra's scroll-to-top control. */
.melsanta-home-whatsapp {
	position: fixed;
	right: 30px;
	bottom: 104px;
	z-index: 9998;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	max-width: 56px;
	height: 56px;
	max-height: 56px;
	box-sizing: border-box;
	flex: 0 0 56px;
	line-height: 1;
	overflow: hidden;
	border-radius: 50%;
	background: #25d366;
	color: #ffffff;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.24);
	transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.melsanta-home-whatsapp:hover {
	background: #128c7e;
	color: #ffffff;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
}

.melsanta-home-whatsapp:focus-visible {
	outline: 3px solid #ffcc33;
	outline-offset: 3px;
}

.melsanta-home-whatsapp svg {
	display: block;
	flex: 0 0 30px;
	width: 30px;
	max-width: 30px;
	height: 30px;
	max-height: 30px;
}

@media (max-width: 544px) {
	.melsanta-home-whatsapp {
		right: 18px;
		bottom: 18px;
		width: 56px;
		max-width: 56px;
		height: 56px;
		max-height: 56px;
		flex-basis: 56px;
	}
}

/*
 * Sprint 05: targeted mobile responsive corrections.
 * These selectors mirror the affected Elementor sections without changing
 * their approved tablet and desktop layouts.
 */
@media (max-width: 544px) {
	/* Stack Discover's desktop footer columns before their fixed gap can overflow. */
	.elementor-69 .elementor-element.elementor-element-120ff5d {
		--flex-direction: column;
		--flex-wrap: wrap;
		flex-direction: column;
		flex-wrap: wrap;
		align-items: center;
		gap: 32px;
		padding: 44px 24px;
	}

	.elementor-69 .elementor-element.elementor-element-120ff5d > .e-con {
		--width: 100%;
		width: 100%;
		align-items: center;
	}

	.elementor-69 .elementor-element.elementor-element-9413b7d,
	.elementor-69 .elementor-element.elementor-element-6990634,
	.elementor-69 .elementor-element.elementor-element-d98b07f,
	.elementor-69 .elementor-element.elementor-element-85458e1 {
		text-align: center;
	}

	/* Keep Discover's cards and product formats readable instead of compressed. */
	.elementor-69 .elementor-element.elementor-element-34077a3,
	.elementor-69 .elementor-element.elementor-element-d7bba25 {
		--flex-direction: column;
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
	}

	.elementor-69 .elementor-element.elementor-element-34077a3 > .e-con,
	.elementor-69 .elementor-element.elementor-element-d7bba25 > .e-con {
		--width: 100%;
		width: 100%;
	}

	/* One product card per row preserves labels and touch controls on narrow screens. */
	body.woocommerce-shop.woocommerce-page ul.products.products:not(.elementor-grid),
	body.single-product.woocommerce .related.products ul.products.products:not(.elementor-grid) {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	body.woocommerce-shop ul.products li.product,
	body.single-product .related ul.products li.product {
		width: 100%;
		margin: 0;
	}

	body.woocommerce-shop ul.products li.product .button,
	body.single-product .related ul.products li.product .button {
		display: inline-flex;
		min-height: 44px;
		align-items: center;
		justify-content: center;
	}
}

/*
 * Sprint 05B: approved responsive and visual refinements.
 * Scope is limited to the Home hero, shared tablet header, shop cards,
 * Home WhatsApp entry and WooCommerce's empty-cart block.
 */
@media (min-width: 545px) and (max-width: 921px) {
	/* Give the compact tablet header more visual weight without changing its menu. */
	#ast-mobile-header .site-primary-header-wrap {
		padding-right: 28px;
		padding-left: 28px;
	}

	#ast-mobile-header .site-logo-img img.custom-logo {
		width: 172px;
	}

	#ast-mobile-header .site-header-primary-section-left {
		justify-content: center;
	}

	#ast-mobile-header .site-header-primary-section-right {
		gap: 16px;
	}
}

@media (max-width: 544px) {
	/* Match the tablet artwork ratio now that the CTA no longer occupies flow space. */
	.elementor-19 .elementor-element.elementor-element-ad0ab41 {
		--min-height: 54.34vw;
		min-height: 54.34vw;
	}

	.elementor-19 .elementor-element.elementor-element-16f9061 {
		margin-bottom: 18px;
	}

	/* Keep the fixed contact entry visibly separate from section boundaries. */
	.melsanta-home-whatsapp {
		right: 8px;
		bottom: 160px;
	}

	/* Keep shop cards compact while preserving a one-column touch-friendly layout. */
	body.woocommerce-shop.woocommerce-page ul.products.products:not(.elementor-grid) {
		gap: 24px;
	}

	body.woocommerce-shop ul.products li.product .astra-shop-thumbnail-wrap {
		display: flex;
		justify-content: center;
		margin-bottom: 12px;
	}

	body.woocommerce-shop ul.products li.product .woocommerce-LoopProduct-link {
		display: flex;
		justify-content: center;
	}

	body.woocommerce-shop ul.products li.product .woocommerce-LoopProduct-link img {
		width: min(100%, 280px);
	}

	/* Reduce empty-cart decoration and group each suggested product as one card. */
	body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
		height: 3.5em;
		margin-bottom: 1em;
	}

	body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .is-style-dots {
		max-width: 96px;
		margin: 16px auto;
		opacity: 0.55;
	}

	body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
		text-align: center;
	}

	body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image {
		display: flex;
		align-items: center;
		justify-content: center;
		width: min(100%, 220px);
		overflow: hidden;
	}

	body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product:first-child .wc-block-grid__product-image img {
		width: 150%;
		max-width: none;
	}

	body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link {
		min-height: 44px;
		align-items: center;
	}
}

@media (min-width: 545px) {
	/* Normalize the shop image canvas and enlarge only the transparent 500 g asset. */
	body.woocommerce-shop ul.products li.product .astra-shop-thumbnail-wrap {
		display: flex;
		align-items: center;
		justify-content: center;
		aspect-ratio: 1;
		overflow: hidden;
	}

	body.woocommerce-shop ul.products li.product .woocommerce-LoopProduct-link {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
	}

	body.woocommerce-shop ul.products li.product .woocommerce-LoopProduct-link img {
		width: 100%;
		height: 100%;
		object-fit: contain;
	}

	body.woocommerce-shop ul.products li.post-253 .woocommerce-LoopProduct-link img {
		width: 200%;
		height: auto;
		max-width: none;
	}
}

/* Sprint 05C: final mobile hero and shop-card alignment adjustments. */
@media (max-width: 544px) {
	/* Match the Home hero container to the corporate blue embedded in its artwork. */
	.elementor-19 .elementor-element.elementor-element-ad0ab41:not(.elementor-motion-effects-element-type-background),
	.elementor-19 .elementor-element.elementor-element-ad0ab41 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
		background-color: #000074;
	}

	/* Center the complete mobile shop card, not only its product image. */
	body.woocommerce-shop.woocommerce-page ul.products.products:not(.elementor-grid) > li.product {
		width: min(100%, 320px);
		max-width: 320px;
		margin-inline: auto;
		text-align: center;
	}

	body.woocommerce-shop.woocommerce-page ul.products li.product .astra-shop-summary-wrap {
		text-align: center;
	}

	body.woocommerce-shop.woocommerce-page ul.products li.product .button {
		display: flex;
		width: fit-content;
		margin-inline: auto;
	}
}

/* Sprint 05D: final Home-only CTA and product-card alignment. */
@media (max-width: 544px) {
	/* Overlay the CTA in the open area below the copy embedded in the Hero artwork. */
	body:not(.rtl) .elementor-19 .elementor-element.elementor-element-16f9061 {
		position: absolute;
		top: calc(55% + 20px);
		left: 8%;
		width: auto;
		max-width: 38%;
		margin: 0;
		padding: 0;
		align-self: auto;
	}

	.elementor-19 .elementor-element.elementor-element-16f9061 .elementor-button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 36px;
		padding: 5px 10px;
		font-size: 11px;
		max-width: 100%;
		white-space: normal;
	}

	/* Center each Elementor product stack and its card within the Home section. */
	.elementor-19 .elementor-element.elementor-element-92a52d1 {
		--flex-direction: column;
		flex-direction: column;
		align-items: center;
		gap: 24px;
	}

	.elementor-19 .elementor-element.elementor-element-27e945e,
	.elementor-19 .elementor-element.elementor-element-e88ab45,
	.elementor-19 .elementor-element.elementor-element-1d7bdfb {
		--width: min(100%, 320px);
		width: min(100%, 320px);
		margin-inline: auto;
		align-items: center;
	}

	.elementor-19 .elementor-element.elementor-element-e73524f,
	.elementor-19 .elementor-element.elementor-element-01eaf4d,
	.elementor-19 .elementor-element.elementor-element-52e5636 {
		margin-inline: auto;
	}
}

/* Sprint 06: align mobile card content to each card's horizontal axis. */
@media (max-width: 544px) {
	/* Center the 90% description box itself, not only the text it contains. */
	.elementor-19 .elementor-element.elementor-element-3082ab2 .elementor-widget-text-editor {
		align-self: center;
		margin-inline: auto;
		text-align: center;
	}

	/* Elementor buttons keep horizontal widget padding; center their inline CTA within it. */
	.elementor-19 .elementor-element.elementor-element-089e200,
	.elementor-19 .elementor-element.elementor-element-5ad0fc7,
	.elementor-19 .elementor-element.elementor-element-20b641c,
	.elementor-69 .elementor-element.elementor-element-e1a3b2f,
	.elementor-69 .elementor-element.elementor-element-3260376,
	.elementor-69 .elementor-element.elementor-element-c8471c1 {
		display: flex;
		justify-content: center;
	}

	/* Match Discover's mobile format stacks to the centered Home card pattern. */
	.elementor-69 .elementor-element.elementor-element-d7bba25 > .e-con {
		--width: min(100%, 320px);
		width: min(100%, 320px);
		margin-inline: auto;
		align-items: center;
	}

	.elementor-69 .elementor-element.elementor-element-9265564,
	.elementor-69 .elementor-element.elementor-element-e81cf85,
	.elementor-69 .elementor-element.elementor-element-5c87597 {
		margin-inline: auto;
	}
}

/* Sprint 01.1: focused visual corrections after functional QA. */

/* Center product CTAs inside Elementor's fixed-width button widgets. */
.elementor-19 .elementor-element.elementor-element-089e200,
.elementor-19 .elementor-element.elementor-element-5ad0fc7,
.elementor-19 .elementor-element.elementor-element-20b641c,
.elementor-69 .elementor-element.elementor-element-e1a3b2f,
.elementor-69 .elementor-element.elementor-element-3260376,
.elementor-69 .elementor-element.elementor-element-c8471c1 {
	display: flex;
	justify-content: center;
}

/* Balance the asymmetric Elementor padding around Ingredients on mobile. */
@media (max-width: 544px) {
	.elementor-69 .elementor-element.elementor-element-49d5722 {
		--padding-right: 15px;
		--padding-left: 15px;
		padding-inline: 15px;
	}
}

/* Separate WooCommerce flows from the header and the following page edge. */
body.woocommerce-cart #content > .ast-container,
body.woocommerce-checkout #content > .ast-container,
body.woocommerce-order-received #content > .ast-container {
	box-sizing: border-box;
	padding-top: clamp(24px, 3vw, 44px);
	padding-bottom: clamp(32px, 4vw, 64px);
}

/* Product pages required extra vertical space only from tablet upward. */
@media (min-width: 545px) {
	body.single-product #content > .ast-container {
		box-sizing: border-box;
		padding-top: clamp(32px, 3vw, 44px);
		padding-bottom: clamp(40px, 4vw, 64px);
	}
}

/* Keep the product content away from tablet edges without changing desktop. */
@media (min-width: 545px) and (max-width: 921px) {
	body.single-product #content > .ast-container {
		padding-right: 32px;
		padding-left: 32px;
	}
}

@media (min-width: 545px) and (max-width: 1024px) {
	body.woocommerce-cart .wc-block-cart .wc-block-components-main,
	body.woocommerce-cart .wc-block-cart .wc-block-components-sidebar,
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar {
		padding-left: 40px;
	}
}

/* Align compact WooCommerce flows and their alignwide blocks to one inset. */
@media (max-width: 921px) {
	body.woocommerce-cart #content > .ast-container,
	body.woocommerce-checkout #content > .ast-container,
	body.woocommerce-order-received #content > .ast-container {
		padding-right: clamp(24px, 4vw, 32px);
		padding-left: clamp(24px, 4vw, 32px);
	}

	body.woocommerce-cart .wp-block-woocommerce-cart,
	body.woocommerce-checkout .wp-block-woocommerce-checkout {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		padding-right: 20px;
		padding-left: 20px;
	}
}
