/* ==========================================================================
   ZadKeys Commerce — woocommerce.css
   Presentation only. Never hides gateway elements, notices, required fields.
   ========================================================================== */

/* --- Shop grid --- */
.zc-woo { padding-block: var(--space-6); }
.zc-woo__inner { min-height: 40vh; }
.woocommerce .woocommerce-breadcrumb { color: var(--color-muted); font-size: var(--fs-small); margin-block-end: var(--space-5); }
.woocommerce .woocommerce-breadcrumb a { color: var(--color-muted); }
.woocommerce .woocommerce-result-count { color: var(--color-muted); }

/* Product cards in loops */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products li.product {
	background: var(--color-ink-soft); border: 1px solid var(--color-border); border-radius: var(--radius-lg);
	padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-3);
	transition: border-color var(--transition);
}
.woocommerce ul.products li.product:hover { border-color: rgba(184, 243, 69, 0.45); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.1rem; padding: 0; margin: 0; color: var(--color-text); }
.woocommerce ul.products li.product .price { color: var(--color-lime); font-weight: 700; font-size: 1.15rem; }
.woocommerce ul.products li.product .price del { color: var(--color-muted); font-weight: 500; font-size: 0.95rem; }
.woocommerce ul.products li.product .button {
	align-self: flex-start; margin-block-start: auto; background: var(--color-lime); color: var(--color-lime-ink);
	border-radius: var(--radius-md); font-weight: 700; padding: 0.7rem 1.2rem; min-height: 44px;
}
.woocommerce ul.products li.product .button:hover { background: var(--color-lime-soft); }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .woocommerce ul.products { grid-template-columns: 1fr; } }

/* --- Single product --- */
.zc-product-layout { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-7); align-items: start; }
@media (max-width: 900px) { .zc-product-layout { grid-template-columns: 1fr; } }
.woocommerce div.product .product_title { font-size: var(--fs-h2); color: var(--color-text); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--color-lime); font-size: 1.7rem; font-weight: 800; }
.woocommerce div.product p.price del, .woocommerce div.product span.price del { color: var(--color-muted); font-size: 1.1rem; font-weight: 500; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--color-muted); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; margin-block: var(--space-5); }
.woocommerce .quantity input.qty {
	background: var(--color-ink-soft); color: var(--color-text); border: 1px solid var(--color-border);
	border-radius: var(--radius-md); padding: 0.65rem; inline-size: 5.5rem; min-height: 44px;
}
.woocommerce div.product form.cart .button {
	background: var(--color-lime); color: var(--color-lime-ink); border-radius: var(--radius-md);
	font-weight: 700; font-size: 1.05rem; padding: 0.9rem 2rem; min-height: 48px;
}
.woocommerce div.product form.cart .button:hover { background: var(--color-lime-soft); }
.woocommerce div.product .stock { color: var(--color-success); font-weight: 600; }
.woocommerce div.product .out-of-stock { color: var(--color-error); }
.woocommerce div.product .woocommerce-tabs { margin-block-start: var(--space-6); }
.woocommerce div.product .woocommerce-tabs ul.tabs { border-block-end: 1px solid var(--color-border); padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--color-muted); font-weight: 600; padding: var(--space-3) var(--space-4); display: block; border-block-end: 2px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--color-lime); border-block-end-color: var(--color-lime); }
.woocommerce div.product .woocommerce-tabs .panel { color: var(--color-muted); }
.woocommerce div.product .woocommerce-tabs .panel h2 { color: var(--color-text); font-size: 1.3rem; }

/* Gallery */
.woocommerce div.product div.images img { border-radius: var(--radius-lg); border: 1px solid var(--color-border); }

/* --- Purchase card shortcode --- */
.zc-purchase-card { background: var(--color-ink-soft); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-6); display: grid; gap: var(--space-4); }
.zc-purchase-card__price { font-size: 1.9rem; font-weight: 800; color: var(--color-lime); }
.zc-purchase-card__price del { color: var(--color-muted); font-size: 1.1rem; font-weight: 500; margin-inline-end: var(--space-2); }
.zc-purchase-card__availability .stock { color: var(--color-success); font-weight: 600; }
.zc-purchase-card__meta { list-style: none; margin: 0; padding: var(--space-4) 0 0; border-block-start: 1px dashed var(--color-border); display: grid; gap: var(--space-2); }
.zc-purchase-card__meta li { display: flex; justify-content: space-between; gap: var(--space-4); font-size: var(--fs-small); }
.zc-purchase-card__meta span { color: var(--color-muted); }
.zc-purchase-card__out { color: var(--color-error); font-weight: 600; }
.zc-purchase-card__actions { display: grid; gap: var(--space-3); }

/* --- Cart (native WooCommerce, presentation only) --- */
.woocommerce table.shop_table { border: 1px solid var(--color-border); border-radius: var(--radius-md); border-collapse: separate; background: var(--color-ink-soft); }
.woocommerce table.shop_table th { color: var(--color-muted); font-size: var(--fs-small); }
.woocommerce table.shop_table td { border-block-start: 1px solid var(--color-border); }
.woocommerce table.shop_table a { color: var(--color-text); }
.woocommerce a.remove { color: var(--color-error) !important; }
.woocommerce .cart-collaterals .cart_totals { background: var(--color-ink-soft); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-5); }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 1.2rem; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { background: var(--color-lime); color: var(--color-lime-ink); border-radius: var(--radius-md); font-weight: 700; min-height: 48px; }

/* --- Checkout (CRITICAL: never hide notices, fields, gateways, iframes) --- */
.woocommerce-checkout #payment { background: var(--color-ink-soft); border-radius: var(--radius-lg); border: 1px solid var(--color-border); }
.woocommerce-checkout #payment div.payment_box { background: rgba(139, 92, 246, 0.12); color: var(--color-text); border-radius: var(--radius-md); }
.woocommerce-checkout #payment div.payment_box::before { border-block-end-color: rgba(139, 92, 246, 0.12); }
.woocommerce-checkout #payment ul.payment_methods { border-block-end: 1px solid var(--color-border); }
.woocommerce-checkout #payment div.form-row { padding-block: var(--space-4); }
.woocommerce-checkout #place_order { background: var(--color-lime); color: var(--color-lime-ink); border-radius: var(--radius-md); font-weight: 700; font-size: 1.05rem; min-height: 52px; width: 100%; }
.woocommerce-checkout #place_order:hover { background: var(--color-lime-soft); }
.woocommerce form .form-row label { color: var(--color-text); }
.woocommerce form .form-row .required { color: var(--color-error); }
.woocommerce-input-wrapper .input-text, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	background: var(--color-canvas); color: var(--color-text); border: 1px solid var(--color-border);
	border-radius: var(--radius-md); padding: 0.75rem 1rem; min-height: 44px;
}
.woocommerce form .form-row.woocommerce-validated .input-text { border-color: var(--color-success); }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: var(--color-error); }
.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-info, .woocommerce-message {
	border-radius: var(--radius-md); padding: var(--space-4) var(--space-5); background: var(--color-ink-soft);
	border: 1px solid var(--color-border); list-style: none outside; color: var(--color-text);
}
.woocommerce-error { border-inline-start: 4px solid var(--color-error); }
.woocommerce-info { border-inline-start: 4px solid var(--color-plum); }
.woocommerce-message { border-inline-start: 4px solid var(--color-success); }
/* Gateway containers: keep visible & unobstructed — never display:none on payment sections */
.woocommerce-checkout #payment .wc_payment_methods, .woocommerce-checkout #payment .payment_box { display: block; }

/* Cart block rows have a fixed minimum width (~340px) and render as a table.
   Below ~480px viewport, contain them with accessible horizontal scrolling on
   the block container (overflow on display:table boxes is ignored by CSS). */
@media (max-width: 480px) {
	.woocommerce-cart .wc-block-cart__main { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.woocommerce-cart .wc-block-cart-items { max-width: 100%; }
}

/* Block checkout (WooCommerce Blocks) responsive guards.
   Columns must shrink to zero and never force horizontal page scroll;
   no hiding of fields, gateways, iframes, or notices. */
.woocommerce-checkout .wc-block-checkout__main,
.woocommerce-checkout .wc-block-checkout__sidebar { min-width: 0; max-width: 100%; }
@media (max-width: 560px) {
	/* Stack on narrow screens: contact/billing/payment first, order summary last. */
	.woocommerce-checkout .wc-block-components-sidebar-layout { flex-direction: column; }
	.woocommerce-checkout .wc-block-checkout__main { order: 1; width: 100%; }
	.woocommerce-checkout .wc-block-checkout__sidebar { order: 2; width: 100%; }
}

/* --- My Account --- */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-1); }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); color: var(--color-text); font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-navigation a:hover, .woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--color-ink-soft); color: var(--color-lime); }
.woocommerce-account .woocommerce-MyAccount-content { background: var(--color-ink-soft); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-6); }
.woocommerce .addresses .title h3 { font-size: 1.1rem; }

/* --- Notices must stay visible --- */
.woocommerce .woocommerce-notices-wrapper:empty { display: none; }
/* Preview ribbon for seeded sample products */
.zc-preview-ribbon {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	background: var(--color-plum);
	color: #fff;
	border-radius: var(--radius-sm);
	padding: 0.3rem 0.6rem;
	margin-block-end: var(--space-3);
}

