/* ==========================================================================
   WooCommerce element mapping for the HK Compounds design system.
   The base look lives in styles.css; this file styles the markup WooCommerce
   generates for cart, checkout, my-account, notices, prices and buttons so
   they match the original Django storefront.
   ========================================================================== */

/* Reset Woo's product loop list so our .products grid governs layout. */
ul.products { list-style: none; margin: 0; padding: 0; }

/* ---- Prices ---- */
.price del, .price .was, del .amount { color: var(--muted); text-decoration: line-through; font-weight: 500; }
.price ins, ins .amount { text-decoration: none; }
.card .price ins { font-weight: 700; }
.woocommerce-Price-amount { white-space: nowrap; }

/* ---- Buttons ---- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	display: inline-flex; align-items: center; gap: .5rem;
	padding: .65rem 1.1rem;
	border-radius: 999px;
	font-weight: 600;
	font-size: .92rem;
	border: 1px solid transparent;
	cursor: pointer;
	background: var(--ink); color: #fff;
	transition: background .15s ease, border-color .15s ease;
	line-height: 1.2;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--accent); color: #fff; }

/* Secondary/outline buttons (e.g. "Update cart", "Continue shopping"). */
.woocommerce button.button[name="update_cart"],
.woocommerce .cart .button.disabled,
.woocommerce a.button.wc-backward {
	background: transparent; color: var(--ink); border-color: var(--line);
}
.woocommerce a.button.wc-backward:hover { background: var(--ink); color:#fff; border-color: var(--ink); }

/* The "Add +" card button keeps its compact pill look. */
.card a.btn-card.add_to_cart_button { background: transparent; }

/* ---- Notices (success / info / error) ---- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
	list-style: none;
	padding: .85rem 1.1rem;
	border-radius: 8px;
	margin: 0 0 1.25rem;
	font-size: .92rem;
	border: 1px solid var(--line);
}
.woocommerce-message { background:#ecfdf5; border-color:#a7f3d0; color:#065f46; }
.woocommerce-info { background:#eff6ff; border-color:#bfdbfe; color:#1e40af; }
.woocommerce-error { background:#fef2f2; border-color:#fecaca; color:#991b1b; }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button { float: right; padding: .3rem .8rem; font-size: .82rem; }

/* ---- Tables (cart, order details) ---- */
.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	overflow: hidden;
	margin-bottom: 1.5rem;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: .9rem 1rem;
	text-align: left;
	border-bottom: 1px solid var(--line);
	font-size: .92rem;
	vertical-align: middle;
}
.woocommerce table.shop_table thead th {
	background: #f1f5f9;
	font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted);
}
.woocommerce table.shop_table tr:last-child td { border-bottom: none; }
.woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }

/* Cart layout: items left, totals right (mirrors .cart-layout). */
.woocommerce-cart .woocommerce { display: grid; grid-template-columns: 1fr 340px; gap: 2rem; align-items: start; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-cart form.woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .cart-collaterals { grid-column: 2; }
.woocommerce-cart .cart-collaterals .cart_totals {
	background: var(--surface); border: 1px solid var(--line);
	border-radius: var(--radius); padding: 1.5rem;
}
.woocommerce .cart_totals h2 { margin-top: 0; }
.woocommerce .quantity .qty {
	width: 64px; height: 38px; text-align: center;
	border: 1px solid var(--line); border-radius: 6px; font: inherit; background: var(--bg);
}
.woocommerce a.remove {
	color: var(--muted) !important; font-size: 1.3rem; font-weight: 400;
}
.woocommerce a.remove:hover { color: #991b1b !important; background: transparent; }

@media (max-width: 960px) {
	.woocommerce-cart .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-cart form.woocommerce-cart-form,
	.woocommerce-cart .cart-collaterals { grid-column: 1; }
}

/* ---- Checkout ---- */
.woocommerce-checkout .woocommerce { display: block; }
.woocommerce form.checkout { display: grid; grid-template-columns: 1fr 400px; gap: 2rem; align-items: start; }
.woocommerce form.checkout #customer_details { grid-column: 1; }
.woocommerce form.checkout #order_review,
.woocommerce form.checkout #order_review_heading { grid-column: 2; }
.woocommerce #customer_details,
.woocommerce #order_review {
	background: var(--surface); border: 1px solid var(--line);
	border-radius: var(--radius); padding: 1.5rem;
}
.woocommerce #order_review_heading { margin: 0 0 -.5rem; }
/* styles.css defines .form-row as a 2-col grid (for the checkout name fields),
   but WooCommerce wraps EVERY field in .form-row — reset it to block so labels
   sit above inputs. WooCommerce's .form-row-first/-last still give side-by-side
   fields where intended. */
.woocommerce .form-row,
.woocommerce-page .form-row { display: block; grid-template-columns: none; }
.woocommerce .form-row label { font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: .3rem; display: block; }
.woocommerce .form-row input.input-text,
.woocommerce .form-row textarea,
.woocommerce .form-row select,
.woocommerce .select2-container .select2-selection {
	width: 100%; padding: .65rem .8rem; border: 1px solid var(--line);
	border-radius: 6px; font: inherit; background: var(--bg);
}
.woocommerce .form-row input.input-text:focus,
.woocommerce .form-row textarea:focus,
.woocommerce .form-row select:focus {
	border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px rgba(43,108,176,.1);
}
.woocommerce #payment { background: transparent; border-radius: 0; }
.woocommerce #payment ul.payment_methods {
	border: none; padding: 0; margin: 0 0 1rem;
}
.woocommerce #payment ul.payment_methods li {
	border: 1px solid var(--line); border-radius: 8px;
	padding: .8rem 1rem; margin-bottom: .5rem; list-style: none;
}
.woocommerce #payment ul.payment_methods li:hover { border-color: var(--accent); }
.woocommerce #payment div.payment_box {
	background: rgba(43,108,176,.05); border: 1px solid rgba(43,108,176,.12);
	color: var(--ink-2); font-size: .85rem; border-radius: 8px; margin-top: .6rem;
}
.woocommerce #payment div.payment_box::before { display: none; }
.woocommerce #payment .place-order .button { width: 100%; justify-content: center; }

@media (max-width: 960px) {
	.woocommerce form.checkout { grid-template-columns: 1fr; }
	.woocommerce form.checkout #customer_details,
	.woocommerce form.checkout #order_review,
	.woocommerce form.checkout #order_review_heading { grid-column: 1; }
}

/* ---- My Account: login + register ----
   #customer_login (id) gives us specificity above WooCommerce's own
   `.woocommerce .col2-set .col-1 { float:left; width:48% }` so the two
   panels form a centered grid instead of floating skewed. */
.woocommerce-account #customer_login.u-columns,
.woocommerce-account #customer_login.col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	max-width: 920px;
	margin: 0 auto;
	float: none;
	width: auto;
}
/* WooCommerce's .col2-set clearfix ::before/::after become grid items once the
   container is display:grid, taking cells (1,1) and (2,2) and pushing the two
   panels diagonally. Neutralise them. */
.woocommerce-account #customer_login.u-columns::before,
.woocommerce-account #customer_login.u-columns::after,
.woocommerce-account #customer_login.col2-set::before,
.woocommerce-account #customer_login.col2-set::after { content: none; display: none; }
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 {
	float: none !important;
	width: auto !important;
	margin: 0;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 2rem;
}
.woocommerce-account #customer_login .u-column1 form,
.woocommerce-account #customer_login .u-column2 form { margin: 0; }
.woocommerce-account h2 { color: var(--accent); margin-top: 0; }

/* Logged-in dashboard: nav + content side by side, centered within the page. */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: .3rem 0; }

.woocommerce form .form-row.hkc-attestation { background: rgba(43,108,176,.05); border: 1px solid rgba(43,108,176,.15); border-radius: 8px; padding: .9rem 1rem; }
.woocommerce form .form-row.hkc-attestation label { text-transform: none; letter-spacing: 0; color: var(--ink-2); font-size: .88rem; display: flex; gap: .5rem; align-items: flex-start; }

@media (max-width: 720px) {
	.woocommerce-account #customer_login.u-columns,
	.woocommerce-account #customer_login.col2-set { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ---- Pagination ---- */
.woocommerce nav.woocommerce-pagination ul { border: none; display: flex; gap: .4rem; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--line); border-radius: 8px; padding: .5rem .9rem; color: var(--ink-2);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--ink); color: #fff; border-color: var(--ink);
}

/* Hide the default single-product gallery sale flash (we render our own badge). */
.woocommerce span.onsale { display: none; }
