/*
 * Majestic Product Buying Area
 * v0.4.0
 *
 * Conversion-critical buying UI only. Elementor remains responsible for
 * the surrounding product-page layout and editorial sections.
 */

.majestic-buy-box {
	--majestic-buy-title-desktop: 34px;
	--majestic-buy-title-tablet: 30px;
	--majestic-buy-title-mobile: 26px;
	--majestic-buy-price-desktop: 22px;
	--majestic-buy-price-tablet: 20px;
	--majestic-buy-price-mobile: 20px;
	--majestic-buy-body-desktop: 15px;
	--majestic-buy-body-tablet: 15px;
	--majestic-buy-body-mobile: 14px;
	--majestic-buy-button-desktop: 14px;
	--majestic-buy-button-tablet: 14px;
	--majestic-buy-button-mobile: 14px;

	width: 100%;
	color: var(--majestic-color-text, #222);
	font-family: var(--majestic-font-body, inherit);
}

.majestic-buy-box__rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	font-size: 12px;
	line-height: 1;
}

.majestic-buy-stars {
	position: relative;
	display: inline-block;
	width: 78px;
	height: 16px;
	overflow: hidden;
	font-family: Arial, sans-serif;
	font-size: 16px;
	line-height: 16px;
	white-space: nowrap;
}

.majestic-buy-stars__empty,
.majestic-buy-stars__filled {
	position: absolute;
	inset: 0 auto 0 0;
	white-space: nowrap;
}

.majestic-buy-stars__empty {
	width: 100%;
	color: var(--majestic-empty-star-color, #8f8f8f);
}

.majestic-buy-stars__filled {
	width: var(--majestic-buy-rating-width, 0%);
	overflow: hidden;
	color: var(--majestic-star-color, #d29f42);
}

.majestic-buy-box__review-link {
	color: var(--majestic-color-text, #222) !important;
	font-size: 12px;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.majestic-buy-box h1.majestic-buy-box__title,
.elementor .majestic-buy-box h1.majestic-buy-box__title {
	margin: 0 0 14px;
	padding: 0;
	color: var(--majestic-color-text, #222);
	font-family: var(--majestic-font-heading, inherit);
	font-size: var(--majestic-buy-title-desktop) !important;
	font-weight: inherit;
	line-height: 1.12 !important;
	letter-spacing: 0;
	text-transform: none;
}

.majestic-buy-box__price,
.majestic-buy-box .woocommerce-variation-price {
	margin: 0 0 18px;
	color: var(--majestic-color-text, #222) !important;
	font-size: var(--majestic-buy-price-desktop);
	font-weight: 700;
	line-height: 1.3;
}

/*
 * WooCommerce inserts variation pricing after a selection is made and its
 * global sale-price rules can otherwise override Majestic's brand colours.
 * Keep all price colour decisions scoped to the Majestic buying box.
 */
.majestic-buy-box__price .price,
.majestic-buy-box__price > .woocommerce-Price-amount,
.majestic-buy-box .woocommerce-variation-price .price,
.majestic-buy-box .woocommerce-variation-price > .woocommerce-Price-amount,
.majestic-buy-box .woocommerce-variation-price .price > .woocommerce-Price-amount {
	color: var(--majestic-color-text, #222) !important;
}

.majestic-buy-box__price del,
.majestic-buy-box .woocommerce-variation-price del {
	margin-right: 7px;
	color: var(--majestic-color-text, #222) !important;
	font-weight: 400;
	opacity: .45;
}

.majestic-buy-box__price del .woocommerce-Price-amount,
.majestic-buy-box .woocommerce-variation-price del .woocommerce-Price-amount,
.majestic-buy-box__price del .woocommerce-Price-currencySymbol,
.majestic-buy-box .woocommerce-variation-price del .woocommerce-Price-currencySymbol {
	color: inherit !important;
}

.majestic-buy-box__price ins,
.majestic-buy-box .woocommerce-variation-price ins {
	color: var(--majestic-color-accent, #aa7f79) !important;
	font-weight: 700;
	text-decoration: none;
}

.majestic-buy-box__price ins .woocommerce-Price-amount,
.majestic-buy-box .woocommerce-variation-price ins .woocommerce-Price-amount,
.majestic-buy-box__price ins .woocommerce-Price-currencySymbol,
.majestic-buy-box .woocommerce-variation-price ins .woocommerce-Price-currencySymbol {
	color: inherit !important;
}

.majestic-buy-box__description {
	margin: 0 0 20px;
	font-size: var(--majestic-buy-body-desktop);
	line-height: 1.6;
}

.majestic-buy-box__description > :first-child { margin-top: 0; }
.majestic-buy-box__description > :last-child { margin-bottom: 0; }

.majestic-buy-box__stock {
	margin: 0 0 18px;
}

.majestic-buy-box__stock .stock {
	margin: 0;
	color: var(--majestic-color-text, #222);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
}

.majestic-buy-box__stock .out-of-stock {
	color: #9b2c2c;
}

/* =========================================================
   WOOCOMMERCE BUY FORM
   ========================================================= */

.majestic-buy-box__cart {
	margin-top: 4px;
}

.majestic-buy-box form.cart,
.majestic-buy-box .variations_form,
.majestic-buy-box .woocommerce-variation-add-to-cart {
	width: 100%;
}

.majestic-buy-box table.variations,
.majestic-buy-box table.variations tbody,
.majestic-buy-box table.variations tr,
.majestic-buy-box table.variations th,
.majestic-buy-box table.variations td {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.majestic-buy-box table.variations {
	margin: 0 0 8px;
}

.majestic-buy-box table.variations tr {
	margin: 0 0 16px;
}

.majestic-buy-box table.variations .label {
	margin-bottom: 7px;
	text-align: left !important;
}

.majestic-buy-box table.variations .label label {
	color: var(--majestic-color-text, #222);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .025em;
	text-align: left !important;
	text-transform: uppercase;
}

.majestic-buy-box table.variations select {
	width: 100%;
	min-width: 0;
	height: 46px;
	margin: 0;
	padding: 8px 42px 8px 13px;
	border: 1px solid var(--majestic-color-border, #dedede);
	border-radius: 0;
	background-color: #fff;
	color: var(--majestic-color-text, #222);
	font-family: var(--majestic-font-body, inherit);
	font-size: 14px;
	line-height: 1.2;
}

.majestic-buy-box table.variations select:focus {
	outline: 2px solid var(--majestic-color-accent, #aa7f79);
	outline-offset: 2px;
}

.majestic-buy-box .reset_variations {
	display: inline-block;
	margin-top: 7px;
	color: var(--majestic-color-text, #222) !important;
	font-size: 11px;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.majestic-buy-box .single_variation_wrap {
	margin-top: 4px;
}

.majestic-buy-box .woocommerce-variation-description {
	margin-bottom: 12px;
	font-size: 13px;
	line-height: 1.5;
}

.majestic-buy-box .woocommerce-variation-availability .stock {
	margin: 0 0 12px;
	font-size: 12px;
}

.majestic-buy-box .woocommerce-variation-add-to-cart,
.majestic-buy-box form.cart:not(.variations_form) {
	display: flex;
	align-items: stretch;
	justify-content: flex-start;
	gap: 10px;
	margin: 0;
}

.majestic-buy-box .quantity {
	flex: 0 0 86px;
	margin: 0 !important;
}

.majestic-buy-box .quantity .qty {
	width: 100%;
	height: 50px;
	padding: 8px 9px;
	border: 1px solid var(--majestic-color-border, #dedede);
	border-radius: 0;
	background: #fff;
	color: var(--majestic-color-text, #222);
	font-family: var(--majestic-font-body, inherit);
	font-size: 14px;
	text-align: center;
}

.majestic-buy-box button.single_add_to_cart_button,
.majestic-buy-box a.single_add_to_cart_button,
.elementor .majestic-buy-box button.single_add_to_cart_button,
.elementor .majestic-buy-box a.single_add_to_cart_button {
	display: inline-flex;
	flex: 0 0 auto;
	width: auto !important;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	margin: 0 !important;
	padding: 11px 18px !important;
	border: 1px solid var(--majestic-color-accent, #aa7f79) !important;
	border-radius: 0 !important;
	background: var(--majestic-color-accent, #aa7f79) !important;
	color: #fff !important;
	font-family: var(--majestic-font-accent, var(--majestic-font-body, inherit));
	font-size: var(--majestic-buy-button-desktop) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: .035em;
	text-align: center;
	text-decoration: none !important;
	text-transform: uppercase;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease;
}

.majestic-buy-box button.single_add_to_cart_button:hover,
.majestic-buy-box button.single_add_to_cart_button:focus,
.majestic-buy-box a.single_add_to_cart_button:hover,
.majestic-buy-box a.single_add_to_cart_button:focus,
.elementor .majestic-buy-box button.single_add_to_cart_button:hover,
.elementor .majestic-buy-box button.single_add_to_cart_button:focus {
	border-color: var(--majestic-color-text, #222) !important;
	background: var(--majestic-color-text, #222) !important;
	color: #fff !important;
}

.majestic-buy-box button.single_add_to_cart_button.disabled,
.majestic-buy-box button.single_add_to_cart_button:disabled {
	cursor: not-allowed;
	opacity: .45;
}

.majestic-buy-box .group_table {
	width: 100%;
	margin-bottom: 14px;
	border-collapse: collapse;
}

.majestic-buy-box .group_table td {
	padding: 9px 4px;
	border-bottom: 1px solid var(--majestic-color-border, #e7e7e7);
}

/* =========================================================
   PURCHASE REASSURANCE
   ========================================================= */

.majestic-buy-reassurance {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 18px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--majestic-color-border, #e7e7e7);
}

.majestic-buy-reassurance__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
}

.majestic-buy-reassurance__icon {
	display: inline-flex;
	width: 23px;
	height: 23px;
	flex: 0 0 23px;
	color: var(--majestic-color-accent, #aa7f79);
}

.majestic-buy-reassurance__icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

.majestic-buy-reassurance__content {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.majestic-buy-reassurance__content strong {
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
}

.majestic-buy-reassurance__content span {
	font-size: 11px;
	line-height: 1.45;
	opacity: .76;
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) and (min-width: 768px) {
	.majestic-buy-box h1.majestic-buy-box__title,
	.elementor .majestic-buy-box h1.majestic-buy-box__title {
		font-size: var(--majestic-buy-title-tablet) !important;
	}

	.majestic-buy-box__price,
	.majestic-buy-box .woocommerce-variation-price {
		font-size: var(--majestic-buy-price-tablet);
	}

	.majestic-buy-box__description {
		font-size: var(--majestic-buy-body-tablet);
	}

	.majestic-buy-box button.single_add_to_cart_button,
	.elementor .majestic-buy-box button.single_add_to_cart_button {
		font-size: var(--majestic-buy-button-tablet) !important;
	}
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {
	.majestic-buy-box h1.majestic-buy-box__title,
	.elementor .majestic-buy-box h1.majestic-buy-box__title {
		margin-bottom: 12px;
		font-size: var(--majestic-buy-title-mobile) !important;
	}

	.majestic-buy-box__price,
	.majestic-buy-box .woocommerce-variation-price {
		margin-bottom: 16px;
		font-size: var(--majestic-buy-price-mobile);
	}

	.majestic-buy-box__description {
		font-size: var(--majestic-buy-body-mobile);
	}

	.majestic-buy-box button.single_add_to_cart_button,
	.elementor .majestic-buy-box button.single_add_to_cart_button {
		min-height: 52px;
		font-size: var(--majestic-buy-button-mobile) !important;
	}

	.majestic-buy-box .quantity {
		flex-basis: 76px;
	}

	.majestic-buy-box .quantity .qty {
		height: 52px;
	}

	.majestic-buy-reassurance {
		grid-template-columns: 1fr;
		gap: 13px;
	}
}


/* Product-specific instruction shown immediately above the variation selectors. */
.majestic-buy-box__variation-notice,
.elementor .majestic-buy-box__variation-notice {
	margin: 0 0 20px !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--majestic-color-text, #222) !important;
	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	font-style: normal !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-align: left !important;
	text-transform: none !important;
	box-shadow: none !important;
}

.majestic-buy-box__variation-notice p,
.elementor .majestic-buy-box__variation-notice p {
	margin: 0 !important;
	padding: 0 !important;
	color: inherit !important;
	font: inherit !important;
	line-height: inherit !important;
}

.majestic-buy-box__variation-notice p + p,
.elementor .majestic-buy-box__variation-notice p + p {
	margin-top: 8px !important;
}

@media (max-width: 767px) {
	.majestic-buy-box__variation-notice,
	.elementor .majestic-buy-box__variation-notice {
		margin-bottom: 16px !important;
		font-size: 16px !important;
		line-height: 1.4 !important;
	}
}


/* Product page title: Elementor Global Heading typography, 36px regular. */
.majestic-buy-box .majestic-buy-box__title,
.elementor .majestic-buy-box .majestic-buy-box__title,
body.single-product .majestic-buy-box .majestic-buy-box__title {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--majestic-color-text, #222) !important;
	font-family: var(--e-global-typography-primary-font-family, inherit) !important;
	font-size: 36px !important;
	font-weight: 400 !important;
	font-style: var(--e-global-typography-primary-font-style, normal) !important;
	line-height: var(--e-global-typography-primary-line-height, 1.15) !important;
	letter-spacing: var(--e-global-typography-primary-letter-spacing, 0) !important;
	text-transform: var(--e-global-typography-primary-text-transform, none) !important;
}


/* Product buy-box emphasis: price and variation labels use 600 weight. */
.majestic-buy-box .majestic-buy-box__price,
.elementor .majestic-buy-box .majestic-buy-box__price,
body.single-product .majestic-buy-box .majestic-buy-box__price,
.majestic-buy-box .variations label,
.majestic-buy-box .woocommerce-variation-add-to-cart + label,
.elementor .majestic-buy-box .variations label,
body.single-product .majestic-buy-box .variations label {
	font-weight: 600 !important;
}


/*
 * Final product price / variation-label weight lock.
 * WooCommerce and Elementor can apply weight to nested price spans on larger
 * breakpoints, so target the rendered price markup itself rather than only
 * the Majestic wrapper.
 */
.majestic-buy-box .majestic-buy-box__price,
.majestic-buy-box .majestic-buy-box__price .price,
.majestic-buy-box .majestic-buy-box__price > .woocommerce-Price-amount,
.majestic-buy-box .majestic-buy-box__price .woocommerce-Price-amount,
.majestic-buy-box .majestic-buy-box__price .woocommerce-Price-currencySymbol,
.majestic-buy-box .majestic-buy-box__price bdi,
.majestic-buy-box .woocommerce-variation-price,
.majestic-buy-box .woocommerce-variation-price .price,
.majestic-buy-box .woocommerce-variation-price > .woocommerce-Price-amount,
.majestic-buy-box .woocommerce-variation-price .woocommerce-Price-amount,
.majestic-buy-box .woocommerce-variation-price .woocommerce-Price-currencySymbol,
.majestic-buy-box .woocommerce-variation-price bdi,
.majestic-buy-box__price ins,
.majestic-buy-box__price ins .woocommerce-Price-amount,
.majestic-buy-box__price ins .woocommerce-Price-currencySymbol,
.majestic-buy-box .woocommerce-variation-price ins,
.majestic-buy-box .woocommerce-variation-price ins .woocommerce-Price-amount,
.majestic-buy-box .woocommerce-variation-price ins .woocommerce-Price-currencySymbol,
.elementor .majestic-buy-box .majestic-buy-box__price,
.elementor .majestic-buy-box .majestic-buy-box__price .price,
.elementor .majestic-buy-box .majestic-buy-box__price .woocommerce-Price-amount,
.elementor .majestic-buy-box .woocommerce-variation-price,
.elementor .majestic-buy-box .woocommerce-variation-price .price,
.elementor .majestic-buy-box .woocommerce-variation-price .woocommerce-Price-amount,
body.single-product .majestic-buy-box .majestic-buy-box__price,
body.single-product .majestic-buy-box .majestic-buy-box__price .price,
body.single-product .majestic-buy-box .majestic-buy-box__price .woocommerce-Price-amount,
body.single-product .majestic-buy-box .woocommerce-variation-price,
body.single-product .majestic-buy-box .woocommerce-variation-price .price,
body.single-product .majestic-buy-box .woocommerce-variation-price .woocommerce-Price-amount {
	font-weight: 600 !important;
}

/* Preserve the lighter crossed-out regular price when a sale price is shown. */
.majestic-buy-box__price del,
.majestic-buy-box__price del .woocommerce-Price-amount,
.majestic-buy-box__price del .woocommerce-Price-currencySymbol,
.majestic-buy-box .woocommerce-variation-price del,
.majestic-buy-box .woocommerce-variation-price del .woocommerce-Price-amount,
.majestic-buy-box .woocommerce-variation-price del .woocommerce-Price-currencySymbol {
	font-weight: 400 !important;
}

.majestic-buy-box table.variations .label,
.majestic-buy-box table.variations th.label,
.majestic-buy-box table.variations td.label,
.majestic-buy-box table.variations .label label,
.majestic-buy-box .variations label,
.elementor .majestic-buy-box table.variations .label,
.elementor .majestic-buy-box table.variations .label label,
body.single-product .majestic-buy-box table.variations .label,
body.single-product .majestic-buy-box table.variations .label label {
	font-weight: 600 !important;
}


/*
 * Final rendered typography lock for product pricing and variation labels.
 * Placed last in the stylesheet so WooCommerce/Elementor breakpoint rules
 * cannot re-apply 700 weight or uppercase transformation.
 */
html body.single-product .majestic-buy-box .majestic-buy-box__price,
html body.single-product .majestic-buy-box .majestic-buy-box__price *,
html body.single-product .majestic-buy-box .woocommerce-variation-price,
html body.single-product .majestic-buy-box .woocommerce-variation-price *,
html body.single-product .elementor .majestic-buy-box .majestic-buy-box__price,
html body.single-product .elementor .majestic-buy-box .majestic-buy-box__price *,
html body.single-product .elementor .majestic-buy-box .woocommerce-variation-price,
html body.single-product .elementor .majestic-buy-box .woocommerce-variation-price * {
	font-weight: 600 !important;
}

/* Keep the struck-through comparison price intentionally lighter on sale products. */
html body.single-product .majestic-buy-box .majestic-buy-box__price del,
html body.single-product .majestic-buy-box .majestic-buy-box__price del *,
html body.single-product .majestic-buy-box .woocommerce-variation-price del,
html body.single-product .majestic-buy-box .woocommerce-variation-price del * {
	font-weight: 400 !important;
}

html body.single-product .majestic-buy-box table.variations th.label,
html body.single-product .majestic-buy-box table.variations td.label,
html body.single-product .majestic-buy-box table.variations .label,
html body.single-product .majestic-buy-box table.variations .label label,
html body.single-product .majestic-buy-box .variations label,
html body.single-product .elementor .majestic-buy-box table.variations th.label,
html body.single-product .elementor .majestic-buy-box table.variations td.label,
html body.single-product .elementor .majestic-buy-box table.variations .label,
html body.single-product .elementor .majestic-buy-box table.variations .label label,
html body.single-product .elementor .majestic-buy-box .variations label {
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-variant: normal !important;
}


/* Variation labels: readable size across all breakpoints. */
html body.single-product .majestic-buy-box table.variations th.label,
html body.single-product .majestic-buy-box table.variations td.label,
html body.single-product .majestic-buy-box table.variations .label,
html body.single-product .majestic-buy-box table.variations .label label,
html body.single-product .majestic-buy-box .variations label,
html body.single-product .elementor .majestic-buy-box table.variations th.label,
html body.single-product .elementor .majestic-buy-box table.variations td.label,
html body.single-product .elementor .majestic-buy-box table.variations .label,
html body.single-product .elementor .majestic-buy-box table.variations .label label,
html body.single-product .elementor .majestic-buy-box .variations label {
	font-size: 14px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.4 !important;
}


/* Tighter title-to-rating spacing on the native product buy box. */
.majestic-buy-box .majestic-buy-box__title,
.elementor .majestic-buy-box .majestic-buy-box__title,
body.single-product .majestic-buy-box .majestic-buy-box__title {
	margin-bottom: 8px !important;
}

.majestic-buy-box .majestic-buy-box__rating,
.elementor .majestic-buy-box .majestic-buy-box__rating,
body.single-product .majestic-buy-box .majestic-buy-box__rating {
	margin-top: 0 !important;
}


/*
 * Rating sits before the H1 in the buy-box markup.
 * Keep the stars/review row close to the product title, like the approved
 * compact conversion hierarchy.
 */
html body.single-product .majestic-buy-box .majestic-buy-box__rating,
html body.single-product .elementor .majestic-buy-box .majestic-buy-box__rating {
	margin: 0 0 4px !important;
	padding: 0 !important;
}

html body.single-product .majestic-buy-box .majestic-buy-box__title,
html body.single-product .elementor .majestic-buy-box .majestic-buy-box__title {
	margin-top: 0 !important;
}
