/* WooCommerce and secure-platform presentation bridge.
 * Business logic, authentication, tier pricing and inventory sync stay in the
 * OHP Legacy Platform and WooCommerce plugins.
 */

.ohp-commerce-shell {
	width: min(var(--ohp-v17-max), calc(100% - 48px));
	margin: 0 auto;
	padding: 55px 0 110px;
}

.ohp-secure-page .ohp-platform-content {
	padding-top: 30px;
}

.ohp-page-body.is-secure-application {
	width: 100%;
}

/* Keep the OHP plugin's protected forms intact while matching the V17 shell. */
.ohp-page-body.is-secure-application .ohp-lp-shell {
	width: 100%;
	max-width: none;
}

.ohp-page-body.is-secure-application .ohp-lp-shell > h1,
.ohp-page-body.is-secure-application .ohp-lp-auth > div > h1,
.ohp-page-body.is-secure-application .ohp-lp-dashboard-head h1 {
	color: #172a46;
	font-family: var(--ohp-v17-serif);
	font-weight: 400;
	letter-spacing: -0.04em;
}

.ohp-page-body.is-secure-application .ohp-lp-eyebrow {
	color: #9c6a2c;
	font-family: var(--ohp-v17-sans);
	font-weight: 600;
}

.ohp-page-body.is-secure-application .ohp-lp-card,
.ohp-page-body.is-secure-application .ohp-lp-stat-grid > div,
.ohp-page-body.is-secure-application .ohp-lp-verification-result,
.ohp-page-body.is-secure-application .ohp-lp-credit-balance {
	border-color: rgba(23, 61, 49, 0.15);
	border-radius: 20px;
	box-shadow: 0 15px 42px rgba(23, 42, 70, 0.08);
}

.ohp-page-body.is-secure-application .ohp-lp-form input,
.ohp-page-body.is-secure-application .ohp-lp-form select,
.ohp-page-body.is-secure-application .ohp-lp-form textarea,
.ohp-page-body.is-secure-application .ohp-lp-verify-form input,
.ohp-page-body.is-secure-application .ohp-lp-upload input {
	font-family: var(--ohp-v17-sans);
}

/* The Jetpack Protect challenge rendered by the V1.0.2 login fix remains
 * visible and inside the OHP form. These rules change spacing only. */
.ohp-page-body.is-secure-application .ohp-lp-login-protection {
	margin: 8px 0 18px;
}

.ohp-page-body.is-secure-application .ohp-lp-login-protection > * {
	max-width: 100%;
}

/* WooCommerce archive and shared components */
.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 34px;
	color: var(--ohp-v17-muted);
	font-size: 0.72rem;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--ohp-v17-jade-deep);
}

.woocommerce .woocommerce-products-header {
	margin: 0 0 46px;
}

.woocommerce .woocommerce-products-header__title,
.woocommerce div.product .product_title,
.woocommerce-account .woocommerce h2,
.woocommerce-cart .woocommerce h2,
.woocommerce-checkout .woocommerce h2,
.woocommerce-order-received .woocommerce h2 {
	color: var(--ohp-v17-navy);
	font-family: var(--ohp-v17-serif);
	font-weight: 400;
	letter-spacing: -0.035em;
}

.woocommerce .woocommerce-products-header__title {
	font-size: clamp(3.6rem, 7vw, 6.8rem);
	line-height: 0.92;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-bottom: 32px;
}

.woocommerce .woocommerce-result-count {
	color: var(--ohp-v17-muted);
	font-size: 0.75rem;
}

.woocommerce .woocommerce-ordering select {
	min-height: 44px;
	padding: 9px 35px 9px 13px;
	border: 1px solid var(--ohp-v17-line);
	border-radius: 999px;
	color: var(--ohp-v17-ink);
	background: white;
	font-size: 0.75rem;
}

.woocommerce ul.products,
.woocommerce-page ul.products,
.ohp-product-grid .woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ohp-home-shop .ohp-product-grid .woocommerce ul.products {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	position: relative;
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 26px;
	overflow: hidden;
	border: 1px solid var(--ohp-v17-line);
	border-radius: 4px 4px 34px 4px;
	background: var(--ohp-v17-white);
	box-shadow: 0 12px 38px rgba(23, 42, 70, 0.06);
	transition: box-shadow 220ms ease, transform 220ms ease;
}

.woocommerce ul.products li.product:hover {
	box-shadow: 0 22px 55px rgba(23, 42, 70, 0.13);
	transform: translateY(-5px);
}

.woocommerce ul.products li.product a img {
	width: 100%;
	margin: 0 0 22px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: #eee9dd;
	transition: transform 450ms ease;
}

.woocommerce ul.products li.product:hover a img {
	transform: scale(1.025);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	margin-right: 20px;
	margin-left: 20px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0;
	color: var(--ohp-v17-navy);
	font-family: var(--ohp-v17-serif);
	font-size: 1.55rem;
	font-weight: 400;
	line-height: 1.08;
}

.woocommerce ul.products li.product .price {
	margin-top: 10px;
	color: var(--ohp-v17-crimson);
	font-size: 0.85rem;
	font-weight: 600;
}

.woocommerce ul.products li.product .price del {
	color: var(--ohp-v17-muted);
	opacity: 0.7;
}

.woocommerce ul.products li.product .price ins {
	font-weight: 600;
	text-decoration: none;
}

.woocommerce ul.products li.product .price .ohp-price-locked,
.woocommerce div.product .price .ohp-price-locked {
	color: var(--ohp-v17-muted);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.015em;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
	min-height: 46px;
	padding: 12px 20px;
	border: 1px solid var(--ohp-v17-jade);
	border-radius: 999px;
	color: white;
	background: var(--ohp-v17-jade);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
	transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:not(.is-link):hover {
	color: white;
	border-color: var(--ohp-v17-jade-deep);
	background: var(--ohp-v17-jade-deep);
	transform: translateY(-1px);
}

.woocommerce .ohp-coming-soon-button,
.woocommerce .ohp-coming-soon-button:hover,
.ohp-coming-soon-button,
.ohp-coming-soon-button:hover {
	color: #f7f6f1;
	border-color: #a9ada9;
	background: #a9ada9;
	box-shadow: none;
	cursor: not-allowed;
	opacity: 0.82;
	pointer-events: none;
	transform: none;
}

.ohp-coming-soon-purchase {
	display: grid;
	justify-items: start;
	gap: 10px;
	margin: 22px 0;
}

.ohp-coming-soon-purchase small {
	max-width: 520px;
	color: var(--ohp-v17-muted);
	font-size: 0.75rem;
	line-height: 1.6;
}

.woocommerce ul.products li.product .added_to_cart {
	display: inline-block;
	margin-top: 12px;
	color: var(--ohp-v17-jade-deep);
	font-size: 0.72rem;
	font-weight: 600;
}

.woocommerce span.onsale {
	left: 12px;
	top: 12px;
	min-width: 0;
	min-height: 0;
	padding: 7px 11px;
	border-radius: 999px;
	color: white;
	background: var(--ohp-v17-crimson);
	font-size: 0.65rem;
	font-weight: 600;
	line-height: 1;
}

.ohp-product-vault-badge {
	position: absolute;
	right: 12px;
	top: 12px;
	z-index: 3;
	padding: 7px 10px;
	border-radius: 999px;
	color: white;
	background: var(--ohp-v17-navy);
	font-size: 0.56rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.woocommerce nav.woocommerce-pagination ul {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	margin: 0 3px;
	border: 1px solid var(--ohp-v17-line);
	border-radius: 50%;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	width: 42px;
	height: 42px;
	padding: 0;
	display: grid;
	place-items: center;
	border-radius: 50%;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	color: white;
	background: var(--ohp-v17-jade);
}

/* Product page */
.single-product .ohp-platform-main {
	padding-top: 118px;
}

.single-product .ohp-commerce-shell {
	padding-top: 34px;
}

body.admin-bar.single-product .ohp-platform-main {
	padding-top: 148px;
}

.woocommerce div.product {
	display: flow-root;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	margin-bottom: 70px;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	overflow: hidden;
	border-radius: 4px 4px 55px 4px;
	background: #eee9dd;
}

.woocommerce div.product div.images img {
	width: 100%;
	background: #eee9dd;
}

.woocommerce .ohp-remote-single-image img {
	min-height: 420px;
	object-fit: contain;
}

.woocommerce div.product .product_title {
	scroll-margin-top: 150px;
	font-size: clamp(3rem, 5vw, 5.2rem);
	line-height: 0.94;
}

@media (max-width: 782px) {
	body.admin-bar.single-product .ohp-platform-main {
		padding-top: 126px;
	}
}

@media (max-width: 720px) {
	.single-product .ohp-platform-main {
		padding-top: 88px;
	}

	.single-product .ohp-commerce-shell {
		padding-top: 28px;
	}
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--ohp-v17-crimson);
	font-size: 1.2rem;
	font-weight: 600;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--ohp-v17-muted);
}

.woocommerce div.product form.cart {
	margin: 30px 0;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.woocommerce .quantity .qty {
	min-height: 46px;
	border: 1px solid var(--ohp-v17-line);
	border-radius: 999px;
}

.woocommerce div.product .product_meta {
	padding-top: 22px;
	border-top: 1px solid var(--ohp-v17-line);
	color: var(--ohp-v17-muted);
	font-size: 0.72rem;
}

.woocommerce div.product .product_meta > span {
	display: block;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	border-color: var(--ohp-v17-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border-color: var(--ohp-v17-line);
	background: var(--ohp-v17-paper-deep);
}

.woocommerce div.product .woocommerce-tabs .panel {
	max-width: 820px;
	color: var(--ohp-v17-muted);
}

.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce .related.products > h2 {
	color: var(--ohp-v17-navy);
	font-family: var(--ohp-v17-serif);
	font-size: clamp(2.4rem, 4vw, 4rem);
	font-weight: 400;
}

.ohp-product-record {
	margin: 28px 0;
	padding: 25px;
	border: 1px solid var(--ohp-v17-line);
	border-radius: 18px;
	background: var(--ohp-v17-paper-deep);
}

.ohp-product-record .ohp-kicker {
	margin-bottom: 18px;
}

.ohp-product-record > p:not(.ohp-kicker) {
	margin: 0;
	padding: 8px 0;
	display: flex;
	justify-content: space-between;
	gap: 24px;
	border-top: 1px solid var(--ohp-v17-line);
	font-size: 0.7rem;
}

.ohp-product-record span {
	color: var(--ohp-v17-muted);
}

.ohp-product-record strong {
	font-weight: 600;
	text-align: right;
}

.ohp-product-record small {
	display: block;
	margin-top: 16px;
	color: var(--ohp-v17-muted);
	font-size: 0.67rem;
}

/* Cart, checkout, forms, notices and account */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form.login input,
.woocommerce form.register input,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	min-height: 48px;
	padding: 11px 14px;
	border: 1px solid var(--ohp-v17-line);
	border-radius: 10px;
	color: var(--ohp-v17-ink);
	background: white;
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon {
	padding: 28px;
	border-color: var(--ohp-v17-line);
	border-radius: 18px;
	background: white;
}

.woocommerce table.shop_table {
	border-color: var(--ohp-v17-line);
	border-radius: 16px;
	background: white;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 14px;
	border-color: var(--ohp-v17-line);
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review {
	padding: 26px;
	border: 1px solid var(--ohp-v17-line);
	border-radius: 18px;
	background: white;
}

.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
	padding: 18px 18px 18px 50px;
	border-radius: 10px;
	background: white;
}

.woocommerce-info,
.woocommerce-message {
	border-top-color: var(--ohp-v17-jade);
}

.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--ohp-v17-jade);
}

.woocommerce-error {
	border-top-color: var(--ohp-v17-crimson);
}

.woocommerce-error::before {
	color: var(--ohp-v17-crimson);
}

.woocommerce .woocommerce-MyAccount-navigation {
	padding: 20px;
	border-radius: 18px;
	background: var(--ohp-v17-navy);
}

.woocommerce .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 10px 12px;
	border-radius: 9px;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.76rem;
}

.woocommerce .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce .woocommerce-MyAccount-navigation li a:hover {
	color: white;
	background: rgba(255, 255, 255, 0.12);
}

.woocommerce .woocommerce-MyAccount-content {
	padding: 30px;
	border: 1px solid var(--ohp-v17-line);
	border-radius: 18px;
	background: white;
}

.woocommerce .woocommerce-MyAccount-content a {
	color: var(--ohp-v17-jade-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* WooCommerce blocks inherit the same quiet editorial shell. */
.wc-block-cart,
.wc-block-checkout,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	font-family: var(--ohp-v17-sans);
}

.wc-block-components-sidebar,
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary {
	border-color: var(--ohp-v17-line) !important;
}

@media (max-width: 1020px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.ohp-product-grid .woocommerce ul.products,
	.ohp-home-shop .ohp-product-grid .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.ohp-commerce-shell {
		width: calc(100% - 32px);
		padding: 42px 0 78px;
	}

	.woocommerce .woocommerce-products-header__title {
		font-size: clamp(3.2rem, 15vw, 5rem);
	}

	.woocommerce .woocommerce-result-count,
	.woocommerce .woocommerce-ordering {
		float: none;
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.ohp-product-grid .woocommerce ul.products,
	.ohp-home-shop .ohp-product-grid .woocommerce ul.products {
		grid-template-columns: 1fr;
	}

	.woocommerce div.product div.images,
	.woocommerce div.product div.summary {
		float: none;
		width: 100%;
	}

	.woocommerce .woocommerce-MyAccount-navigation,
	.woocommerce .woocommerce-MyAccount-content {
		float: none;
		width: 100%;
	}

	.woocommerce .woocommerce-MyAccount-content {
		margin-top: 18px;
		padding: 22px;
	}

	.ohp-product-record > p:not(.ohp-kicker) {
		align-items: flex-start;
		flex-direction: column;
		gap: 1px;
	}

	.ohp-product-record strong {
		text-align: left;
	}
}
