/* Pepzora Storefront
   Premium styling for stock WooCommerce templates.
   v2.0: palette, type and shapes aligned with the Pepzora global design
   system. Page-specific styling (shop, product, cart, checkout) will be
   refined page by page; this file keeps everything working meanwhile. */

:root {
	/* v2 — aligned with the Pepzora global design system (Additional CSS). */
	--pzs-ivory: #FBF7F0;
	--pzs-beige: #F5EDE1;
	--pzs-sand: #E8D9C3;
	--pzs-espresso: #2B1B12;
	--pzs-body: #3A2A1F;
	--pzs-muted: #86705C;
	--pzs-gold: #B08A4F;
	--pzs-gold-light: #D2B47E;
	--pzs-flag: #8B4A3B;
	--pzs-serif: "Cormorant Garamond", Georgia, serif;
	--pzs-sans: Jost, "Helvetica Neue", Arial, sans-serif;
	--pzs-text: Jost, "Helvetica Neue", Arial, sans-serif;
	--pzs-radius: 14px;
	--pzs-ease: cubic-bezier(.2, .7, .1, 1);
}

/* ============================================================
   Shared
   ============================================================ */

/* Padded containers set their own box model rather than inheriting whatever
   the active theme happens to declare. Without this, a 100%-wide element
   inside a padded panel overflows its rail. */
.woocommerce .cart_totals,
.woocommerce .cart-collaterals,
.woocommerce-checkout #order_review,
.woocommerce-checkout #payment,
.woocommerce .wc-proceed-to-checkout,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #payment #place_order,
.woocommerce-checkout #payment #place_order,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.pzs-ship,
.pzc-ack {
	box-sizing: border-box;
}

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	font-family: var(--pzs-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	line-height: 1.4;
	padding: 16px 34px;
	border: 1px solid var(--pzs-espresso);
	border-radius: var(--pzs-radius);
	background: var(--pzs-espresso);
	color: var(--pzs-ivory);
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--pzs-gold);
	border-color: var(--pzs-gold);
	color: var(--pzs-espresso);
}

.woocommerce .button:disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
	background: var(--pzs-sand);
	border-color: var(--pzs-sand);
	color: var(--pzs-muted);
	opacity: 1;
	cursor: not-allowed;
}

.woocommerce .price,
.woocommerce ul.products li.product .price {
	font-family: var(--pzs-text);
	font-weight: 500;
	color: var(--pzs-espresso);
}

.woocommerce .price del {
	color: var(--pzs-muted);
	opacity: 0.7;
}

/* ============================================================
   Header: brand left, navigation centred, cart far right
   ============================================================ */

/* The split class is added by script only once the cart link has actually
   been moved into its own zone, so a JS failure leaves the theme's header
   exactly as it was rather than half-rearranged. */
.site-header.pzs-header--split {
	display: flex;
	align-items: center;
	gap: 24px;
}

/* Equal flex on the outer zones is what centres the navigation against the
   page rather than against the space left over. */
.site-header.pzs-header--split .site-branding,
.site-header.pzs-header--split .pzs-header-actions {
	flex: 1 1 0;
	min-width: 0;
}

.site-header.pzs-header--split .site-navigation {
	flex: 0 1 auto;
}

.site-header.pzs-header--split .pzs-header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 14px;
}

.site-header.pzs-header--split .site-navigation ul.menu,
.site-header.pzs-header--split .site-navigation ul {
	justify-content: center;
}

/* --- Cart link --- */

.pzs-cart {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	color: var(--pzs-espresso);
	text-decoration: none;
	transition: color 0.3s ease;
}

.pzs-cart:hover,
.pzs-cart:focus-visible {
	color: var(--pzs-gold);
}

.pzs-cart__icon {
	display: block;
	width: 22px;
	height: 22px;
}

.pzs-cart__count {
	position: absolute;
	top: 1px;
	right: 0;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	box-sizing: border-box;
	border-radius: 9px;
	background: var(--pzs-gold);
	color: var(--pzs-ivory);
	font-family: var(--pzs-sans);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 17px;
	text-align: center;
	text-transform: none;
}

/* An empty cart shows the icon alone rather than a zero. */
.pzs-cart__count[data-count="0"] {
	display: none;
}

/* Fallback: if the script has not run, the link is still the last menu item
   and should at least not inherit the nav's uppercase link styling. */
.pzs-cart-item {
	display: flex;
	align-items: center;
}

.pzs-cart-item .pzs-cart {
	letter-spacing: 0;
}

@media (max-width: 1024px) {
	.site-header.pzs-header--split {
		gap: 12px;
	}

	.site-header.pzs-header--split .site-branding {
		flex: 1 1 auto;
	}

	.site-header.pzs-header--split .pzs-header-actions {
		flex: 0 0 auto;
	}
}

/* ============================================================
   Slide-out cart drawer
   ============================================================ */

.pzs-drawer-overlay {
	position: fixed;
	inset: 0;
	z-index: 99998;
	background: rgba(34, 28, 22, 0.45);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.pzs-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 99999;
	display: flex;
	flex-direction: column;
	width: 400px;
	max-width: 100vw;
	background: var(--pzs-ivory);
	border-left: 1px solid var(--pzs-sand);
	box-shadow: -18px 0 50px rgba(34, 28, 22, 0.16);
	transform: translateX(100%);
	transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
	box-sizing: border-box;
}

.pzs-drawer[hidden],
.pzs-drawer-overlay[hidden] {
	display: none;
}

html.pzs-drawer-open .pzs-drawer {
	transform: translateX(0);
}

html.pzs-drawer-open .pzs-drawer-overlay {
	opacity: 1;
}

html.pzs-drawer-open,
html.pzs-drawer-open body {
	overflow: hidden;
}

.pzs-drawer--busy {
	pointer-events: none;
}

.pzs-drawer--busy .pzs-drawer__body {
	opacity: 0.55;
	transition: opacity 0.2s ease;
}

/* --- Head --- */

.pzs-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 24px 26px 20px;
	border-bottom: 1px solid var(--pzs-sand);
	flex: 0 0 auto;
}

.pzs-drawer__title {
	margin: 0;
	font-family: var(--pzs-serif);
	font-size: 27px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--pzs-espresso);
}

.pzs-drawer__close {
	width: 36px;
	height: 36px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--pzs-sand);
	border-radius: 50%;
	color: var(--pzs-body);
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.pzs-drawer__close:hover {
	border-color: var(--pzs-espresso);
	color: var(--pzs-espresso);
}

.pzs-drawer__close svg {
	width: 15px;
	height: 15px;
}

/* --- Body --- */

.pzs-drawer__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
}

.pzs-drawer__scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 20px 26px 8px;
}

.pzs-drawer__scroll .pzs-ship {
	margin-bottom: 20px;
}

/* --- Line items --- */

.pzs-drawer__item {
	display: flex;
	gap: 14px;
	padding: 18px 0;
	border-bottom: 1px solid var(--pzs-sand);
}

.pzs-drawer__item:last-child {
	border-bottom: 0;
}

.pzs-drawer__thumb {
	flex: 0 0 72px;
	width: 72px;
}

.pzs-drawer__thumb img {
	display: block;
	width: 100%;
	height: auto;
	background: var(--pzs-beige);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
}

.pzs-drawer__details {
	flex: 1 1 auto;
	min-width: 0;
}

.pzs-drawer__sku {
	display: block;
	margin-bottom: 4px;
	font-family: var(--pzs-sans);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 1.4px;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--pzs-gold);
}

.pzs-drawer__name {
	margin: 0 0 4px;
	font-family: var(--pzs-serif);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--pzs-espresso);
}

.pzs-drawer__name a {
	color: inherit;
	text-decoration: none;
}

.pzs-drawer__name a:hover {
	color: var(--pzs-gold);
}

.pzs-drawer__meta,
.pzs-drawer__meta p {
	margin: 0;
	font-family: var(--pzs-text);
	font-size: 12px;
	line-height: 1.6;
	color: var(--pzs-muted);
}

/* WooCommerce wraps each variation value in a <p>, which breaks the label and
   its value onto separate lines unless that is made inline too. */
.pzs-drawer__meta dl,
.pzs-drawer__meta dt,
.pzs-drawer__meta dd,
.pzs-drawer__meta dd p {
	display: inline;
	margin: 0;
	padding: 0;
	float: none;
	font-weight: 400;
}

.pzs-drawer__meta dt {
	margin-right: 5px;
	font-family: var(--pzs-sans);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--pzs-gold);
}

.pzs-drawer__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 11px;
}

.pzs-drawer__qty {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	overflow: hidden;
	background: var(--pzs-ivory);
}

.pzs-drawer__step {
	width: 30px;
	height: 30px;
	padding: 0;
	margin: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--pzs-body);
	font-family: var(--pzs-text);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1;
	text-transform: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.pzs-drawer__step:hover {
	background: var(--pzs-beige);
	color: var(--pzs-espresso);
}

.pzs-drawer__qty-value {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	border-left: 1px solid var(--pzs-sand);
	border-right: 1px solid var(--pzs-sand);
	font-family: var(--pzs-text);
	font-size: 14px;
	color: var(--pzs-espresso);
}

.pzs-drawer__price,
.pzs-drawer__price .amount,
.pzs-drawer__price bdi {
	font-family: var(--pzs-text);
	font-size: 15px;
	font-weight: 500;
	color: var(--pzs-espresso);
	white-space: nowrap;
}

.pzs-drawer__remove {
	margin: 9px 0 0;
	padding: 0;
	background: transparent;
	border: 0;
	font-family: var(--pzs-text);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.4;
	text-transform: none;
	color: var(--pzs-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	transition: color 0.2s ease;
}

.pzs-drawer__remove:hover {
	color: var(--pzs-flag);
}

/* --- Foot --- */

.pzs-drawer__foot {
	flex: 0 0 auto;
	padding: 20px 26px 24px;
	background: var(--pzs-beige);
	border-top: 1px solid var(--pzs-sand);
}

.pzs-drawer__subtotal {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	font-family: var(--pzs-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--pzs-espresso);
}

.pzs-drawer__subtotal-value,
.pzs-drawer__subtotal-value .amount,
.pzs-drawer__subtotal-value bdi {
	font-family: var(--pzs-text);
	font-size: 21px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--pzs-espresso);
}

.pzs-drawer__note {
	margin: 6px 0 0;
	font-family: var(--pzs-text);
	font-size: 12px;
	line-height: 1.5;
	color: var(--pzs-muted);
}

.pzs-drawer__ruo {
	margin: 12px 0 16px;
	padding-top: 12px;
	border-top: 1px solid var(--pzs-sand);
	font-family: var(--pzs-text);
	font-size: 11px;
	line-height: 1.55;
	color: var(--pzs-flag);
}

.pzs-drawer__btn {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 17px 20px;
	margin: 0 0 10px;
	font-family: var(--pzs-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 2px;
	line-height: 1.4;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	border: 1px solid var(--pzs-espresso);
	border-radius: var(--pzs-radius);
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.pzs-drawer__btn:last-child {
	margin-bottom: 0;
}

.pzs-drawer__btn--solid {
	background: var(--pzs-espresso);
	color: var(--pzs-ivory);
}

.pzs-drawer__btn--solid:hover {
	background: var(--pzs-gold);
	border-color: var(--pzs-gold);
	color: var(--pzs-espresso);
}

.pzs-drawer__btn--ghost {
	background: transparent;
	color: var(--pzs-espresso);
	border-color: var(--pzs-sand);
}

.pzs-drawer__btn--ghost:hover {
	border-color: var(--pzs-espresso);
}

/* --- Empty --- */

.pzs-drawer__empty {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 40px 30px;
}

.pzs-drawer__empty-title {
	margin: 0 0 10px;
	font-family: var(--pzs-serif);
	font-size: 25px;
	font-weight: 600;
	color: var(--pzs-espresso);
}

.pzs-drawer__empty-text {
	margin: 0 0 26px;
	font-family: var(--pzs-text);
	font-size: 14px;
	line-height: 1.7;
	color: var(--pzs-muted);
}

.pzs-drawer__empty .pzs-drawer__btn {
	width: auto;
	padding: 16px 32px;
}

@media (max-width: 480px) {
	.pzs-drawer {
		width: 100vw;
		border-left: 0;
	}

	.pzs-drawer__head,
	.pzs-drawer__scroll,
	.pzs-drawer__foot {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* ============================================================
   Breadcrumb
   ============================================================ */

/* Without explicit top spacing the breadcrumb collapses against the header
   border and its first line gets clipped. */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb {
	margin: 0 0 30px;
	padding: 30px 0 0;
	font-family: var(--pzs-text);
	font-size: 12px;
	line-height: 1.8;
	color: var(--pzs-muted);
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--pzs-muted);
	text-decoration: none;
	transition: color 0.3s ease;
}

.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--pzs-gold);
}

/* ============================================================
   Shop archive
   ============================================================ */

.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header {
	padding: 56px 0 8px;
	text-align: center;
}

.woocommerce .woocommerce-products-header__title,
.woocommerce .page-title {
	font-family: var(--pzs-serif);
	font-size: 46px;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--pzs-espresso);
}

.woocommerce .woocommerce-result-count {
	font-family: var(--pzs-text);
	font-size: 13px;
	color: var(--pzs-muted);
}

.woocommerce .woocommerce-ordering select,
.woocommerce select {
	font-family: var(--pzs-text);
	font-size: 13px;
	padding: 11px 14px;
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	background-color: var(--pzs-ivory);
	color: var(--pzs-body);
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 34px 26px;
	margin: 30px 0 0;
	padding: 0;
	list-style: none;
}

/* Respect the column count the shortcode or theme asked for. Without these,
   a [product_categories columns="5"] row would be forced into four. */
.woocommerce ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 26px 18px; }
.woocommerce ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 26px 16px; }

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
}

/* Cards are flex columns so that a two- or three-line product name pushes the
   price and button down instead of overlapping them, and so buttons stay
   aligned across a row regardless of title length. */
.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	padding: 0 0 22px;
	background: var(--pzs-ivory);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	text-align: center;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

/* Only the button uses auto margin, so it alone is pushed to the card floor.
   Applying it to the price instead collapsed the gap above it and let the
   SKU, title, and price line boxes run together. */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
	display: block;
	flex: 1 0 auto;
}

.woocommerce ul.products li.product:hover {
	border-color: var(--pzs-gold);
	box-shadow: 0 14px 34px rgba(34, 28, 22, 0.09);
	transform: translateY(-3px);
}

.woocommerce ul.products li.product a img {
	width: 100%;
	margin: 0 0 16px;
	background: var(--pzs-beige);
	border-radius: 0;
}

/* Card text block. Every element gets explicit vertical space; nothing here
   relies on margin collapsing or flex auto-spacing to stay apart. */

.pzs-loop-sku {
	display: block;
	padding: 0 16px;
	margin: 14px 0 7px;
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.6px;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--pzs-gold);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	display: block;
	font-family: var(--pzs-serif) !important;
	font-size: 21px !important;
	font-weight: 600;
	line-height: 1.3 !important;
	color: var(--pzs-espresso);
	padding: 0 16px !important;
	/* Two lines reserved so that short and long names align across a row. */
	min-height: 2.6em;
	margin: 0 0 12px !important;
}

/* The loop title and price sit inside the product link, so the theme's link
   colour wins unless these are addressed on the anchor as well. */
.woocommerce ul.products li.product a,
.woocommerce ul.products li.product a:hover,
.woocommerce ul.products li.product a:visited {
	text-decoration: none;
}

.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product a .price {
	display: block;
	padding: 0 16px;
	margin: 0 0 18px;
	font-family: var(--pzs-text);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--pzs-body);
	text-decoration: none;
}

.woocommerce ul.products li.product .price .amount,
.woocommerce ul.products li.product .price bdi {
	display: inline;
	margin: 0;
	font-family: var(--pzs-text);
	font-weight: 500;
	color: var(--pzs-body);
	text-decoration: none;
}

.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price ins {
	display: inline;
	background: transparent;
	text-decoration: none;
}

.woocommerce ul.products li.product .button {
	display: inline-block;
	width: auto;
	max-width: calc(100% - 32px);
	/* Pushed to the card floor so buttons line up across a row whatever the
	   title length. This is the only auto margin in the card. */
	margin: auto 16px 0;
	padding: 13px 26px;
	font-size: 11px;
	line-height: 1.4;
	background: transparent;
	color: var(--pzs-espresso);
	border-color: var(--pzs-sand);
	align-self: center;
}

/* WooCommerce appends a "View cart" link after an AJAX add; keep it from
   sitting in the card as an unstyled stray line. */
.woocommerce ul.products li.product a.added_to_cart {
	display: block;
	margin: 10px 16px 0;
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--pzs-gold);
}

.woocommerce ul.products li.product .button:hover {
	background: var(--pzs-espresso);
	border-color: var(--pzs-espresso);
	color: var(--pzs-ivory);
}

.woocommerce ul.products li.product .button.pzs-added {
	background: var(--pzs-gold);
	border-color: var(--pzs-gold);
	color: var(--pzs-espresso);
}

.woocommerce ul.products li.product .button.pzs-adding {
	opacity: 0.65;
}

.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	background: var(--pzs-flag);
	color: var(--pzs-ivory);
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	border-radius: 0;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	padding: 8px 12px;
}

/* Category tiles on the homepage */

.woocommerce ul.products li.product-category a img {
	margin-bottom: 0;
}

.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title {
	font-family: var(--pzs-serif) !important;
	font-size: 22px !important;
	padding: 18px 14px !important;
	color: var(--pzs-espresso);
}

/* Browsers render <mark> with a yellow highlight by default, which looks like
   a rendering fault on a category tile. */
.woocommerce ul.products li.product-category mark.count,
.woocommerce ul.products li.product-category h2 mark.count {
	display: block;
	margin-top: 6px;
	background: transparent !important;
	background-color: transparent !important;
	color: var(--pzs-gold) !important;
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

/* Category tiles: frame them like product cards so a missing thumbnail reads
   as a deliberate empty state rather than a broken image. */
.woocommerce ul.products li.product-category {
	background: var(--pzs-ivory);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	overflow: hidden;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.woocommerce ul.products li.product-category:hover {
	border-color: var(--pzs-gold);
	box-shadow: 0 14px 34px rgba(34, 28, 22, 0.09);
	transform: translateY(-3px);
}

.woocommerce ul.products li.product-category a {
	display: block;
}

.woocommerce ul.products li.product-category img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--pzs-beige);
}

/* ============================================================
   Single product
   ============================================================ */

.single-product div.product {
	padding-top: 44px;
}

.single-product div.product .product_title {
	font-family: var(--pzs-serif);
	font-size: 48px;
	font-weight: 600;
	line-height: 1.1;
	color: var(--pzs-espresso);
	margin: 0 0 14px;
}

.single-product div.product .summary .price,
.single-product div.product p.price {
	font-size: 26px;
	font-weight: 500;
	color: var(--pzs-espresso);
	margin: 0 0 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--pzs-sand);
}

.single-product .woocommerce-product-gallery {
	background: var(--pzs-beige);
	border: 1px solid var(--pzs-sand);
}

.single-product .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.single-product div.product .woocommerce-product-details__short-description {
	font-family: var(--pzs-text);
	font-size: 15px;
	line-height: 1.7;
	color: var(--pzs-body);
	margin-bottom: 24px;
}

/* Variation selector — the dosage dropdown */

.woocommerce div.product form.cart .variations {
	margin-bottom: 20px;
	border: 0;
}

.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
	display: block;
	width: 100%;
	padding: 0;
	text-align: left;
}

.woocommerce div.product form.cart .variations label {
	display: block;
	margin-bottom: 9px;
	font-family: var(--pzs-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--pzs-muted);
}

.woocommerce div.product form.cart .variations select {
	width: 100%;
	max-width: 340px;
	padding: 15px 16px;
	font-family: var(--pzs-text);
	font-size: 15px;
	color: var(--pzs-espresso);
	background-color: var(--pzs-ivory);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	transition: border-color 0.3s ease;
}

.woocommerce div.product form.cart .variations select:focus {
	outline: none;
	border-color: var(--pzs-gold);
}

/* The "Clear" link inherits a boxed look from the theme's link styling; strip
   it back to a plain text link beneath the selector. */
.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-top: 10px;
	padding: 0;
	background: transparent !important;
	border: 0;
	font-family: var(--pzs-text);
	font-size: 12px;
	line-height: 1.6;
	color: var(--pzs-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.woocommerce div.product form.cart .reset_variations:hover {
	color: var(--pzs-espresso);
}

/* Each variation row is a full-width block, so the table cells must not keep
   their default side-by-side layout. */
.woocommerce div.product form.cart table.variations tr,
.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations {
	display: block;
	width: 100%;
	background: transparent;
}

.woocommerce div.product form.cart table.variations td.value {
	padding-bottom: 4px;
}

.woocommerce div.product .woocommerce-variation-price {
	margin-bottom: 16px;
}

.woocommerce div.product .woocommerce-variation-price .price {
	font-size: 24px;
	border: 0;
	padding: 0;
	margin: 0 0 6px;
}

/* WooCommerce ships stock status in green, which is the one colour that does
   not belong anywhere in this palette. */
.woocommerce div.product .stock,
.woocommerce div.product p.stock,
.woocommerce div.product .woocommerce-variation-availability .stock {
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	margin: 0 0 18px;
}

.woocommerce div.product .stock.in-stock,
.woocommerce div.product p.stock.in-stock {
	color: var(--pzs-gold) !important;
}

.woocommerce div.product .stock.out-of-stock,
.woocommerce div.product p.stock.out-of-stock {
	color: var(--pzs-flag) !important;
}

/* Quantity + add to cart */

.woocommerce div.product form.cart {
	margin-bottom: 28px;
}

.woocommerce .quantity.pzs-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	overflow: hidden;
	background: var(--pzs-ivory);
	margin-right: 10px;
}

.woocommerce .quantity.pzs-qty input.qty {
	width: 54px;
	height: 52px;
	border: 0;
	border-left: 1px solid var(--pzs-sand);
	border-right: 1px solid var(--pzs-sand);
	background: transparent;
	font-family: var(--pzs-text);
	font-size: 15px;
	color: var(--pzs-espresso);
	text-align: center;
	-moz-appearance: textfield;
}

.woocommerce .quantity.pzs-qty input.qty::-webkit-outer-spin-button,
.woocommerce .quantity.pzs-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* These are <button> elements, so the theme's and WooCommerce's button rules
   apply to them by default and render them as solid dark blocks. Every
   inherited property is reset explicitly. */
.woocommerce .quantity.pzs-qty .pzs-qty-btn,
.woocommerce .quantity.pzs-qty button.pzs-qty-btn,
.pzs-qty-btn {
	width: 42px;
	min-width: 0;
	height: auto;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	color: var(--pzs-body) !important;
	font-family: var(--pzs-text) !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	text-transform: none !important;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.woocommerce .quantity.pzs-qty .pzs-qty-btn:hover,
.pzs-qty-btn:hover {
	background: var(--pzs-beige) !important;
	color: var(--pzs-espresso) !important;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button {
	height: 52px;
	padding: 0 44px;
	vertical-align: top;
}

/* Meta */

/* Each meta row needs its own line box. Relying on the parent's line-height
   let SKU, category, and tags run together. */
.woocommerce div.product .product_meta {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--pzs-sand);
	font-family: var(--pzs-text);
	font-size: 13px;
	line-height: 1.75;
	color: var(--pzs-muted);
}

.woocommerce div.product .product_meta > span,
.woocommerce div.product .product_meta .sku_wrapper,
.woocommerce div.product .product_meta .posted_in,
.woocommerce div.product .product_meta .tagged_as {
	display: block;
	width: 100%;
	margin: 0 0 9px;
	padding: 0;
	font-size: 13px;
	line-height: 1.75;
	clear: both;
}

.woocommerce div.product .product_meta > span:last-child {
	margin-bottom: 0;
}

.woocommerce div.product .product_meta .sku,
.woocommerce div.product .product_meta a {
	color: var(--pzs-gold);
	text-decoration: none;
}

.woocommerce div.product .product_meta a:hover {
	color: var(--pzs-espresso);
}

/* Tabs */

.woocommerce div.product .woocommerce-tabs {
	margin-top: 60px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 30px;
	border-bottom: 1px solid var(--pzs-sand);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	border-bottom-color: var(--pzs-sand);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0 4px 0 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 14px 22px;
	font-family: var(--pzs-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--pzs-muted);
	border-bottom: 2px solid transparent;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--pzs-espresso);
	border-bottom-color: var(--pzs-gold);
}

.woocommerce div.product .woocommerce-tabs .panel {
	font-family: var(--pzs-text);
	font-size: 15px;
	line-height: 1.75;
	color: var(--pzs-body);
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
	display: none;
}

.woocommerce div.product .woocommerce-tabs .panel h3 {
	font-family: var(--pzs-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--pzs-espresso);
	margin: 28px 0 12px;
}

.woocommerce div.product .woocommerce-tabs .panel ul {
	padding-left: 20px;
}

.woocommerce div.product .woocommerce-tabs .panel li {
	margin-bottom: 7px;
}

/* Related products */

.woocommerce .related > h2,
.woocommerce .upsells > h2 {
	font-family: var(--pzs-serif);
	font-size: 34px;
	font-weight: 600;
	color: var(--pzs-espresso);
	text-align: center;
	margin: 70px 0 8px;
}

/* ============================================================
   Cart
   ============================================================ */

/* Desktop cart is a two-column layout: line items left, totals in a sticky
   rail on the right. WooCommerce's default stacks totals underneath, which
   buries the checkout button below the fold on any cart of a few items. */
.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 48px;
	align-items: start;
}

.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .woocommerce-message,
.woocommerce-cart .woocommerce > .woocommerce-info,
.woocommerce-cart .woocommerce > .woocommerce-error,
.woocommerce-cart .woocommerce > .cart-empty,
.woocommerce-cart .woocommerce > .return-to-shop {
	grid-column: 1 / -1;
}

.woocommerce-cart .woocommerce-cart-form {
	grid-column: 1;
	margin: 0;
}

.woocommerce-cart .cart-collaterals {
	grid-column: 2;
	width: 100%;
	position: sticky;
	top: 24px;
}

.woocommerce-cart .cart-collaterals .cross-sells {
	width: 100%;
	float: none;
	margin-top: 36px;
}

/* --- Line items --- */

.woocommerce table.shop_table {
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	border-collapse: collapse;
	margin: 0 0 24px;
}

.woocommerce table.shop_table th {
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.8px;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--pzs-muted);
	background: var(--pzs-beige);
	padding: 16px 14px;
	border-bottom: 1px solid var(--pzs-sand);
	text-align: left;
}

.woocommerce table.shop_table td {
	font-family: var(--pzs-text);
	font-size: 14px;
	line-height: 1.6;
	color: var(--pzs-body);
	padding: 20px 14px;
	border-top: 1px solid var(--pzs-sand);
	vertical-align: middle;
}

.woocommerce table.cart td.product-thumbnail {
	width: 92px;
	padding-right: 0;
}

.woocommerce table.cart td.product-thumbnail img {
	width: 72px;
	height: auto;
	display: block;
	background: var(--pzs-beige);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
}

.woocommerce table.shop_table td.product-name a {
	font-family: var(--pzs-serif);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pzs-espresso);
	text-decoration: none;
}

.woocommerce table.shop_table td.product-name a:hover {
	color: var(--pzs-gold);
}

/* Variation lines (Dosage: 30 mg) under the product name. */
.woocommerce table.shop_table td.product-name dl.variation {
	margin: 7px 0 0;
	font-size: 12px;
	line-height: 1.6;
	color: var(--pzs-muted);
}

.woocommerce table.shop_table td.product-name dl.variation dt,
.woocommerce table.shop_table td.product-name dl.variation dd {
	display: inline;
	margin: 0;
	font-weight: 400;
	float: none;
}

.woocommerce table.shop_table td.product-name dl.variation dd p {
	display: inline;
	margin: 0;
}

.woocommerce table.shop_table td.product-name dl.variation dt {
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--pzs-gold);
	/* dt and dd are inline, so the gap has to be explicit. */
	margin-right: 6px;
}

.woocommerce a.remove {
	width: 22px;
	height: 22px;
	line-height: 20px;
	font-size: 18px;
	font-weight: 400;
	color: var(--pzs-muted) !important;
	border: 1px solid var(--pzs-sand);
	border-radius: 50%;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.woocommerce a.remove:hover {
	background: var(--pzs-flag) !important;
	border-color: var(--pzs-flag);
	color: #fff !important;
}

/* --- Coupon and update row --- */

.woocommerce table.cart td.actions {
	padding: 20px 14px;
	background: var(--pzs-beige);
}

.woocommerce table.cart td.actions .coupon {
	display: flex;
	gap: 10px;
	align-items: stretch;
	float: left;
}

.woocommerce table.cart td.actions .coupon label {
	display: none;
}

.woocommerce table.cart td.actions .coupon .input-text {
	width: 190px;
	padding: 13px 14px;
	font-family: var(--pzs-text);
	font-size: 14px;
	color: var(--pzs-espresso);
	background: var(--pzs-ivory);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
}

.woocommerce table.cart td.actions .coupon .input-text:focus {
	outline: none;
	border-color: var(--pzs-gold);
}

.woocommerce table.cart td.actions .button {
	padding: 13px 24px;
	font-size: 10px;
}

.woocommerce table.cart td.actions .coupon .button {
	background: transparent;
	color: var(--pzs-espresso);
	border-color: var(--pzs-espresso);
}

.woocommerce table.cart td.actions .coupon .button:hover {
	background: var(--pzs-espresso);
	color: var(--pzs-ivory);
}

/* --- Totals rail --- */

.woocommerce .cart_totals {
	width: 100% !important;
	float: none !important;
	padding: 28px 26px 26px;
	background: var(--pzs-beige);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
}

.woocommerce .cart_totals h2 {
	font-family: var(--pzs-serif);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--pzs-espresso);
	margin: 0 0 18px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--pzs-sand);
}

.woocommerce-cart .cart-collaterals .cart_totals table {
	border: 0;
	margin: 0;
}

.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce-cart .cart-collaterals .cart_totals table td {
	background: transparent;
	border: 0;
	padding: 11px 0;
	font-family: var(--pzs-text);
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0;
	text-transform: none;
	color: var(--pzs-body);
	vertical-align: top;
}

.woocommerce-cart .cart-collaterals .cart_totals table th {
	width: 42%;
	font-weight: 400;
	color: var(--pzs-muted);
}

.woocommerce-cart .cart-collaterals .cart_totals table td {
	text-align: right;
}

.woocommerce-cart .cart-collaterals .cart_totals .order-total th,
.woocommerce-cart .cart-collaterals .cart_totals .order-total td {
	padding-top: 16px;
	border-top: 1px solid var(--pzs-sand);
}

.woocommerce-cart .cart-collaterals .cart_totals .order-total th {
	font-family: var(--pzs-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--pzs-espresso);
	padding-top: 18px;
}

.woocommerce-cart .cart-collaterals .cart_totals .order-total .amount {
	font-size: 22px;
	font-weight: 500;
	color: var(--pzs-espresso);
}

.woocommerce .cart_totals .woocommerce-shipping-destination {
	font-size: 12px;
	color: var(--pzs-muted);
	margin: 4px 0 0;
}

.woocommerce .cart_totals .shipping-calculator-button {
	font-size: 12px;
	color: var(--pzs-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Shipping options carry radio buttons, so they read left-aligned even though
   the rest of the totals column is flush right. */
.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
	text-align: left;
}

.woocommerce ul#shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul#shipping_method li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0 0 9px;
	padding: 0;
	font-size: 13px;
	line-height: 1.5;
	text-align: left;
	text-indent: 0;
}

.woocommerce ul#shipping_method li input {
	margin: 3px 0 0;
	flex: 0 0 auto;
	accent-color: var(--pzs-gold);
}

.woocommerce ul#shipping_method li label {
	display: inline;
	margin: 0;
	font-family: var(--pzs-text);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
	color: var(--pzs-body);
}

.woocommerce ul#shipping_method li:last-child {
	margin-bottom: 0;
}

.woocommerce .wc-proceed-to-checkout {
	padding: 20px 0 0;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	padding: 19px 20px;
	font-size: 12px;
	text-align: center;
}

/* --- Free shipping progress --- */

.pzs-ship {
	margin: 0 0 22px;
	padding: 18px 20px;
	background: var(--pzs-beige);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
}

.pzs-ship__message {
	margin: 0 0 12px;
	font-family: var(--pzs-text);
	font-size: 13px;
	line-height: 1.5;
	color: var(--pzs-body);
	text-align: center;
}

.pzs-ship__message strong {
	color: var(--pzs-espresso);
	font-weight: 600;
}

.pzs-ship__track {
	height: 4px;
	background: var(--pzs-sand);
	border-radius: var(--pzs-radius);
	overflow: hidden;
}

.pzs-ship__fill {
	display: block;
	height: 100%;
	background: var(--pzs-gold);
	border-radius: var(--pzs-radius);
	transition: width 0.5s ease;
}

.pzs-ship--met .pzs-ship__fill {
	background: var(--pzs-espresso);
}

/* --- Empty cart --- */

.woocommerce .cart-empty,
.woocommerce .wc-empty-cart-message p {
	font-family: var(--pzs-serif);
	font-size: 26px;
	font-weight: 600;
	color: var(--pzs-espresso);
	text-align: center;
	margin: 50px 0 20px;
}

.woocommerce .return-to-shop {
	text-align: center;
	margin-bottom: 70px;
}

/* ============================================================
   Checkout
   ============================================================ */

/* Details left, order summary in a sticky rail right. */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	grid-template-rows: auto 1fr;
	gap: 0 48px;
	align-items: start;
}

.woocommerce-checkout form.checkout #customer_details {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.woocommerce-checkout form.checkout #order_review_heading {
	grid-column: 2;
	grid-row: 1;
	margin-top: 0;
}

.woocommerce-checkout form.checkout #order_review {
	grid-column: 2;
	grid-row: 2;
	position: sticky;
	top: 24px;
}

/* Billing and additional fields stack rather than sitting side by side. */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	float: none;
	width: 100%;
	margin-bottom: 34px;
}

.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
	font-family: var(--pzs-serif);
	font-size: 27px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--pzs-espresso);
	margin: 0 0 20px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--pzs-sand);
}

/* --- Form fields --- */

.woocommerce form .form-row {
	margin: 0 0 18px;
	padding: 0;
}

.woocommerce form .form-row label {
	display: block;
	margin-bottom: 8px;
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.6px;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--pzs-muted);
}

.woocommerce form .form-row label .required {
	color: var(--pzs-flag);
	border: 0;
	text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form .form-row .select2-container .select2-selection--single {
	width: 100%;
	height: auto;
	padding: 14px 15px;
	font-family: var(--pzs-text);
	font-size: 15px;
	line-height: 1.5;
	color: var(--pzs-espresso);
	background: var(--pzs-ivory);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	transition: border-color 0.3s ease;
	box-shadow: none;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	outline: none;
	border-color: var(--pzs-gold);
}

.woocommerce form .form-row textarea {
	min-height: 110px;
	resize: vertical;
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
	border-color: var(--pzs-flag);
}

/* WooCommerce lays half-width rows out with floats, which only works if both
   sides float and everything after is cleared. Gridding the field wrapper
   instead removes the float entirely, so a half-width row can never drag the
   rows below it out of place. */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 18px;
}

.woocommerce form .form-row {
	float: none;
	width: 100%;
	min-width: 0;
}

.woocommerce form .form-row-first {
	grid-column: 1;
}

.woocommerce form .form-row-last {
	grid-column: 2;
}

.woocommerce form .form-row-wide,
.woocommerce form .form-row.notes,
.woocommerce form .form-row.create-account,
.woocommerce form .form-row.place-order {
	grid-column: 1 / -1;
}

.woocommerce form .form-row .woocommerce-input-wrapper {
	display: block;
	width: 100%;
}

.woocommerce-checkout .select2-container .select2-selection--single {
	height: auto;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.5;
	color: var(--pzs-espresso);
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
	top: 50%;
	transform: translateY(-50%);
	right: 10px;
}

/* --- Order review --- */

.woocommerce-checkout #order_review > .shop_table,
.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	background: var(--pzs-beige);
	border: 1px solid var(--pzs-sand);
	border-bottom: 0;
	border-radius: 2px 2px 0 0;
	margin: 0;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
	background: transparent;
	padding: 14px 22px;
	font-family: var(--pzs-text);
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0;
	text-transform: none;
	color: var(--pzs-body);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th {
	font-family: var(--pzs-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 1.8px;
	text-transform: uppercase;
	color: var(--pzs-muted);
	padding-top: 18px;
	padding-bottom: 14px;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name {
	color: var(--pzs-espresso);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-quantity {
	color: var(--pzs-muted);
	font-weight: 400;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th {
	font-weight: 400;
	color: var(--pzs-muted);
	text-transform: none;
	letter-spacing: 0;
	font-family: var(--pzs-text);
	font-size: 14px;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .order-total th {
	font-family: var(--pzs-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--pzs-espresso);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .order-total .amount {
	font-size: 21px;
	font-weight: 500;
	color: var(--pzs-espresso);
}

/* --- Payment --- */

.woocommerce-checkout #payment {
	background: var(--pzs-beige);
	border: 1px solid var(--pzs-sand);
	border-top: 0;
	border-radius: 0 0 2px 2px;
	padding: 4px 22px 22px;
}

.woocommerce-checkout #payment ul.payment_methods {
	padding: 18px 0 0;
	border-bottom: 1px solid var(--pzs-sand);
	margin: 0 0 18px;
}

.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0 0 12px;
	font-family: var(--pzs-text);
	font-size: 14px;
	color: var(--pzs-body);
	list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li label {
	font-family: var(--pzs-text);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--pzs-espresso);
	display: inline;
}

.woocommerce-checkout #payment div.payment_box {
	background: var(--pzs-ivory);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	font-family: var(--pzs-text);
	font-size: 13px;
	line-height: 1.65;
	color: var(--pzs-muted);
	margin: 10px 0 0;
	padding: 14px 16px;
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--pzs-ivory);
}

.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
	font-family: var(--pzs-text);
	font-size: 13px;
	line-height: 1.65;
	color: var(--pzs-muted);
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text p {
	font-size: 12px;
	line-height: 1.7;
	color: var(--pzs-muted);
}

.woocommerce-checkout #payment a {
	color: var(--pzs-gold);
}

.woocommerce #payment #place_order,
.woocommerce-checkout #payment #place_order {
	width: 100%;
	float: none;
	margin: 6px 0 0;
	padding: 19px 30px;
	font-size: 12px;
}

/* --- Research-use acknowledgement --- */

.pzs-ack-spacer,
.woocommerce-checkout .pzc-ack {
	margin: 16px 0 20px;
}

/* --- Login and coupon prompts --- */

.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout .checkout_coupon {
	background: var(--pzs-ivory);
	border: 1px solid var(--pzs-sand);
	border-radius: var(--pzs-radius);
	padding: 24px 22px;
	margin: 0 0 26px;
}

.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
	grid-column: 1 / -1;
}

/* ============================================================
   Cart and checkout, small screens
   ============================================================ */

@media (max-width: 980px) {
	.woocommerce-cart .woocommerce,
	.woocommerce-checkout form.checkout {
		display: block;
	}

	.woocommerce-cart .cart-collaterals,
	.woocommerce-checkout form.checkout #order_review {
		position: static;
		margin-top: 32px;
	}

	.woocommerce-checkout form.checkout #order_review_heading {
		margin-top: 36px;
	}
}

@media (max-width: 600px) {
	.woocommerce table.cart td.actions .coupon {
		float: none;
		flex-wrap: wrap;
		margin-bottom: 12px;
	}

	.woocommerce table.cart td.actions .coupon .input-text {
		width: 100%;
	}

	.woocommerce table.cart td.actions .button {
		width: 100%;
	}

	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last {
		width: 100%;
		float: none;
	}

	.woocommerce table.cart td.product-thumbnail {
		width: auto;
	}
}

/* ============================================================
   Notices
   ============================================================ */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	font-family: var(--pzs-text);
	font-size: 14px;
	background: var(--pzs-beige);
	border-top: 0;
	border-left: 3px solid var(--pzs-gold);
	border-radius: var(--pzs-radius);
	color: var(--pzs-body);
	padding: 16px 20px 16px 22px;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	display: none;
}

.woocommerce-error {
	border-left-color: var(--pzs-flag);
}

.woocommerce-message .button,
.woocommerce-info .button {
	padding: 10px 20px;
	font-size: 10px;
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 1024px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.single-product div.product .product_title {
		font-size: 38px;
	}
}

@media (max-width: 767px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 16px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 18px !important;
	}

	.woocommerce .woocommerce-products-header__title,
	.woocommerce .page-title {
		font-size: 34px;
	}

	.single-product div.product .product_title {
		font-size: 30px;
	}

	.woocommerce div.product form.cart .variations select {
		max-width: 100%;
	}

	.woocommerce div.product form.cart .button.single_add_to_cart_button {
		width: 100%;
		margin-top: 12px;
	}

	.woocommerce table.shop_table td {
		padding: 14px 10px;
	}
}

@media (max-width: 420px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   v2 design alignment
   Pill buttons, softer cards and the drawer re-skinned to match the new
   homepage. Kept as one block so the change is easy to review or revert.
   ============================================================ */

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.pzs-drawer__btn {
	border-radius: 999px;
	font-weight: 500;
	letter-spacing: .2em;
	transition: background-color .4s var(--pzs-ease), color .4s var(--pzs-ease), border-color .4s var(--pzs-ease), transform .4s var(--pzs-ease);
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.pzs-drawer__btn--solid:hover {
	color: #fff;
}

.woocommerce ul.products li.product,
.woocommerce ul.products li.product-category {
	border-color: rgba(107, 76, 53, .16);
	border-radius: 20px;
	overflow: hidden;
	text-align: left;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-weight: 500;
	font-size: 23px !important;
}

/* --- Drawer --- */

.pzs-drawer {
	width: 440px;
	border-left: 0;
	border-radius: 24px 0 0 24px;
	box-shadow: -30px 0 80px -20px rgba(43, 27, 18, .35);
	transition: transform .55s cubic-bezier(.76, 0, .24, 1);
}

.pzs-drawer-overlay {
	background: rgba(43, 27, 18, .38);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
}

.pzs-drawer__title {
	font-family: var(--pzs-serif) !important;
	font-weight: 400 !important;
	font-size: 30px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.pzs-drawer__thumb img {
	border-radius: 12px;
}

.pzs-drawer__name,
.pzs-drawer__name a {
	font-family: var(--pzs-serif) !important;
	font-size: 20px !important;
	font-weight: 500 !important;
}

.pzs-ship__track {
	height: 3px;
	border-radius: 3px;
	background: rgba(107, 76, 53, .14);
}

.pzs-ship__fill {
	border-radius: 3px;
	background: linear-gradient(90deg, #9C7841, #D9BD86 60%, #B08A4F);
}

.pzs-drawer__ruo {
	border-top: 1px solid rgba(107, 76, 53, .16);
	padding-top: 12px;
}

/* --- Header cart placed by the [pepzora_cart] shortcode --- */

.pzs-cart-slot {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
}

.pzs-cart-slot .pzs-cart__count {
	top: 2px;
	right: -2px;
}

@media (max-width: 480px) {
	.pzs-drawer {
		width: 100vw;
		border-radius: 0;
	}
}
