/* ==========================================================================
   PureSignal Research — WooCommerce styles
   New styling (the original static site had no real cart/checkout) built
   to match the existing navy/teal/serif design language exactly.
   ========================================================================== */

/* ── SHOP / ARCHIVE PAGE ── */
.psr-shop-wrapper {
	padding: 3rem 0 5rem;
}
.psr-shop-header {
	margin-bottom: 1rem;
}
.woocommerce-result-count,
.woocommerce-ordering {
	font-size: 0.85rem;
	color: var(--text-muted);
}
.woocommerce-ordering select {
	border: 1.5px solid var(--border);
	border-radius: 8px;
	padding: 0.4rem 0.75rem;
	font-family: 'Inter', sans-serif;
}

/* Product loop card — reuses .product-grid / .product-card from components.css,
   these rules adapt WooCommerce's own markup/classes to match. */
.product-grid .product {
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: 14px;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.2s, transform 0.2s;
	list-style: none;
}
.product-grid .product:hover {
	box-shadow: 0 8px 30px rgba(13,31,60,0.08);
	transform: translateY(-3px);
}
.product-grid .product a.woocommerce-LoopProduct-link { text-decoration: none; color: inherit; display: block; }
.product-grid .product .woocommerce-loop-product__title {
	font-family: 'DM Serif Display', serif;
	font-size: 1.35rem;
	color: var(--navy);
	font-weight: 400;
	margin-bottom: 0.25rem;
}
.product-grid .product .price {
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--navy);
}
.product-grid .product .button {
	background: var(--navy);
	color: var(--white);
	padding: 0.45rem 1rem;
	border-radius: 7px;
	font-size: 0.85rem;
	font-weight: 500;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: background 0.2s;
	display: inline-block;
	margin-top: 0.75rem;
}
.product-grid .product .button:hover { background: var(--navy-light); }

/* ── SINGLE PRODUCT ── */
.single-product .psr-shop-wrapper { padding-top: 3rem; }
.product-single-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	margin-bottom: 4rem;
}
@media (max-width: 768px) {
	.product-single-grid { grid-template-columns: 1fr; gap: 2rem; }
}
.product-single-image {
	border-radius: 14px;
	overflow: hidden;
	background: var(--off-white);
}
.product-single-title {
	font-family: 'DM Serif Display', serif;
	font-size: 2rem;
	color: var(--navy);
	font-weight: 400;
	margin-bottom: 0.5rem;
}
.product-single-price {
	font-size: 1.4rem;
	font-weight: 600;
	color: var(--navy);
	margin-bottom: 1.5rem;
}
.product-single-desc {
	font-size: 0.95rem;
	color: var(--text-muted);
	line-height: 1.8;
	margin-bottom: 2rem;
}
.psr-spec-table {
	width: 100%;
	font-size: 0.85rem;
	border-collapse: collapse;
	margin-bottom: 2rem;
}
.psr-spec-table th {
	text-align: left;
	color: var(--text-muted);
	font-weight: 500;
	padding: 8px 12px 8px 0;
	border-bottom: 1px solid var(--border);
	width: 40%;
}
.psr-spec-table td {
	padding: 8px 0;
	color: var(--text);
	border-bottom: 1px solid var(--border);
}

/* WooCommerce add-to-cart form */
form.cart {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1rem;
}
form.cart .quantity input {
	width: 70px;
	padding: 0.65rem;
	border: 1.5px solid var(--border);
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 0.95rem;
}
form.cart button.single_add_to_cart_button {
	background: var(--teal);
	color: var(--white);
	padding: 0.8rem 2rem;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 500;
	border: none;
	cursor: pointer;
	transition: background 0.2s;
}
form.cart button.single_add_to_cart_button:hover { background: var(--teal-light); }

/* ── CART PAGE ── */
.woocommerce-cart table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 2rem;
}
.woocommerce-cart table.shop_table th {
	text-align: left;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--text-muted);
	padding: 1rem 0.5rem;
	border-bottom: 2px solid var(--border);
}
.woocommerce-cart table.shop_table td {
	padding: 1.25rem 0.5rem;
	border-bottom: 1px solid var(--border);
	font-size: 0.92rem;
}
.woocommerce-cart table.shop_table img {
	width: 64px;
	border-radius: 8px;
}
.woocommerce-cart .quantity input {
	width: 60px;
	padding: 0.5rem;
	border: 1.5px solid var(--border);
	border-radius: 6px;
}
a.remove {
	color: #A32D2D !important;
	font-size: 1.2rem;
	text-decoration: none;
}
.cart-collaterals .cart_totals {
	background: var(--off-white);
	border-radius: 12px;
	padding: 1.5rem;
	max-width: 380px;
	margin-left: auto;
}
.cart_totals h2 {
	font-family: 'DM Serif Display', serif;
	font-size: 1.2rem;
	color: var(--navy);
	margin-bottom: 1rem;
	font-weight: 400;
}
.cart_totals table { width: 100%; }
.cart_totals table th, .cart_totals table td { padding: 0.6rem 0; font-size: 0.9rem; }
.cart_totals .order-total th, .cart_totals .order-total td { font-weight: 600; color: var(--navy); border-top: 1px solid var(--border); padding-top: 1rem; }
.wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--teal);
	color: var(--white) !important;
	padding: 0.9rem;
	border-radius: 8px;
	font-weight: 500;
	text-decoration: none;
	margin-top: 1rem;
	transition: background 0.2s;
}
.wc-proceed-to-checkout .checkout-button:hover { background: var(--teal-light); }

/* ── CART / CHECKOUT BLOCKS (WooCommerce Cart & Checkout blocks) ──
   The Cart and Checkout pages use WooCommerce's native blocks rather than
   the classic shortcode templates. These rules bring the block markup's
   own buttons (Proceed to Checkout, Place Order, Express Payment area) in
   line with the site's navy/teal brand instead of WooCommerce's defaults. */
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block a.wc-block-components-button,
.wc-block-cart__submit-button.wc-block-components-button,
.wc-block-checkout__actions .wc-block-components-checkout-place-order-button {
	background-color: var(--teal) !important;
	border-color: var(--teal) !important;
	color: var(--white) !important;
	border-radius: 8px !important;
	font-weight: 500 !important;
	font-family: 'Inter', sans-serif !important;
}
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button:hover,
.wc-block-cart__submit-button.wc-block-components-button:hover,
.wc-block-checkout__actions .wc-block-components-checkout-place-order-button:hover {
	background-color: var(--teal-light) !important;
	border-color: var(--teal-light) !important;
}
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button__text,
.wc-block-checkout__actions .wc-block-components-checkout-place-order-button .wc-block-components-button__text {
	color: inherit !important;
	opacity: 1 !important;
}
/* Express payment placeholder: don't show an empty dark box before payment
   methods finish loading — collapse it until it actually has content. */
.wp-block-woocommerce-cart-express-payment-block:empty,
.wc-block-checkout__payment-method .wc-block-components-express-payment:empty {
	display: none !important;
	min-height: 0 !important;
	background: none !important;
}
.wc-block-cart .wc-block-components-totals-wrapper,
.wc-block-cart .wc-block-cart__totals-title {
	font-family: 'DM Serif Display', serif;
	color: var(--navy);
}
.wc-block-components-button.wp-element-button {
	font-family: 'Inter', sans-serif;
}

/* ── CHECKOUT PAGE ── */
.woocommerce-checkout .psr-shop-wrapper {
	max-width: 1100px;
}
.psr-checkout-grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 3rem;
	align-items: start;
}
@media (max-width: 900px) {
	.psr-checkout-grid { grid-template-columns: 1fr; }
}
.psr-checkout-col-form,
.psr-checkout-col-review {
	min-width: 0; /* prevents grid blowout from long form-row-first/last floats */
}
.psr-checkout-col-form::after { content: ''; display: block; clear: both; }

.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
	font-family: 'DM Serif Display', serif;
	font-size: 1.3rem;
	color: var(--navy);
	font-weight: 400;
	margin-bottom: 1.25rem;
}

.woocommerce-form-row,
.form-row {
	margin-bottom: 1.1rem;
}
.form-row label {
	display: block;
	font-size: 0.82rem;
	font-weight: 500;
	color: var(--navy);
	margin-bottom: 0.4rem;
}
.form-row .required {
	color: #A32D2D;
	text-decoration: none;
}
.form-row input.input-text,
.form-row select,
.form-row textarea {
	width: 100%;
	padding: 0.7rem 0.9rem;
	border: 1.5px solid var(--border);
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 0.92rem;
	background: var(--white);
	color: var(--text);
	transition: border-color 0.2s;
}
.form-row input.input-text:focus,
.form-row select:focus,
.form-row textarea:focus {
	outline: none;
	border-color: var(--teal);
}
.form-row-first, .form-row-last { width: 48%; }
.form-row-first { float: left; }
.form-row-last { float: right; }
.form-row-wide { clear: both; width: 100%; }

#order_review {
	background: var(--off-white);
	border-radius: 14px;
	padding: 1.75rem;
}
table.shop_table.woocommerce-checkout-review-order-table {
	width: 100%;
	margin-bottom: 1rem;
}
table.shop_table.woocommerce-checkout-review-order-table th,
table.shop_table.woocommerce-checkout-review-order-table td {
	padding: 0.6rem 0;
	font-size: 0.9rem;
	border-bottom: 1px solid var(--border);
}
.order-total td, .order-total th {
	font-weight: 600;
	color: var(--navy);
	font-size: 1rem;
}

.psr-newsletter-optin {
	font-size: 0.85rem;
	color: var(--text-muted);
	margin-top: 1rem;
}
.psr-newsletter-optin input { margin-right: 0.5rem; accent-color: var(--teal); }

#payment {
	background: var(--off-white);
	border-radius: 10px;
	margin-top: 1.5rem;
}
#payment ul.payment_methods {
	padding: 1rem;
	list-style: none;
}
#payment ul.payment_methods li {
	margin-bottom: 0.5rem;
	font-size: 0.92rem;
}
#place_order {
	width: 100%;
	background: var(--teal);
	color: var(--white);
	padding: 1rem;
	border-radius: 8px;
	border: none;
	font-size: 1rem;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.2s;
	margin-top: 1rem;
}
#place_order:hover { background: var(--teal-light); }

.woocommerce-error,
.woocommerce-notice {
	background: #FCEBEB;
	border: 1px solid #F09595;
	color: #A32D2D;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
	list-style: none;
	font-size: 0.9rem;
}
.woocommerce-message {
	background: #F0FBF7;
	border: 1px solid var(--teal-light);
	color: #0F6E56;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
	font-size: 0.9rem;
}

/* ── ORDER RECEIVED / THANK YOU ── */
.woocommerce-order-received .psr-shop-wrapper,
.woocommerce-thankyou-order-received {
	max-width: 700px;
	margin: 0 auto;
	padding: 4rem 2rem;
	text-align: center;
}
.woocommerce-thankyou-order-received {
	font-family: 'DM Serif Display', serif;
	font-size: 1.4rem;
	color: var(--teal);
	margin-bottom: 1.5rem;
}
