/* ==========================================================================
   Peptide Shop Catalog & Cart — WooCommerce page skin
   Cart · Checkout · My Account · Single Product (summary + related products)

   This file re-skins WooCommerce's own template markup (standard class
   names such as .cart_totals, .woocommerce-checkout, .related.products,
   etc.) with the same brand system used by the catalog shortcode:
     --cps-btn-color / --cps-heading-color / --cps-border-color / --cps-radius
   (defined in cps-style.css, loaded first).

   Selectors are scoped under WooCommerce's body classes
   (.woocommerce-cart / .woocommerce-checkout / .woocommerce-account /
   .single-product) and key visual properties use !important, following
   the same defensive pattern used elsewhere in this plugin — most themes
   and page builders ship their own button/table styling that would
   otherwise win on specificity or load order.

   Note: this targets WooCommerce's DEFAULT templates. If a theme/page
   builder (e.g. Elementor's WooCommerce Builder) fully replaces the
   cart/checkout/account templates with its own widgets, the markup may
   not carry these classes — in that case this stylesheet simply won't
   have anything to attach to on that page.
   ========================================================================== */

/* -------------------------------------------------------------------- *
 *  Shared: headings, form fields, tables, buttons, badges
 * -------------------------------------------------------------------- */

.woocommerce-cart h1.entry-title,
.woocommerce-checkout h1.entry-title,
.woocommerce-account h1.entry-title,
.woocommerce-cart h2,
.woocommerce-checkout h2,
.woocommerce-checkout h3,
.woocommerce-account h2,
.woocommerce-account h3 {
	color: var(--cps-heading-color) !important;
}

/* Text inputs, selects, textareas across cart / checkout / account. */
.woocommerce-cart input.qty,
.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.woocommerce-checkout div.woocommerce-input-wrapper select,
.woocommerce-account input.woocommerce-Input,
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"],
.woocommerce-account input[type="tel"],
.woocommerce-account textarea,
.woocommerce-account select {
	border: 1px solid var(--cps-border-color) !important;
	border-radius: 8px !important;
	padding: 11px 12px !important;
	font-size: 14px;
	color: var(--cps-heading-color);
	background: #fff;
	box-shadow: none !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.woocommerce-cart input.qty:focus,
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-account input:focus,
.woocommerce-account textarea:focus,
.woocommerce-account select:focus {
	border-color: var(--cps-btn-color) !important;
	box-shadow: 0 0 0 3px rgba(46, 108, 175, 0.15) !important;
	outline: none;
}

.woocommerce-cart label,
.woocommerce-checkout label,
.woocommerce-account label {
	color: var(--cps-heading-color);
	font-weight: 600;
	font-size: 13px;
}

/* Primary call-to-action buttons: proceed to checkout, place order,
   login/register, save address, single add-to-cart, related products. */
.woocommerce-cart .checkout-button,
.woocommerce-checkout #place_order,
.woocommerce-account button[name="login"],
.woocommerce-account button[name="register"],
.woocommerce-account button[name="save_account_details"],
.woocommerce-account .woocommerce-Address-title .button,
.woocommerce-account form .button,
.single-product .single_add_to_cart_button,
.single-product .related.products a.button,
.single-product .related.products a.add_to_cart_button,
.single-product .up-sells a.button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	background: var(--cps-btn-color) !important;
	color: #fff !important;
	border: 1px solid var(--cps-btn-color) !important;
	border-radius: 6px !important;
	padding: 13px 24px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: box-shadow 0.15s ease, opacity 0.15s ease;
}

.woocommerce-cart .checkout-button:hover,
.woocommerce-checkout #place_order:hover,
.woocommerce-account button[name="login"]:hover,
.woocommerce-account button[name="register"]:hover,
.woocommerce-account button[name="save_account_details"]:hover,
.woocommerce-account form .button:hover,
.single-product .single_add_to_cart_button:hover,
.single-product .related.products a.button:hover,
.single-product .related.products a.add_to_cart_button:hover,
.single-product .up-sells a.button:hover {
	background: var(--cps-btn-color) !important;
	border-color: var(--cps-btn-color) !important;
	color: #fff !important;
	box-shadow: 0 4px 12px rgba(46, 108, 175, 0.35) !important;
}

/* Secondary / outline buttons: update cart, apply coupon, continue
   shopping, edit account links, "select a different method" etc. */
.woocommerce-cart .button:not(.checkout-button),
.woocommerce-checkout .woocommerce-form-coupon .button,
.woocommerce-checkout .showcoupon,
.woocommerce-account .woocommerce-Button.button.woocommerce-button--previous,
.woocommerce-account a.button:not([name]) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	background: #fff !important;
	color: var(--cps-btn-color) !important;
	border: 1px solid var(--cps-btn-color) !important;
	border-radius: 6px !important;
	padding: 11px 20px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.woocommerce-cart .button:not(.checkout-button):hover,
.woocommerce-checkout .woocommerce-form-coupon .button:hover,
.woocommerce-account a.button:not([name]):hover {
	background: var(--cps-btn-color) !important;
	color: #fff !important;
}

.woocommerce-cart .button:disabled,
.woocommerce-checkout .button:disabled,
.woocommerce-account .button:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed;
	box-shadow: none !important;
}

/* -------------------------------------------------------------------- *
 *  Cart page
 * -------------------------------------------------------------------- */

.woocommerce-cart table.shop_table {
	border: 1px solid var(--cps-border-color);
	border-radius: var(--cps-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	width: 100%;
}

.woocommerce-cart table.shop_table thead th {
	background: #F7F9FB;
	color: var(--cps-heading-color);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 14px 16px;
	border-bottom: 1px solid var(--cps-border-color);
}

.woocommerce-cart table.shop_table td {
	padding: 16px;
	border-bottom: 1px solid var(--cps-border-color);
	vertical-align: middle;
}

.woocommerce-cart table.shop_table tr:last-child td {
	border-bottom: none;
}

.woocommerce-cart td.product-thumbnail img {
	border-radius: 8px;
	border: 1px solid var(--cps-border-color);
	max-width: 72px;
	height: auto;
}

.woocommerce-cart td.product-name a {
	color: var(--cps-heading-color) !important;
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-cart td.product-price,
.woocommerce-cart td.product-subtotal {
	color: var(--cps-heading-color);
	font-weight: 600;
}

.woocommerce-cart td.product-remove a.remove {
	background: transparent !important;
	color: #c0392b !important;
	border-radius: 50%;
	font-size: 18px !important;
	width: 28px;
	height: 28px;
	line-height: 28px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}

.woocommerce-cart td.product-remove a.remove:hover {
	background: #FBEAEA !important;
	color: #c0392b !important;
}

.woocommerce-cart div.quantity {
	display: inline-flex;
	align-items: center;
}

/* Quantity stepper (added by cps-quantity.js) on cart + single product. */
.cps-qty-stepper {
	display: inline-flex !important;
	align-items: stretch;
	border: 1px solid var(--cps-border-color);
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
}

.cps-qty-stepper input.qty {
	border: none !important;
	border-left: 1px solid var(--cps-border-color) !important;
	border-right: 1px solid var(--cps-border-color) !important;
	border-radius: 0 !important;
	width: 48px !important;
	text-align: center;
	box-shadow: none !important;
}

.cps-qty-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	background: #F7F9FB;
	color: var(--cps-heading-color);
	border: none;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.cps-qty-btn:hover {
	background: var(--cps-btn-color);
	color: #fff;
}

.woocommerce-cart .cart_totals {
	border: 1px solid var(--cps-border-color);
	border-radius: var(--cps-radius);
	padding: 20px 24px;
	background: #fff;
}

.woocommerce-cart .cart_totals h2 {
	font-size: 18px;
	margin-top: 0;
	border-bottom: 1px solid var(--cps-border-color);
	padding-bottom: 14px;
	margin-bottom: 6px;
}

.woocommerce-cart .cart_totals table.shop_table {
	border: none;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	padding: 12px 0;
	border-bottom: 1px solid var(--cps-border-color);
	background: transparent;
}

.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	font-size: 17px;
	font-weight: 700;
	color: var(--cps-heading-color);
	border-bottom: none;
}

.woocommerce-cart .wc-proceed-to-checkout {
	padding-top: 16px;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	width: 100%;
	text-align: center;
	padding: 15px 24px !important;
	font-size: 15px !important;
}

.woocommerce-cart .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.woocommerce-cart .coupon input#coupon_code {
	max-width: 200px;
}

/* Cross-sells on the cart page reuse the same card treatment as related
   products further down this file. */

/* -------------------------------------------------------------------- *
 *  Checkout page
 * -------------------------------------------------------------------- */

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
	font-size: 18px;
	border-bottom: 1px solid var(--cps-border-color);
	padding-bottom: 12px;
	margin-bottom: 18px;
}

.woocommerce-checkout .woocommerce-info {
	border-top-color: var(--cps-btn-color);
	border-radius: 8px;
}

.woocommerce-checkout .woocommerce-info::before {
	color: var(--cps-btn-color);
}

.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
	background: #F7F9FB;
	border: 1px solid var(--cps-border-color);
	border-radius: var(--cps-radius);
	padding: 20px 24px;
}

.woocommerce-checkout table.shop_table {
	border-collapse: separate;
	border-spacing: 0;
	width: 100%;
}

.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
	padding: 12px 0;
	border-bottom: 1px solid var(--cps-border-color);
}

.woocommerce-checkout table.shop_table .order-total th,
.woocommerce-checkout table.shop_table .order-total td {
	font-size: 17px;
	font-weight: 700;
	color: var(--cps-heading-color);
	border-bottom: none;
}

.woocommerce-checkout ul.wc_payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method {
	border: 1px solid var(--cps-border-color);
	border-radius: 8px;
	padding: 12px 14px;
	margin-bottom: 10px;
	background: #fff;
}

.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method label {
	font-weight: 600;
	color: var(--cps-heading-color);
}

.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method .payment_box {
	background: #F7F9FB;
	border-radius: 6px;
	margin-top: 10px;
}

.woocommerce-checkout #place_order {
	width: 100%;
	padding: 16px 24px !important;
	font-size: 16px !important;
}

/* -------------------------------------------------------------------- *
 *  My Account: login / register / dashboard / orders / addresses
 * -------------------------------------------------------------------- */

.woocommerce-account .woocommerce {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	align-items: flex-start;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	flex: 0 0 220px;
	border: 1px solid var(--cps-border-color);
	border-radius: var(--cps-radius);
	overflow: hidden;
	background: #fff;
}

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

.woocommerce-account .woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--cps-border-color);
}

.woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
	border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 18px;
	color: var(--cps-heading-color);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	border-left: 3px solid transparent;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: #F7F9FB;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: #EFF5FB;
	border-left-color: var(--cps-btn-color);
	color: var(--cps-btn-color);
}

.woocommerce-account .woocommerce-MyAccount-content {
	flex: 1 1 420px;
	min-width: 0;
}

/* Login + Register cards (my-account page when logged out). */
.woocommerce-account .u-columns.woocommerce-Addresses,
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	border: 1px solid var(--cps-border-color);
	border-radius: var(--cps-radius);
	padding: 28px;
	background: #fff;
}

.woocommerce-account .u-column1.col-1,
.woocommerce-account .u-column2.col-2 {
	box-sizing: border-box;
}

@media (min-width: 782px) {
	.woocommerce-account .u-columns {
		display: flex;
		gap: 24px;
		align-items: flex-start;
	}

	.woocommerce-account .u-columns .u-column1.col-1,
	.woocommerce-account .u-columns .u-column2.col-2 {
		flex: 1 1 0;
		width: auto;
		float: none;
	}
}

.woocommerce-account .woocommerce-form-login .form-row,
.woocommerce-account .woocommerce-form-register .form-row {
	margin-bottom: 16px;
}

.woocommerce-account .woocommerce-form-login__rememberme {
	font-weight: 400;
	color: var(--cps-text-muted);
}

.woocommerce-account .woocommerce-LostPassword a {
	color: var(--cps-btn-color);
}

/* Orders table */
.woocommerce-account table.woocommerce-orders-table {
	border: 1px solid var(--cps-border-color);
	border-radius: var(--cps-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	width: 100%;
}

.woocommerce-account table.woocommerce-orders-table thead th {
	background: #F7F9FB;
	color: var(--cps-heading-color);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 14px 16px;
}

.woocommerce-account table.woocommerce-orders-table td {
	padding: 14px 16px;
	border-top: 1px solid var(--cps-border-color);
}

.woocommerce-account table.woocommerce-orders-table td a.button {
	padding: 8px 14px !important;
	font-size: 12px !important;
}

.woocommerce-account mark.order-status {
	background: none;
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	color: var(--cps-heading-color);
	background-color: #EEF2F6;
}

.woocommerce-account mark.order-status.status-completed,
.woocommerce-account mark.order-status.status-processing {
	background-color: #E4F4EB;
	color: #1E7A45;
}

.woocommerce-account mark.order-status.status-pending,
.woocommerce-account mark.order-status.status-on-hold {
	background-color: #FDF3E3;
	color: #966214;
}

.woocommerce-account mark.order-status.status-cancelled,
.woocommerce-account mark.order-status.status-failed,
.woocommerce-account mark.order-status.status-refunded {
	background-color: #FBEAEA;
	color: #B12F2F;
}

/* Address boxes */
.woocommerce-account .woocommerce-Address {
	border: 1px solid var(--cps-border-color);
	border-radius: var(--cps-radius);
	padding: 20px;
	background: #fff;
}

.woocommerce-account .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}

.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 {
	margin: 0;
	font-size: 16px;
}

/* -------------------------------------------------------------------- *
 *  Single product: summary box (top-right) + related / up-sell products
 * -------------------------------------------------------------------- */

.single-product div.summary.entry-summary {
	padding-left: 8px;
}

.single-product div.summary.entry-summary h1.product_title {
	color: var(--cps-heading-color) !important;
	font-weight: 700;
	margin-bottom: 10px;
}

.single-product div.summary.entry-summary .price {
	color: var(--cps-heading-color) !important;
	font-size: 26px;
	font-weight: 700;
	margin-bottom: 6px;
}

.single-product div.summary.entry-summary .price del {
	color: var(--cps-text-muted) !important;
	font-weight: 400;
	font-size: 18px;
	opacity: 1;
}

.single-product div.summary.entry-summary .price ins {
	text-decoration: none;
}

.single-product div.summary.entry-summary .woocommerce-product-rating {
	margin-bottom: 14px;
}

.single-product div.summary.entry-summary .woocommerce-product-details__short-description {
	color: var(--cps-text-muted);
	font-size: 14px;
	line-height: 1.6;
	margin-bottom: 18px;
}

.single-product div.summary.entry-summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-bottom: 18px;
}

.single-product div.summary.entry-summary .quantity {
	margin: 0;
}

.single-product div.summary.entry-summary .quantity input.qty {
	border: 1px solid var(--cps-border-color) !important;
	border-radius: 6px !important;
	padding: 12px !important;
	width: 70px;
	text-align: center;
}

.single-product div.summary.entry-summary .single_add_to_cart_button {
	padding: 14px 32px !important;
	font-size: 15px !important;
}

.single-product div.summary.entry-summary .product_meta {
	border-top: 1px solid var(--cps-border-color);
	padding-top: 14px;
	font-size: 13px;
	color: var(--cps-text-muted);
}

.single-product div.summary.entry-summary .product_meta a {
	color: var(--cps-btn-color);
}

.single-product div.summary.entry-summary .stock {
	display: inline-block;
	font-weight: 600;
	font-size: 13px;
	padding: 4px 10px;
	border-radius: 999px;
	margin-bottom: 12px;
}

.single-product div.summary.entry-summary .stock.in-stock {
	background: #E4F4EB;
	color: #1E7A45;
}

.single-product div.summary.entry-summary .stock.out-of-stock {
	background: #FBEAEA;
	color: #B12F2F;
}

/* Related products + up-sells: same card language as the catalog grid
   (light border, rounded corners, 3-up layout) applied to WooCommerce's
   default `ul.products li.product` loop markup. */
.single-product .related.products,
.single-product .up-sells.upsells.products {
	margin-top: 56px;
	padding-top: 40px;
	border-top: 1px solid var(--cps-border-color);
}

.single-product .related.products > h2,
.single-product .up-sells.upsells.products > h2 {
	color: var(--cps-heading-color) !important;
	font-size: 22px;
	margin-bottom: 24px;
}

.single-product .related.products ul.products,
.single-product .up-sells.upsells.products ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

@media (max-width: 900px) {
	.single-product .related.products ul.products,
	.single-product .up-sells.upsells.products ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 560px) {
	.single-product .related.products ul.products,
	.single-product .up-sells.upsells.products ul.products {
		grid-template-columns: 1fr !important;
	}
}

.single-product .related.products ul.products li.product,
.single-product .up-sells.upsells.products ul.products li.product {
	display: flex !important;
	flex-direction: column;
	width: auto !important;
	margin: 0 !important;
	padding: 16px !important;
	background: #fff;
	border: 1px solid var(--cps-border-color) !important;
	border-radius: var(--cps-radius) !important;
	text-align: left !important;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.single-product .related.products ul.products li.product:hover,
.single-product .up-sells.upsells.products ul.products li.product:hover {
	box-shadow: 0 6px 20px rgba(15, 45, 71, 0.08);
	transform: translateY(-2px);
}

.single-product .related.products ul.products li.product img,
.single-product .up-sells.upsells.products ul.products li.product img {
	border-radius: 8px;
	margin-bottom: 12px !important;
	width: 100%;
	height: auto;
}

.single-product .related.products ul.products li.product h2,
.single-product .up-sells.upsells.products ul.products li.product h2,
.single-product .related.products ul.products li.product .woocommerce-loop-product__title,
.single-product .up-sells.upsells.products ul.products li.product .woocommerce-loop-product__title {
	color: var(--cps-heading-color) !important;
	font-size: 15px !important;
	font-weight: 600;
	margin: 0 0 6px !important;
}

.single-product .related.products ul.products li.product .price,
.single-product .up-sells.upsells.products ul.products li.product .price {
	color: var(--cps-heading-color) !important;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 12px !important;
	display: block;
}

.single-product .related.products ul.products li.product .button,
.single-product .up-sells.upsells.products ul.products li.product .button {
	margin-top: auto !important;
	text-align: center;
	width: 100%;
}
