/*
 * OmVeda Product Summary V2
 * Version 0.3.1
 *
 * IMPORTANT:
 * No font-family is declared here.
 * Everything inherits the existing OmVeda shop/theme typography.
 */

.omv-psv2-enabled {
	--omv-v2-green: #15583d;
	--omv-v2-green-dark: #10472f;
	--omv-v2-green-soft: #eef4e8;

	--omv-v2-yellow-soft: #fff8e8;
	--omv-v2-yellow-line: #e8d7a5;

	--omv-v2-brown-soft: #f8f0e7;
	--omv-v2-brown-line: #ddc8b3;

	--omv-v2-line: #ddd8cc;
	--omv-v2-muted: #6c7069;
	--omv-v2-radius: 10px;
}

/* ==========================================================================
   TOP PRODUCT TYPOGRAPHY
   ========================================================================== */

.omv-psv2-enabled div.product .summary .product_title,
.omv-psv2-enabled div.product .summary h1.product_title {
	font-family: inherit !important;
	font-size: clamp(36px, 3.25vw, 42px) !important;
	line-height: 1.08 !important;
	letter-spacing: -0.025em !important;
	margin-bottom: 15px !important;
}

.omv-psv2-enabled div.product .summary > .price {
	margin-top: 17px !important;
	margin-bottom: 5px !important;
	line-height: 1.15 !important;
}

.omv-psv2-enabled div.product .summary > .price,
.omv-psv2-enabled div.product .summary > .price .amount {
	font-size: 27px !important;
	font-weight: 700 !important;
}

.omv-psv2-enabled div.product .summary > .price del,
.omv-psv2-enabled div.product .summary > .price del .amount {
	font-size: 24px !important;
	font-weight: 600 !important;
}

.omv-psv2-enabled div.product .summary .woocommerce-product-details__short-description {
	margin-top: 17px !important;
	margin-bottom: 0 !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
}

/* ==========================================================================
   USP / BULLET BLOCK
   ========================================================================== */

.omv-psv2-enabled .omv-psv2-usps {
	display: grid !important;
	gap: 9px !important;
	margin: 18px 0 25px !important;
	padding: 0 !important;
	color: inherit;
}

.omv-psv2-enabled .omv-psv2-usp {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	font: inherit;
}

.omv-psv2-enabled .omv-psv2-usp-icon {
	width: 31px !important;
	height: 31px !important;
	flex: 0 0 31px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border: 1px solid #e4dece !important;
	border-radius: 8px !important;
	background: #f7f3e8 !important;
	color: var(--omv-v2-green) !important;
}

.omv-psv2-enabled .omv-psv2-usp-icon svg {
	width: 17px !important;
	height: 17px !important;
}

.omv-psv2-enabled .omv-psv2-usp-copy {
	min-width: 0;
	font-size: 12.5px !important;
	line-height: 1.42 !important;
	color: inherit;
}

.omv-psv2-enabled .omv-psv2-usp-copy strong {
	position: relative;
	z-index: 0;
	font-size: inherit !important;
	font-weight: 700 !important;
	color: inherit;
	white-space: normal;
}

.omv-psv2-enabled .omv-psv2-usp-copy strong::after {
	content: "";
	position: absolute;
	z-index: -1;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 5px;
	background: #dce5bd;
	opacity: .88;
}

.omv-psv2-enabled .omv-psv2-usp-copy > span:last-child {
	color: #4f554f;
	font-size: inherit !important;
}

.omv-psv2-enabled .omv-psv2-usp-sep {
	color: #7d817a;
}

/* ==========================================================================
   WEIGHT SELECTION
   ========================================================================== */

.omv-psv2-enabled .omv-v2-weight-section {
	margin: 27px 0 16px !important;
	padding: 0 !important;
	font: inherit;
}

.omv-psv2-enabled .omv-v2-weight-heading {
	display: block !important;
	margin: 0 0 11px !important;
	padding: 0 !important;
	color: inherit;
	font-size: 12.5px !important;
	line-height: 1.35 !important;
	font-weight: 700 !important;
}

.omv-psv2-enabled .omv-v2-weight-cards {
	display: grid !important;
	grid-template-columns: repeat(var(--omv-card-count, 3), minmax(0, 1fr)) !important;
	align-items: stretch !important;
	gap: 9px !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Strong reset against theme/WPC button rules. */
.omv-psv2-enabled button.omv-v2-weight-card,
.omv-psv2-enabled .omv-v2-weight-cards > button.omv-v2-weight-card {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0 !important;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 121px !important;
	height: 121px !important;
	margin: 0 !important;
	padding: 21px 8px 12px !important;
	border: 1px solid var(--omv-v2-line) !important;
	border-radius: var(--omv-v2-radius) !important;
	color: inherit !important;
	text-align: center !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: 0 2px 5px rgba(40, 49, 40, .025) !important;
	outline: none !important;
	overflow: visible !important;
	font-family: inherit !important;
	font-style: normal !important;
	white-space: normal !important;
	transition:
		border-color .18s ease,
		background-color .18s ease,
		box-shadow .18s ease,
		transform .18s ease !important;
}

/* Permanent visual differentiation even before selection. */
.omv-psv2-enabled button.omv-v2-weight-card.is-tier-small {
	background: var(--omv-v2-yellow-soft) !important;
	border-color: var(--omv-v2-yellow-line) !important;
}

.omv-psv2-enabled button.omv-v2-weight-card.is-tier-middle {
	background: var(--omv-v2-brown-soft) !important;
	border-color: var(--omv-v2-brown-line) !important;
}

.omv-psv2-enabled button.omv-v2-weight-card.is-tier-large {
	background: var(--omv-v2-green-soft) !important;
	border-color: #aab99a !important;
}

.omv-psv2-enabled button.omv-v2-weight-card:hover:not(:disabled) {
	border-color: #7f967b !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 7px 16px rgba(37, 67, 48, .075) !important;
}

/* Selected option is unmistakable, while retaining its own background tone. */
.omv-psv2-enabled button.omv-v2-weight-card.is-selected {
	border: 2px solid var(--omv-v2-green) !important;
	box-shadow:
		0 0 0 2px rgba(21, 88, 61, .07),
		0 8px 18px rgba(21, 88, 61, .08) !important;
	transform: translateY(-1px) !important;
}

.omv-psv2-enabled button.omv-v2-weight-card:focus-visible {
	box-shadow: 0 0 0 3px rgba(21,88,61,.17) !important;
}

.omv-psv2-enabled button.omv-v2-weight-card:disabled,
.omv-psv2-enabled button.omv-v2-weight-card.is-unavailable {
	opacity: .42 !important;
	cursor: not-allowed !important;
}

.omv-psv2-enabled button.omv-v2-weight-card.is-unavailable .omv-v2-weight-name {
	text-decoration: line-through;
}

/* --------------------------------------------------------------------------
   Conversion badges
   More readable, stronger contrast, still restrained.
   -------------------------------------------------------------------------- */

.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-badge {
	position: absolute !important;
	z-index: 3 !important;
	top: -12px !important;
	left: 50% !important;
	right: auto !important;
	bottom: auto !important;
	transform: translateX(-50%) !important;

	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: auto !important;
	min-width: 74px !important;
	max-width: calc(100% - 14px) !important;
	height: auto !important;

	margin: 0 !important;
	padding: 5px 10px 4px !important;

	border: 1px solid rgba(255,255,255,.48) !important;
	border-radius: 999px !important;

	background: #176044 !important;
	color: #fff !important;

	font-size: 9.5px !important;
	line-height: 1.05 !important;
	font-weight: 800 !important;
	letter-spacing: .035em !important;
	white-space: nowrap !important;
	text-transform: uppercase !important;

	box-shadow:
		0 3px 8px rgba(24, 74, 53, .16),
		inset 0 1px 0 rgba(255,255,255,.12) !important;
}

/* Savings badges on warm cards */
.omv-psv2-enabled button.omv-v2-weight-card.is-tier-small .omv-v2-weight-badge {
	background: #8a6a18 !important;
}

.omv-psv2-enabled button.omv-v2-weight-card.is-tier-middle .omv-v2-weight-badge {
	background: #7b5a3d !important;
}

/* Best-price card gets the strongest conversion badge. */
.omv-psv2-enabled button.omv-v2-weight-card.is-best-value .omv-v2-weight-badge {
	min-width: 88px !important;
	background: #0f5b3e !important;
	padding-left: 12px !important;
	padding-right: 12px !important;
	box-shadow:
		0 4px 10px rgba(15, 91, 62, .22),
		inset 0 1px 0 rgba(255,255,255,.14) !important;
}

/* Card content */
.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-name,
.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price,
.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-unit {
	position: static !important;
	float: none !important;
	clear: both !important;
	display: block !important;
	flex: 0 0 auto !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding: 0 !important;
	text-align: center !important;
	white-space: nowrap !important;
	transform: none !important;
}

.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-name {
	margin-top: 0 !important;
	margin-bottom: 7px !important;
	color: #111 !important;
	font-size: 18px !important;
	line-height: 1.05 !important;
	font-weight: 750 !important;
	letter-spacing: -0.02em !important;
}

.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price {
	margin: 0 !important;
	color: #111 !important;
	font-size: 13.5px !important;
	line-height: 1.15 !important;
	font-weight: 700 !important;
}

.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price del,
.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price ins {
	position: static !important;
	float: none !important;
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: center !important;
	line-height: 1.15 !important;
	white-space: nowrap !important;
}

.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price del {
	margin-bottom: 2px !important;
	color: #8f908a !important;
	font-size: 9px !important;
	font-weight: 500 !important;
	text-decoration-thickness: 1px !important;
}

.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price ins {
	color: #111 !important;
	font-size: 13.5px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}

.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-unit {
	margin-top: 6px !important;
	color: var(--omv-v2-muted) !important;
	font-size: 8.5px !important;
	line-height: 1.15 !important;
	font-weight: 500 !important;
}

/* Original WPC / Woo UI */
.omv-psv2-enabled tr.omv-v2-original-weight-row {
	display: none !important;
}

.omv-psv2-enabled .omv-v2-source-hidden {
	display: none !important;
}

.omv-psv2-enabled .variations_form.omv-v2-weight-only .reset_variations {
	display: none !important;
}

.omv-psv2-enabled .single_variation_wrap {
	margin-top: 7px !important;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 720px) {
	.omv-psv2-enabled div.product .summary .product_title,
	.omv-psv2-enabled div.product .summary h1.product_title {
		font-size: 34px !important;
		line-height: 1.08 !important;
	}

	.omv-psv2-enabled div.product .summary > .price,
	.omv-psv2-enabled div.product .summary > .price .amount {
		font-size: 25px !important;
	}

	.omv-psv2-enabled div.product .summary > .price del,
	.omv-psv2-enabled div.product .summary > .price del .amount {
		font-size: 21px !important;
	}

	.omv-psv2-enabled div.product .summary .woocommerce-product-details__short-description {
		font-size: 13.5px !important;
	}

	.omv-psv2-enabled .omv-psv2-usps {
		gap: 8px !important;
		margin: 17px 0 23px !important;
	}

	.omv-psv2-enabled .omv-psv2-usp-icon {
		width: 30px !important;
		height: 30px !important;
		flex-basis: 30px !important;
	}

	.omv-psv2-enabled .omv-psv2-usp-copy {
		font-size: 12px !important;
	}

	.omv-psv2-enabled .omv-v2-weight-cards {
		gap: 6px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card,
	.omv-psv2-enabled .omv-v2-weight-cards > button.omv-v2-weight-card {
		min-height: 110px !important;
		height: 110px !important;
		padding: 19px 5px 9px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-name {
		margin-bottom: 6px !important;
		font-size: 16px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price,
	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price ins {
		font-size: 12.5px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price del {
		font-size: 8px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-unit {
		margin-top: 5px !important;
		font-size: 7.5px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-badge {
		top: -10px !important;
		min-width: 64px !important;
		padding: 4px 7px 3px !important;
		font-size: 8px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card.is-best-value .omv-v2-weight-badge {
		min-width: 78px !important;
	}
}

@media (max-width: 420px) {
	.omv-psv2-enabled div.product .summary .product_title,
	.omv-psv2-enabled div.product .summary h1.product_title {
		font-size: 31px !important;
	}

	.omv-psv2-enabled .omv-v2-weight-cards {
		gap: 5px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card,
	.omv-psv2-enabled .omv-v2-weight-cards > button.omv-v2-weight-card {
		min-height: 105px !important;
		height: 105px !important;
		padding-left: 4px !important;
		padding-right: 4px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-name {
		font-size: 15px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price,
	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-price ins {
		font-size: 11.5px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-unit {
		font-size: 7px !important;
	}

	.omv-psv2-enabled button.omv-v2-weight-card .omv-v2-weight-badge {
		min-width: 58px !important;
		font-size: 7.2px !important;
		padding-left: 6px !important;
		padding-right: 6px !important;
	}
}


/* CSS-only fallback: does not depend on tier classes. */
.omv-psv2-enabled .omv-v2-weight-cards > button.omv-v2-weight-card:nth-child(1) {
	background:#fff7e3 !important;
	border-color:#e6d19b !important;
}
.omv-psv2-enabled .omv-v2-weight-cards > button.omv-v2-weight-card:nth-child(2) {
	background:#f5ece1 !important;
	border-color:#d9bea3 !important;
}
.omv-psv2-enabled .omv-v2-weight-cards > button.omv-v2-weight-card:nth-child(3) {
	background:#eaf2e4 !important;
	border-color:#9eaf8e !important;
}
