/*
 * Tunerzine theme: shop (WooCommerce). Loaded on shop screens only.
 * WooCommerce's own stylesheets are switched off (inc/shop.php), so every
 * classic shop element is styled here. Order: shared controls, catalogue,
 * product page, cart and checkout blocks, account, mobile.
 */

.tz-shop { padding-top: 40px; }
.tz-shop::after { content: ""; display: block; clear: both; }
.tz-shop--page { padding-top: 48px; }
.tz-shop-cats { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
/* Free shipping: paper sticker in the page head (like an archive's article
   count), accent label tape under the product price. */
.tz-ship-sticker { align-self: center; text-align: center; line-height: 1.15; }
.tz-ship-note { margin: -6px 0 20px; }
.tz-ship-note .tz-dymo { font-size: 11px; }
/* Limited drops (inc/shop-drops.php) */
.tz-drop { margin: 0 0 22px; padding: 16px 18px; border: 3px dashed #3A3A42; border-radius: 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.tz-drop__when, .tz-drop__ships { margin: 0; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--tz-text); }
/* The countdown: its own line, big and bold, like a race clock */
.tz-drop__when [data-tz-countdown] { display: block; margin-top: 6px; color: var(--tz-accent); font-weight: 700; font-size: 34px; line-height: 1.05; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.tz-drop__when [data-tz-countdown]:empty { display: none; }
.tz-drop__ships { color: var(--tz-text-secondary); }
/* Coming soon: a solid cream ticket with an ink countdown, so it can't be
   mistaken for an open drop (dashed box, orange countdown) */
.tz-drop--soon { background: var(--tz-cream); border: 0; color: var(--tz-ink); }
.tz-drop--soon .tz-drop__when, .tz-drop--soon .tz-drop__window { color: var(--tz-ink); }
.tz-drop--soon .tz-drop__when [data-tz-countdown] { color: var(--tz-ink); font-weight: 900; }
.tz-drop__window { margin: 0; padding: 5px 10px; background: var(--tz-ink); color: var(--tz-cream) !important; border-radius: 6px; font-size: 12px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.tz-drop--soon .tz-drop__ships { color: #4A453B; }
.tz-drop__window span { display: block; white-space: nowrap; font-weight: 400; }
/* The Coming soon button sits where Add to cart will be, but can't be pressed */
.tz-soon { margin: 0 0 22px; }
.tz-shop .button.tz-soon__btn, .tz-shop .button.tz-soon__btn:disabled, .tz-shop .button.tz-soon__btn:hover { min-height: 56px; padding: 0 30px; font-size: 16px; background: transparent; color: var(--tz-cream); border: 3px solid var(--tz-cream); opacity: 1; cursor: not-allowed; }
.tz-shop-crumbs { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--tz-text-secondary); }
.tz-shop-crumbs a { color: var(--tz-text-secondary); }
/* Product page notices ("added to your cart"): below the breadcrumb, not on it */
.tz-shop--single .tz-shop-crumbs { display: block; margin-bottom: 22px; }
.tz-shop--single .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 8px; }
.tz-shop--single .woocommerce-message { margin-bottom: 0; }
.tz-shop-crumbs a:hover { color: var(--tz-accent); }

/* ---------- Shared controls ---------- */
.tz-shop .button, .tz-shop button[type=submit]:not(.wc-block-components-button):not(.tz-searchform__go) {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 46px; padding: 0 20px; border-radius: 999px; cursor: pointer;
	border: 4px solid var(--tz-text); box-shadow: 0 6px 0 rgba(0, 0, 0, .45);
	background: var(--tz-text); color: var(--tz-ink);
	font-family: var(--tz-font-body); font-stretch: 125%; font-weight: 900; font-size: 14px; line-height: 1; text-transform: uppercase; text-decoration: none;
}
.tz-shop .button:hover, .tz-shop button[type=submit]:not(.wc-block-components-button):not(.tz-searchform__go):hover { background: var(--tz-accent); color: var(--tz-text); filter: none; }
.tz-shop .button.alt, .tz-shop .single_add_to_cart_button { background: var(--tz-accent); color: var(--tz-ink); }
.tz-shop .button.alt:hover, .tz-shop .single_add_to_cart_button:hover { background: var(--tz-accent-hover); color: var(--tz-ink); }
.tz-shop .button.disabled, .tz-shop .button:disabled, .tz-shop .button.loading { opacity: .5; cursor: default; }

/* Classic form controls: product page and account forms. The cart and checkout blocks have their own rules below. */
.tz-shop--single :is(input.input-text, input[type=number], select), .tz-shop .woocommerce :is(input.input-text, input[type=text], input[type=email], input[type=tel], input[type=password], textarea, select), .tz-shop .woocommerce-ordering select {
	min-height: 56px; background-color: var(--tz-ink); color: var(--tz-text);
	border: 3px solid var(--tz-text); border-radius: 14px; padding: 12px 18px; font-size: 17px; max-width: 100%;
}
.tz-shop input:focus, .tz-shop textarea:focus, .tz-shop select:focus { border-color: var(--tz-accent); outline: none; box-shadow: 0 0 0 3px var(--tz-accent-glow); }
.tz-shop .woocommerce label, .tz-shop--single label { font-family: var(--tz-font-mono); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.tz-shop .required { color: var(--tz-accent); text-decoration: none; }

.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	list-style: none; margin: 0 0 28px; padding: 16px 20px; clear: both;
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px;
	background: var(--tz-surface); border: 3px solid var(--tz-divider); border-radius: 14px;
	font-weight: 700; font-size: 16px;
}
.woocommerce-message { border-color: var(--tz-accent); }
.woocommerce-error { border-color: #FF8A7A; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a:not(.button) { color: var(--tz-accent); }

/* ---------- Catalogue ---------- */
.tz-shop .woocommerce-result-count { float: left; margin: 0; padding: 16px 0; font-family: var(--tz-font-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--tz-text-secondary); }
.tz-shop .woocommerce-ordering { float: right; margin: 0; }
.tz-shop .woocommerce-ordering select { min-height: 50px; border-radius: 999px; padding: 0 22px; font-weight: 700; font-size: 15px; }
/* Dropdowns: our own arrow, set in from the edge (the browser's sits hard against the border). */
.tz-shop .woocommerce-ordering select, .tz-shop--single select, .tz-shop .woocommerce select {
	-webkit-appearance: none; appearance: none; padding-right: 54px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23F5F5F0' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 22px center; background-size: 14px auto;
}

/* Shop landing: one section per category (inc/shop-landing.php) */
.tz-shop-sec { padding-top: 40px; scroll-margin-top: 24px; }
.tz-shop-sec + .tz-shop-sec { padding-top: 80px; }
.tz-shop-sec .tz-sec-head { margin-bottom: 0; }
.tz-shop-sec ul.products { padding-top: 34px; }

.tz-shop ul.products {
	clear: both; list-style: none; margin: 0; padding: 30px 0 0;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 52px 28px;
}
.tz-shop li.product { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; min-width: 0; }
/* Product card basics (.tz-prod__*) live in main.css: the homepage shop strip uses them too. */
.tz-shop .price { font-family: var(--tz-font-mono); font-weight: 700; font-size: 16px; color: var(--tz-accent); }
.tz-shop .price del { color: var(--tz-text-secondary); font-weight: 400; margin-right: 8px; }
.tz-shop .price ins { text-decoration: none; }
.tz-shop li.product .added_to_cart { font-family: var(--tz-font-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--tz-accent); }
.tz-shop li.product .button.added { display: none; }

.woocommerce-pagination { clear: both; padding-top: 56px; }
.woocommerce-pagination ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.woocommerce-pagination .page-numbers:not(ul) {
	display: inline-flex; align-items: center; justify-content: center; min-width: 46px; min-height: 46px; padding: 0 14px; border-radius: 999px;
	border: 4px solid var(--tz-text); box-shadow: 0 6px 0 rgba(0, 0, 0, .45); background: var(--tz-ink); color: var(--tz-text);
	font-stretch: 125%; font-weight: 900; font-size: 14px;
}
.woocommerce-pagination .page-numbers.current { background: var(--tz-accent); color: var(--tz-ink); }

/* ---------- Product page ---------- */
.tz-shop--single div.product { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px 64px; padding-top: 28px; align-items: start; }
.tz-shop--single div.product > .woocommerce-tabs, .tz-shop--single div.product > .related, .tz-shop--single div.product > .upsells { grid-column: 1 / -1; }

.woocommerce-product-gallery { position: relative; min-width: 0; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image a { display: block; padding: 6px; border-radius: 14px; background: var(--tz-text); }
.woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; border-radius: 8px; background: #000; }
.woocommerce-product-gallery .flex-control-thumbs { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce-product-gallery .flex-control-thumbs li { width: 86px; }
.woocommerce-product-gallery .flex-control-thumbs img { display: block; width: 100%; height: auto; border: 3px solid transparent; border-radius: 8px; opacity: .6; cursor: pointer; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { border-color: var(--tz-accent); opacity: 1; }
.woocommerce-product-gallery__trigger {
	position: absolute; top: 18px; right: 18px; z-index: 3; width: 46px; height: 46px; border-radius: 50%; overflow: hidden;
	border: 4px solid var(--tz-text); box-shadow: 0 6px 0 rgba(0, 0, 0, .45); font-size: 0; color: transparent;
	background: var(--tz-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F5F5F0' stroke-width='2.6' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/svg%3E") center / 18px no-repeat;
}
.woocommerce-product-gallery__trigger img { display: none !important; }
.woocommerce-product-gallery__image--placeholder .tz-prod__img--empty .wide { font-size: clamp(26px, 3.4vw, 52px); }

.tz-shop--single .summary { min-width: 0; }
.tz-shop--single .summary .tz-prod__flag { position: static; display: inline-flex; margin-bottom: 18px; transform: none; }
.tz-shop--single .product_title {
	margin: 0 0 22px; font-stretch: 125%; font-weight: 900; text-transform: uppercase;
	font-size: clamp(36px, 4.4vw, 68px); line-height: .9; letter-spacing: -.01em; text-shadow: 5px 4px 0 var(--tz-accent); overflow-wrap: anywhere;
}
.tz-shop--single .summary > .price, .tz-shop--single .woocommerce-variation-price .price { display: block; margin: 0 0 20px; font-size: 26px; }
.woocommerce-product-details__short-description p { margin: 0 0 18px; font-size: 18px; line-height: 1.7; color: #E4E4E8; }
/* Links in the short description (@hertlife, the feature stories): accent orange and bold, white on hover, like article links (.tz-prose a) */
.woocommerce-product-details__short-description a { color: var(--tz-accent); font-weight: 700; text-decoration: none; }
.woocommerce-product-details__short-description a:hover { color: var(--tz-text); }
.tz-shop .stock { margin: 0 0 6px; font-family: var(--tz-font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--tz-text-secondary); }
.tz-shop .stock.out-of-stock { color: #FF8A7A; }

/* One 12px rhythm through the buy box: SIZE, the size menu, QUANTITY, the
   quantity box and button are all 12px apart (14px between box and button). */
.tz-shop--single form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; }
.tz-shop--single form.cart { margin: 24px 0 0; }
.tz-shop .quantity .qty { width: 96px; text-align: center; font-weight: 800; font-size: 18px; padding: 12px 8px; }
/* "Quantity" label: its own row above the quantity box and the button */
.tz-qty-label { flex: 0 0 100%; line-height: 1; font-family: var(--tz-font-mono); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--tz-text); }
.tz-shop .single_add_to_cart_button { min-height: 56px; padding: 0 30px; font-size: 16px; }
table.variations { width: 100%; margin: 0 0 12px; border: 0; border-collapse: collapse; }
table.variations th, table.variations td { display: block; padding: 0; text-align: left; }
table.variations th.label { padding-bottom: 12px; line-height: 1; }
table.variations th.label label { display: block; line-height: 1; }
.tz-shop--single table.variations select { width: 100%; max-width: 340px; font-weight: 700; }
/* "Clear" sits on the SIZE label's line (right side), so it never pushes the
   menu or QUANTITY down when it wraps on phones */
table.variations td.value { position: relative; }
.reset_variations { position: absolute; right: 0; top: -24px; margin: 0; font-family: var(--tz-font-mono); font-size: 12px; line-height: 1; letter-spacing: .08em; text-transform: uppercase; color: var(--tz-text-secondary); }
@media (min-width: 761px) { table.variations { max-width: 340px; } }
.single_variation { margin: 0 0 12px; }
.single_variation:empty { margin: 0; }
.woocommerce-variation-description p { margin: 0 0 12px; }

.product_meta { margin-top: 28px; padding-top: 18px; border-top: 2px dashed #3A3A42; display: flex; flex-direction: column; gap: 6px; font-family: var(--tz-font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--tz-text-secondary); }
.product_meta .sku_wrapper { display: none; } /* stock code: for the packing slip, not the shopper */
.product_meta a { color: var(--tz-text); }
.product_meta a:hover { color: var(--tz-accent); }

.woocommerce-tabs { margin-top: 40px; }
.woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.woocommerce-tabs ul.tabs a {
	display: inline-flex; align-items: center; padding: 8px 14px; border-radius: 8px;
	border: 4px solid var(--tz-text); box-shadow: 0 6px 0 rgba(0, 0, 0, .45); background: var(--tz-ink); color: var(--tz-text);
	font-stretch: 125%; font-weight: 900; font-size: 13px; line-height: 1; text-transform: uppercase;
}
.woocommerce-tabs ul.tabs li.active a { background: var(--tz-accent); color: var(--tz-ink); }
.woocommerce-Tabs-panel > h2 { display: none; } /* repeats the tab's own label */
/* The tab you are on is a label, not a button. */
.woocommerce-tabs ul.tabs li.active a { pointer-events: none; cursor: default; }
/* One section only (no size chart or specs): no tab row at all, just a heading. */
.woocommerce-tabs ul.tabs:has(> li:only-child) { display: none; }
.woocommerce-tabs:has(ul.tabs > li:only-child) .woocommerce-Tabs-panel > h2 { display: block; margin: 0 0 18px; padding-top: 28px; border-top: 2px dashed #3A3A42; font-stretch: 125%; font-weight: 900; font-size: clamp(24px, 2.4vw, 32px); line-height: 1; text-transform: uppercase; }
.woocommerce-Tabs-panel p { margin: 0 0 22px; font-size: 18px; line-height: 1.75; color: #E4E4E8; }
table.shop_attributes { width: 100%; border-collapse: collapse; }
table.shop_attributes th, table.shop_attributes td { padding: 14px 0; border-bottom: 1px solid var(--tz-divider); text-align: left; vertical-align: top; }
table.shop_attributes th { width: 200px; padding-right: 20px; font-family: var(--tz-font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--tz-text-secondary); }
table.shop_attributes td p { margin: 0; font-size: 17px; }

.tz-shop--single .related, .tz-shop--single .upsells { margin-top: 72px; }
.tz-shop--single .related > h2, .tz-shop--single .upsells > h2 { margin: 0; font-stretch: 125%; font-weight: 900; text-transform: uppercase; font-size: clamp(30px, 4vw, 56px); line-height: .9; }
/* "More from the SHOP": SHOP in orange, matching the From the Shop strip */
.tz-shop--single .related > h2::after { content: " Shop"; color: var(--tz-accent); }

/* ---------- Cart and checkout (blocks) ---------- */
.tz-shop--page .wc-block-components-button:not(.is-link) {
	min-height: 56px; padding: 0 30px; border-radius: 999px; border: 4px solid var(--tz-text); box-shadow: 0 6px 0 rgba(0, 0, 0, .45);
	background: var(--tz-accent); color: var(--tz-ink);
	font-family: var(--tz-font-body); font-stretch: 125%; font-weight: 900; font-size: 16px; text-transform: uppercase; text-decoration: none;
}
.tz-shop--page .wc-block-components-button:not(.is-link):hover { background: var(--tz-accent-hover); color: var(--tz-ink); }
.tz-shop--page .wc-block-components-button:not(.is-link):focus { outline: 3px solid var(--tz-accent); outline-offset: 3px; box-shadow: 0 6px 0 rgba(0, 0, 0, .45); }
.tz-shop--page a:not(.wc-block-components-button):not(.button) { color: var(--tz-accent); }
/* Express pay buttons (Apple Pay, Google Pay, Link) load after the cart:
   keep one 44px row of space ready so Proceed to checkout doesn't jump. */
.tz-shop--page .wc-block-components-express-payment__event-buttons { min-height: 44px; }
.tz-shop--page a:not(.wc-block-components-button):not(.button):hover { color: var(--tz-text); }

.tz-shop--page h2.wc-block-components-title, .tz-shop--page .wc-block-components-checkout-step__title, .tz-shop--page .wc-block-cart__totals-title, .tz-shop--page .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--tz-font-body); font-stretch: 125%; font-weight: 900; font-size: 20px; line-height: 1.1; letter-spacing: 0; text-transform: uppercase;
}
.tz-shop--page .wc-block-components-text-input input, .tz-shop--page .wc-block-components-textarea,
.tz-shop--page .wc-blocks-components-select .wc-blocks-components-select__container, .tz-shop--page .wc-blocks-components-select .wc-blocks-components-select__select {
	background: var(--tz-ink); color: var(--tz-text); border-radius: 14px;
}
.tz-shop--page .wc-block-components-text-input input, .tz-shop--page .wc-block-components-textarea, .tz-shop--page .wc-blocks-components-select .wc-blocks-components-select__select { border: 3px solid var(--tz-text); }
/* The block stylesheet sets these per input type with heavier selectors. */
.tz-shop--page .wc-block-components-text-input input[type], .tz-shop--page .wc-block-components-textarea { background-color: var(--tz-ink) !important; color: var(--tz-text) !important; border: 3px solid var(--tz-text) !important; border-radius: 14px !important; }
.tz-shop--page .wc-block-components-text-input input[type]:focus, .tz-shop--page .wc-block-components-textarea:focus { border-color: var(--tz-accent) !important; }
.tz-shop--page .wc-block-components-text-input input:-webkit-autofill { -webkit-text-fill-color: var(--tz-text); box-shadow: 0 0 0 100px var(--tz-ink) inset !important; }
.tz-shop--page .wc-block-components-text-input input:focus, .tz-shop--page .wc-block-components-textarea:focus, .tz-shop--page .wc-blocks-components-select .wc-blocks-components-select__select:focus { border-color: var(--tz-accent); box-shadow: 0 0 0 3px var(--tz-accent-glow); outline: none; }
.tz-shop--page .wc-block-components-text-input label, .tz-shop--page .wc-blocks-components-select .wc-blocks-components-select__label { color: var(--tz-text-secondary); }
.tz-shop--page .wc-block-components-text-input.has-error input { border-color: #FF8A7A; }
.tz-shop--page .wc-block-components-validation-error { color: #FF8A7A; }
.tz-shop--page .wc-blocks-components-select .wc-blocks-components-select__expand { fill: var(--tz-text); }
.tz-shop--page .wc-block-components-quantity-selector { border-radius: 999px; overflow: hidden; }
.tz-shop--page .wc-block-components-quantity-selector, .tz-shop--page .wc-block-components-quantity-selector::after { border-color: var(--tz-text); }
.tz-shop--page .wc-block-components-quantity-selector input { background: transparent; color: var(--tz-text); font-weight: 800; }
.tz-shop--page .wc-block-components-quantity-selector button { color: var(--tz-text); opacity: 1; }
.tz-shop--page .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.tz-shop--page .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { border-radius: 14px; box-shadow: inset 0 0 0 3px var(--tz-text); }
.tz-shop--page .wc-block-components-radio-control__label, .tz-shop--page .wc-block-components-checkbox__label { font-weight: 700; }
.tz-shop--page .wc-block-components-sidebar .wc-block-components-order-summary, .tz-shop--page .wc-block-checkout__sidebar { border-radius: 14px; }
.tz-shop--page .wc-block-cart-items, .tz-shop--page .wc-block-cart-items td, .tz-shop--page .wc-block-cart-items th, .tz-shop--page .wc-block-components-totals-wrapper,
.tz-shop--page .wc-block-components-panel, .tz-shop--page .wc-block-checkout__actions, .tz-shop--page .wc-block-components-order-summary { border-color: var(--tz-divider) !important; }
/* Who you're buying from (inc/shop.php tz_seller_text): under the checkout form, and on the order-received page */
/* WooCommerce wraps order details in <mark> (Order Status: number, date, status): bold, no yellow */
.tz-shop mark { background: none; color: var(--tz-text); font-weight: 700; padding: 0; }
/* Continue shopping (inc/shop-api.php): above the cart */
.tz-continue { margin: 0 0 24px; }
.tz-shop--page .tz-continue a.sticker { color: var(--tz-ink); }
/* No account is created (inc/shop-orders.php): top of the checkout and on the order-received page */
.tz-guest-note { margin: 0 0 24px; padding: 14px 18px; border: 3px dashed var(--tz-divider); border-radius: 14px; font-size: 15px; line-height: 1.5; color: var(--tz-text); }
.tz-guest-note a { color: var(--tz-accent); font-weight: 700; }
.tz-seller-note { clear: both; margin: 20px 0 0; font-size: 13px; line-height: 1.5; color: var(--tz-text-secondary); }
.tz-shop--page .wc-block-cart-items .wc-block-cart-items__header th { font-family: var(--tz-font-mono); font-size: 12px; letter-spacing: .12em; color: var(--tz-text-secondary); }
.tz-shop--page .wc-block-components-product-name { font-weight: 800; font-size: 17px; color: var(--tz-text) !important; }
.tz-shop--page .wc-block-components-product-name:hover { color: var(--tz-accent) !important; }
.tz-shop--page .wc-block-cart-item__image img, .tz-shop--page .wc-block-components-order-summary-item__image img { border-radius: 8px; }
/* Bigger product photos in the cart and the checkout summary */
.tz-shop--page .wc-block-cart-items .wc-block-cart-item__image { width: 132px; padding-right: 20px; }
.tz-shop--page .wc-block-cart-items .wc-block-cart-item__image img { width: 112px; max-width: none; }
.tz-shop--page .wc-block-components-order-summary-item__image { width: 72px; }
.tz-shop--page .wc-block-components-order-summary-item__image img { width: 72px; max-width: none; }
.tz-shop--page .wc-block-components-order-summary-item__quantity { background: var(--tz-accent); color: var(--tz-ink); border-color: var(--tz-ink); box-shadow: none; }
.tz-shop--page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value, .tz-shop--page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-weight: 800; }
/* Empty cart: the block's own product grid */
.tz-shop--page .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title { color: var(--tz-text); font-weight: 800; font-size: 17px; }
.tz-shop--page .wp-block-woocommerce-empty-cart-block .wp-block-button__link { border-radius: 999px; background: var(--tz-text); color: var(--tz-ink) !important; font-stretch: 125%; font-weight: 900; text-transform: uppercase; }

/* ---------- Account (classic forms) ---------- */
.tz-shop .woocommerce h2, .tz-shop .woocommerce h3 { margin: 0 0 20px; font-stretch: 125%; font-weight: 900; font-size: clamp(24px, 2.4vw, 32px); line-height: 1; text-transform: uppercase; }
.tz-shop .woocommerce form.login, .tz-shop .woocommerce form.register, .tz-shop .woocommerce form.lost_reset_password, .tz-shop .woocommerce form.edit-account, .tz-shop .woocommerce-address-fields {
	max-width: 560px; background: var(--tz-surface); border: 3px solid var(--tz-divider); border-radius: 18px; padding: clamp(22px, 3vw, 36px);
}
.tz-shop .woocommerce .form-row { display: flex; flex-direction: column; gap: 8px; margin: 0 0 20px; padding: 0; }
.tz-shop .woocommerce .form-row input.input-text, .tz-shop .woocommerce .form-row select, .tz-shop .woocommerce .form-row textarea { width: 100%; }
.tz-shop .woocommerce .password-input { position: relative; display: block; }
.tz-shop .woocommerce .show-password-input {
	position: absolute; top: 50%; right: 14px; transform: translateY(-50%); width: 28px; height: 28px; min-height: 0; padding: 0; border: 0; box-shadow: none; cursor: pointer;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3A3AD' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M2 12s3.6-6.5 10-6.5S22 12 22 12s-3.6 6.5-10 6.5S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='2.8'/%3E%3C/svg%3E") center / 22px no-repeat;
}
.tz-shop .woocommerce .show-password-input:hover { background-color: transparent; }
.tz-shop .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; margin-right: 18px; }
.tz-shop .woocommerce .form-row:has(.woocommerce-form-login__rememberme) { flex-direction: row; align-items: center; flex-wrap: wrap; }
.tz-shop .woocommerce-LostPassword { margin: 0; }
.tz-shop .woocommerce p { font-size: 17px; line-height: 1.6; }
.tz-shop .woocommerce a:not(.button) { color: var(--tz-accent); font-weight: 700; }
.tz-shop .woocommerce a:not(.button):hover { color: var(--tz-text); }
.woocommerce-account .tz-shop .woocommerce:has(.woocommerce-MyAccount-navigation) { display: flex; flex-wrap: wrap; gap: 40px 56px; align-items: flex-start; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; min-width: 220px; }
.woocommerce-MyAccount-navigation a {
	display: flex; align-items: center; min-height: 46px; padding: 0 18px; border-radius: 10px; border: 4px solid var(--tz-text); box-shadow: 0 6px 0 rgba(0, 0, 0, .45);
	background: var(--tz-ink); color: var(--tz-text) !important; font-stretch: 125%; font-weight: 900 !important; font-size: 13px; text-transform: uppercase;
}
.woocommerce-MyAccount-navigation .is-active a { background: var(--tz-accent); color: var(--tz-ink) !important; }
.woocommerce-MyAccount-content { flex: 999 1 520px; min-width: 0; }
.tz-shop table.shop_table { width: 100%; border-collapse: collapse; }
.tz-shop table.shop_table th, .tz-shop table.shop_table td { padding: 14px 12px 14px 0; border-bottom: 1px solid var(--tz-divider); text-align: left; }
.tz-shop table.shop_table th { font-family: var(--tz-font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--tz-text-secondary); }

/* Order received / order details */
.tz-shop .woocommerce-order h2, .tz-shop .woocommerce-order-details h2, .tz-shop .woocommerce-customer-details h2 { margin-top: 48px; }
.tz-shop ul.woocommerce-order-overview { list-style: none; margin: 20px 0 0; padding: 18px 22px; display: flex; flex-wrap: wrap; gap: 14px 40px; background: var(--tz-surface); border: 3px solid var(--tz-divider); border-radius: 14px; }
.tz-shop ul.woocommerce-order-overview li { display: flex; flex-direction: column; gap: 4px; font-family: var(--tz-font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--tz-text-secondary); }
.tz-shop ul.woocommerce-order-overview strong { font-family: var(--tz-font-body); font-size: 17px; letter-spacing: 0; text-transform: none; color: var(--tz-text); }
.tz-shop address { font-style: normal; font-size: 17px; line-height: 1.6; }

/* ---------- Mobile ---------- */
@media (max-width: 1100px) {
	.tz-shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.tz-shop--single div.product { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
	.tz-shop { padding-top: 28px; }
	.tz-ship-sticker { font-size: 13px; padding: 8px 14px; }
	.tz-shop--page .wc-block-cart-items .wc-block-cart-item__image { width: 104px; padding-right: 14px; }
	.tz-shop--page .wc-block-cart-items .wc-block-cart-item__image img { width: 90px; }
	.tz-drop__when [data-tz-countdown] { font-size: 28px; }
	.tz-shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; }
	.tz-shop .woocommerce-result-count, .tz-shop .woocommerce-ordering { float: none; }
	.tz-shop .woocommerce-ordering select { width: 100%; }
	li.product .tz-prod__img--empty .wide { font-size: 13px; }
	li.product .tz-prod__img--empty .mono { font-size: 9px; letter-spacing: .1em; }
	.tz-shop li.product .button { min-height: 44px; padding: 0 14px; font-size: 12px; }
	.tz-shop--single form.cart .single_add_to_cart_button { flex: 1 1 auto; }
	.tz-shop--single table.variations select { max-width: none; }
}
