/* Trion:Z - WooCommerce: buttons, fields, notices, cart. */

/* Buttons (classic Woo markup) */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .tz-offer .button, .tz-stack .button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 28px; border: 1px solid var(--tz-olive); border-radius: 2px;
	background: var(--tz-olive); color: #fff; cursor: pointer; text-decoration: none;
	font: 500 13px/16px var(--wp--preset--font-family--sans); letter-spacing: .14em; text-transform: uppercase;
	transition: background-color .15s ease, border-color .15s ease;
}
.woocommerce .button:hover, .tz-offer .button:hover, .tz-stack .button:hover, .woocommerce .button:focus-visible, .tz-offer .button:focus-visible, .tz-stack .button:focus-visible { background: var(--tz-forest); border-color: var(--tz-forest); color: #fff; }
.woocommerce .button:disabled, .woocommerce .button[disabled], .tz-offer .button:disabled { opacity: .45; cursor: not-allowed; background: var(--tz-olive); }
.woocommerce .tz-button--outline { background: transparent; color: var(--tz-ink); border-color: var(--tz-ink); }
.woocommerce .tz-button--outline:hover, .woocommerce .tz-button--outline:focus-visible { background: var(--tz-ink); color: var(--tz-surface); }
.tz-button--block { width: 100%; }
.tz-button--sm { min-height: 40px; padding: 0 16px; font-size: 12px; }

/* Fields */
.tz-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.tz-field label, .tz-coupon label { font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.tz-field select, .tz-offer select, .tz-stack select {
	-webkit-appearance: none; appearance: none; width: 100%; min-width: 0; height: 44px; padding: 0 36px 0 11px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4.5l4 4 4-4' fill='none' stroke='%231c1c1a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 11px center / 12px;
	font-size: 14px; cursor: pointer;
}

/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	list-style: none; margin: 0 0 var(--wp--preset--spacing--50); padding: 14px 18px; border: 1px solid var(--tz-line); border-left: 3px solid var(--tz-forest);
	background: #fff; font-size: 14px; line-height: 21px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
}
.woocommerce-error { border-left-color: var(--wp--preset--color--danger); }
.woocommerce-message .button, .woocommerce-info .button { min-height: 36px; padding: 0 14px; order: 2; }

/* ---------- Cart ---------- */
.tz-cart h1 { margin-bottom: 4px; }
.tz-cart__count { margin: 0 0 var(--wp--preset--spacing--60); color: var(--tz-muted); font-size: 14px; }
.tz-cart__layout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--wp--preset--spacing--80); align-items: start; }
.tz-cart__main { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--60); min-width: 0; }
.tz-cart__side { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 20px; }

.tz-cart__items { width: 100%; border-collapse: collapse; border-top: 1px solid var(--tz-line); }
.tz-cart__items td { padding: 24px 0; border-bottom: 1px solid var(--tz-line); vertical-align: top; }
.tz-cart__items .product-thumbnail { width: 112px; padding-right: 24px; }
.tz-cart__items .product-thumbnail img { display: block; width: 112px; height: 112px; object-fit: cover; background: var(--tz-stone); }
.tz-cart__items .product-name { display: flex; flex-direction: column; gap: 4px; }
.tz-cart__eyebrow { font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--tz-muted); }
.tz-cart__name, .tz-cart__name a { font-family: var(--wp--preset--font-family--display); font-size: 24px; line-height: 30px; font-weight: 500; color: var(--tz-ink); text-decoration: none; }
.tz-cart__name a:hover { text-decoration: underline; text-underline-offset: 3px; }
.tz-cart__items dl.variation { margin: 0; font-size: 14px; line-height: 20px; color: var(--tz-muted); display: flex; flex-wrap: wrap; column-gap: 6px; }
.tz-cart__items dl.variation dt { font-weight: 400; }
.tz-cart__items dl.variation dd { margin: 0 8px 0 0; }
.tz-cart__items dl.variation dd p { margin: 0; display: inline; }
.tz-cart__unit { font-size: 13px; color: var(--tz-muted); }
.tz-cart__controls { display: flex; align-items: center; gap: 20px; margin-top: 10px; }
.tz-cart__items .product-subtotal { text-align: right; white-space: nowrap; font-weight: 500; font-variant-numeric: tabular-nums; padding-left: 16px; }
.tz-cart__remove { font-size: 13px; color: var(--tz-muted) !important; text-decoration: underline; text-underline-offset: 3px; }
.tz-cart__remove:hover { color: var(--tz-ink) !important; }
.tz-cart__fixed-qty { font-size: 13px; color: var(--tz-muted); }
.tz-cart__free { color: var(--tz-forest); }
/* Build your kit (trionz-core cart/kit-offer.php) */
.tz-cart__kit { margin: 4px 0 0; font-size: 13px; color: var(--tz-forest); }
.tz-cart__kit-nudge { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 0 0 24px; padding: 14px 18px; border: 1px solid var(--tz-line); border-radius: 4px; background: var(--tz-stone); font-size: 14px; }
.tz-cart__actions td { padding: 0; border: 0; }
.tz-cart__update { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); } /* Auto-updates via JS; still reachable for no-JS */
.no-js .tz-cart__update { position: static !important; width: auto; height: auto; clip: auto; }

/* Quantity stepper */
.tz-stepper { display: inline-flex; align-items: center; border: 1px solid var(--tz-line-strong); height: 40px; }
.tz-stepper .tz-stepper__btn { width: 36px; height: 38px; border: 0; background: none; font-size: 18px; color: var(--tz-ink); cursor: pointer; }
.tz-stepper .tz-stepper__btn:hover, .tz-stepper .tz-stepper__btn:focus-visible { background: var(--tz-stone); }
.tz-stepper input.qty { width: 36px; min-height: 0; height: 38px; border: 0; padding: 0; text-align: center; font-size: 14px; -moz-appearance: textfield; background: transparent; }
.tz-stepper input.qty::-webkit-outer-spin-button, .tz-stepper input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Order summary */
.tz-summary { background: var(--tz-stone); padding: 32px; display: flex; flex-direction: column; gap: 20px; }
.tz-summary__title { margin: 0; font: 500 13px/16px var(--wp--preset--font-family--sans); letter-spacing: .16em; text-transform: uppercase; }
.tz-summary__table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 22px; }
.tz-summary__table th { text-align: left; font-weight: 400; padding: 6px 0; }
.tz-summary__table td { text-align: right; padding: 6px 0; font-variant-numeric: tabular-nums; }
.tz-summary__muted th, .tz-summary__muted td { color: var(--tz-muted); }
.tz-summary__table .order-total th, .tz-summary__table .order-total td { padding-top: 16px; border-top: 1px solid var(--tz-line); font-weight: 500; font-size: 16px; }
.tz-summary__table .order-total td strong { font-size: 22px; line-height: 30px; font-weight: 500; }
.tz-summary__table .order-total small { display: block; font-size: 13px; font-weight: 400; color: var(--tz-muted); }
.tz-summary__coupon { border-top: 1px solid var(--tz-line); border-bottom: 1px solid var(--tz-line); }
.tz-summary__coupon summary { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; font-size: 14px; cursor: pointer; list-style: none; }
.tz-summary__coupon summary::-webkit-details-marker { display: none; }
.tz-summary__coupon .tz-plus { font-size: 20px; font-weight: 300; transition: transform .2s ease; }
.tz-summary__coupon[open] .tz-plus { transform: rotate(45deg); }
.tz-coupon { display: flex; flex-direction: column; gap: 6px; padding-bottom: 16px; }
.tz-coupon__row { display: flex; gap: 8px; }
.tz-coupon__row input { flex: 1; min-width: 0; }
.tz-coupon__row .button { min-height: 44px; }
.tz-promises { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 13px; line-height: 18px; color: var(--tz-muted); }
.tz-promises li::before { content: "✓"; color: var(--tz-forest); margin-right: 10px; }

/* EU panel */
.tz-eu-panel { border: 1px solid var(--tz-line); padding: 24px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 21px; background: var(--tz-surface); }
.tz-eu-panel p { margin: 0; }
.tz-eu-panel__title { font-size: 13px !important; line-height: 16px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }

/* £5 Polarity offer */
.tz-offer { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 24px; padding: 24px; border: 1px solid var(--wp--preset--color--japan); background: var(--tz-stone); }
.tz-offer__img { display: block; width: 112px; height: 112px; object-fit: contain; background: #fff; }
.tz-offer__body { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.tz-offer__eyebrow { margin: 0; font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--japan); }
.tz-offer__title { margin: -6px 0 0; font-size: 26px; line-height: 32px; }
.tz-offer__text { margin: 0; font-size: 14px; line-height: 20px; color: var(--tz-muted); }
.tz-offer__text a { color: var(--tz-forest); }
.tz-offer__form { display: flex; flex-direction: column; gap: 16px; }
.tz-offer__selects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tz-offer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.tz-offer__hint { margin: 0; font-size: 13px; color: var(--tz-muted); }

/* Complete your stack */
.tz-stack { margin-top: var(--wp--preset--spacing--80); padding-top: var(--wp--preset--spacing--80); border-top: 1px solid var(--tz-line); --accent: var(--wp--preset--color--bali); }
.tz-stack__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: var(--wp--preset--spacing--70); }
.tz-stack__head h2 { margin: 0; }
.tz-eyebrow--accent { color: var(--accent, var(--tz-muted)); }
.tz-stack__intro { margin: 8px 0 0; color: var(--tz-muted); font-size: 15px; }
/* The class on a link itself (cart cross-sells); the paragraph form is styled in theme.css. */
a.tz-arrow-link { font-size: 13px; line-height: 16px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--tz-ink); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.tz-stack__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.tz-stack__card { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.tz-stack__img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; background: var(--tz-stone); margin-bottom: 6px; }
.tz-stack__brand { margin: 0; font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }
.tz-stack__name { margin: 0; font-size: 22px; line-height: 28px; }
.tz-stack__price { margin: 0 0 6px; font-size: 14px; font-variant-numeric: tabular-nums; }
.tz-stack__form { display: flex; flex-direction: column; gap: 12px; margin-top: auto; }

.cart-empty.woocommerce-info { font-size: 16px; }
.return-to-shop { margin-top: 16px; }

@media (max-width: 1100px) {
	.tz-cart__layout { grid-template-columns: minmax(0, 1fr); }
	.tz-cart__side { position: static; }
	.tz-stack__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.tz-cart__items .product-thumbnail { width: 80px; padding-right: 16px; }
	.tz-cart__items .product-thumbnail img { width: 80px; height: 80px; }
	.tz-cart__name, .tz-cart__name a { font-size: 20px; line-height: 26px; }
	.tz-offer { grid-template-columns: 1fr; }
	.tz-offer__selects { grid-template-columns: 1fr; }
	.tz-stack__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.tz-summary { padding: 24px; }
}
.tz-cart__options { font-size: 14px; line-height: 20px; color: var(--tz-muted); }
.woocommerce table.shop_table { border-radius: 0; }
.woocommerce .button, .tz-offer .button, .tz-stack .button { box-sizing: border-box; }
.tz-cart__items tr:last-child td, .tz-cart__items .tz-cart__actions td { border-bottom: 0; }

/* Notices (WooCommerce prints block-style banners in block themes) */
body .wc-block-components-notice-banner {
	display: flex; gap: 12px; align-items: center; margin: 0 0 var(--wp--preset--spacing--50);
	padding: 14px 18px; border: 1px solid var(--tz-line); border-left: 3px solid var(--tz-forest); border-radius: 0;
	background: #fff; color: var(--tz-ink); font-size: 14px; line-height: 21px;
}
body .wc-block-components-notice-banner > svg { flex: none; width: 20px; height: 20px; padding: 2px; box-sizing: border-box; border-radius: 50%; fill: #fff; background-color: var(--tz-forest); margin: 0; align-self: center; }
body .wc-block-components-notice-banner.is-error { border-left-color: var(--wp--preset--color--danger); }
body .wc-block-components-notice-banner.is-error > svg { background-color: var(--wp--preset--color--danger); }
body .wc-block-components-notice-banner.is-info > svg { background-color: var(--tz-ink); }
body .wc-block-components-notice-banner.is-info { border-left-color: var(--tz-ink); }
body .wc-block-components-notice-banner__content { flex: 1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; min-height: 24px; }
body .wc-block-components-notice-banner__content .wc-forward { order: 2; float: none; margin: 0; line-height: 21px; opacity: 1; color: var(--tz-forest); background: none; border: 0; padding: 0; min-height: 0; text-decoration: underline; text-underline-offset: 3px; letter-spacing: 0; text-transform: none; font-size: 14px; }

/* ---------- Checkout ---------- */
.tz-checkout { --tz-side: 440px; --tz-col-gap: var(--wp--preset--spacing--80); }
.tz-checkout__layout { display: grid; grid-template-columns: minmax(0, 1fr) var(--tz-side); gap: var(--tz-col-gap); align-items: start; }
.tz-checkout__title { margin: 0 0 var(--wp--preset--spacing--50); font-size: var(--wp--preset--font-size--display-1); }
.tz-checkout__side { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 20px; }
.tz-checkout .woocommerce-form-login-toggle { display: none; } /* "Sign in" link lives in step 1 */
/* Notices and the coupon/login forms above the checkout line up with the left (steps) column. */
.tz-checkout .woocommerce-form-coupon-toggle, .tz-checkout .woocommerce-notices-wrapper, .tz-checkout .woocommerce-NoticeGroup,
.tz-checkout form.woocommerce-form-login, .tz-checkout form.checkout_coupon { max-width: calc(100% - var(--tz-side) - var(--tz-col-gap)); box-sizing: border-box; }
.tz-checkout .woocommerce-form-coupon-toggle .wc-block-components-notice-banner, .tz-checkout .woocommerce-form-coupon-toggle .woocommerce-info { max-width: none; }
form.woocommerce-form-login, form.checkout_coupon { margin: 0 0 var(--wp--preset--spacing--50); padding: 20px; border: 1px solid var(--tz-line); background: #fff; }
form.checkout_coupon .form-row { display: inline-block; margin: 0 8px 0 0; vertical-align: bottom; }

.tz-step { padding: 32px 0; border-top: 1px solid var(--tz-line); display: flex; flex-direction: column; }
.tz-step__title { margin: 0 0 24px; display: flex; align-items: baseline; gap: 14px; font-size: 28px; line-height: 34px; }
.tz-step__num { font: 500 12px/16px var(--wp--preset--font-family--sans); letter-spacing: .16em; color: var(--tz-muted); }
.tz-step__note { font-size: 14px; color: var(--tz-muted); }
.tz-step h3 { font-family: var(--wp--preset--font-family--sans); font-size: 15px; line-height: 22px; font-weight: 500; margin: 8px 0 0; }

/* Form rows */
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px;
}
.woocommerce form .form-row { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; grid-column: 1 / -1; min-width: 0; }
/* Spacing by margins, not gap: password managers insert empty elements next to focused fields, and a gap would give each of those space, shifting the fields. */
.woocommerce form .form-row > label { margin: 0 0 6px; }
.woocommerce form .form-row > span:not(.password-input):not(.woocommerce-input-wrapper):not(.screen-reader-text) { margin-top: 6px; }
.woocommerce form .form-row-first { grid-column: 1; }
.woocommerce form .form-row-last { grid-column: 2; }
.woocommerce form .form-row label { font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row label.woocommerce-form__label-for-checkbox { text-transform: none; letter-spacing: 0; font-size: 14px; line-height: 21px; font-weight: 400; display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.woocommerce form .form-row .required { color: var(--wp--preset--color--danger); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--tz-muted); }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select { width: 100%; }
.woocommerce form .form-row textarea { min-height: 96px; }
.woocommerce form .form-row .description { font-size: 13px; line-height: 18px; color: var(--tz-muted); margin: 0; }
.woocommerce form .form-row.woocommerce-invalid .input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--wp--preset--color--danger); }
.woocommerce form .form-row.woocommerce-validated .input-text { border-color: var(--tz-line-strong); }
.woocommerce-input-wrapper { display: block; }
.woocommerce .checkout-inline-error-message, .woocommerce-input-wrapper .error { color: var(--wp--preset--color--danger); font-size: 13px; margin: 4px 0 0; }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--tz-forest); flex: none; }

/* Country select (select2) */
.select2-container .select2-selection--single { height: 44px; border: 1px solid var(--tz-line-strong); border-radius: 2px; background: #fff; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 12px; color: var(--tz-ink); }
.select2-container .select2-selection--single .select2-selection__arrow { height: 42px; right: 8px; }
.select2-dropdown { border-color: var(--tz-line-strong); border-radius: 0; }
.select2-results__option--highlighted[aria-selected], .select2-results__option--highlighted[data-selected] { background: var(--tz-forest) !important; }

/* Ship to different address / notes */
#ship-to-different-address { margin: 8px 0 0; font-family: var(--wp--preset--font-family--sans); }
#ship-to-different-address label { display: flex; gap: 12px; align-items: center; font-size: 14px; font-weight: 400; cursor: pointer; }
.shipping_address { margin-top: 16px; }
.woocommerce-additional-fields h3 { display: none; }
.woocommerce-additional-fields { margin-top: 16px; }

/* Delivery options */
.tz-ship__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tz-ship__option { position: relative; display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--tz-line); background: #fff; }
.tz-ship__option:has(input:checked), .tz-ship__option.is-on { border-color: var(--tz-ink); }
.tz-ship__option label { flex: 1; display: flex; justify-content: space-between; gap: 16px; font-size: 15px; line-height: 22px; cursor: pointer; }
.tz-ship__option label::after { content: ""; position: absolute; inset: 0; }
.tz-ship__cost { font-weight: 500; font-variant-numeric: tabular-nums; }
.tz-ship__empty { margin: 0; font-size: 14px; color: var(--tz-muted); }

/* Payment */
#payment { background: none; border-radius: 0; }
#payment ul.payment_methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; border: 0; }
#payment ul.payment_methods > li { padding: 16px 18px; border: 1px solid var(--tz-line); background: #fff; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
#payment ul.payment_methods > li:has(> input:checked) { border-color: var(--tz-ink); }
#payment ul.payment_methods > li > label { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 15px; cursor: pointer; }
#payment ul.payment_methods > li > label img { max-height: 24px; width: auto; margin: 0 0 0 4px; }
#payment .payment_box { flex-basis: 100%; margin: 8px 0 0; padding: 16px 0 0; background: none; border: 0; border-top: 1px solid var(--tz-line); font-size: 14px; }
#payment .payment_box fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
#payment .wc-stripe-upe-element { margin-bottom: 0; }
#payment .payment_box::before { display: none; }
#payment .payment_box p:last-child { margin-bottom: 0; }
#payment .place-order { margin: 24px 0 0; padding: 24px 0 0; border-top: 1px solid var(--tz-line); display: flex; flex-direction: column; gap: 16px; }
#payment #place_order { width: 100%; min-height: 56px; font-size: 14px; }
.woocommerce-terms-and-conditions-wrapper { display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
.woocommerce-privacy-policy-text p { margin: 0; font-size: 13px; line-height: 19px; color: var(--tz-muted); }
.woocommerce-privacy-policy-text a { color: var(--tz-forest); }
.woocommerce-terms-and-conditions { max-height: 240px; overflow: auto; padding: 16px; border: 1px solid var(--tz-line); background: #fff; font-size: 13px; }

/* Order summary (checkout) */
.tz-summary__head { display: flex; justify-content: space-between; align-items: baseline; }
.tz-summary__head a { font-size: 13px; color: var(--tz-forest); }
.tz-review { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 22px; }
.tz-review tbody td { padding: 8px 0; vertical-align: middle; }
.tz-review .product-total { text-align: right; white-space: nowrap; font-size: 14px; font-variant-numeric: tabular-nums; padding-left: 12px; }
.tz-review__item { display: flex; gap: 16px; align-items: center; }
.tz-review__thumb { position: relative; flex: none; }
.tz-review__thumb img { display: block; width: 64px; height: 64px; object-fit: cover; background: #fff; }
.tz-review__qty { position: absolute; top: -8px; right: -8px; min-width: 22px; height: 22px; border-radius: 11px; background: var(--tz-ink); color: var(--tz-surface); font-size: 12px; line-height: 22px; text-align: center; padding: 0 4px; box-sizing: border-box; }
.tz-review__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tz-review__name { font-size: 14px; line-height: 20px; font-weight: 500; }
.tz-review .tz-cart__options { font-size: 13px; line-height: 18px; }
.tz-review tfoot th { text-align: left; font-weight: 400; padding: 6px 0; }
.tz-review tfoot td { text-align: right; padding: 6px 0; font-variant-numeric: tabular-nums; }
.tz-review tfoot tr.cart-subtotal th, .tz-review tfoot tr.cart-subtotal td { padding-top: 20px; border-top: 1px solid var(--tz-line); }
.tz-review tfoot .order-total th, .tz-review tfoot .order-total td { padding-top: 16px; border-top: 1px solid var(--tz-line); font-weight: 500; font-size: 16px; }
.tz-review tfoot .order-total td strong { font-size: 24px; line-height: 30px; font-weight: 500; }
.tz-review tfoot .order-total small { display: block; font-size: 13px; font-weight: 400; color: var(--tz-muted); }
.tz-review__eu td { padding-top: 16px !important; text-align: left !important; }
.tz-review .woocommerce-remove-coupon { font-size: 13px; color: var(--tz-muted); margin-left: 6px; }

/* Blocked/processing overlay */
.blockUI.blockOverlay { background: rgba(247,245,241,.6) !important; }

@media (max-width: 1100px) {
	.tz-checkout__layout { grid-template-columns: minmax(0, 1fr); }
	.tz-checkout__side { position: static; order: -1; }
	.tz-checkout .woocommerce-form-coupon-toggle, .tz-checkout .woocommerce-notices-wrapper, .tz-checkout .woocommerce-NoticeGroup, .tz-checkout form.woocommerce-form-login, .tz-checkout form.checkout_coupon { max-width: none; }
}
@media (max-width: 640px) {
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { grid-column: 1 / -1; }
	.tz-step__title { font-size: 24px; line-height: 30px; }
}

body .wc-block-components-notice-banner:focus { outline: none; }
#payment .form-row.woocommerce-SavedPaymentMethods-saveNew { flex-direction: row; align-items: center; gap: 10px; margin-top: 12px; }
#payment .form-row.woocommerce-SavedPaymentMethods-saveNew label { text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 400; margin: 0; }

/* Checkout summary: collapsible on small screens only */
.tz-summary--checkout > summary { list-style: none; cursor: default; display: flex; justify-content: space-between; align-items: baseline; }
.tz-summary--checkout > summary::-webkit-details-marker { display: none; }
.tz-summary__toggle { display: none; font-size: 14px; }
.tz-summary__edit { margin: -12px 0 0; font-size: 13px; text-align: right; }
.tz-summary__edit a { color: var(--tz-forest); }
@media (min-width: 1101px) {
	.tz-summary--checkout > summary { pointer-events: none; }
}
@media (max-width: 1100px) {
	.tz-summary--checkout > summary { cursor: pointer; }
	.tz-summary__toggle { display: inline; }
	.tz-summary--checkout:not([open]) .tz-summary__hide, .tz-summary--checkout[open] .tz-summary__show { display: none; }
	.tz-summary--checkout:not([open]) { gap: 0; }
}
@media (max-width: 640px) {
	.tz-header__secure { display: none; }
	.tz-cart__items tr.cart_item { display: grid; grid-template-columns: 80px minmax(0, 1fr); column-gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--tz-line); }
	.tz-cart__items tr.cart_item td { padding: 0; border: 0; }
	.tz-cart__items tr.cart_item .product-thumbnail { grid-row: 1 / span 2; width: auto; padding: 0; }
	.tz-cart__items tr.cart_item .product-subtotal { grid-column: 2; text-align: left; padding: 8px 0 0; }
	.tz-cart__controls { flex-wrap: wrap; gap: 12px 20px; }
}

/* Checkout steps: one consistent rhythm. 24px from each heading to its content, 16px between blocks.
   Margins (not flex gap) so empty hook output doesn't add stray space. */
.tz-step > :not(.tz-step__title) { margin-top: 0; margin-bottom: 0; }
.tz-step > :not(.tz-step__title) + :not(:empty) { margin-top: 16px; }
.tz-step > .tz-step__note { margin-top: 8px; }
.tz-step :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-account-fields, #payment, .tz-checkout-shipping, .tz-ship, .shipping_address) > :first-child { margin-top: 0; }
.tz-step :is(.woocommerce-billing-fields, .tz-checkout-shipping, .tz-ship, #payment) > :last-child { margin-bottom: 0; }
.tz-step .woocommerce-billing-fields__field-wrapper, .tz-step #payment ul.payment_methods { margin: 0; }
.tz-step #ship-to-different-address { margin: 0; }
/* WooCommerce's hidden order-attribution element sits before the address fields; don't let it add space. */
.tz-step > .tz-step__title + wc-order-attribution-inputs + :not(.tz-step__title) { margin-top: 0; }
/* EU duties plugin (EAS) puts an empty row above Payment (its button only shows for EU orders).
   Take its padding away so it adds no space; when its content shows, that content carries the spacing. */
.tz-step > .form-row.eascompliance { padding: 0 !important; margin-top: 0; gap: 0; }
.tz-step > .form-row.eascompliance + #payment { margin-top: 0; }
.tz-step > .form-row.eascompliance > :not(input) { margin: 0 0 16px; }
/* Override WooCommerce's coloured notice boxes (blue/green/red fills) with the house style. */
body .wc-block-components-notice-banner.is-info,
body .wc-block-components-notice-banner.is-success,
body .wc-block-components-notice-banner.is-error,
body .wc-block-components-notice-banner.is-warning { background-color: #fff; border-color: var(--tz-line); }
body .wc-block-components-notice-banner.is-info { border-left-color: var(--tz-ink); }
body .wc-block-components-notice-banner.is-success { border-left-color: var(--tz-forest); }
body .wc-block-components-notice-banner.is-error { border-left-color: var(--wp--preset--color--danger); }
body .wc-block-components-notice-banner.is-warning { border-left-color: var(--wp--preset--color--bronze); }
body .wc-block-components-notice-banner.is-success > svg { background-color: var(--tz-forest); }
body .wc-block-components-notice-banner.is-warning > svg { background-color: var(--wp--preset--color--bronze); }

/* ---------- Product page ---------- */
.tz-breadcrumbs, .woocommerce-breadcrumb { font-size: 12px; line-height: 16px; letter-spacing: .14em; text-transform: uppercase; color: var(--tz-muted); margin: 0 0 var(--tz-crumbs-gap); }
.tz-breadcrumbs a, .woocommerce-breadcrumb a { color: var(--tz-muted); text-decoration: none; }
.tz-breadcrumbs a:hover, .woocommerce-breadcrumb a:hover { color: var(--tz-ink); }

.tz-product { gap: var(--wp--preset--spacing--80) !important; align-items: flex-start; margin-bottom: var(--wp--preset--spacing--90); }
.tz-product__media { flex: 1 1 56% !important; min-width: 0; }
.tz-product__summary { flex: 1 1 44% !important; min-width: 0; max-width: 520px; display: flex; flex-direction: column; gap: 0; }
.tz-product__summary > * { margin-top: 0 !important; margin-bottom: 0 !important; }

/* Gallery (WooCommerce's classic gallery: main image + thumbnails) */
.woocommerce-product-gallery { position: relative; margin: 0; opacity: 1 !important; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image img, .woocommerce-product-gallery .flex-viewport img { display: block; width: 100%; height: auto; background: var(--tz-stone); }
/* Main image: every photo fills the same square frame, so the gallery never changes height. The zoom (hover) and the full-screen view show each photo at its original proportions. */
.woocommerce-product-gallery__image { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--tz-stone); }
.woocommerce-product-gallery__image > a { display: block; width: 100%; height: 100%; }
.woocommerce-product-gallery__image > a > img { width: 100%; height: 100% !important; object-fit: cover; }
.woocommerce-product-gallery__image .zoomImg { background: #fff; }
.woocommerce-product-gallery .flex-viewport { margin-bottom: 12px; }
.woocommerce-product-gallery .flex-control-thumbs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.woocommerce-product-gallery .flex-control-thumbs li { margin: 0; }
.woocommerce-product-gallery .flex-control-thumbs img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; cursor: pointer; opacity: .7; border: 1px solid transparent; transition: opacity .15s ease, border-color .15s ease; }
.woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--tz-ink); }
.woocommerce-product-gallery__trigger {
	position: absolute; top: 16px; right: 16px; z-index: 5; width: 40px; height: 40px; border-radius: 50%;
	background: rgba(247,245,241,.92); display: flex; align-items: center; justify-content: center; font-size: 0; text-decoration: none;
}
.woocommerce-product-gallery__trigger::before { content: ""; width: 14px; height: 14px; border: 1.5px solid var(--tz-ink); border-radius: 50%; margin: -3px 0 0 -3px; }
.woocommerce-product-gallery__trigger::after { content: ""; position: absolute; width: 6px; height: 1.5px; background: var(--tz-ink); transform: rotate(45deg); margin: 13px 0 0 13px; }
.woocommerce-product-gallery__trigger img { display: none !important; }

/* Summary */
.tz-product__eyebrow { font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.tz-product__eyebrow a { color: var(--accent, var(--tz-forest)); text-decoration: none; }
.tz-product__eyebrow a:hover { text-decoration: underline; text-underline-offset: 3px; }
.tz-product__title { margin-top: 12px !important; font-size: var(--wp--preset--font-size--display-1); line-height: 1.12; }
.tz-product__price { margin-top: 12px !important; font-size: 22px; line-height: 30px; font-weight: 500; font-variant-numeric: tabular-nums; }
.tz-product__price del { color: var(--tz-muted); font-weight: 400; font-size: 18px; margin-right: 8px; }
.tz-product__price ins { text-decoration: none; }
.tz-product__excerpt { margin-top: 12px !important; color: var(--tz-muted); font-size: 16px; line-height: 26px; }
.tz-product__excerpt p { margin: 0; }
.tz-product__rule { margin: 28px 0 !important; border: 0; border-top: 1px solid var(--tz-line); width: 100%; }

/* Variations: label above options */
.tz-product__cart table.variations { width: 100%; border-collapse: collapse; margin: 0 0 8px; }
.tz-product__cart table.variations tr { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.tz-product__cart table.variations th, .tz-product__cart table.variations td { padding: 0; text-align: left; }
.tz-product__cart table.variations th label { font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.tz-product__cart table.variations select { width: 100%; max-width: 320px; }
.tz-product__cart .reset_variations { display: inline-block; margin-top: 12px; font-size: 13px; color: var(--tz-muted); text-decoration: underline; text-underline-offset: 3px; }

/* Swatch buttons (Variation Swatches plugin) */
.rtwpvs-terms-wrapper { display: flex; flex-wrap: wrap; gap: 8px; }
.rtwpvs .rtwpvs-terms-wrapper .rtwpvs-term, .rtwpvs-terms-wrapper .rtwpvs-term {
	margin: 0 !important; padding: 0 16px !important; min-height: 44px; height: auto !important; width: auto !important; min-width: 44px;
	display: inline-flex !important; align-items: center; justify-content: center; box-sizing: border-box;
	border: 1px solid var(--tz-line-strong) !important; border-radius: 2px !important; box-shadow: none !important; background: #fff !important;
	color: var(--tz-ink); font-size: 14px; line-height: 20px; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease;
}
.rtwpvs-terms-wrapper .rtwpvs-term .rtwpvs-term-span { font-size: 14px !important; line-height: 20px; white-space: nowrap; padding: 0 !important; }
.rtwpvs-terms-wrapper .rtwpvs-term:hover { border-color: var(--tz-ink) !important; }
.rtwpvs-terms-wrapper .rtwpvs-term.selected { border-color: var(--tz-ink) !important; box-shadow: 0 0 0 1px var(--tz-ink) !important; }
.rtwpvs-terms-wrapper .rtwpvs-term.disabled { opacity: .4; text-decoration: line-through; cursor: not-allowed; }
/* Options that don't exist for the current choice: the swatch plugin shrinks them to 0px but they still take a
   slot in the row, so the 10px gap stays and the row looks indented. Take them out of the row completely. */
.rtwpvs-attribute-behavior-hide .rtwpvs-terms-wrapper .rtwpvs-term.disabled:not(.rtwpvs-radio-term) { display: none !important; }
.rtwpvs-terms-wrapper .rtwpvs-term:focus-visible { outline: 2px solid var(--tz-forest); outline-offset: 2px; }
.rtwpvs-terms-wrapper .rtwpvs-term::before, .rtwpvs-terms-wrapper .rtwpvs-term::after { display: none !important; } /* plugin tooltips/ticks */

/* Price/stock for the chosen option, then quantity + Add to cart */
.tz-product__cart .single_variation_wrap { display: flex; flex-direction: column; gap: 16px; }
.tz-product__cart .woocommerce-variation:empty, .tz-product__cart .woocommerce-variation-price:empty { display: none; }
.tz-product__cart .woocommerce-variation-availability p, .tz-product__cart p.stock { margin: 0; font-size: 14px; color: var(--tz-forest); }
.tz-product__cart p.stock.out-of-stock { color: var(--wp--preset--color--danger); }
.tz-product__cart p.stock.available-on-backorder { color: var(--wp--preset--color--bronze); }
.tz-product__cart .woocommerce-variation-add-to-cart, .tz-product__cart form.cart:not(.variations_form) { display: flex; gap: 12px; align-items: stretch; }
.tz-product__cart .quantity input.qty { width: 72px; height: 48px; min-height: 48px; text-align: center; padding: 0 8px; }
.tz-product__cart .single_add_to_cart_button { flex: 1; min-height: 48px; }
.tz-product__cart .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }

/* Size guide + reassurance */
.tz-product__extras { margin-top: 16px !important; display: flex; flex-direction: column; gap: 20px; }
.tz-product__size-guide { align-self: flex-start; font-size: 14px; color: var(--tz-forest); text-underline-offset: 3px; }
.tz-promises--product { margin: 0; padding: 20px 0; border-top: 1px solid var(--tz-line); border-bottom: 1px solid var(--tz-line); font-size: 14px; color: var(--tz-ink); gap: 12px; }

/* Accordions */
/* Product accordions. The line above the first one is the trust list's bottom border, so no extra margin:
   every row then has the same 18px above and below its label. The label is caps-only, so it is centred on its
   cap height (Inter caps sit 0.2px high in a 16px line box, close enough to centre). */
.tz-accs { margin-top: 0 !important; }
.tz-acc { border-bottom: 1px solid var(--tz-line); }
.tz-acc__summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; cursor: pointer; list-style: none; font-size: 13px; line-height: 16px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.tz-acc__summary::-webkit-details-marker { display: none; }
.tz-acc__summary:hover .tz-acc__icon { color: var(--tz-forest); }
/* Plus that turns into a minus: two crisp SVG strokes drawn as masks, so they stay sharp at any pixel density. */
.tz-acc__icon { position: relative; flex: none; width: 16px; height: 16px; color: var(--tz-ink); transition: color .2s ease; }
.tz-acc__icon::before, .tz-acc__icon::after { content: ""; position: absolute; inset: 0; background: currentColor; -webkit-mask: var(--tz-acc-bar) center / 16px 16px no-repeat; mask: var(--tz-acc-bar) center / 16px 16px no-repeat; transition: transform .25s ease; }
.tz-acc__icon { --tz-acc-bar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h12' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); }
.tz-acc__icon::after { transform: rotate(90deg); }
.tz-acc[open] .tz-acc__icon::after { transform: rotate(180deg); }
.tz-acc.is-closing .tz-acc__icon::after { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) { .tz-acc__icon::before, .tz-acc__icon::after { transition: none; } }
.tz-acc__body { padding: 0 0 20px; font-size: 15px; line-height: 24px; color: var(--tz-muted); }
.tz-acc__body > :first-child { margin-top: 0; }
.tz-acc__body > :last-child { margin-bottom: 0; }
.tz-acc__body a { color: var(--tz-forest); }
.tz-acc__body table.woocommerce-product-attributes { width: 100%; border-collapse: collapse; font-size: 14px; }
.tz-acc__body table.woocommerce-product-attributes th, .tz-acc__body table.woocommerce-product-attributes td { text-align: left; padding: 8px 0; border-bottom: 1px solid var(--tz-line); vertical-align: top; }
.tz-acc__body table.woocommerce-product-attributes th { width: 35%; font-weight: 500; color: var(--tz-ink); }
.tz-acc__body table.woocommerce-product-attributes td p { margin: 0; }

/* Related products */
.tz-related { border-top: 1px solid var(--tz-line); padding-top: var(--wp--preset--spacing--80); }
.tz-related__head { margin-bottom: var(--wp--preset--spacing--70); }
.tz-related__head h2 { margin: 0; }
.tz-related__head .tz-eyebrow { color: var(--accent, var(--tz-forest)); }
.tz-product-grid { gap: 24px !important; }
.tz-product-grid .wc-block-components-product-image { margin: 0 0 12px; background: var(--tz-stone); }
.tz-product-grid .wc-block-components-product-image img { aspect-ratio: 1; object-fit: cover; }
.tz-card__title { margin: 0 0 4px !important; font-size: 22px !important; line-height: 28px !important; }
.tz-card__title a { color: var(--tz-ink); text-decoration: none; }
.tz-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.tz-card__price { font-size: 15px; font-variant-numeric: tabular-nums; text-align: left !important; }

@media (max-width: 900px) {
	.tz-product { flex-wrap: wrap !important; }
	.tz-product__media, .tz-product__summary { flex-basis: 100% !important; max-width: none; }
	.tz-product__title { font-size: 36px; }
	.woocommerce-product-gallery .flex-control-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
}
@media (max-width: 640px) {
	.tz-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
	.tz-card__title { font-size: 18px !important; line-height: 24px !important; }
}
.tz-product__cart .woocommerce-variation-price .price { font-size: 18px; font-weight: 500; }
.tz-product__media .wp-block-woocommerce-product-image-gallery { max-width: none; width: 100%; }
.tz-product__rule { height: 0 !important; background: none !important; border: 0 !important; border-top: 1px solid var(--tz-line) !important; opacity: 1 !important; }
.rtwpvs-terms-wrapper .rtwpvs-term, .rtwpvs-terms-wrapper .rtwpvs-term .rtwpvs-term-span,
.rtwpvs-terms-wrapper .rtwpvs-term.selected, .rtwpvs-terms-wrapper .rtwpvs-term.selected .rtwpvs-term-span { color: var(--tz-ink) !important; background: #fff !important; }
/* Keep the photos in view while reading a long description */
@media (min-width: 901px) {
	.tz-product__media { position: sticky; top: 24px; }
	.admin-bar .tz-product__media { top: 56px; }
}
@media (max-width: 900px) { .tz-product { gap: var(--wp--preset--spacing--60) !important; } }
/* Headings inside product descriptions */
.tz-acc__body :is(h2, h3, h4, h5, h6) { color: var(--tz-ink); margin: 28px 0 8px; }
.tz-acc__body h2 { font-size: 28px; line-height: 34px; }
.tz-acc__body h3 { font-size: 24px; line-height: 30px; }
.tz-acc__body h4 { font-size: 21px; line-height: 27px; }
.tz-acc__body :is(h5, h6) { font-size: 19px; line-height: 25px; }
.tz-acc__body :is(h2, h3, h4, h5, h6) + * { margin-top: 0; }
.tz-acc__body :is(b, strong) { color: var(--tz-ink); font-weight: 600; }

/* Size guide pop-up */
.tz-modal { width: min(720px, calc(100vw - 32px)); max-height: min(86vh, 900px); padding: 0; border: 0; border-radius: 2px; background: var(--tz-surface); color: var(--tz-ink); box-shadow: 0 24px 64px rgba(28,28,26,.25); overflow: hidden; }
.tz-modal[open] { display: flex; flex-direction: column; animation: tz-fade-up .18s ease-out; }
@keyframes tz-fade-up { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .tz-modal[open] { animation: none; } }
.tz-modal::backdrop { background: rgba(28,28,26,.55); }
.tz-modal__head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--tz-line); }
.tz-modal__title { margin: 0; font-size: 28px; line-height: 34px; }
.tz-modal__close { background: none; border: 0; padding: 8px; margin: -8px; cursor: pointer; color: var(--tz-ink); display: inline-flex; }
.tz-modal__close svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; }
.tz-modal__body { padding: 8px 24px 32px; overflow-y: auto; outline: none; }
.tz-modal__loading { color: var(--tz-muted); }

/* Size guide content (page and pop-up) */
.tz-size-guide h2, .tz-modal__body h2 { font-size: 28px; line-height: 34px; margin: 32px 0 8px; scroll-margin-top: 16px; }
.tz-size-guide h3, .tz-modal__body h3 { font-size: 21px; line-height: 27px; margin: 24px 0 8px; }
.tz-size-guide p, .tz-modal__body p { color: var(--tz-muted); font-size: 15px; line-height: 24px; margin: 0 0 12px; }
.tz-modal__body h2.is-current { color: var(--wp--preset--color--forest); }
.tz-size-table { margin: 12px 0 16px; overflow-x: auto; }
.tz-size-table table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 20px; font-variant-numeric: tabular-nums; }
.tz-size-table th, .tz-size-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--tz-line); white-space: nowrap; }
.tz-size-table thead th { font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; background: var(--tz-stone); border-bottom: 0; }
.tz-size-table tbody td:first-child { font-weight: 500; color: var(--tz-ink); }
.tz-size-table table.has-fixed-layout { table-layout: auto; }
.wp-block-table.tz-size-table thead { border-bottom: 0; }
.wp-block-table.tz-size-table th, .wp-block-table.tz-size-table td { border: 0; border-bottom: 1px solid var(--tz-line); }
.wp-block-table.tz-size-table thead th { border-bottom: 0; }

/* ---------- Shop and category pages ---------- */
.tz-shop__head { margin-bottom: var(--wp--preset--spacing--60); }
.tz-shop__head > * { max-width: 760px; }
.tz-shop__title { margin: 0; font-size: var(--wp--preset--font-size--display-1); line-height: 1.12; }
.tz-shop__intro { margin-top: 12px; color: var(--tz-muted); font-size: 16px; line-height: 26px; }
.tz-shop__intro p { margin: 0 0 8px; }

/* Results count + sort */
.tz-shop__bar { gap: 16px; padding: 16px 0; margin-bottom: var(--wp--preset--spacing--60); border-top: 1px solid var(--tz-line); border-bottom: 1px solid var(--tz-line); align-items: center; }
.tz-shop__bar .woocommerce-result-count { margin: 0; font-size: 14px; color: var(--tz-muted); }
.tz-shop__bar .woocommerce-ordering { margin: 0; }
.tz-shop__bar .woocommerce-ordering select {
	-webkit-appearance: none; appearance: none; height: 40px; min-height: 40px; padding: 0 36px 0 12px; font-size: 14px; cursor: pointer;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4.5l4 4 4-4' fill='none' stroke='%231c1c1a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 11px center / 12px;
}

/* Product cards (shop, categories, related) */
.tz-product-grid { gap: 40px 24px !important; }
.tz-product-grid > li { position: relative; display: flex; flex-direction: column; margin: 0 !important; }
.tz-card__media { position: relative; margin: 0 0 14px !important; background: var(--tz-stone); overflow: hidden; }
.tz-card__media .wc-block-components-product-image { margin: 0 !important; }
.tz-card__media img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .4s ease; }
.tz-product-grid > li:hover .tz-card__media img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .tz-product-grid > li:hover .tz-card__media img { transform: none; } }
.tz-card__eyebrow { margin: 0 0 4px !important; font-size: 11px !important; line-height: 16px; letter-spacing: .16em; }
.tz-card__eyebrow a { color: var(--tz-muted); }
.tz-product-grid .tz-card__title { margin: 0 0 4px !important; text-align: left !important; }
.tz-product-grid .tz-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* whole card clickable */
.tz-product-grid .tz-card__eyebrow a { position: relative; z-index: 2; }
.tz-card__price { margin: 0 !important; font-size: 15px !important; font-variant-numeric: tabular-nums; text-align: left !important; }
.tz-card__price del { color: var(--tz-muted); margin-right: 6px; }
.tz-card__price ins { text-decoration: none; }

/* Badges */
.tz-badges { position: absolute; top: 12px; left: 12px; z-index: 2; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.tz-badge { padding: 4px 8px; border-radius: 2px; background: var(--tz-surface); color: var(--tz-ink); font-size: 11px; line-height: 14px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.tz-badge--sale { background: var(--wp--preset--color--japan); color: #fff; }
.tz-badge--new { background: var(--tz-ink); color: var(--tz-surface); }
.tz-badge--stock { background: var(--tz-forest); color: #fff; }
.tz-badge--out { background: var(--tz-surface); color: var(--tz-muted); }
.tz-product__badges { position: static; margin-top: 12px !important; }

/* Pagination */
.tz-pagination { margin-top: var(--wp--preset--spacing--80); gap: 8px; font-size: 14px; }
.tz-pagination .page-numbers, .tz-pagination .wp-block-query-pagination-previous, .tz-pagination .wp-block-query-pagination-next {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; box-sizing: border-box;
	border: 1px solid var(--tz-line); background: #fff; color: var(--tz-ink); text-decoration: none;
}
.tz-pagination a:hover { border-color: var(--tz-ink); }
.tz-pagination .page-numbers.current { background: var(--tz-ink); border-color: var(--tz-ink); color: var(--tz-surface); }
.tz-pagination .page-numbers.dots { border: 0; background: none; min-width: 0; padding: 0 4px; }
.tz-shop__empty { padding: 48px 0; color: var(--tz-muted); }

@media (max-width: 640px) {
	.tz-shop__title { font-size: 36px; }
	.tz-badges { top: 8px; left: 8px; }
}
.tz-shop__intro { margin: 12px 0 0 !important; }
.tz-term-about { margin-top: var(--wp--preset--spacing--90) !important; padding-top: var(--wp--preset--spacing--80); border-top: 1px solid var(--tz-line); max-width: 760px; color: var(--tz-muted); font-size: 15px; line-height: 24px; }
.tz-term-about h2 { font-size: 32px; line-height: 38px; color: var(--tz-ink); margin: 0 0 16px; }
.tz-term-about h3 { font-size: 24px; line-height: 30px; color: var(--tz-ink); margin: 28px 0 8px; }
.tz-term-about strong, .tz-term-about b { color: var(--tz-ink); }

/* ---------- Shop layout: filter column + results ---------- */
.tz-shop__layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 0 56px; align-items: start; }
.tz-shop__results { min-width: 0; margin: 0 !important; }
.tz-shop__aside { margin: 0 !important; }
.tz-shop .tz-product-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.tz-shop__bar { min-height: 53px; padding: 0 0 12px !important; border-top: 0 !important; margin-bottom: var(--wp--preset--spacing--60) !important; }


/* ---------- Product filters (WooCommerce Product Filters blocks) ---------- */
.tz-filters { gap: 0 !important; font-size: 15px; color: var(--tz-ink); }
.tz-filters .wc-block-product-filters__overlay-content { display: flex; flex-direction: column; gap: 0; }
.tz-filter-group { margin: 0 !important; padding: 0 0 20px; }
.tz-filter-group + .tz-filter-group { padding-top: 20px; border-top: 1px solid var(--tz-line); }
.tz-filter-group__title {
	display: flex; align-items: center; margin: 0 0 12px !important; font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 11px !important; line-height: 16px !important; font-weight: 500 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--tz-muted);
}
/* First visible group lines up with the results bar */
.tz-filter-group:first-child .tz-filter-group__title {
	height: 53px; box-sizing: border-box; padding-bottom: 12px; margin-bottom: 8px !important; border-bottom: 1px solid var(--tz-line);
}

/* Checkbox lists */
.tz-filters .wc-block-product-filter-checkbox-list__items { display: flex; flex-direction: column; gap: 0; margin: 0; padding: 0; list-style: none; }
.tz-filters .wc-block-product-filter-checkbox-list__item { margin: 0; }
.tz-filters .wc-block-product-filter-checkbox-list__label {
	display: flex; align-items: flex-start; gap: 12px; padding: 4px 0; cursor: pointer; color: var(--tz-muted); font-size: 15px; line-height: 20px; transition: color .15s ease;
}
.tz-filters .wc-block-product-filter-checkbox-list__label:hover { color: var(--tz-ink); }
/* 16px box, centred on the first 20px line of text */
.tz-filters .wc-block-product-filter-checkbox-list__input-wrapper { position: relative; flex: none; width: 16px; height: 16px; margin: 2px 0 0; display: grid; place-items: center; }
.tz-filters .wc-block-product-filter-checkbox-list__input {
	-webkit-appearance: none; appearance: none; position: absolute; inset: 0; width: 16px !important; height: 16px !important; margin: 0; cursor: pointer;
	border: 1px solid var(--tz-line-strong) !important; border-radius: 2px; background: #fff !important; transition: border-color .15s ease, background-color .15s ease;
}
.tz-filters .wc-block-product-filter-checkbox-list__label:hover .wc-block-product-filter-checkbox-list__input { border-color: var(--tz-ink) !important; }
.tz-filters .wc-block-product-filter-checkbox-list__input:checked { background: var(--tz-forest) !important; border-color: var(--tz-forest) !important; }
.tz-filters .wc-block-product-filter-checkbox-list__input:focus-visible { outline: 2px solid var(--tz-forest); outline-offset: 2px; }
.tz-filters .wc-block-product-filter-checkbox-list__mark { position: relative; z-index: 1; width: 10px; height: 8px; color: #fff; pointer-events: none; opacity: 0; }
.tz-filters .wc-block-product-filter-checkbox-list__input:checked + .wc-block-product-filter-checkbox-list__mark { opacity: 1; }
.tz-filters .wc-block-product-filter-checkbox-list__text-wrapper { display: flex; flex: 1; align-items: flex-start; justify-content: space-between; gap: 12px; min-width: 0; height: auto; line-height: 20px; }
.tz-filters .wc-block-product-filter-checkbox-list__label:has(:checked) { color: var(--tz-ink); }
.tz-filters .wc-block-product-filter-checkbox-list__label:has(:checked) .wc-block-product-filter-checkbox-list__text { font-weight: 500; }
.tz-filters .wc-block-product-filter-checkbox-list__count { flex: none; font-size: 0; line-height: 20px; } /* font-size 0 hides WooCommerce's brackets */
.tz-filters .wc-block-product-filter-checkbox-list__count > span { font-size: 12px; line-height: 20px; color: var(--tz-muted); font-variant-numeric: tabular-nums; }
.tz-filters .wc-block-product-filter-checkbox-list__show-more { margin-top: 4px; }
.tz-filters .wc-block-product-filter-checkbox-list__show-more-button {
	padding: 4px 0 !important; border: 0 !important; background: none !important; color: var(--tz-forest) !important; font: inherit; font-size: 14px !important;
	text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.tz-filters .wc-block-product-filter-checkbox-list__show-more-button:hover, .tz-filters .wc-block-product-filter-checkbox-list__show-more-button:focus-visible { color: var(--tz-ink) !important; }


@media (max-width: 1100px) {
	.tz-shop__layout { grid-template-columns: 210px minmax(0, 1fr); gap: 0 40px; }
	.tz-shop .tz-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Phones and small tablets: WooCommerce's overlay ("Filter products" button opens a panel) */
.tz-filters .wc-block-product-filters__open-overlay {
	align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 48px; padding: 0 16px;
	border: 1px solid var(--tz-line-strong); border-radius: 2px; background: #fff; color: var(--tz-ink); font: inherit; font-size: 15px; font-weight: 500; cursor: pointer;
}
.tz-filters .wc-block-product-filters__open-overlay:hover { border-color: var(--tz-ink); }
@media (max-width: 899px) {
	.tz-shop__layout { grid-template-columns: minmax(0, 1fr); }
	.tz-filters .wc-block-product-filters__open-overlay { display: flex; }
	.tz-shop__aside { position: relative; z-index: 50; margin-bottom: 20px !important; }
	.tz-shop .tz-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.tz-filters .wc-block-product-filters__overlay-dialog { background: var(--tz-surface) !important; color: var(--tz-ink); }
	.tz-filters .wc-block-product-filters__overlay-header { border-bottom: 1px solid var(--tz-line); }
	.tz-filters .wc-block-product-filters__overlay-content { padding: 20px 24px; }
	.tz-filters .wc-block-product-filters__overlay-footer { border-top: 1px solid var(--tz-line); }
	.tz-filter-group:first-child .tz-filter-group__title { height: auto; padding-bottom: 0; border-bottom: 0; margin-bottom: 12px !important; }
	.tz-shop__bar { min-height: 0; }
}
@media (max-width: 640px) {
	.tz-shop .tz-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 28px 16px !important; }
}

/* ---------- Active filters row (above the products, so the filter list never moves) ---------- */
.tz-active-filters { display: block !important; margin: 0 !important; }
.tz-active-filters__inner {
	display: flex !important; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 0 !important;
	max-height: 160px; opacity: 1; overflow: hidden; padding-bottom: 24px;
	transition: max-height .22s ease, opacity .18s ease, padding-bottom .22s ease, visibility 0s linear 0s;
}
/* WooCommerce hides this when nothing is selected: collapse it smoothly instead of snapping */
.tz-active-filters__inner[hidden], .tz-active-filters__inner.wc-block-product-filter--hidden {
	display: flex !important; max-height: 0; opacity: 0; padding-bottom: 0; visibility: hidden;
	transition: max-height .22s ease, opacity .12s ease, padding-bottom .22s ease, visibility 0s linear .22s;
}
.tz-active-filters .wc-block-product-filter-removable-chips { margin: 0 !important; }
.tz-active-filters .wc-block-product-filter-removable-chips__items { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tz-active-filters .wc-block-product-filter-removable-chips__item {
	display: inline-flex; align-items: center; gap: 2px; min-height: 32px; margin: 0; padding: 0 4px 0 12px; border: 1px solid var(--tz-line-strong) !important;
	border-radius: 999px; background: #fff !important; color: var(--tz-ink) !important; font-size: 13px; line-height: 18px;
	animation: tz-chip-in .18s ease both;
}
.tz-active-filters .wc-block-product-filter-removable-chips__remove {
	display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--tz-muted); cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}
.tz-active-filters .wc-block-product-filter-removable-chips__remove:hover { background: var(--tz-stone); color: var(--tz-ink); }
.tz-active-filters .wc-block-product-filter-removable-chips__remove-icon { width: 18px; height: 18px; fill: currentColor; }
.tz-active-filters .wp-block-woocommerce-product-filter-clear-button { margin: 0 !important; }
.tz-active-filters .tz-filter-clear .wp-block-button__link {
	min-height: 0; padding: 0 !important; border: 0 !important; background: none !important; color: var(--tz-forest) !important;
	font-size: 14px !important; font-weight: 400; letter-spacing: 0; text-transform: none; text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.tz-active-filters .tz-filter-clear .wp-block-button__link:hover, .tz-active-filters .tz-filter-clear .wp-block-button__link:focus-visible { color: var(--tz-ink) !important; }
@keyframes tz-chip-in { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }

/* Options with no matches for the current selection stay in place, greyed out */
.tz-filters .wc-block-product-filter-checkbox-list__item.is-empty .wc-block-product-filter-checkbox-list__label,
.tz-filters .wc-block-product-filter-checkbox-list__label:has(:disabled) { opacity: .45; cursor: default; }
.tz-filters .wc-block-product-filter-checkbox-list__input:disabled { cursor: default; }
.tz-filters .wc-block-product-filter-checkbox-list__label:has(:disabled):hover { color: var(--tz-muted); }
.tz-filters .wc-block-product-filter-checkbox-list__label:has(:disabled):hover .wc-block-product-filter-checkbox-list__input { border-color: var(--tz-line-strong) !important; }
.tz-filters .wc-block-product-filter-checkbox-list__label { transition: color .15s ease, opacity .2s ease; }
.tz-filters .wc-block-product-filter-checkbox-list__mark { transition: opacity .12s ease; }

/* Results: dim while loading, then a quick fade in */
.tz-shop .wp-block-woocommerce-product-collection, .tz-shop .woocommerce-result-count { transition: opacity .15s ease; }
.tz-shop.is-updating .wp-block-woocommerce-product-collection, .tz-shop.is-updating .woocommerce-result-count { opacity: .4; }
.tz-shop.is-updated .tz-product-grid > li { animation: tz-results-in .24s ease both; }
.tz-shop.is-updated .tz-product-grid > li:nth-child(n+4) { animation-delay: .03s; }
.tz-shop.is-updated .tz-product-grid > li:nth-child(n+7) { animation-delay: .06s; }
@keyframes tz-results-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	.tz-shop .wp-block-woocommerce-product-collection, .tz-shop .woocommerce-result-count,
	.tz-active-filters__inner, .tz-active-filters__inner[hidden], .tz-active-filters__inner.wc-block-product-filter--hidden,
	.tz-filters .wc-block-product-filter-checkbox-list__label, .tz-filters .wc-block-product-filter-checkbox-list__mark { transition: none; }
	.tz-active-filters .wc-block-product-filter-removable-chips__item, .tz-shop.is-updated .tz-product-grid > li { animation: none; }
}

/* Chip remove button: centre the cross in its circle */
.tz-active-filters .wc-block-product-filter-removable-chips__remove { display: inline-flex !important; align-items: center !important; justify-content: center !important; flex: none; line-height: 0; }
.tz-active-filters .wc-block-product-filter-removable-chips__remove-icon { display: block; margin: 0 !important; }
/* "Clear all" sits on the chips' centre line */
.tz-active-filters .wp-block-woocommerce-product-filter-clear-button, .tz-active-filters .wp-block-woocommerce-product-filter-clear-button .wp-block-buttons { display: flex; align-items: center; margin: 0 !important; min-height: 34px; }
.tz-active-filters .tz-filter-clear { margin: 0 !important; }
.tz-active-filters .tz-filter-clear .wp-block-button__link { display: inline-block; line-height: 20px !important; }

/* ---------- Product reviews (Customer Reviews for WooCommerce template; inc-reviews.php) ---------- */
#reviews { --tz-star: var(--wp--preset--color--bronze, #8a6a45); --tz-stars: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 16'%3E%3Cg transform='translate(0 0)'%3E%3Cpath d='M8 .9l2.06 4.17 4.6.67-3.33 3.25.79 4.58L8 11.4l-4.12 2.17.79-4.58L1.34 5.74l4.6-.67z'/%3E%3C/g%3E%3Cg transform='translate(17 0)'%3E%3Cpath d='M8 .9l2.06 4.17 4.6.67-3.33 3.25.79 4.58L8 11.4l-4.12 2.17.79-4.58L1.34 5.74l4.6-.67z'/%3E%3C/g%3E%3Cg transform='translate(34 0)'%3E%3Cpath d='M8 .9l2.06 4.17 4.6.67-3.33 3.25.79 4.58L8 11.4l-4.12 2.17.79-4.58L1.34 5.74l4.6-.67z'/%3E%3C/g%3E%3Cg transform='translate(51 0)'%3E%3Cpath d='M8 .9l2.06 4.17 4.6.67-3.33 3.25.79 4.58L8 11.4l-4.12 2.17.79-4.58L1.34 5.74l4.6-.67z'/%3E%3C/g%3E%3Cg transform='translate(68 0)'%3E%3Cpath d='M8 .9l2.06 4.17 4.6.67-3.33 3.25.79 4.58L8 11.4l-4.12 2.17.79-4.58L1.34 5.74l4.6-.67z'/%3E%3C/g%3E%3C/svg%3E"); }
#reviews .woocommerce-Reviews-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
#reviews .cr-credits-div { margin: 0 0 8px; font-size: 11px; line-height: 16px; color: var(--tz-muted); opacity: .8; }
/* Summary: average on the left, breakdown on the right. */
#reviews .cr-summaryBox-wrap { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 28px; align-items: center; margin: 0 0 8px; padding: 24px; background: #fff; border: 1px solid var(--tz-line); }
#reviews .cr-overall-rating-wrap { display: flex; flex-direction: column; align-items: center; gap: 6px; padding-right: 28px; border-right: 1px solid var(--tz-line); text-align: center; }
#reviews .cr-average-rating span { font-family: var(--wp--preset--font-family--display); font-size: 52px; line-height: 1; font-weight: 500; color: var(--tz-ink); }
#reviews .cr-average-rating-stars .crstar-rating-svg { margin: 0; }
#reviews .crstar-rating-svg .cr-rating-icon-base, #reviews .crstar-rating-svg .cr-rating-icon-frnt { height: 16px; gap: 1px; }
#reviews .crstar-rating-svg .cr-rating-icon-base .cr-rating-icon-bg { width: 16px; height: 16px; stroke: var(--tz-line-strong); stroke-width: 1.5; }
#reviews .crstar-rating-svg .cr-rating-icon-frnt .cr-rating-icon { width: 16px; height: 16px; fill: var(--tz-star); }
#reviews .cr-total-rating-count { font-size: 13px; line-height: 18px; color: var(--tz-muted); }
#reviews .cr-summaryBox-wrap .cr-histogramTable { max-width: none; margin: 0; }
#reviews .cr-histogramTable .ivole-histogramRow .ivole-histogramCell1, #reviews .cr-histogramTable .ivole-histogramRow .ivole-histogramCell2, #reviews .cr-histogramTable .ivole-histogramRow .ivole-histogramCell3 { padding-top: 3px; padding-bottom: 3px; }
#reviews .cr-histogramTable .ivole-histogramRow .cr-histogram-a { color: var(--tz-ink); font-size: 13px; line-height: 18px; font-variant-numeric: tabular-nums; }
#reviews .cr-histogramTable .ivole-histogramRow .cr-histogram-rating-icon { width: 12px; height: 12px; fill: var(--tz-star); }
#reviews .cr-histogramTable .ivole-histogramRow .ivole-histogramCell3 .cr-histogram-a { color: var(--tz-muted); }
#reviews .cr-histogramTable .ivole-histogramRow:hover .cr-histogram-a { color: var(--tz-forest); }
#reviews .ivole-meter { height: 6px; border-radius: 3px; background: var(--tz-stone); box-shadow: none; }
#reviews .ivole-meter .ivole-meter-bar { height: 6px; border-radius: 3px; background: var(--tz-ink); box-shadow: none; font-size: 0; color: transparent; }
#reviews .ivole-meter .ivole-meter-bar::before { display: none; }

/* Review list */
#reviews ol.commentlist, #reviews ol.commentlist ul.children { list-style: none; margin: 0; padding: 0; }
#reviews ol.commentlist > li { padding: 22px 0; border-bottom: 1px solid var(--tz-line); }
#reviews ol.commentlist > li:last-child { border-bottom: 0; }
#reviews .comment_container { display: block; }
#reviews .comment_container img.avatar { display: none; }
#reviews .comment-text { margin: 0; padding: 0; border: 0; }
/* WooCommerce star rating: five stars drawn as a mask, the filled part is the inner span's inline width. */
#reviews .star-rating { position: relative; float: none; display: block; width: 84px; height: 16px; margin: 0; overflow: hidden; font-size: 0; line-height: 0; background: var(--tz-line); -webkit-mask: var(--tz-stars) left center / 84px 16px no-repeat; mask: var(--tz-stars) left center / 84px 16px no-repeat; }
#reviews .star-rating::before { content: none; }
#reviews .star-rating span { position: absolute; inset: 0 auto 0 0; padding: 0; overflow: hidden; background: var(--tz-star); }
#reviews .star-rating span::before { content: none; }
#reviews p.meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 10px 0 8px; font-size: 13px; line-height: 18px; color: var(--tz-muted); }
#reviews .woocommerce-review__author { font-size: 14px; font-weight: 600; color: var(--tz-ink); text-transform: none; }
#reviews .woocommerce-review__verified { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--tz-forest); }
#reviews .woocommerce-review__published-date { margin-left: auto; }
#reviews .description p { margin: 0 0 8px; font-size: 15px; line-height: 24px; color: #3a3833; }
#reviews .description p:last-child { margin-bottom: 0; }
/* "Helpful?" votes */
#reviews .cr-voting-cont { justify-content: flex-start; gap: 0; margin-top: 12px; }
#reviews .cr-voting-cont::before { content: "Helpful?"; margin-right: 10px; font-size: 12px; line-height: 16px; color: var(--tz-muted); }
#reviews .cr-voting-cont-uni span { font-size: 12px; line-height: 16px; }
#reviews .cr-voting-cont-uni svg { width: 14px; height: 14px; margin-right: 4px; }
#reviews .cr-voting-cont-uni span.cr-voting-upvote svg .cr-voting-svg-ext, #reviews .cr-voting-cont-uni span.cr-voting-downvote svg .cr-voting-svg-ext { fill: var(--tz-line-strong); }
#reviews .cr-voting-cont-uni span.cr-voting-upvote svg:hover .cr-voting-svg-ext, #reviews .cr-voting-cont-uni span.cr-voting-downvote svg:hover .cr-voting-svg-ext { fill: var(--tz-ink); }
#reviews .cr-voting-cont-uni span.cr-voting-active svg .cr-voting-svg-ext { fill: var(--tz-forest); }
#reviews .cr-voting-cont-uni span.cr-voting-upvote-count, #reviews .cr-voting-cont-uni span.cr-voting-downvote-count { margin-right: 12px; color: var(--tz-muted); }
/* Replies */
#reviews ul.children { margin: 16px 0 0 !important; padding: 2px 0 2px 16px !important; border-left: 2px solid var(--tz-sand); }
#reviews ul.children .star-rating { display: none; }
#reviews ul.children p.meta { margin-top: 2px; }
#reviews .tz-review-reply { margin: 0; font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--tz-forest); }
/* Pages */
#reviews .woocommerce-pagination { margin: 8px 0 4px; padding-top: 20px; border-top: 1px solid var(--tz-line); }
#reviews .woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; list-style: none; border: 0; }
#reviews .woocommerce-pagination ul.page-numbers li { margin: 0; border: 0; float: none; }
/* Only the links and spans that are list items: the arrows contain their own inner spans (arrow and screen reader text). */
#reviews .woocommerce-pagination ul.page-numbers > li > :is(a, span) { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid var(--tz-line); font-size: 14px; line-height: 1; color: var(--tz-ink); text-decoration: none; font-variant-numeric: tabular-nums; }
#reviews .woocommerce-pagination ul.page-numbers > li > a:hover { border-color: var(--tz-ink); }
#reviews .woocommerce-pagination ul.page-numbers > li > span.current { background: var(--tz-ink); border-color: var(--tz-ink); color: var(--tz-surface); }
#reviews .woocommerce-pagination ul.page-numbers > li > span.dots { border-color: transparent; min-width: 24px; padding: 0; }
#reviews #woocommerce-verification-required, #reviews .woocommerce-verification-required { margin: 16px 0 0; font-size: 13px; line-height: 20px; color: var(--tz-muted); }
#reviews .clear { display: none; }
@media (max-width: 480px) {
	#reviews .cr-summaryBox-wrap { grid-template-columns: 1fr; gap: 18px; padding: 20px; }
	#reviews .cr-overall-rating-wrap { padding: 0 0 18px; border-right: 0; border-bottom: 1px solid var(--tz-line); }
	#reviews .woocommerce-review__published-date { margin-left: 0; flex-basis: 100%; }
}
/* Summary layout: undo the plugin's 49% / 49% split and fixed histogram width. */
#reviews .cr-summaryBox-wrap .cr-overall-rating-wrap, #reviews .cr-summaryBox-wrap .ivole-summaryBox { width: auto; flex: none; margin: 0; padding: 0; }
#reviews .cr-summaryBox-wrap .cr-overall-rating-wrap { min-width: 120px; padding-right: 28px; justify-content: center; }
#reviews .cr-summaryBox-wrap .ivole-summaryBox { min-width: 0; margin-bottom: 0; }
#reviews .cr-summaryBox-wrap .cr-histogramTable { width: 100%; max-width: none; }
#reviews .tz-review-staff { color: var(--tz-ink); background: var(--tz-stone); padding: 2px 8px; }
@media (max-width: 480px) {
	#reviews .cr-summaryBox-wrap .cr-overall-rating-wrap { padding: 0 0 18px; }
}
#reviews ol.commentlist { transition: opacity .2s ease; }
#reviews.is-loading ol.commentlist { opacity: .35; pointer-events: none; }
#reviews.is-loading .woocommerce-pagination { pointer-events: none; }
#reviews ol.commentlist:focus { outline: none; }
