/* =========================================================================
   PestVive storefront
   White, quiet, product-first. Mobile is the primary canvas.
   ========================================================================= */

:root {
	--pv-ink: #14161a;
	--pv-ink-2: #3d434d;
	--pv-muted: #6b7280;
	--pv-line: #e8eaee;
	--pv-line-2: #f1f2f5;
	--pv-bg: #ffffff;
	--pv-soft: #f7f8f9;
	--pv-brand: #0f7a5a;
	--pv-brand-d: #0b5f46;
	--pv-brand-soft: #edf7f2;
	--pv-sale: #c2410c;
	--pv-r: 14px;
	--pv-r-sm: 10px;
	--pv-r-lg: 20px;
	--pv-max: 1200px;
	--pv-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 10px 28px -14px rgba(16, 24, 40, .16);
	--pv-head-h: 64px;
	--pv-tab-h: 77px;
	--pv-font: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}

/* ---------- Reset against the theme ---------- */
.pv-app,
.pv-app * {
	box-sizing: border-box;
}

/* Core WordPress utility classes: the block-library stylesheet is removed for
   speed, so the few helpers WooCommerce relies on are redefined here. */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.pv-app .wd-skip-navigation,
.pv-app .wd-skip-content,
.pv-app .skip-link {
	position: absolute;
	left: -9999px;
	top: 8px;
	z-index: 300;
}

.pv-app .skip-link:focus {
	left: 12px;
	background: #fff;
	padding: 10px 16px;
	border-radius: 10px;
	box-shadow: var(--pv-shadow);
	font-size: 14px;
	color: var(--pv-ink);
}

body.pv-app {
	background: var(--pv-bg);
	color: var(--pv-ink);
	font-family: var(--pv-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	margin: 0;
	padding: 0;
}

body.pv-app .whb-header,
body.pv-app footer.wd-footer,
body.pv-app .wd-footer,
body.pv-app .wd-page-wrapper > .wd-header,
body.pv-app .wd-promo-popup,
body.pv-app .wd-toolbar {
	display: none !important;
}

body.pv-app #wpadminbar {
	position: fixed;
}

.pv-app img {
	max-width: 100%;
	height: auto;
	display: block;
}

.pv-app a {
	color: inherit;
	text-decoration: none;
}

.pv-app button {
	font-family: inherit;
	cursor: pointer;
}

.pv-app h1,
.pv-app h2,
.pv-app h3,
.pv-app h4 {
	margin: 0;
	font-weight: 650;
	letter-spacing: -.018em;
	line-height: 1.2;
	color: var(--pv-ink);
}

.pv-app p {
	margin: 0;
}

.pv-app ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-wrap {
	width: 100%;
	max-width: var(--pv-max);
	margin: 0 auto;
	padding: 0 18px;
}

.pv-i {
	flex: none;
}

/* ---------- Buttons ---------- */
.pv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 20px;
	border-radius: 999px;
	border: 1px solid transparent;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -.01em;
	transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
	cursor: pointer;
	text-align: center;
}

.pv-btn--primary {
	background: var(--pv-brand);
	color: #fff;
}

.pv-btn--primary:hover {
	background: var(--pv-brand-d);
	color: #fff;
}

.pv-btn--ghost {
	background: #fff;
	color: var(--pv-ink);
	border-color: var(--pv-line);
}

.pv-btn--ghost:hover {
	border-color: var(--pv-ink);
}

.pv-btn--light {
	background: #fff;
	color: var(--pv-brand-d);
}

.pv-btn--light:hover {
	background: var(--pv-brand-soft);
}

.pv-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--pv-brand-d);
	white-space: nowrap;
}

.pv-link:hover {
	color: var(--pv-brand);
}

.pv-iconbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--pv-ink);
	position: relative;
}

.pv-iconbtn:hover {
	background: var(--pv-soft);
}

/* ---------- Utility strip ---------- */
.pv-utility {
	background: var(--pv-ink);
	color: #f2f4f5;
	font-size: 12.5px;
	letter-spacing: .01em;
}

.pv-utility__in {
	display: flex;
	align-items: center;
	gap: 26px;
	justify-content: center;
	min-height: 34px;
}

.pv-utility__item {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	opacity: .92;
	white-space: nowrap;
}

.pv-utility__item--hide-sm {
	display: none;
}

.pv-utility__in {
	overflow: hidden;
}

/* ---------- Header ---------- */
.pv-head {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(255, 255, 255, .96);
	backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--pv-line);
}

.admin-bar .pv-head {
	top: 32px;
}

.pv-head__in {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: var(--pv-head-h);
}

.pv-logo {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	flex: none;
}

.pv-logo__mark {
	width: 22px;
	height: 22px;
	border-radius: 7px;
	background:
		radial-gradient(circle at 30% 30%, #ffffff 0 18%, transparent 19%),
		linear-gradient(135deg, var(--pv-brand) 0%, #17a074 100%);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25);
}

.pv-logo__word {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -.03em;
}

.pv-search {
	display: none;
	align-items: center;
	flex: 1 1 auto;
	max-width: 460px;
	height: 42px;
	padding: 0 6px 0 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	background: var(--pv-soft);
	gap: 9px;
}

.pv-search__icon {
	color: var(--pv-muted);
	display: flex;
}

.pv-search__input {
	flex: 1;
	border: 0;
	background: transparent;
	outline: none;
	font-family: inherit;
	font-size: 14.5px;
	color: var(--pv-ink);
	min-width: 0;
}

.pv-search__go {
	display: none;
	border: 0;
	background: var(--pv-ink);
	color: #fff;
	height: 32px;
	padding: 0 16px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
}

.pv-nav {
	display: none;
	align-items: center;
	gap: 4px;
	margin-left: auto;
}

.pv-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 8px 12px;
	border: 0;
	background: transparent;
	border-radius: 8px;
	font-size: 14.5px;
	font-weight: 550;
	color: var(--pv-ink-2);
	white-space: nowrap;
}

.pv-nav__link:hover {
	background: var(--pv-soft);
	color: var(--pv-ink);
}

.pv-nav__link.is-active {
	color: var(--pv-brand-d);
	background: var(--pv-brand-soft);
}

.pv-head__actions {
	display: flex;
	align-items: center;
	gap: 2px;
	margin-left: auto;
}

.pv-cartbtn {
	position: relative;
}

.pv-cart-count {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--pv-ink);
	color: #fff;
	font-size: 10.5px;
	font-weight: 700;
	line-height: 17px;
	text-align: center;
	display: none;
}

.pv-cart-count.has-items {
	display: block;
}

/* ---------- Search + actions by device ----------
   Phone: the search field is the header. The account and cart icons are gone
   because the tab bar already carries both, and the field takes the width they
   were using.
   Tablet: same field plus the two icons, no tab bar.
   Desktop: full navigation with the search field between logo and links. */
.pv-search {
	display: flex;
	min-width: 0;
	flex: 1 1 auto;
	height: 40px;
	padding: 0 8px 0 12px;
	gap: 7px;
}

.pv-search__input {
	/* 16px stops iOS Safari from zooming the whole page on focus. */
	font-size: 16px;
}

.pv-search__go {
	display: none;
}

@media (max-width: 767px) {
	.pv-head__actions {
		display: none;
	}

	.pv-head__in {
		gap: 8px;
	}

	.pv-logo__word {
		font-size: 18px;
	}
}

/* ---------- Category drawer ---------- */
.pv-drawer {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: none;
}

.pv-drawer.is-open {
	display: block;
}

.pv-drawer__scrim {
	position: absolute;
	inset: 0;
	background: rgba(12, 16, 20, .42);
	backdrop-filter: blur(2px);
	animation: pv-fade .18s ease;
}

.pv-drawer__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: min(88vw, 380px);
	background: #fff;
	display: flex;
	flex-direction: column;
	box-shadow: 12px 0 40px rgba(12, 16, 20, .18);
	animation: pv-slide .22s cubic-bezier(.32, .72, 0, 1);
}

@keyframes pv-fade {
	from { opacity: 0; }
}

@keyframes pv-slide {
	from { transform: translateX(-100%); }
}

.pv-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 12px 14px 20px;
	border-bottom: 1px solid var(--pv-line);
}

.pv-drawer__title {
	font-weight: 650;
	font-size: 16px;
}

.pv-drawer__body {
	flex: 1;
	overflow-y: auto;
	padding: 14px 20px 24px;
	-webkit-overflow-scrolling: touch;
}

.pv-drawer__all {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--pv-soft);
	font-weight: 600;
	font-size: 15px;
	margin-bottom: 18px;
}

/* ---------- Drawer navigation tree ---------- */
.pv-dnav,
.pv-dnav__sub {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pv-dnav {
	border-top: 1px solid var(--pv-line-2);
}

.pv-dnav__item {
	border-bottom: 1px solid var(--pv-line-2);
}

.pv-dnav__row {
	display: flex;
	align-items: center;
	gap: 6px;
	min-height: 52px;
}

.pv-dnav__link {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 15px 0;
	font-size: 15.5px;
	font-weight: 600;
	color: var(--pv-ink);
	text-decoration: none;
}

.pv-dnav__name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pv-dnav__num {
	font-size: 11.5px;
	font-weight: 600;
	color: var(--pv-muted);
	background: var(--pv-soft);
	border-radius: 999px;
	padding: 2px 7px;
	line-height: 1.5;
}

.pv-dnav__item.is-current > .pv-dnav__row .pv-dnav__name {
	color: var(--pv-brand-d);
}

.pv-dnav__item.is-current > .pv-dnav__row .pv-dnav__num {
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
}

.pv-dnav__toggle {
	flex: none;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	color: var(--pv-muted);
	border-radius: 10px;
	cursor: pointer;
}

.pv-dnav__toggle:active {
	background: var(--pv-soft);
}

.pv-dnav__toggle svg {
	transition: transform .18s ease;
}

.pv-dnav__item.is-open > .pv-dnav__row .pv-dnav__toggle svg {
	transform: rotate(180deg);
}

.pv-dnav__panel {
	padding: 0 0 8px 12px;
	margin-left: 6px;
	border-left: 1px solid var(--pv-line);
}

.pv-dnav__sub .pv-dnav__item {
	border-bottom: 0;
}

.pv-dnav__sub .pv-dnav__row {
	min-height: 44px;
}

.pv-dnav__sub .pv-dnav__link {
	padding: 10px 0;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--pv-ink-2);
}

.pv-dnav__sub .pv-dnav__num {
	font-size: 11px;
	background: transparent;
	padding: 0;
}

.pv-dnav__sub .pv-dnav__panel {
	padding-left: 10px;
	margin-left: 4px;
}

.pv-drawer__foot {
	border-top: 1px solid var(--pv-line);
	padding: 14px 20px calc(20px + env(safe-area-inset-bottom));
	display: grid;
	gap: 10px;
	font-size: 13.5px;
	color: var(--pv-muted);
}

.pv-drawer__foot a {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* ---------- Tab bar ---------- */
.pv-tabbar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	height: calc(var(--pv-tab-h) + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .97);
	backdrop-filter: blur(14px);
	border-top: 1px solid var(--pv-line);
	padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
}

.pv-tab {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	padding: 4px 0 2px;
	border: 0;
	background: transparent;
	color: var(--pv-muted);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .01em;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

/* One line per label: the tab bar keeps a fixed height, so a label that wraps
   would push the icon row out of the bar. Long labels shrink instead. */
.pv-tab__txt {
	white-space: nowrap;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 400px) {
	.pv-tab {
		font-size: 9.9px;
	}

	.pv-tab__ring {
		width: 36px;
		height: 36px;
	}
}

.pv-tab__ring {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	transition: background .2s ease, box-shadow .2s ease, color .2s ease, transform .2s ease;
}

.pv-tab.is-current {
	color: var(--pv-brand-d);
}

.pv-tab.is-current .pv-tab__ring {
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
	box-shadow: 0 0 0 1.6px var(--pv-brand) inset;
	transform: translateY(-1px);
}

.pv-tab__ring .pv-cart-count {
	top: -1px;
	right: -3px;
	background: var(--pv-sale);
}

/* ---------- Main / sections ---------- */
.pv-main {
	min-height: 60vh;
	padding-bottom: calc(var(--pv-tab-h) + 14px + env(safe-area-inset-bottom));
}

.pv-section {
	padding: 40px 0;
}

.pv-section--soft {
	background: var(--pv-soft);
}

.pv-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
}

.pv-section__head h2 {
	font-size: clamp(21px, 4.6vw, 30px);
}

.pv-kicker {
	display: block;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pv-brand-d);
	margin-bottom: 7px;
}

.pv-kicker--light {
	color: #b8ecd8;
}

/* ---------- Hero ---------- */
.pv-hero {
	padding: 26px 0 30px;
	background: #fff;
	border-bottom: 1px solid var(--pv-line-2);
}

.pv-hero__grid {
	display: grid;
	gap: 26px;
}

.pv-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 13px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	background: #fff;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--pv-ink-2);
	margin-bottom: 16px;
}

.pv-hero h1 {
	font-size: clamp(30px, 8.2vw, 54px);
	letter-spacing: -.035em;
	line-height: 1.06;
}

.pv-hero h1 em {
	font-style: normal;
	color: var(--pv-brand);
}

.pv-hero__copy .pv-hero__lede {
	margin: 14px 0 0;
	font-size: 15.5px;
	color: var(--pv-ink-2);
	max-width: 52ch;
}

.pv-hero__copy .pv-hero__wholesale {
	max-width: 52ch;
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--pv-muted);
}

.pv-hero__wholesale a {
	color: var(--pv-brand-d);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.pv-hero__wholesale a:hover {
	color: var(--pv-ink);
}

.pv-hero__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.pv-hero__points {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: 20px;
	font-size: 13.5px;
	color: var(--pv-muted);
}

.pv-hero__points li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.pv-hero__points svg {
	color: var(--pv-brand);
}

.pv-hero__art {
	position: relative;
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	gap: 10px;
	align-items: start;
}

.pv-hero__shot {
	margin: 0;
	border-radius: var(--pv-r-lg);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--pv-line);
	padding: 10px;
}

.pv-hero__shot img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

.pv-hero__shot--b {
	margin-top: 34px;
}

/* Sits under the gallery rather than on top of it: the product packaging is
   the thing a shopper is reading there. */
.pv-hero__tag {
	grid-column: 1 / -1;
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 2px;
	padding: 9px 14px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid var(--pv-line);
	font-size: 11.5px;
	color: var(--pv-muted);
	max-width: 190px;
	line-height: 1.3;
}

.pv-hero__tag strong {
	font-size: 19px;
	color: var(--pv-ink);
	letter-spacing: -.02em;
}

/* ---------- Trust strip ---------- */
.pv-trust {
	border-bottom: 1px solid var(--pv-line-2);
}

.pv-trust__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}

.pv-trust__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 15px 0;
	border-bottom: 1px solid var(--pv-line-2);
	color: var(--pv-brand);
}

.pv-trust__item:last-child {
	border-bottom: 0;
}

.pv-trust__item div {
	display: flex;
	flex-direction: column;
}

.pv-trust__item strong {
	font-size: 13.5px;
	font-weight: 650;
	color: var(--pv-ink);
	letter-spacing: -.01em;
}

.pv-trust__item span {
	font-size: 12.5px;
	color: var(--pv-muted);
}

/* ---------- Categories ---------- */
.pv-cats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}

.pv-cat {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 84px;
	padding: 15px 16px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: #fff;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.pv-cat:hover {
	border-color: #cfd4dc;
	box-shadow: var(--pv-shadow);
	transform: translateY(-1px);
}

.pv-cat__thumb {
	flex: none;
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: var(--pv-soft);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 11px;
}

.pv-cat__thumb img {
	width: 40px;
	height: 40px;
	object-fit: contain;
}

.pv-cat__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

/* With a thumbnail the tile stacks: image, name, count. Two cards per row on
   a phone leave too little width for an inline thumbnail. */
.pv-cat--img {
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 9px;
}

.pv-cat--img .pv-cat__body {
	flex: none;
	width: 100%;
}

.pv-cat--img .pv-cat__go {
	position: absolute;
	top: 15px;
	right: 15px;
	margin: 0;
}

.pv-cat__go {
	flex: none;
	color: var(--pv-muted);
	display: inline-flex;
	margin-left: auto;
	opacity: .7;
}

.pv-cat__name {
	font-size: 15px;
	font-weight: 620;
	letter-spacing: -.015em;
}

.pv-cat__count {
	font-size: 12px;
	color: var(--pv-muted);
}

.pv-cat::after {
	content: "→";
	position: absolute;
	right: 15px;
	top: 15px;
	font-size: 14px;
	color: #c3c9d1;
}

/* ---------- Grid + cards ---------- */
.pv-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

.pv-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	overflow: hidden;
	transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}

.pv-card:hover {
	border-color: #d7dbe2;
	box-shadow: var(--pv-shadow);
	transform: translateY(-2px);
}

.pv-card__media {
	position: relative;
	display: block;
	background: var(--pv-soft);
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.pv-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 6px;
	transition: transform .35s ease;
}

.pv-card:hover .pv-card__media img {
	transform: scale(1.035);
}

.pv-card__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	padding: 3px 8px;
	border-radius: 999px;
	background: var(--pv-sale);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .01em;
}

.pv-card__body {
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding: 11px 11px 12px;
	flex: 1;
}

.pv-card__title {
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -.01em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}

.pv-card__meta {
	min-height: 18px;
}

.pv-stars {
	display: inline-flex;
	align-items: center;
	gap: 1px;
	color: #d6dae0;
}

.pv-star.is-on,
.pv-star.is-half {
	color: #f2a413;
}

.pv-star.is-half {
	opacity: .55;
}

.pv-stars__txt {
	font-size: 11.5px;
	color: var(--pv-muted);
	margin-left: 5px;
	white-space: nowrap;
}

.pv-stars__txt--none {
	color: #9aa1ab;
	font-size: 11px;
}

.pv-card__foot {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px;
	flex-wrap: wrap;
}

.pv-card__price {
	font-size: 14px;
	font-weight: 650;
	color: var(--pv-ink);
}

.pv-card__price del {
	color: #a3a9b3;
	font-weight: 500;
	font-size: 12px;
}

.pv-card__price ins {
	text-decoration: none;
	color: var(--pv-sale);
}

.pv-card__sold {
	font-size: 11px;
	color: var(--pv-muted);
	white-space: nowrap;
}

.pv-card__cta {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	border-radius: 9px;
	border: 1px solid var(--pv-line);
	font-size: 12.5px;
	font-weight: 650;
	color: var(--pv-ink);
	transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.pv-card:hover .pv-card__cta {
	background: var(--pv-brand);
	border-color: var(--pv-brand);
	color: #fff;
}

/* ---------- Pet block ---------- */
.pv-pet {
	display: grid;
	gap: 20px;
	padding: 24px 18px;
	border-radius: var(--pv-r-lg);
	background:
		radial-gradient(900px 300px at 10% 0%, #15795c 0%, transparent 60%),
		linear-gradient(160deg, #0d5e46 0%, #06382a 100%);
	color: #fff;
}

.pv-pet__intro h2 {
	color: #fff;
	font-size: clamp(22px, 5vw, 32px);
	margin-bottom: 10px;
}

.pv-pet__intro .pv-btn--light,
.pv-pet .pv-btn--light {
	color: var(--pv-brand-d) !important;
}

.pv-pet__intro p {
	color: rgba(255, 255, 255, .78);
	font-size: 14.5px;
	max-width: 46ch;
	margin-bottom: 18px;
}

.pv-pet__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}

.pv-pet__card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 118px;
	padding: 12px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .14);
	overflow: hidden;
	transition: background .2s ease, transform .2s ease;
}

.pv-pet__card:hover {
	background: rgba(255, 255, 255, .13);
	transform: translateY(-2px);
}

.pv-pet__thumb {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: .42;
}

.pv-pet__label {
	position: relative;
	font-size: 14px;
	font-weight: 650;
	letter-spacing: -.01em;
}

.pv-pet__count {
	position: relative;
	font-size: 11.5px;
	color: rgba(255, 255, 255, .68);
}

/* ---------- Steps ---------- */
.pv-steps {
	display: grid;
	gap: 12px;
}

.pv-step {
	padding: 18px;
	border-radius: var(--pv-r);
	background: #fff;
	border: 1px solid var(--pv-line);
}

.pv-step__n {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--pv-brand);
	margin-bottom: 8px;
}

.pv-step h3 {
	font-size: 16px;
	margin-bottom: 6px;
}

.pv-step p {
	font-size: 13.8px;
	color: var(--pv-muted);
}

/* ---------- Split cards ---------- */
.pv-split {
	display: grid;
	gap: 12px;
}

.pv-split__card {
	padding: 20px;
	border-radius: var(--pv-r);
	border: 1px solid var(--pv-line);
	background: #fff;
}

.pv-split__card h3 {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	margin-bottom: 8px;
	color: var(--pv-brand-d);
}

.pv-split__card p {
	font-size: 14px;
	color: var(--pv-ink-2);
	margin-bottom: 12px;
}

.pv-list {
	display: grid;
	gap: 7px;
	font-size: 13.5px;
	color: var(--pv-muted);
}

.pv-list li {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	line-height: 1.45;
}

.pv-list svg {
	color: var(--pv-brand);
	margin-top: 3px;
}

.pv-list a {
	color: var(--pv-brand-d);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* ---------- CTA ---------- */
.pv-cta {
	background: var(--pv-ink);
	color: #fff;
	padding: 34px 0;
}

.pv-cta--tight {
	margin-top: 30px;
	padding: 26px 0;
}

.pv-cta__in {
	display: grid;
	gap: 16px;
}

.pv-cta h2 {
	color: #fff;
	font-size: clamp(20px, 4.4vw, 27px);
	margin-bottom: 6px;
}

.pv-cta p {
	color: rgba(255, 255, 255, .68);
	font-size: 14px;
	max-width: 54ch;
}

.pv-cta .pv-btn {
	justify-self: start;
}

/* ---------- Footer ---------- */
.pv-foot {
	border-top: 1px solid var(--pv-line);
	background: #fff;
	padding: 34px 0 26px;
	margin-bottom: calc(72px + env(safe-area-inset-bottom));
}

.pv-foot__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px 14px;
}

.pv-foot__brand {
	grid-column: 1 / -1;
}

.pv-logo--foot .pv-logo__word {
	font-size: 18px;
}

.pv-foot__pitch {
	margin-top: 10px;
	font-size: 13.5px;
	color: var(--pv-muted);
	max-width: 44ch;
}

.pv-foot__note {
	margin-top: 10px;
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 12.5px;
	color: var(--pv-muted);
}

.pv-foot__col h3 {
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pv-muted);
	font-weight: 700;
	margin-bottom: 10px;
}

.pv-foot__col ul {
	display: grid;
	gap: 8px;
	font-size: 13.5px;
}

.pv-foot__col a {
	color: var(--pv-ink-2);
}

.pv-foot__col a:hover {
	color: var(--pv-brand-d);
}

.pv-foot__base {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 26px;
	padding-top: 16px;
	border-top: 1px solid var(--pv-line-2);
	font-size: 12px;
	color: var(--pv-muted);
}

/* ---------- Breadcrumbs ---------- */
.pv-crumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px;
	font-size: 12.5px;
	color: var(--pv-muted);
	padding: 14px 0 0;
}

.pv-crumb a {
	color: var(--pv-muted);
}

.pv-crumb a:hover {
	color: var(--pv-ink);
}

.pv-crumb__sep {
	color: #cbd0d8;
}

.pv-crumb__now {
	color: var(--pv-ink-2);
}

/* ---------- Archive ---------- */
.pv-archive {
	padding-top: 4px;
}

.pv-archive__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 0 16px;
}

.pv-archive__intro h1 {
	font-size: clamp(24px, 6vw, 36px);
	margin-bottom: 8px;
}

.pv-archive__intro p {
	font-size: 14px;
	color: var(--pv-muted);
	max-width: 60ch;
}

.pv-archive__count {
	flex: none;
	align-self: flex-start;
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 7px 13px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	line-height: 1;
	white-space: nowrap;
}

.pv-archive__count strong {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.pv-archive__count span {
	font-size: 11px;
	color: var(--pv-muted);
	text-transform: uppercase;
	letter-spacing: .07em;
}

.pv-chips {
	display: flex;
	gap: 7px;
	overflow-x: auto;
	padding: 4px 0 14px;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.pv-chips::-webkit-scrollbar {
	display: none;
}

.pv-chips {
	-webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 26px), transparent 100%);
	mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 26px), transparent 100%);
}

.pv-chip {
	flex: none;
	display: inline-flex;
	align-items: center;
	height: 34px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid var(--pv-line);
	font-size: 13px;
	font-weight: 550;
	color: var(--pv-ink-2);
	background: #fff;
	white-space: nowrap;
}

.pv-chip.is-on {
	background: var(--pv-ink);
	border-color: var(--pv-ink);
	color: #fff;
}

.pv-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--pv-line-2);
	margin-bottom: 16px;
}

.pv-toolbar__hint {
	display: none;
	font-size: 12.5px;
	color: var(--pv-muted);
}

.pv-sort {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
}

.pv-sort__label {
	font-size: 12.5px;
	color: var(--pv-muted);
}

.pv-sort__select {
	height: 36px;
	border: 1px solid var(--pv-line);
	border-radius: 9px;
	background: #fff;
	padding: 0 28px 0 10px;
	font-family: inherit;
	font-size: 13px;
	color: var(--pv-ink);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9.5 12 15l6-5.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 9px center;
}

.pv-grid--shop {
	margin-bottom: 26px;
}

.pv-pager {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	padding: 6px 0 20px;
	flex-wrap: wrap;
}

.pv-pager__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border: 1px solid var(--pv-line);
	border-radius: 9px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pv-ink-2);
}

.pv-pager__item.current {
	background: var(--pv-ink);
	border-color: var(--pv-ink);
	color: #fff;
}

.pv-empty {
	text-align: center;
	padding: 50px 20px 60px;
}

.pv-empty h2 {
	font-size: 22px;
	margin-bottom: 8px;
}

.pv-empty p {
	color: var(--pv-muted);
	font-size: 14px;
	margin-bottom: 18px;
}

/* ---------- Product page ---------- */
.pv-single {
	padding-bottom: calc(150px + env(safe-area-inset-bottom));
}

.pv-pdp {
	display: grid;
	gap: 22px;
	padding: 14px 0 8px;
}

.pv-gallery {
	display: grid;
	gap: 8px;
}

.pv-gallery__stage {
	position: relative;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	overflow: hidden;
	background: #fff;
	aspect-ratio: 1 / 1;
}

.pv-gallery__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform .18s ease;
	will-change: transform;
}

.pv-gallery__stage.is-zooming .pv-gallery__img {
	transform: scale(2);
	cursor: zoom-out;
}

.pv-gallery__hint {
	position: absolute;
	right: 10px;
	bottom: 10px;
	display: none;
	align-items: center;
	gap: 5px;
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(20, 22, 26, .72);
	color: #fff;
	font-size: 11px;
	pointer-events: none;
}

.pv-gallery__thumbs {
	display: flex;
	gap: 7px;
	overflow-x: auto;
	scrollbar-width: none;
}

.pv-gallery__thumbs::-webkit-scrollbar {
	display: none;
}

.pv-thumb {
	flex: none;
	width: 58px;
	height: 58px;
	padding: 0;
	border: 1px solid var(--pv-line);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}

.pv-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pv-thumb.is-on {
	border-color: var(--pv-ink);
}

.pv-summary {
	display: grid;
	gap: 12px;
	align-content: start;
}

.pv-flag {
	justify-self: start;
	padding: 4px 10px;
	border-radius: 999px;
	background: #fdece4;
	color: var(--pv-sale);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.pv-title {
	font-size: clamp(21px, 5.2vw, 30px);
	letter-spacing: -.025em;
	line-height: 1.22;
}

.pv-ratingrow {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
}

.pv-pricerow {
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: nowrap;
	padding: 10px 0 2px;
	border-top: 1px solid var(--pv-line-2);
}

.pv-price {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -.03em;
	color: var(--pv-ink);
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: nowrap;
	white-space: nowrap;
}

.pv-price del {
	font-size: 15px;
	font-weight: 500;
	color: #a3a9b3;
}

.pv-price ins {
	text-decoration: none;
}

.pv-price .woocommerce-Price-currencySymbol {
	font-size: .8em;
}

.pv-sold {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
	font-size: 12px;
	font-weight: 650;
	white-space: nowrap;
}

.pv-short {
	font-size: 14.5px;
	color: var(--pv-ink-2);
}

/* Variations */
.pv-vform {
	display: grid;
	gap: 14px;
	margin-top: 4px;
}

.pv-options {
	display: grid;
	gap: 14px;
}

.pv-opt__head {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 8px;
}

.pv-opt__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pv-muted);
}

.pv-opt__picked {
	font-size: 13px;
	font-weight: 600;
	color: var(--pv-ink);
}

.pv-opt__select {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.pv-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pv-pill {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 1px;
	min-width: 82px;
	padding: 8px 14px;
	border-radius: 11px;
	border: 1px solid var(--pv-line);
	background: #fff;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--pv-ink-2);
	transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.pv-pill__t {
	font-weight: 650;
	letter-spacing: -.01em;
}

.pv-pill__p {
	font-size: 11.5px;
	font-weight: 500;
	color: var(--pv-muted);
}

.pv-pill.is-on .pv-pill__p {
	color: rgba(255, 255, 255, .72);
}

.pv-pill:hover {
	border-color: #b9c0ca;
}

.pv-pill.is-on {
	border-color: var(--pv-ink);
	background: var(--pv-ink);
	color: #fff;
}

.pv-buy {
	display: flex;
	gap: 10px;
	align-items: stretch;
	margin-top: 4px;
}

.pv-qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	height: 46px;
	padding: 0 4px;
	flex: none;
}

.pv-qty__btn {
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	color: var(--pv-ink-2);
	border-radius: 50%;
}

.pv-qty__btn:hover {
	background: var(--pv-soft);
}

.pv-qty input.qty {
	width: 34px;
	height: 100%;
	border: 0;
	background: transparent;
	text-align: center;
	font-family: inherit;
	font-size: 15px;
	font-weight: 650;
	color: var(--pv-ink);
	-moz-appearance: textfield;
	appearance: textfield;
	outline: none;
}

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

.pv-nav__link--btn {
	background: transparent !important;
	border: 0;
}

.pv-search__go {
	display: none !important;
}

.pv-burger {
	background: transparent !important;
	border: 0;
}

.pv-btn--add {
	flex: 1;
	min-width: 0;
	min-height: 46px;
}

.pv-buy .pv-btn--add.disabled,
.pv-buy .pv-btn--add:disabled {
	opacity: .45;
	cursor: not-allowed;
}

.woocommerce-variation-price {
	display: none;
}

.woocommerce-variation-availability {
	font-size: 13px;
	color: var(--pv-brand-d);
	margin-bottom: 6px;
}

.woocommerce-variation-availability p {
	margin: 0;
}

.pv-stock--out {
	color: var(--pv-sale);
	font-weight: 600;
	font-size: 14px;
}

/* Shipping block */
.pv-ship {
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 13px 14px;
	background: var(--pv-soft);
	display: grid;
	gap: 7px;
}

.pv-ship__head {
	display: flex;
	align-items: center;
	gap: 9px;
	flex-wrap: wrap;
}

.pv-ship__badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 9px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--pv-line);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pv-brand-d);
}

.pv-ship__head strong {
	font-size: 14px;
	letter-spacing: -.01em;
}

.pv-ship__row {
	font-size: 13px;
	color: var(--pv-ink-2);
}

.pv-ship__wh {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 12.5px;
	color: var(--pv-muted);
}

.pv-ship__wh b {
	font-weight: 600;
	color: var(--pv-ink-2);
}

.pv-assure {
	display: grid;
	gap: 7px;
	font-size: 13px;
	color: var(--pv-muted);
	padding-top: 2px;
}

.pv-assure li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.pv-assure svg {
	color: var(--pv-brand);
}

/* Accordion */
.pv-details {
	margin: 26px 0 10px;
	border-top: 1px solid var(--pv-line);
}

.pv-acc {
	border-bottom: 1px solid var(--pv-line);
}

.pv-acc__btn {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 17px 2px;
	border: 0;
	background: transparent;
	font-size: 15px;
	font-weight: 650;
	letter-spacing: -.01em;
	color: var(--pv-ink);
	text-align: left;
}

.pv-acc__btn svg {
	transition: transform .2s ease;
	color: var(--pv-muted);
}

.pv-acc__btn.is-open svg {
	transform: rotate(180deg);
}

.pv-acc__panel {
	padding: 0 2px 20px;
}

.pv-prose {
	font-size: 14.5px;
	color: var(--pv-ink-2);
	line-height: 1.68;
	display: grid;
	gap: 12px;
}

.pv-prose a {
	color: var(--pv-brand-d);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* The theme resets every list to list-style:none / padding:0, which turns a
   guide's bullet points into plain stacked lines. Put the markers back inside
   article bodies only, so navigation lists stay as designed. */
.pv-article__body ul,
.pv-article__body ol {
	margin: 0;
	padding-left: 22px;
}

.pv-article__body ul {
	list-style: disc;
}

.pv-article__body ol {
	list-style: decimal;
}

.pv-article__body li {
	display: list-item;
	list-style: inherit;
	padding-left: 2px;
}

.pv-article__body li + li {
	margin-top: 7px;
}

.pv-article__body li::marker {
	color: var(--pv-brand-d);
	font-weight: 700;
}

.pv-article__body strong {
	color: var(--pv-ink);
	font-weight: 650;
}

.pv-spec {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}

.pv-spec th,
.pv-spec td {
	text-align: left;
	padding: 9px 0;
	border-bottom: 1px solid var(--pv-line-2);
	vertical-align: top;
}

.pv-spec th {
	width: 38%;
	color: var(--pv-muted);
	font-weight: 550;
}

.pv-spec td {
	color: var(--pv-ink-2);
}

.pv-related {
	padding: 26px 0 10px;
}

/* Buy bar (mobile) */
.pv-buybar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: calc(var(--pv-tab-h) + env(safe-area-inset-bottom));
	z-index: 80;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 14px;
	background: rgba(255, 255, 255, .97);
	backdrop-filter: blur(14px);
	border-top: 1px solid var(--pv-line);
	/* Parked fully behind the tab bar: one bar height plus the tab bar height. */
	transform: translateY(calc(100% + var(--pv-tab-h) + env(safe-area-inset-bottom)));
	opacity: 0;
	visibility: hidden;
	transition: transform .24s cubic-bezier(.32, .72, 0, 1), opacity .16s ease, visibility 0s linear .24s;
}

.pv-buybar.is-on {
	transform: translateY(0);
	opacity: 1;
	visibility: visible;
	transition: transform .24s cubic-bezier(.32, .72, 0, 1), opacity .12s ease;
}

.pv-buybar__price {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -.02em;
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}

.pv-buybar__price span {
	font-size: 11px;
	font-weight: 500;
	color: var(--pv-muted);
}

.pv-buybar__btn {
	min-height: 42px;
	padding: 0 22px;
	font-size: 14px;
}

/* Notices */
.pv-notices:empty {
	display: none;
}

.pv-notices .woocommerce-message,
.pv-notices .woocommerce-info,
.pv-notices .woocommerce-error {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--pv-brand-soft);
	border: 1px solid #cfe9dd;
	font-size: 13.5px;
	color: var(--pv-brand-d);
	margin: 0 0 14px;
}

.pv-notices .woocommerce-error {
	background: #fdeceb;
	border-color: #f6cdc9;
	color: #9f2a1c;
}

.pv-notices .woocommerce-message .button {
	margin-left: auto;
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
}

/* Toast */
.pv-toast {
	position: fixed;
	left: 50%;
	bottom: calc(140px + env(safe-area-inset-bottom));
	transform: translate(-50%, 20px);
	z-index: 300;
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 11px 16px;
	border-radius: 999px;
	background: var(--pv-ink);
	color: #fff;
	font-size: 13.5px;
	font-weight: 600;
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease, transform .2s ease;
	max-width: calc(100vw - 32px);
}

.pv-toast.is-on {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* =========================================================================
   Larger screens
   ========================================================================= */

/* =========================================================================
   Inner pages: cart, checkout, account
   ========================================================================= */

.pv-page {
	padding: 18px 0 56px;
}

.pv-pagehead {
	padding: 4px 0 18px;
	border-bottom: 1px solid var(--pv-line);
	margin-bottom: 20px;
}

.pv-pagehead__title {
	margin: 0 0 6px;
	font-size: 26px;
	line-height: 1.2;
	letter-spacing: -.02em;
	font-weight: 700;
}

.pv-pagehead__sub {
	margin: 0;
	color: var(--pv-muted);
	font-size: 14.5px;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.pv-trust--tight {
	margin-top: 34px;
	border-top: 1px solid var(--pv-line);
	border-bottom: 0;
}

/* ---------- WooCommerce surface used by the shortcodes ---------- */
.pv-woo {
	font-size: 15px;
	color: var(--pv-ink);
}

.pv-woo h1,
.pv-woo h2,
.pv-woo h3 {
	font-size: 18px;
	letter-spacing: -.01em;
	margin: 0 0 12px;
	font-weight: 700;
	line-height: 1.3;
}

.pv-woo p {
	margin: 0 0 12px;
}

.pv-woo a {
	color: var(--pv-brand);
	text-decoration: none;
}

.pv-woo a:hover {
	text-decoration: underline;
}

/* Buttons */
.pv-woo .button,
.pv-woo button.button,
.pv-woo input.button,
.pv-woo a.button,
.pv-woo .checkout-button,
.pv-woo #place_order {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 22px;
	border: 0;
	border-radius: 999px;
	background: var(--pv-brand);
	color: #fff;
	font-size: 14.5px;
	font-weight: 650;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	cursor: pointer;
	transition: background .16s ease, transform .16s ease;
	width: auto;
}

.pv-woo .button:hover,
.pv-woo .checkout-button:hover,
.pv-woo #place_order:hover {
	background: var(--pv-brand-d);
	color: #fff;
	text-decoration: none;
}

.pv-woo .button:disabled,
.pv-woo .button[disabled] {
	opacity: .55;
	cursor: not-allowed;
}

.pv-woo .button--outline,
.pv-woo .return-to-shop .button {
	background: transparent;
	color: var(--pv-ink);
	border: 1px solid var(--pv-line);
}

.pv-woo .return-to-shop .button:hover {
	background: var(--pv-soft);
	color: var(--pv-ink);
}

/* Tables */
.pv-woo table.shop_table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 0;
	margin: 0 0 18px;
	background: #fff;
	border-radius: var(--pv-r);
	overflow: hidden;
}

.pv-woo table.shop_table thead th {
	background: var(--pv-soft);
	color: var(--pv-ink-2);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 11px 12px;
	border: 0;
	text-align: left;
}

.pv-woo table.shop_table td {
	padding: 14px 12px;
	border: 0;
	border-top: 1px solid var(--pv-line-2);
	vertical-align: middle;
	font-size: 14.5px;
	color: var(--pv-ink-2);
}

.pv-woo table.shop_table td.product-name {
	color: var(--pv-ink);
	font-weight: 600;
}

.pv-woo table.shop_table td.product-name a {
	color: var(--pv-ink);
	font-weight: 600;
}

/* Cart */
.pv-woo--cart table.shop_table.cart td.product-thumbnail img {
	width: 64px;
	height: 64px;
	object-fit: contain;
	background: var(--pv-soft);
	border-radius: var(--pv-r-sm);
	padding: 4px;
}

.pv-woo--cart .cart_item td {
	vertical-align: middle;
}

.pv-woo--cart .product-quantity .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	padding: 2px 4px;
}

.pv-woo--cart .product-quantity input.qty {
	width: 46px;
	height: 32px;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 14px;
	font-weight: 650;
	-moz-appearance: textfield;
	appearance: textfield;
}

.pv-woo--cart .product-quantity input.qty::-webkit-outer-spin-button,
.pv-woo--cart .product-quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.pv-woo--cart a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--pv-soft);
	color: var(--pv-muted) !important;
	font-size: 17px;
	line-height: 1;
	text-decoration: none;
}

.pv-woo--cart a.remove:hover {
	background: #fdecec;
	color: #b91c1c !important;
}

.pv-woo--cart .actions {
	padding: 12px;
}

.pv-woo--cart .actions .coupon {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}

.pv-woo--cart .actions .coupon .input-text {
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	font-size: 14px;
	min-width: 0;
	flex: 1 1 160px;
}

.pv-woo--cart .actions > .button {
	margin-top: 10px;
	background: transparent;
	color: var(--pv-ink-2);
	border: 1px solid var(--pv-line);
}

.pv-woo--cart .actions > .button:hover {
	background: var(--pv-soft);
	color: var(--pv-ink);
}

.pv-woo .cart_totals {
	float: none;
	width: 100%;
	margin-top: 6px;
}

.pv-woo .cart_totals h2 {
	margin-bottom: 10px;
}

.pv-woo .cart_totals table.shop_table th,
.pv-woo .cart_totals table.shop_table td {
	padding: 12px;
	font-size: 14.5px;
}

.pv-woo .cart_totals .order-total td,
.pv-woo .cart_totals .order-total th {
	font-size: 17px;
	font-weight: 700;
	color: var(--pv-ink);
}

.pv-woo .wc-proceed-to-checkout {
	padding: 6px 0 0;
}

.pv-woo .wc-proceed-to-checkout a.checkout-button {
	width: 100%;
	min-height: 52px;
	font-size: 15.5px;
}

.pv-woo .cart-empty {
	font-size: 17px;
	font-weight: 600;
	text-align: center;
	padding: 26px 0 4px;
	color: var(--pv-ink);
}

.pv-woo .cart-empty.woocommerce-info {
	background: transparent;
	border: 0;
}

.pv-woo .return-to-shop {
	text-align: center;
	padding-bottom: 10px;
}

/* Notices */
.pv-woo .woocommerce-message,
.pv-woo .woocommerce-info,
.pv-woo .woocommerce-error {
	list-style: none;
	background: var(--pv-brand-soft);
	border: 0;
	border-radius: var(--pv-r);
	padding: 13px 16px;
	margin: 0 0 16px;
	font-size: 14px;
	color: var(--pv-brand-d);
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.pv-woo .woocommerce-error {
	background: #fdf2f2;
	color: #9f1239;
}

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

.pv-woo .woocommerce-message .button,
.pv-woo .woocommerce-info .button {
	min-height: 34px;
	padding: 0 14px;
	font-size: 13px;
	margin-left: auto;
}

/* Forms */
.pv-woo form .form-row,
.pv-woo .woocommerce-form-row {
	margin: 0 0 12px;
	padding: 0;
}

.pv-woo label {
	display: block;
	font-size: 12.5px;
	font-weight: 650;
	letter-spacing: .01em;
	color: var(--pv-ink-2);
	margin-bottom: 6px;
}

.pv-woo .required {
	color: #c2410c;
	text-decoration: none;
}

.pv-woo input.input-text,
.pv-woo input[type="text"],
.pv-woo input[type="email"],
.pv-woo input[type="tel"],
.pv-woo input[type="password"],
.pv-woo input[type="number"],
.pv-woo select,
.pv-woo textarea {
	width: 100%;
	min-height: 46px;
	padding: 0 14px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r-sm);
	background: #fff;
	font-family: inherit;
	font-size: 15px;
	color: var(--pv-ink);
	box-shadow: none;
	outline: none;
}

.pv-woo textarea {
	min-height: 96px;
	padding: 12px 14px;
	line-height: 1.55;
}

.pv-woo select {
	appearance: none;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 38px;
}

.pv-woo input.input-text:focus,
.pv-woo select:focus,
.pv-woo textarea:focus {
	border-color: var(--pv-brand);
	box-shadow: 0 0 0 3px rgba(15, 122, 90, .12);
}

.pv-woo .select2-container .select2-selection--single {
	height: 46px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r-sm);
}

.pv-woo .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 44px;
	padding-left: 14px;
	font-size: 15px;
}

.pv-woo .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 44px;
	right: 10px;
}

/* Checkout */
.pv-checkout {
	display: grid;
	gap: 18px;
}

.pv-woo--checkout .col2-set {
	display: grid;
	gap: 16px;
}

.pv-woo--checkout .col2-set .col-1,
.pv-woo--checkout .col2-set .col-2 {
	float: none;
	width: 100%;
}

.pv-woo--checkout h3 {
	font-size: 16px;
	margin-bottom: 12px;
}

.pv-woo--checkout #order_review_heading {
	margin-top: 18px;
}

.pv-woo--checkout table.shop_table td,
.pv-woo--checkout table.shop_table th {
	font-size: 14px;
}

.pv-woo--checkout #payment {
	background: transparent;
	border-radius: 0;
}

.pv-woo--checkout #payment ul.payment_methods {
	padding: 0 0 6px;
	border: 0;
	list-style: none;
	margin: 0 0 12px;
}

.pv-woo--checkout #payment ul.payment_methods li {
	margin: 0 0 8px;
	padding: 12px 14px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r-sm);
	font-size: 14.5px;
}

.pv-woo--checkout #payment ul.payment_methods li label {
	display: inline;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--pv-ink);
	margin: 0;
}

.pv-woo--checkout #payment ul.payment_methods li img {
	max-height: 26px;
	width: auto;
	display: inline-block;
	vertical-align: middle;
	margin-left: 6px;
}

.pv-woo--checkout #payment div.payment_box {
	background: var(--pv-soft);
	border-radius: var(--pv-r-sm);
	margin: 10px 0 0;
	padding: 12px 14px;
	font-size: 13.5px;
	color: var(--pv-ink-2);
}

.pv-woo--checkout #payment div.payment_box::before {
	display: none;
}

.pv-woo--checkout #payment .place-order {
	padding: 6px 0 0;
}

.pv-woo--checkout #place_order {
	width: 100%;
	min-height: 52px;
	font-size: 15.5px;
}

.pv-woo--checkout .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 12px;
	font-size: 13px;
}

.pv-checkout__side {
	display: grid;
	gap: 12px;
	align-content: start;
}

.pv-sidecard {
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 16px;
	background: #fff;
}

.pv-sidecard h3 {
	margin: 0 0 10px;
	font-size: 15px;
	font-weight: 700;
}

.pv-sidecard p {
	margin: 0 0 10px;
	font-size: 13.5px;
	color: var(--pv-muted);
	line-height: 1.6;
}

.pv-sidecard__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.pv-sidecard__list li {
	display: flex;
	gap: 9px;
	align-items: flex-start;
	font-size: 13.5px;
	color: var(--pv-ink-2);
	line-height: 1.5;
}

.pv-sidecard__list svg {
	flex: none;
	margin-top: 2px;
	color: var(--pv-brand);
}

.pv-sidecard__link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pv-brand);
	text-decoration: none;
	word-break: break-all;
}

/* Account */
.pv-woo--account .woocommerce {
	display: grid;
	gap: 18px;
}

.pv-woo--account .woocommerce-form-login,
.pv-woo--account .woocommerce-form-register,
.pv-woo--account form.woocommerce-form {
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 18px;
	margin: 0 0 16px;
	max-width: 520px;
}

.pv-woo--account .u-columns {
	display: grid;
	gap: 16px;
}

.pv-woo--account .u-column1,
.pv-woo--account .u-column2 {
	float: none;
	width: 100%;
}

.pv-woo--account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pv-woo--account .woocommerce-MyAccount-navigation li a {
	display: inline-flex;
	align-items: center;
	padding: 9px 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pv-ink-2);
	text-decoration: none;
}

.pv-woo--account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--pv-brand);
	border-color: var(--pv-brand);
	color: #fff;
}

.pv-woo--account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
}

.pv-woo--account table.woocommerce-orders-table td,
.pv-woo--account table.woocommerce-orders-table th {
	font-size: 13.5px;
}

.pv-woo--account .woocommerce-orders-table__cell-order-actions .button {
	min-height: 36px;
	padding: 0 14px;
	font-size: 13px;
}

.pv-account-note {
	display: grid;
	gap: 12px;
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--pv-line);
}

.pv-account-note__item {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	font-size: 13.5px;
	color: var(--pv-ink-2);
	line-height: 1.55;
}

.pv-account-note__item svg {
	flex: none;
	margin-top: 2px;
	color: var(--pv-brand);
}

.pv-account-note__item strong {
	display: block;
	color: var(--pv-ink);
	font-size: 14px;
}

/* Order received */
.pv-woo--thanks .woocommerce-order {
	max-width: 760px;
}

.pv-woo--thanks .woocommerce-thankyou-order-details {
	list-style: none;
	display: grid;
	gap: 10px;
	margin: 0 0 20px;
	padding: 0;
}

.pv-woo--thanks .woocommerce-thankyou-order-details li {
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r-sm);
	padding: 10px 14px;
	font-size: 13px;
	color: var(--pv-muted);
}

.pv-woo--thanks .woocommerce-thankyou-order-details li strong {
	display: block;
	font-size: 15px;
	color: var(--pv-ink);
	margin-top: 3px;
}

@media (min-width: 600px) {
	.pv-wrap {
		padding: 0 24px;
	}

	.pv-trust__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 0 24px;
	}

	.pv-trust__item {
		border-bottom: 1px solid var(--pv-line-2);
	}

	.pv-trust__item:nth-last-child(-n+2) {
		border-bottom: 0;
	}

	.pv-cats {
		grid-template-columns: repeat(3, 1fr);
	}

	.pv-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}

	.pv-pet {
		padding: 30px 26px;
	}

	.pv-pet__grid {
		grid-template-columns: repeat(4, 1fr);
	}

	.pv-steps {
		grid-template-columns: repeat(3, 1fr);
	}

	.pv-split {
		grid-template-columns: 1fr 1fr;
	}

	.pv-cta__in {
		grid-template-columns: 1fr auto;
		align-items: center;
	}

	.pv-cta .pv-btn {
		justify-self: end;
	}

	.pv-foot__grid {
		grid-template-columns: 1.4fr 1fr 1fr 1fr;
	}

	.pv-foot__brand {
		grid-column: auto;
	}

	.pv-foot__base {
		flex-direction: row;
		justify-content: space-between;
	}

	.pv-gallery__hint {
		display: inline-flex;
	}

	.pv-card__title {
		font-size: 14px;
	}

	.pv-toolbar__hint {
		display: block;
	}
}

/* ---------- Tablet (768px and up) ----------
   An iPad held upright is not a large phone: it gets the full-width search
   field, the account and cart icons, and no bottom tab bar eating 77px of
   every screen. The category drawer keeps the navigation reachable until the
   desktop link row has room at 1024px. */
@media (min-width: 768px) {
	.pv-search {
		max-width: none;
	}

	.pv-head__actions {
		margin-left: 0;
	}

	.pv-main {
		padding-bottom: 0;
	}

	.pv-tabbar {
		display: none;
	}

	/* No tab bar, so no reserved strip under the footer. */
	.pv-foot {
		margin-bottom: 0;
	}

	.pv-buybar {
		bottom: env(safe-area-inset-bottom);
		transform: translateY(calc(100% + env(safe-area-inset-bottom)));
	}
}

@media (min-width: 1024px) {
	.pv-nav {
		display: flex;
	}

	.pv-burger {
		display: none;
	}

	.pv-wrap {
		padding: 0 24px;
	}
}

@media (min-width: 900px) {
	.pv-utility__in {
		justify-content: space-between;
	}

	.pv-utility__item--hide-sm {
		display: inline-flex;
	}

	.pv-search {
		height: 42px;
		padding: 0 6px 0 14px;
		gap: 9px;
		max-width: 460px;
	}

	.pv-search__input {
		font-size: 14.5px;
	}

	.pv-search__go {
		display: block;
	}

	.pv-hero {
		padding: 52px 0 56px;
	}

	.pv-hero__grid {
		grid-template-columns: 1.02fr .98fr;
		align-items: center;
		gap: 46px;
	}

	.pv-hero__lede {
		font-size: 16.5px;
	}

	.pv-section {
		padding: 62px 0;
	}

	.pv-cats {
		grid-template-columns: repeat(4, 1fr);
		gap: 12px;
	}

	.pv-cat {
		min-height: 96px;
		padding: 18px;
	}

	.pv-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 18px;
	}

	.pv-card__body {
		padding: 13px 13px 14px;
		gap: 8px;
	}

	.pv-pet {
		grid-template-columns: .9fr 1.1fr;
		align-items: center;
		gap: 34px;
		padding: 40px;
	}

	.pv-trust__grid {
		grid-template-columns: repeat(4, 1fr);
		padding: 6px 0;
	}

	.pv-trust__item {
		border-bottom: 0;
		padding: 18px 0;
	}

	.pv-trust__item + .pv-trust__item {
		border-left: 1px solid var(--pv-line-2);
		padding-left: 22px;
	}

	.pv-pdp {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
		gap: 44px;
		padding: 18px 0 10px;
		align-items: start;
	}

	.pv-gallery {
		position: sticky;
		top: calc(var(--pv-head-h) + 18px);
		grid-template-columns: 64px minmax(0, 1fr);
		grid-template-areas: "thumbs stage";
		gap: 12px;
	}

	.pv-gallery__stage {
		grid-area: stage;
	}

	.pv-gallery__thumbs {
		grid-area: thumbs;
		flex-direction: column;
		overflow: visible;
	}

	.pv-thumb {
		width: 64px;
		height: 64px;
	}

	.pv-title {
		font-size: 30px;
	}

	.pv-price {
		font-size: 27px;
	}

	.pv-buybar {
		display: none;
	}

	.pv-single {
		padding-bottom: 40px;
	}


	.pv-foot {
		margin-bottom: 0;
		padding-bottom: 22px;
	}

	.pv-details {
		margin-top: 38px;
	}

	.pv-acc__btn {
		font-size: 16px;
		padding: 19px 2px;
	}

	.pv-archive__head {
		padding: 18px 0 22px;
	}
}

@media (min-width: 1200px) {
	.pv-hero h1 {
		font-size: 56px;
	}
}

/* ---------- Small phones ---------- */
@media (max-width: 380px) {
	.pv-card__cta {
		font-size: 12px;
	}

	.pv-hero__points {
		font-size: 12.5px;
	}

	.pv-pill {
		min-width: 58px;
		padding: 0 12px;
		font-size: 13px;
	}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	.pv-app * {
		animation-duration: .001ms !important;
		transition-duration: .001ms !important;
	}
}

/* Two column checkout / account on wide screens */
@media (min-width: 900px) {
	.pv-pagehead__title {
		font-size: 32px;
	}

	.pv-checkout {
		grid-template-columns: minmax(0, 1fr) 320px;
		gap: 28px;
		align-items: start;
	}

	.pv-checkout__side {
		position: sticky;
		top: calc(var(--pv-head-h) + 16px);
	}

	.pv-woo--checkout .col2-set {
		grid-template-columns: 1fr 1fr;
	}

	.pv-woo--cart .cart_totals {
		max-width: 420px;
		margin-left: auto;
	}

	.pv-woo--account .u-columns {
		grid-template-columns: 1fr 1fr;
	}

	.pv-account-note {
		grid-template-columns: 1fr 1fr;
	}
}

/* Cart rows collapse into cards on phones: a 5 column table cannot breathe
   inside 390px without truncating the product name. */
@media (max-width: 760px) {
	.pv-woo--cart table.shop_table.cart thead {
		display: none;
	}

	.pv-woo--cart table.shop_table.cart,
	.pv-woo--cart table.shop_table.cart tbody {
		display: block;
		width: 100%;
		background: transparent;
	}

	.pv-woo--cart table.shop_table.cart tr.cart_item {
		display: grid;
		grid-template-columns: 64px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb name remove"
			"thumb price price"
			"qty qty subtotal";
		align-items: center;
		gap: 6px 12px;
		padding: 14px 12px;
		border-top: 1px solid var(--pv-line-2);
		background: #fff;
	}

	.pv-woo--cart table.shop_table.cart tr.cart_item:first-child {
		border-top: 0;
	}

	.pv-woo--cart table.shop_table.cart td {
		padding: 0;
		border: 0;
		font-size: 14px;
	}

	.pv-woo--cart td.product-thumbnail {
		grid-area: thumb;
	}

	.pv-woo--cart td.product-thumbnail img {
		width: 64px;
		height: 64px;
	}

	.pv-woo--cart td.product-name {
		grid-area: name;
		font-size: 14.5px;
		line-height: 1.35;
	}

	.pv-woo--cart td.product-name a {
		display: block;
	}

	.pv-woo--cart td.product-name .variation,
	.pv-woo--cart td.product-name .wc-item-meta {
		font-size: 12px;
		color: var(--pv-muted);
		font-weight: 500;
		margin: 2px 0 0;
		display: flex;
		gap: 4px;
		flex-wrap: wrap;
	}

	.pv-woo--cart td.product-remove {
		grid-area: remove;
		justify-self: end;
		align-self: start;
	}

	.pv-woo--cart td.product-price {
		grid-area: price;
		color: var(--pv-muted);
		font-size: 13.5px;
	}

	.pv-woo--cart td.product-quantity {
		grid-area: qty;
	}

	.pv-woo--cart td.product-subtotal {
		grid-area: subtotal;
		text-align: right;
		font-weight: 700;
		font-size: 14.5px;
		color: var(--pv-ink);
		white-space: nowrap;
		justify-self: end;
	}

	.pv-woo--cart tr.cart_item td::before {
		content: none !important;
	}

	.pv-woo--cart .actions {
		display: block;
		padding: 12px;
		border-top: 1px solid var(--pv-line-2);
	}

	.pv-woo--cart .actions .coupon {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px;
	}

	.pv-woo--cart .actions .coupon .input-text {
		width: 100%;
		min-width: 0;
		flex: none;
	}

	.pv-woo--cart .actions .coupon .button {
		white-space: nowrap;
		padding: 0 16px;
	}

	.pv-woo--cart .actions > .button {
		width: 100%;
		margin-top: 10px;
	}

	.pv-woo .cart_totals table.shop_table th,
	.pv-woo .cart_totals table.shop_table td {
		padding: 11px 12px;
	}
}

/* Checkout field grid + compact order review thumbnails */
.pv-woo--checkout .woocommerce-billing-fields__field-wrapper,
.pv-woo--checkout .woocommerce-shipping-fields__field-wrapper,
.pv-woo--checkout .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 14px;
}

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

.pv-woo--checkout .form-row-wide {
	grid-column: 1 / -1;
}

.pv-woo--checkout #order_review table.shop_table td.product-name img,
.pv-woo--checkout .woocommerce-checkout-review-order-table td.product-name img {
	width: 46px;
	height: 46px;
	object-fit: contain;
	float: left;
	margin: 0 10px 4px 0;
	border-radius: 8px;
	background: var(--pv-soft);
	padding: 3px;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table td.product-name {
	line-height: 1.4;
	overflow: hidden;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table .product-quantity {
	color: var(--pv-muted);
	font-size: 13px;
}

.pv-woo--checkout #ship-to-different-address {
	margin: 14px 0 6px;
	font-size: 14.5px;
	font-weight: 650;
}

.pv-woo--checkout #ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14.5px;
	font-weight: 650;
	margin: 0;
}

@media (min-width: 600px) {
	.pv-woo--checkout .woocommerce-billing-fields__field-wrapper,
	.pv-woo--checkout .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr 1fr;
	}
}

/* Account: login + register cards */
.pv-auth {
	display: grid;
	gap: 16px;
	align-items: start;
}

.pv-auth__card {
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 20px;
	background: #fff;
}

.pv-auth__title {
	margin: 0 0 4px;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.pv-auth__lead {
	margin: 0 0 16px;
	font-size: 13.5px;
	color: var(--pv-muted);
	line-height: 1.55;
}

.pv-auth__card .woocommerce-form {
	margin: 0;
	padding: 0;
	border: 0;
	max-width: none;
}

.pv-auth__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin: 16px 0 0;
}

.pv-auth__row .woocommerce-form__label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--pv-ink-2);
}

.pv-auth__row input[type="checkbox"] {
	width: 17px;
	height: 17px;
	min-height: 0;
	accent-color: var(--pv-brand);
	margin: 0;
}

.pv-auth__row .button {
	min-width: 132px;
}

.pv-auth__card .lost_password {
	margin: 14px 0 0;
	font-size: 13px;
}

.pv-auth__note {
	font-size: 13px;
	color: var(--pv-muted);
	background: var(--pv-soft);
	border-radius: var(--pv-r-sm);
	padding: 10px 12px;
	margin: 0 0 12px;
}

.pv-auth__card .woocommerce-privacy-policy-text,
.pv-auth__card .woocommerce-form-register__submit ~ .woocommerce-privacy-policy-text {
	font-size: 12px;
	color: var(--pv-muted);
	line-height: 1.55;
}

.pv-auth__card .form-row:last-child {
	margin-bottom: 0;
}

@media (min-width: 760px) {
	.pv-auth--split {
		grid-template-columns: 1fr 1fr;
		gap: 24px;
	}
}

/* WoodMart injects a per-unit label into prices; keep it as a quiet suffix. */
.wd-price-unit {
	font-size: 11.5px;
	font-weight: 500;
	color: var(--pv-muted);
	letter-spacing: 0;
	margin-left: 3px;
}

.wd-price-unit::before {
	content: "/ ";
}

/* Order tracking */
.pv-track {
	display: grid;
	gap: 18px;
	align-items: start;
}

.pv-track__form form.track_order {
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 18px;
	background: #fff;
}

.pv-track__form form.track_order p {
	margin: 0 0 14px;
}

.pv-track__form form.track_order p:first-child {
	font-size: 14px;
	color: var(--pv-muted);
	line-height: 1.6;
}

.pv-track__form form.track_order .button {
	width: 100%;
	margin-top: 4px;
}

.pv-track__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
	counter-reset: pvstep;
}

.pv-track__steps li {
	position: relative;
	padding-left: 26px;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--pv-muted);
}

.pv-track__steps li::before {
	counter-increment: pvstep;
	content: counter(pvstep);
	position: absolute;
	left: 0;
	top: 0;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
	font-size: 10.5px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pv-track__steps b {
	display: block;
	color: var(--pv-ink);
	font-size: 14px;
	margin-bottom: 1px;
}

@media (min-width: 900px) {
	.pv-track {
		grid-template-columns: minmax(0, 1fr) 320px;
		gap: 28px;
	}
}

/* WooCommerce password reveal button has no stylesheet of its own here. */
.pv-woo button.show-password-input,
.pv-woo .show-password-input {
	display: none;
}

/* Contact page */
.pv-contact {
	display: grid;
	gap: 18px;
	align-items: start;
}

.pv-contact__form {
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 18px;
	background: #fff;
}

.pv-form__row {
	margin: 0 0 14px;
}

.pv-form__row label {
	display: block;
	font-size: 12.5px;
	font-weight: 650;
	color: var(--pv-ink-2);
	margin-bottom: 6px;
}

.pv-form input[type="text"],
.pv-form input[type="email"],
.pv-form textarea {
	width: 100%;
	min-height: 46px;
	padding: 0 14px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r-sm);
	background: #fff;
	font-family: inherit;
	font-size: 15px;
	color: var(--pv-ink);
	outline: none;
}

.pv-form textarea {
	min-height: 120px;
	padding: 12px 14px;
	line-height: 1.55;
	resize: vertical;
}

.pv-form input:focus,
.pv-form textarea:focus {
	border-color: var(--pv-brand);
	box-shadow: 0 0 0 3px rgba(15, 122, 90, .12);
}

.pv-form__submit {
	width: 100%;
	margin-top: 4px;
}

.pv-form__legal {
	margin: 10px 0 0;
	font-size: 12px;
	color: var(--pv-muted);
	text-align: center;
}

.pv-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.pv-note {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 12px 14px;
	border-radius: var(--pv-r-sm);
	font-size: 13.5px;
	margin-bottom: 16px;
}

.pv-note--ok {
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
}

.pv-note--err {
	background: #fdf2f2;
	color: #9f1239;
}

.pv-address {
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--pv-ink-2);
}

.pv-sidecard__list a {
	color: var(--pv-brand);
	font-weight: 600;
	text-decoration: none;
}

@media (min-width: 900px) {
	.pv-contact {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: 28px;
	}
}

/* =========================================================================
   Customer reviews
   ========================================================================= */

:root {
	--pv-star: #eda111;
}

.pv-btn--dark {
	background: var(--pv-ink);
	color: #fff;
}

.pv-btn--dark:hover {
	background: #000;
	color: #fff;
}

.pv-btn--sm {
	min-height: 40px;
	padding: 0 16px;
	font-size: 13.5px;
}

.pv-ratingrow__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: inherit;
}

.pv-ratingrow__more {
	font-size: 12.5px;
	color: var(--pv-brand-d);
	border-bottom: 1px solid rgba(15, 122, 90, .3);
	line-height: 1.6;
}

.pv-reviews {
	margin: 34px 0 0;
	padding: 26px 0 0;
	border-top: 1px solid var(--pv-line);
}

.pv-reviews__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 16px;
}

.pv-reviews__title {
	margin: 0;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -.02em;
}

/* ---------- Summary ---------- */
.pv-rsum {
	display: grid;
	gap: 16px;
	padding: 18px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: #fff;
}

.pv-rsum__score {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}

.pv-rsum__num {
	font-size: 44px;
	line-height: 1;
	font-weight: 700;
	letter-spacing: -.04em;
}

.pv-rsum__count {
	font-size: 12.5px;
	color: var(--pv-muted);
}

.pv-rsum__bars {
	display: grid;
	gap: 7px;
	min-width: 0;
}

.pv-rbar {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr) 22px;
	align-items: center;
	gap: 9px;
	font-size: 11.5px;
	color: var(--pv-muted);
}

.pv-rbar__track {
	height: 7px;
	border-radius: 999px;
	background: var(--pv-line-2);
	overflow: hidden;
}

.pv-rbar__track i {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--pv-star);
}

.pv-rbar__n {
	text-align: right;
	color: var(--pv-ink-2);
	font-weight: 600;
}

.pv-rsum__note {
	background: var(--pv-soft);
	border-radius: var(--pv-r-sm);
	padding: 13px 15px;
}

.pv-rsum__note strong {
	display: block;
	font-size: 13.5px;
	margin-bottom: 4px;
}

.pv-rsum__note p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--pv-muted);
}

/* ---------- Stars ---------- */
.pv-rstars {
	display: inline-flex;
	gap: 2px;
	color: var(--pv-line);
}

.pv-rstar {
	display: inline-flex;
	color: var(--pv-line);
}

.pv-rstar svg {
	fill: transparent;
	stroke: currentColor;
}

.pv-rstar.is-on {
	color: var(--pv-star);
}

.pv-rstar.is-on svg {
	fill: var(--pv-star);
	stroke: var(--pv-star);
}

/* ---------- Review list ---------- */
.pv-rlist {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: grid;
	gap: 12px;
}

.pv-r {
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 16px;
	background: #fff;
}

.pv-r__head {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin-bottom: 11px;
}

.pv-r__ava {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--pv-soft);
	flex: none;
}

.pv-r__who {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.pv-r__who strong {
	font-size: 13.5px;
	font-weight: 650;
}

.pv-r__date {
	flex: none;
	font-size: 11.5px;
	color: var(--pv-muted);
}

.pv-r__text {
	font-size: 14px;
	line-height: 1.65;
	color: var(--pv-ink-2);
}

.pv-r__text p {
	margin: 0 0 8px;
}

.pv-r__text p:last-child {
	margin-bottom: 0;
}

.pv-r__pc {
	margin: 11px 0 0;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 2px 8px;
	font-size: 13px;
	color: var(--pv-muted);
}

.pv-r__pc dt {
	font-weight: 600;
	color: var(--pv-ink-2);
}

.pv-r__pc dd {
	margin: 0;
}

.pv-rempty {
	border: 1px dashed var(--pv-line);
	border-radius: var(--pv-r);
	padding: 22px;
	text-align: center;
	margin-top: 16px;
}

.pv-rempty strong {
	display: block;
	font-size: 15px;
	margin-bottom: 5px;
}

.pv-rempty p {
	margin: 0;
	font-size: 13.5px;
	color: var(--pv-muted);
}

/* ---------- Form ---------- */
.pv-rform {
	margin-top: 18px;
	padding: 20px 18px 22px;
	border-radius: var(--pv-r);
	background: var(--pv-soft);
}

.pv-rform__title {
	margin: 0 0 6px;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.pv-rform__note {
	margin: 0 0 16px;
	font-size: 12.5px;
	color: var(--pv-muted);
}

.pv-field {
	margin: 0 0 14px;
}

.pv-field__label {
	display: block;
	font-size: 12.5px;
	font-weight: 650;
	color: var(--pv-ink-2);
	margin-bottom: 7px;
}

.pv-field__label em {
	color: #c2410c;
	font-style: normal;
}

.pv-rform .pv-form input[type="text"],
.pv-rform .pv-form input[type="email"],
.pv-rform .pv-form textarea {
	background: #fff;
}

.pv-rate {
	display: inline-flex;
	flex-direction: row-reverse;
	gap: 4px;
	margin: 0;
}

.pv-rate input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.pv-rate label {
	display: inline-flex;
	padding: 2px;
	color: var(--pv-line);
	cursor: pointer;
	transition: color .12s ease, transform .12s ease;
}

.pv-rate label svg {
	fill: transparent;
	stroke: currentColor;
}

.pv-rate label:hover {
	transform: translateY(-1px);
}

.pv-rate label.is-on {
	color: var(--pv-star);
}

.pv-rate label.is-on svg {
	fill: var(--pv-star);
	stroke: var(--pv-star);
}

.pv-rform__pair {
	display: grid;
	gap: 0;
}

.pv-check {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	margin: 2px 0 18px;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--pv-muted);
	cursor: pointer;
}

.pv-check input {
	width: 16px;
	height: 16px;
	min-height: 0;
	margin: 2px 0 0;
	accent-color: var(--pv-brand);
	flex: none;
}

.pv-rform__submit {
	width: 100%;
	min-height: 50px;
}

.pv-rform .pv-note {
	margin-bottom: 14px;
}

@media (min-width: 700px) {
	.pv-rsum {
		grid-template-columns: 150px minmax(0, 1fr);
		align-items: center;
		gap: 22px;
		padding: 22px;
	}

	.pv-rsum__note {
		grid-column: 1 / -1;
	}

	.pv-rform__pair {
		grid-template-columns: 1fr 1fr;
		gap: 0 14px;
	}

	.pv-rform__submit {
		width: auto;
		min-width: 200px;
	}
}

@media (min-width: 1000px) {
	.pv-rsum {
		grid-template-columns: 150px minmax(0, 1fr) 210px;
	}

	.pv-rsum__note {
		grid-column: auto;
	}

	.pv-rlist {
		grid-template-columns: 1fr;
	}
}

/* =========================================================================
   Brand mark, info pages, 404, checkout extras
   ========================================================================= */

img.pv-logo__mark {
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: none;
	box-shadow: none;
	object-fit: contain;
	display: block;
}

.pv-logo--foot img.pv-logo__mark {
	width: 24px;
	height: 24px;
}

/* ---------- Shipping row ---------- */
.pv-shiprow th {
	font-weight: 500;
	color: var(--pv-ink-2);
}

.pv-shiprow td {
	text-align: right;
}

.pv-shiprow strong {
	color: var(--pv-brand-d);
}

.pv-shiprow__eta {
	display: block;
	font-size: 11.5px;
	font-weight: 500;
	color: var(--pv-muted);
	margin-top: 2px;
}

.pv-co-ship {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	padding: 11px 14px;
	margin: 0 0 14px;
	border-radius: var(--pv-r-sm);
	background: var(--pv-brand-soft);
	font-size: 12.5px;
	color: var(--pv-brand-d);
}

.pv-co-ship__item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* ---------- 404 ---------- */
.pv-nf {
	max-width: 760px;
	padding: 26px 0 20px;
}

.pv-nf__code {
	margin: 0;
	font-size: 72px;
	line-height: 1;
	font-weight: 800;
	letter-spacing: -.05em;
	color: var(--pv-line);
}

.pv-nf__title {
	margin: 6px 0 10px;
	font-size: 27px;
	letter-spacing: -.02em;
}

.pv-nf__lead {
	margin: 0 0 20px;
	color: var(--pv-muted);
	font-size: 15px;
	line-height: 1.6;
	max-width: 52ch;
}

.pv-nf__search {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 5px 5px 5px 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	background: #fff;
	margin-bottom: 20px;
}

.pv-nf__search svg {
	flex: none;
	color: var(--pv-muted);
}

.pv-nf__search input {
	flex: 1;
	min-width: 0;
	border: 0;
	outline: none;
	font-family: inherit;
	font-size: 15px;
	padding: 10px 0;
	background: transparent;
}

.pv-nf__search .pv-btn {
	min-height: 42px;
	padding: 0 18px;
	font-size: 14px;
}

.pv-nf__cats {
	margin-bottom: 26px;
}

.pv-nf__label {
	display: block;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--pv-muted);
	margin-bottom: 9px;
}

.pv-nf__picks .pv-section__head {
	margin-bottom: 14px;
}

.pv-nf__help {
	margin: 26px 0 0;
	font-size: 14px;
	color: var(--pv-muted);
}

.pv-nf__help a {
	color: var(--pv-brand-d);
	font-weight: 600;
}

/* ---------- Info pages ---------- */
.pv-info {
	max-width: 820px;
}

.pv-pagehead__sub span {
	flex: 1;
}

.pv-info__body {
	display: grid;
	gap: 26px;
}

.pv-info__block h2 {
	margin: 0 0 8px;
	font-size: 18px;
	letter-spacing: -.01em;
}

.pv-info__block p {
	margin: 0;
	font-size: 15px;
	line-height: 1.75;
	color: var(--pv-ink-2);
	max-width: 68ch;
}

.pv-info__cta {
	margin-top: 12px;
}

.pv-spec--wide {
	margin-top: 12px;
}

.pv-spec--wide th {
	width: 44%;
}

.pv-faq {
	display: grid;
	gap: 0;
	border-top: 1px solid var(--pv-line);
}

.pv-faq__item {
	border-bottom: 1px solid var(--pv-line);
}

.pv-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 15px 0;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.pv-faq__item summary::-webkit-details-marker {
	display: none;
}

.pv-faq__item summary svg {
	flex: none;
	color: var(--pv-muted);
	transition: transform .18s ease;
}

.pv-faq__item[open] summary svg {
	transform: rotate(180deg);
}

.pv-faq__item p {
	margin: 0 0 16px;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--pv-ink-2);
	max-width: 68ch;
}

.pv-info__help {
	margin-top: 4px;
	padding: 18px;
	border-radius: var(--pv-r);
	background: var(--pv-soft);
}

.pv-info__help strong {
	display: block;
	font-size: 15px;
	margin-bottom: 5px;
}

.pv-info__help p {
	margin: 0 0 10px;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--pv-muted);
}

/* ---------- Search empty state ---------- */
.pv-empty__search {
	display: flex;
	gap: 8px;
	max-width: 460px;
	margin: 16px auto 14px;
}

.pv-empty__search input {
	flex: 1;
	min-width: 0;
	min-height: 46px;
	padding: 0 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	font-family: inherit;
	font-size: 15px;
	background: #fff;
}

.pv-chips--center {
	justify-content: center;
}

/* ---------- Cart quantity ---------- */
.pv-qty-mini {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	padding: 2px;
	background: #fff;
}

.pv-qty-mini__btn {
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	color: var(--pv-ink-2);
	border-radius: 50%;
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
}

.pv-qty-mini__btn:active {
	background: var(--pv-soft);
}

.pv-qty-mini input.qty {
	width: 40px;
	height: 30px;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 14px;
	font-weight: 650;
	-moz-appearance: textfield;
	appearance: textfield;
}

.pv-qty-mini input.qty::-webkit-outer-spin-button,
.pv-qty-mini input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ---------- Format filters ---------- */
.pv-filters {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 2px 0 0;
}

.pv-filters__label {
	flex: none;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--pv-muted);
}

.pv-filters .pv-chips {
	padding: 2px 0 10px;
}

.pv-chips--plain .pv-chip {
	height: 28px;
	padding: 0 11px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .01em;
	border-color: transparent;
	background: var(--pv-soft);
	color: var(--pv-ink-2);
}

.pv-chips--plain .pv-chip:hover {
	border-color: var(--pv-line);
}

.pv-chips--plain .pv-chip.is-on {
	background: var(--pv-ink);
	border-color: var(--pv-ink);
	color: #fff;
}

@media (min-width: 700px) {
	.pv-filters {
		gap: 14px;
	}

	.pv-filters .pv-chips {
		flex-wrap: wrap;
		overflow: visible;
		padding-bottom: 14px;
	}
}

/* ---------- Secondary actions (keep green for the real CTA) ---------- */
.pv-woo .cart button[name="update_cart"],
.pv-woo .cart .coupon button,
.pv-woo .wc-backward,
.pv-woo .woocommerce-Button--secondary,
.pv-woo .woocommerce-form-login button.button,
.pv-woo a.return-to-shop .button {
	background: transparent;
	color: var(--pv-ink);
	border: 1px solid var(--pv-line);
}

.pv-woo .cart button[name="update_cart"]:hover,
.pv-woo .cart .coupon button:hover,
.pv-woo .wc-backward:hover,
.pv-woo .woocommerce-Button--secondary:hover {
	background: var(--pv-soft);
	border-color: var(--pv-ink);
	color: var(--pv-ink);
}

/* ---------- Checkout info toggles stay quiet ---------- */
.pv-woo .woocommerce-form-login-toggle .woocommerce-info,
.pv-woo .woocommerce-form-coupon-toggle .woocommerce-info {
	background: var(--pv-soft);
	color: var(--pv-ink-2);
	border: 1px solid var(--pv-line);
}

/* ---------- Home review quotes ---------- */
.pv-section--reviews {
	padding-top: 8px;
}

.pv-quotes {
	display: grid;
	gap: 14px;
}

.pv-quote {
	margin: 0;
	padding: 20px 20px 18px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.pv-quote blockquote {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--pv-ink-2);
}

.pv-quote figcaption {
	display: flex;
	flex-direction: column;
	gap: 3px;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid var(--pv-line-2);
}

.pv-quote__who {
	font-size: 13px;
	font-weight: 700;
	color: var(--pv-ink);
}

.pv-quote__on {
	font-size: 12.5px;
	color: var(--pv-muted);
}

/* ---------- Pairs row ---------- */
.pv-related__note {
	margin: 8px 0 0;
	font-size: 14px;
	color: var(--pv-muted);
	max-width: 54ch;
}

@media (min-width: 760px) {
	.pv-quotes {
		grid-template-columns: repeat(3, 1fr);
		gap: 18px;
	}

	.pv-quote {
		padding: 24px;
	}

	.pv-related--pairs {
		padding-top: 34px;
	}
}

/* ---------- Anchor offsets under the sticky header ---------- */
.pv-app [id] {
	scroll-margin-top: calc(var(--pv-head-h) + 26px);
}

/* ---------- Cart clean-ups ---------- */
/* The theme injects square +/- buttons next to every quantity input; the pill
   stepper replaces them, so hide the leftovers. */
.pv-woo .quantity > input.btn,
.pv-woo .quantity > input.plus,
.pv-woo .quantity > input.minus,
.pv-woo .quantity > button.plus,
.pv-woo .quantity > button.minus {
	display: none !important;
}

/* Keep the label readable on the dark review button. */
.pv-reviews a.pv-btn--dark,
.pv-reviews a.pv-btn--dark:hover {
	color: #fff;
}

/* ---------- Warehouse noise stays out of the cart ---------- */
.pv-woo .wd-product-detail.wd-product-sku,
.pv-woo .wd-sku,
.pv-woo .wd-price-unit {
	display: none !important;
}

/* Theme stepper leftovers: the pill stepper owns quantity now. */
.pv-woo .quantity > input[type="button"],
.pv-woo .quantity > input[type="number"].btn {
	display: none !important;
}

/* ---------- Pest guides ---------- */
.pv-pagehead--blog {
	margin-bottom: 20px;
}

.pv-posts {
	display: grid;
	gap: 16px;
	padding-bottom: 26px;
}

.pv-postcard {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	overflow: hidden;
}

.pv-postcard__media {
	display: block;
	aspect-ratio: 16 / 9;
	background: var(--pv-brand-soft);
	overflow: hidden;
}

.pv-postcard__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pv-postcard__ph {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	color: var(--pv-brand);
}

.pv-postcard__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 18px 18px;
}

/* Text-only guides get a quiet top rule instead of an empty image well. */
.pv-postcard:not(:has(.pv-postcard__media)) .pv-postcard__body {
	border-top: 3px solid var(--pv-brand);
	border-radius: var(--pv-r) var(--pv-r) 0 0;
	padding-top: 16px;
}

.pv-postcard__meta {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--pv-muted);
}

.pv-postcard__title {
	margin: 0;
	font-size: 18px;
	line-height: 1.32;
	letter-spacing: -.01em;
}

.pv-postcard__title a {
	color: var(--pv-ink);
	text-decoration: none;
}

.pv-postcard__excerpt {
	margin: 0;
	font-size: 14px;
	line-height: 1.62;
	color: var(--pv-ink-2);
}

.pv-postcard__more {
	margin-top: auto;
	padding-top: 6px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--pv-brand);
	text-decoration: none;
}

.pv-blogcta {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 6px 0 44px;
	padding: 20px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: var(--pv-soft);
}

.pv-blogcta h2 {
	margin: 0 0 6px;
	font-size: 18px;
	letter-spacing: -.01em;
}

.pv-blogcta p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--pv-ink-2);
}

/* ---------- Single guide ----------
   The read runs the full width of the store container, not a narrow blog
   column, so the article lines up with the header and the product pages. */
.pv-article__wrap {
	max-width: 1200px;
}

.pv-article {
	padding-bottom: 34px;
}

.pv-article__head {
	margin: 4px 0 20px;
}

.pv-article__title {
	margin: 10px 0 12px;
	font-size: 29px;
	line-height: 1.18;
	letter-spacing: -.025em;
}

.pv-article__lead {
	margin: 0;
	font-size: 16px;
	line-height: 1.62;
	color: var(--pv-ink-2);
}

.pv-article__media {
	margin: 0 0 22px;
	border-radius: var(--pv-r);
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--pv-soft);
}

.pv-article__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pv-article__body {
	font-size: 16px;
	line-height: 1.72;
}

.pv-article__body h2 {
	margin: 30px 0 10px;
	font-size: 21px;
	letter-spacing: -.015em;
}

.pv-article__body h3 {
	margin: 24px 0 8px;
	font-size: 17px;
}

.pv-article__body p {
	margin: 0 0 16px;
}

.pv-article__cta {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 30px;
	padding: 20px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: var(--pv-soft);
}

.pv-article__cta strong {
	display: block;
	font-size: 16px;
	margin-bottom: 4px;
}

.pv-article__cta p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--pv-ink-2);
}

.pv-article__cta .pv-btn {
	align-self: flex-start;
}

.pv-article__foot {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	align-items: flex-end;
	margin-top: 26px;
	padding-top: 18px;
	border-top: 1px solid var(--pv-line);
}

.pv-article__next {
	display: flex;
	flex-direction: column;
	gap: 3px;
	max-width: 60%;
	text-align: right;
	text-decoration: none;
}

.pv-article__next span {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pv-muted);
}

.pv-article__next strong {
	font-size: 14px;
	line-height: 1.4;
	color: var(--pv-ink);
}

/* ---------- Pagination ---------- */
.pv-pager {
	padding: 0 0 30px;
}

.pv-pager .nav-links {
	display: flex;
	gap: 6px;
	align-items: center;
	flex-wrap: wrap;
}

.pv-pager .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pv-ink-2);
	text-decoration: none;
}

.pv-pager .page-numbers.current {
	background: var(--pv-ink);
	border-color: var(--pv-ink);
	color: #fff;
}

@media (min-width: 700px) {
	.pv-posts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.pv-blogcta {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		padding: 24px 26px;
	}

	.pv-article__cta {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		padding: 22px 26px;
	}

	.pv-article__title {
		font-size: 36px;
	}
}

@media (min-width: 1000px) {
	.pv-posts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/* A 1,150px column at 16px runs past 120 characters a line. Step the type
	   up so the wider measure still reads at a comfortable rate. */
	.pv-article__title {
		font-size: 40px;
	}

	.pv-article__lead {
		font-size: 17px;
	}

	.pv-article__body {
		font-size: 17px;
		line-height: 1.78;
	}

	.pv-article__body p {
		margin-bottom: 18px;
	}

	.pv-article__body h2 {
		font-size: 24px;
		margin-top: 34px;
	}

	.pv-article__body h3 {
		font-size: 19px;
	}

	/* Full-bleed crop instead of a 650px tall block that pushes the first
	   paragraph below the fold. Height is set explicitly: leaving the aspect
	   ratio in place would make the browser shrink the width to match, and the
	   image would stop lining up with the text under it. */
	.pv-article__media {
		aspect-ratio: auto;
		height: 470px;
	}
}

/* ---------- Order received hero ---------- */
.pv-thanks {
	padding: 6px 0 22px;
}

.pv-thanks__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--pv-brand-soft);
	color: var(--pv-brand);
	margin-bottom: 12px;
}

.pv-thanks__title {
	margin: 0 0 8px;
	font-size: 27px;
	letter-spacing: -.025em;
}

.pv-thanks__sub {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--pv-ink-2);
}

.pv-thanks__facts {
	list-style: none;
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
}

.pv-thanks__facts li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	color: var(--pv-ink-2);
}

.pv-thanks__facts svg {
	flex: none;
	color: var(--pv-brand);
}

/* ---------- Newsletter ---------- */
.pv-foot__sub {
	padding-top: 24px;
	/* 4px 让订阅卡和页脚首行贴在一起，卡片像被裁掉；留出 34px 才算两张皮。 */
	padding-bottom: 34px;
}

.pv-sub {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 18px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: #fff;
}

.pv-sub__copy strong {
	display: block;
	font-size: 15px;
	color: var(--pv-ink);
	margin-bottom: 4px;
}

.pv-sub__copy p {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--pv-muted);
}

.pv-sub__form {
	display: flex;
	gap: 8px;
}

.pv-sub__form input[type="email"] {
	flex: 1 1 auto;
	min-width: 0;
	height: 42px;
	padding: 0 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	font-size: 14px;
	background: var(--pv-soft);
	color: var(--pv-ink);
}

.pv-sub__form input[type="email"]:focus {
	outline: 2px solid var(--pv-brand);
	outline-offset: 1px;
	background: #fff;
}

.pv-sub__form .pv-btn {
	flex: none;
	height: 42px;
	padding: 0 18px;
	font-size: 13.5px;
	border-radius: 999px;
}

.pv-sub__note {
	margin: 0;
	font-size: 12px;
	color: var(--pv-muted);
}

.pv-sub__note--ok {
	color: var(--pv-brand);
	font-weight: 600;
}

.pv-sub__note--bad,
.pv-sub__note--dup {
	color: var(--pv-sale);
	font-weight: 600;
}

@media (min-width: 700px) {
	.pv-sub {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 24px;
		padding: 20px 24px;
	}

	.pv-sub__form {
		flex: 0 0 380px;
	}

	.pv-sub__note {
		grid-column: 1 / -1;
	}
}

/* ---------- Stars read as stars, not as outlines ---------- */
.pv-star.is-on > svg,
.pv-star.is-half > svg {
	fill: currentColor;
}

/* The format chips scroll sideways; fade the cut so it looks deliberate. */
@media (max-width: 699px) {
	.pv-filters .pv-chips {
		-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 26px), transparent 100%);
		mask-image: linear-gradient(90deg, #000 calc(100% - 26px), transparent 100%);
	}
}

/* =========================================================================
   Readable labels on coloured surfaces
   `.pv-app a { color: inherit }` outranks a plain `.pv-btn--primary`, so every
   filled button written as an anchor picked up the surrounding dark text and
   rendered green-on-green. Pin the label colour on the filled variants.
   ========================================================================= */
.pv-app .pv-btn--primary,
.pv-app .pv-btn--primary:hover,
.pv-app .pv-btn--primary:focus-visible,
.pv-app .pv-btn--dark,
.pv-app .pv-btn--dark:hover,
.pv-app .pv-btn--dark:focus-visible {
	color: #fff;
}

/* Same trap for the chosen chip and the "current" filter pill. */
.pv-app a.pv-chip.is-on,
.pv-app a.pv-chip.is-on:hover {
	color: #fff;
}

/* ---------- Greys that sat too close to the white cards ---------- */
.pv-stars__txt--none,
.pv-card__price del,
.pv-price del {
	color: var(--pv-muted);
}

.pv-dnav__num {
	color: #5b6674;
}

/* The 404 watermark was sitting at background grey, effectively invisible. */
.pv-nf__code {
	color: #8f99a6;
}

/* =========================================================================
   Home page: one job per band, numbered so the page reads as a route
   ========================================================================= */

/* Section sub-line: tells you what the block is for in one sentence. */
.pv-section__sub {
	margin: 8px 0 0;
	max-width: 58ch;
	font-size: 14px;
	line-height: 1.55;
	color: var(--pv-muted);
}

/* ---------- Three-step route map, under the trust strip ---------- */
.pv-how {
	padding: 4px 0 10px;
}

.pv-how__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.pv-how__item a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 15px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: #fff;
	transition: border-color .16s ease, transform .16s ease;
}

.pv-how__item a:hover {
	border-color: var(--pv-brand);
	transform: translateY(-1px);
}

.pv-how__n {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
	font-size: 13px;
	font-weight: 700;
}

.pv-how__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.pv-how__body strong {
	font-size: 14.5px;
	font-weight: 650;
	color: var(--pv-ink);
	line-height: 1.3;
}

.pv-how__body span {
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--pv-muted);
}

.pv-how__item svg {
	margin-left: auto;
	flex: none;
	color: var(--pv-muted);
}

/* ---------- Format tiles ---------- */
.pv-formats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.pv-format {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 15px 16px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: #fff;
	transition: border-color .16s ease, transform .16s ease;
}

.pv-format:hover {
	border-color: var(--pv-brand);
	transform: translateY(-1px);
}

.pv-format__name {
	font-size: 14.5px;
	font-weight: 650;
	line-height: 1.3;
	color: var(--pv-ink);
}

.pv-format__meta {
	font-size: 12px;
	color: var(--pv-muted);
}

@media (min-width: 700px) {
	.pv-how {
		padding: 8px 0 14px;
	}

	.pv-how__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 14px;
	}

	.pv-how__item a {
		padding: 16px 18px;
	}

	.pv-formats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 12px;
	}

	.pv-format {
		padding: 17px 18px;
	}
}

/* The eighth tile is a question, not a product: tint it so it reads as a door. */
.pv-format--more {
	background: var(--pv-brand-soft);
	border-color: transparent;
}

.pv-format--more .pv-format__name {
	color: var(--pv-brand-d);
}

.pv-format--more .pv-format__meta {
	color: var(--pv-brand-d);
	opacity: .72;
}

.pv-format--more:hover {
	border-color: var(--pv-brand);
}

/* Eight pest tiles read as an index, not eight posters: go inline on desktop. */
@media (min-width: 700px) {
	.pv-cats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 12px;
	}

	.pv-cats .pv-cat--img {
		flex-direction: row;
		align-items: center;
		gap: 0;
		min-height: 74px;
		padding: 14px 16px;
	}

	.pv-cats .pv-cat--img .pv-cat__body {
		flex: 1;
		width: auto;
	}

	.pv-cats .pv-cat--img .pv-cat__go {
		position: static;
		order: 3;
		margin-left: 10px;
	}
}

/* Trust strip: four stacked rows ate a whole phone screen. Two columns keep
   the same four facts in half the height. */
@media (max-width: 699px) {
	.pv-trust__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 16px;
	}

	.pv-trust__item {
		align-items: flex-start;
		gap: 9px;
		padding: 12px 0;
	}

	.pv-trust__item:nth-child(n+3) {
		border-bottom: 0;
	}

	.pv-trust__item svg {
		width: 18px;
		height: 18px;
		margin-top: 2px;
	}

	.pv-trust__item strong {
		font-size: 12.5px;
		line-height: 1.35;
	}

	.pv-trust__item span {
		font-size: 11.5px;
		line-height: 1.35;
	}
}

/* ---------- Phone pass on the section heads ----------
   The sub-line was sharing a row with the "see all" link, so it collapsed into
   a narrow column of four-word lines. Stack the two: sentence first, link under. */
@media (max-width: 699px) {
	.pv-section__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.pv-section__head .pv-link {
		align-self: flex-start;
	}

	.pv-section__sub {
		font-size: 13.5px;
	}

	/* Reviews on a phone: four lines is a quote, six is an essay. */
	.pv-quote blockquote {
		display: -webkit-box;
		-webkit-line-clamp: 4;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
}

/* Footer had five groups but four columns, so "Company" fell to a new row and
   left two thirds of it empty. Five columns on wide screens. */
@media (min-width: 1000px) {
	.pv-foot__grid {
		grid-template-columns: 1.5fr repeat(4, minmax(0, 1fr));
		gap: 24px 20px;
	}
}

/* Let the privacy line sit as two balanced lines instead of a 100px column. */
@media (min-width: 700px) {
	.pv-sub__note {
		flex: 0 1 210px;
	}
}

/* Archive head on a phone: the count pill sat to the right of the intro, so the
   description wrapped in a 240px column. Put the pill above the title instead. */
@media (max-width: 699px) {
	.pv-archive__head {
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: 10px;
	}

	.pv-archive__count {
		align-self: flex-start;
	}

	.pv-archive__intro p {
		font-size: 13.5px;
	}
}

/* ---------- Guide index: note waterfall ----------
   Covers cycle through three heights and the columns fill downwards, so the
   grid reads like a saved-notes feed rather than a table of equal tiles. */
.pv-topics {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding: 2px 0 16px;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.pv-topics::-webkit-scrollbar {
	display: none;
}

.pv-app .pv-topic {
	flex: 0 0 auto;
	padding: 7px 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	background: #fff;
	color: var(--pv-ink);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	white-space: nowrap;
}

.pv-app .pv-topic:hover {
	border-color: var(--pv-brand);
	color: var(--pv-brand-d);
}

.pv-app .pv-topic.is-on {
	background: var(--pv-ink);
	border-color: var(--pv-ink);
	color: #fff;
}

.pv-feed {
	column-count: 2;
	column-gap: 12px;
	padding-bottom: 24px;
}

.pv-pin {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin: 0 0 16px;
}

.pv-pin__cover {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 14px;
	background: var(--pv-soft);
}

.pv-pin__cover.is-tall {
	aspect-ratio: 3 / 4;
}

.pv-pin__cover.is-square {
	aspect-ratio: 1 / 1;
}

.pv-pin__cover.is-portrait {
	aspect-ratio: 4 / 5;
}

.pv-pin__cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.pv-pin__cover:hover img {
	transform: scale(1.04);
}

.pv-pin__blank {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: linear-gradient(160deg, var(--pv-brand-soft), #e8f2ec);
	color: var(--pv-brand-d);
	font-size: 54px;
	font-weight: 700;
}

.pv-pin__tag {
	position: absolute;
	top: 8px;
	left: 8px;
	padding: 3px 9px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: #26302a;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .01em;
}

.pv-pin__title {
	margin: 9px 1px 0;
	font-size: 14px;
	line-height: 1.45;
	font-weight: 600;
	letter-spacing: -.005em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pv-app .pv-pin__title a {
	color: var(--pv-ink);
	text-decoration: none;
}

.pv-pin__foot {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	color: var(--pv-muted);
	font-size: 11.5px;
}

.pv-pin__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
	font-size: 8.5px;
	font-weight: 700;
	letter-spacing: .02em;
}

.pv-pin__time {
	margin-left: auto;
}

@media (min-width: 700px) {
	.pv-feed {
		column-count: 3;
		column-gap: 18px;
	}

	.pv-pin {
		margin-bottom: 22px;
	}

	.pv-pin__title {
		font-size: 15px;
	}

	.pv-pin__tag {
		top: 10px;
		left: 10px;
	}
}

@media (min-width: 1100px) {
	.pv-feed {
		column-count: 4;
		column-gap: 22px;
	}

	.pv-pin {
		margin-bottom: 26px;
	}
}

/* The article CTA pill is narrow at 1280; "Shop all products" broke over two
   lines inside it. Keep the label on one line and let the pill grow. */
.pv-article__cta .pv-btn,
.pv-blogcta .pv-btn {
	white-space: nowrap;
}

/* =========================================================================
   Account menu + saved guides + floating controls
   ========================================================================= */

/* ---------- Account menu ----------
   Desktop: a panel under the avatar. Phone: a sheet above the tab bar. The
   same markup serves both, and the same markup is opened by the Account tab
   in the tab bar, so there is one list to keep in step, not two. */
.pv-acct {
	position: fixed;
	inset: 0;
	z-index: 170;
	display: none;
}

.pv-acct.is-open {
	display: block;
}

.pv-acct__scrim {
	position: absolute;
	inset: 0;
	background: transparent;
}

.pv-acct__panel {
	position: absolute;
	top: 76px;
	right: 18px;
	width: 312px;
	padding: 12px;
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: 16px;
	box-shadow: 0 26px 60px -28px rgba(16, 24, 40, .34), 0 2px 10px rgba(16, 24, 40, .06);
	animation: pv-pop .16s ease-out;
	transform-origin: 100% 0;
}

@keyframes pv-pop {
	from { opacity: 0; transform: translateY(-6px) scale(.985); }
}

.pv-acct__head {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 4px 4px 12px;
	border-bottom: 1px solid var(--pv-line-2);
}

.pv-acct__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	flex: none;
	border-radius: 50%;
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .02em;
}

.pv-acct__who {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.pv-acct__who strong {
	font-size: 14px;
	font-weight: 650;
	color: var(--pv-ink);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pv-acct__who span {
	font-size: 11.5px;
	color: var(--pv-muted);
	line-height: 1.45;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pv-acct__close {
	display: none;
	margin-left: auto;
	width: 32px;
	height: 32px;
	flex: none;
}

.pv-acct__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px 0;
}

.pv-acct__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px;
	border-radius: 10px;
	color: var(--pv-ink);
}

.pv-acct__item:hover {
	background: var(--pv-soft);
}

.pv-acct__ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	flex: none;
	border-radius: 9px;
	background: var(--pv-soft);
	color: var(--pv-ink-2);
}

.pv-acct__item:hover .pv-acct__ic {
	background: #fff;
	color: var(--pv-brand-d);
}

.pv-acct__txt {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}

.pv-acct__txt strong {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: -.01em;
}

.pv-acct__txt span {
	font-size: 11.5px;
	color: var(--pv-muted);
	line-height: 1.45;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pv-acct__go {
	color: #c3c9d1;
	display: inline-flex;
}

.pv-acct__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 20px;
	padding: 0 7px;
	border-radius: 999px;
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
	font-size: 11.5px;
	font-weight: 700;
}

.pv-acct__foot {
	margin-top: 2px;
	padding-top: 10px;
	border-top: 1px solid var(--pv-line-2);
}

.pv-acct__signout {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 9px 8px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 600;
	color: var(--pv-ink-2);
}

.pv-acct__signout:hover {
	background: var(--pv-soft);
	color: var(--pv-ink);
}

.pv-acctbtn__face {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .02em;
}

.pv-acctbtn:hover .pv-acctbtn__face,
.pv-acctbtn.is-active .pv-acctbtn__face {
	background: var(--pv-brand);
	color: #fff;
}

@media (max-width: 767px) {
	body.pv-acct-open {
		overflow: hidden;
	}

	.pv-acct__scrim {
		background: rgba(12, 16, 20, .42);
		-webkit-backdrop-filter: blur(2px);
		backdrop-filter: blur(2px);
	}

	.pv-acct__panel {
		top: auto;
		left: 8px;
		right: 8px;
		bottom: calc(var(--pv-tab-h) + 8px + env(safe-area-inset-bottom));
		width: auto;
		max-height: calc(100vh - var(--pv-head-h) - var(--pv-tab-h) - 48px);
		overflow-y: auto;
		border-radius: 18px;
		animation: pv-sheet .22s cubic-bezier(.32, .72, 0, 1);
		transform-origin: 50% 100%;
	}

	/* Thumb-sized rows: 46px of tap target, not a 36px line of text. */
	.pv-acct__item {
		padding: 10px 8px;
	}

	.pv-acct__close {
		display: inline-flex;
	}

	.pv-acct__who span {
		white-space: normal;
	}
}

@keyframes pv-sheet {
	from { opacity: 0; transform: translateY(16px); }
}

/* ---------- Floating controls ----------
   One column on the right: chat bubble at the bottom, back-to-top above it,
   both clear of the tab bar, and both lifted again while the product buy bar
   is docked. */
body {
	--pv-chat-b: 20px;
	--pv-top-b: 92px;
}

@media (max-width: 767px) {
	body {
		--pv-chat-b: calc(var(--pv-tab-h) + 18px + env(safe-area-inset-bottom));
		--pv-top-b: calc(var(--pv-tab-h) + 86px + env(safe-area-inset-bottom));
	}
}

body.pv-buybar-on {
	--pv-chat-b: 80px;
	--pv-top-b: 152px;
}

@media (max-width: 767px) {
	body.pv-buybar-on {
		--pv-chat-b: calc(var(--pv-tab-h) + 78px + env(safe-area-inset-bottom));
		--pv-top-b: calc(var(--pv-tab-h) + 146px + env(safe-area-inset-bottom));
	}
}

/* Chatway ships as a fixed 20px/20px bubble and rewrites its inline bottom on
   resize, so the offset has to be declared !important to survive it. */
.chatway--trigger-container {
	bottom: var(--pv-chat-b) !important;
}

/* Hairline that runs while a topic switch is fetching, so the pause reads as
   work in progress rather than a page that did not respond to the tap. */
.pv-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 300;
	width: 100%;
	height: 2px;
	background: var(--pv-brand);
	transform: scaleX(0);
	transform-origin: 0 50%;
	opacity: 0;
	transition: transform .4s ease, opacity .2s ease;
	pointer-events: none;
}

.pv-progress.is-on {
	opacity: 1;
}

/* Feed swapped in place: a short fade covers the moment the new covers paint.
   Opacity only — a transform here would trap every fixed child of <main>. */
.pv-main.pv-in {
	animation: pvGuideIn .2s ease both;
}

@keyframes pvGuideIn {
	from { opacity: .45; }
	to { opacity: 1; }
}

.pv-top {
	position: fixed;
	right: 18px;
	bottom: var(--pv-top-b);
	z-index: 88;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--pv-line);
	border-radius: 50%;
	background: rgba(255, 255, 255, .96);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	color: var(--pv-ink);
	box-shadow: 0 8px 22px -10px rgba(16, 24, 40, .34);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}

.pv-top.is-on {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity .18s ease, transform .18s ease;
}

.pv-top:hover {
	color: var(--pv-brand-d);
	border-color: #cfe6db;
}

@media (max-width: 767px) {
	.pv-top {
		right: 16px;
		width: 46px;
		height: 46px;
	}
}

/* ---------- Save button ---------- */
.pv-savebtn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 36px;
	padding: 0 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	background: #fff;
	color: var(--pv-ink-2);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	transition: background .16s ease, border-color .16s ease, color .16s ease;
}

.pv-savebtn:hover {
	border-color: var(--pv-brand);
	color: var(--pv-brand-d);
}

.pv-savebtn.is-on {
	background: var(--pv-brand-soft);
	border-color: #c6e6d7;
	color: var(--pv-brand-d);
}

.pv-savebtn.is-on svg {
	fill: currentColor;
	fill-opacity: .2;
}

.pv-savebtn.is-busy {
	opacity: .55;
	pointer-events: none;
}

.pv-article__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.pv-pin__media {
	position: relative;
}

.pv-pin__save {
	position: absolute;
	top: 8px;
	right: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: #26302a;
	box-shadow: 0 2px 10px rgba(12, 16, 20, .16);
}

.pv-pin__save.is-on {
	background: #fff;
	color: var(--pv-brand-d);
}

.pv-pin__save.is-on svg {
	fill: currentColor;
	fill-opacity: .22;
}

@media (max-width: 767px) {
	.pv-pin__save {
		width: 34px;
		height: 34px;
	}
}

/* ---------- Saved guides page ---------- */
.pv-saved {
	display: flex;
	flex-direction: column;
	margin-top: 4px;
	border-top: 1px solid var(--pv-line);
}

.pv-saved__row {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--pv-line);
	transition: opacity .2s ease, transform .2s ease;
}

.pv-saved__row.is-gone {
	opacity: 0;
	transform: translateX(-8px);
}

.pv-saved__cover {
	display: block;
	width: 96px;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 12px;
	background: var(--pv-soft);
}

.pv-saved__cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pv-saved__blank {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	background: linear-gradient(160deg, var(--pv-brand-soft), #e8f2ec);
	color: var(--pv-brand-d);
	font-size: 28px;
	font-weight: 700;
}

.pv-saved__body {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.pv-saved__meta {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--pv-brand-d);
}

.pv-saved__title {
	font-size: 16px;
	line-height: 1.35;
	letter-spacing: -.015em;
}

.pv-saved__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--pv-ink-2);
}

.pv-saved__acts {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 4px;
}

.pv-saved__read {
	min-height: 36px;
	padding: 0 14px;
	font-size: 13px;
}

.pv-saved__more {
	margin-top: 22px;
}

@media (min-width: 700px) {
	.pv-saved__row {
		grid-template-columns: 176px minmax(0, 1fr);
		gap: 22px;
		padding: 20px 0;
		align-items: center;
	}

	.pv-saved__cover {
		width: 176px;
		aspect-ratio: 4 / 3;
	}

	.pv-saved__title {
		font-size: 19px;
	}
}

.pv-saved-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	padding: 36px 22px;
	border: 1px dashed #d7dbe2;
	border-radius: 18px;
	background: var(--pv-soft);
	text-align: center;
}

.pv-saved-empty__ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border: 1px solid var(--pv-line);
	border-radius: 16px;
	background: #fff;
	color: var(--pv-brand-d);
}

.pv-saved-empty h2 {
	font-size: 18px;
}

.pv-saved-empty p {
	max-width: 48ch;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--pv-ink-2);
}

.pv-saved-empty__acts {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 6px;
}

/* WoodMart prints its own account link list inside the dashboard hook; with
   the endpoint menu gone it is a second copy of the same links. */
.pv-app .wd-my-account-links {
	display: none;
}

/* =========================================================================
   US handset details
   ========================================================================= */

@media (max-width: 767px) {
	/* iOS Safari zooms the page when a control under 16px takes focus. */
	.pv-app input.input-text,
	.pv-app input[type="text"],
	.pv-app input[type="email"],
	.pv-app input[type="password"],
	.pv-app input[type="tel"],
	.pv-app input[type="search"],
	.pv-app select,
	.pv-app textarea {
		font-size: 16px;
	}

	.pv-app .pv-topic {
		display: inline-flex;
		align-items: center;
		min-height: 38px;
		padding: 0 15px;
	}

	/* Keeps the sticky header from eating a quarter of a small screen. */
	.pv-head__in {
		min-height: 58px;
	}

	.pv-pagehead {
		padding-top: 18px;
	}
}

/* ---------- Orders: empty state ----------
   Replaces the stack of WooCommerce notices (empty list, email verification,
   guest-order recovery) that used to sit here with three misaligned buttons. */
.pv-orders-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 9px;
	padding: 48px 24px 42px;
	border: 1px dashed #d7dbe2;
	border-radius: 18px;
	background: var(--pv-soft);
	text-align: center;
}

.pv-orders-empty__ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border: 1px solid var(--pv-line);
	border-radius: 16px;
	background: #fff;
	color: var(--pv-brand-d);
}

.pv-orders-empty h2 {
	margin: 2px 0 0;
	font-size: 19px;
	letter-spacing: -.015em;
}

.pv-orders-empty p {
	max-width: 46ch;
	margin: 0;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--pv-ink-2);
}

.pv-orders-empty__acts {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 8px;
}

.pv-orders-empty__note {
	margin-top: 4px;
	font-size: 12.5px;
	color: var(--pv-muted);
}

@media (max-width: 767px) {
	.pv-orders-empty {
		padding: 34px 18px 30px;
	}

	.pv-orders-empty__acts {
		width: 100%;
		flex-direction: column;
	}

	.pv-orders-empty__acts .pv-btn {
		width: 100%;
		justify-content: center;
	}
}

/* =========================================================================
   Cart
   Two columns on a desktop: lines on the left, a totals card that follows the
   scroll on the right. On a phone the totals sit under the list, where the
   thumb already is.
   ========================================================================= */

.pv-cartwrap {
	margin: 4px 0 26px;
}

.pv-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}

.pv-cart__main {
	min-width: 0;
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 0 18px;
}

.pv-cart__lines {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ---------- One line ---------- */
.pv-cline {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 84px 128px 100px 32px;
	align-items: center;
	gap: 16px;
	padding: 16px 0;
	border-top: 1px solid var(--pv-line-2);
	position: relative;
}

.pv-cline:first-child {
	border-top: 0;
}

.pv-cline--head {
	padding: 14px 0 10px;
	border-top: 0;
	border-bottom: 1px solid var(--pv-line-2);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pv-muted);
}

.pv-cline--head .pv-cline__headsum {
	text-align: right;
}

.pv-cline__prod {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

.pv-cline__media {
	flex: none;
	display: block;
	width: 74px;
	height: 74px;
	border-radius: var(--pv-r-sm);
	background: var(--pv-soft);
	overflow: hidden;
}

.pv-cline__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.pv-cline__info {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.pv-cline__name {
	font-size: 15px;
	font-weight: 650;
	line-height: 1.35;
	color: var(--pv-ink);
	text-decoration: none;
}

.pv-cline__name:hover {
	color: var(--pv-brand-d);
}

.pv-cline__opts {
	font-size: 12.5px;
	color: var(--pv-muted);
}

.pv-cline__opts dl,
.pv-cline__opts .variation {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 8px;
	margin: 0;
}

.pv-cline__opts dt,
.pv-cline__opts dd {
	display: inline;
	margin: 0;
	font-weight: 500;
}

.pv-cline__opts p {
	margin: 0;
}

.pv-cline__price,
.pv-cline__sum {
	font-size: 14px;
	color: var(--pv-ink-2);
	font-variant-numeric: tabular-nums;
}

.pv-cline__sum {
	font-weight: 700;
	color: var(--pv-ink);
	text-align: right;
}

.pv-cline__label {
	display: none;
}

/* ---------- Stepper ---------- */
.pv-step {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	padding: 2px;
	background: #fff;
	transition: border-color .15s;
}

.pv-step:hover {
	border-color: #d5d9df;
}

.pv-step__btn {
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--pv-ink-2);
	cursor: pointer;
	transition: background .12s, color .12s;
}

.pv-step__btn:hover {
	background: var(--pv-soft);
	color: var(--pv-ink);
}

.pv-step__btn:active {
	background: var(--pv-brand-soft);
	color: var(--pv-brand-d);
}

.pv-step__in {
	width: 34px;
	height: 30px;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 14px;
	font-weight: 650;
	color: var(--pv-ink);
	-moz-appearance: textfield;
	appearance: textfield;
}

.pv-step__in::-webkit-outer-spin-button,
.pv-step__in::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.pv-cline__rm {
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: var(--pv-soft);
	color: var(--pv-muted);
	cursor: pointer;
	transition: background .12s, color .12s;
}

.pv-cline__rm:hover {
	background: #fdecec;
	color: #b91c1c;
}

.pv-cline.is-busy .pv-step {
	opacity: .55;
}

.pv-step__busy {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	overflow: hidden;
	opacity: 0;
	background: var(--pv-line-2);
	transition: opacity .15s;
}

.pv-step__busy span {
	position: absolute;
	top: 0;
	left: -40%;
	width: 40%;
	height: 100%;
	background: var(--pv-brand);
	animation: pv-cartbar 1s ease-in-out infinite;
}

.pv-cline.is-busy .pv-step__busy {
	opacity: 1;
}

@keyframes pv-cartbar {
	0% { left: -40%; }
	100% { left: 100%; }
}

/* ---------- Totals ---------- */
.pv-csum__in {
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	padding: 18px 18px 20px;
}

.pv-csum__title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -.01em;
	color: var(--pv-ink);
}

.pv-csum__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-top: 1px solid var(--pv-line-2);
	font-size: 14px;
	color: var(--pv-ink-2);
}

.pv-csum__row:first-of-type {
	border-top: 0;
}

.pv-csum__val {
	font-weight: 600;
	color: var(--pv-ink);
	font-variant-numeric: tabular-nums;
}

.pv-csum__ship {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 1px;
}

.pv-csum__ship strong {
	color: var(--pv-brand);
	font-weight: 700;
}

.pv-csum__ship em {
	font-style: normal;
	font-size: 11.5px;
	color: var(--pv-muted);
}

.pv-csum__row--disc .pv-csum__val {
	color: var(--pv-brand-d);
}

.pv-csum__row--total {
	margin-top: 4px;
	padding-top: 14px;
	border-top: 1px solid var(--pv-line);
	font-size: 15px;
	font-weight: 700;
	color: var(--pv-ink);
}

.pv-csum__row--total .pv-csum__val {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -.02em;
}

/* ---------- Coupon ---------- */
.pv-csum__coupon {
	margin: 6px 0 2px;
	padding-top: 12px;
	border-top: 1px solid var(--pv-line-2);
}

.pv-csum__label {
	display: block;
	margin-bottom: 7px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pv-muted);
}

.pv-csum__couprow {
	display: flex;
	gap: 8px;
}

.pv-csum__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 42px;
	padding: 0 14px;
	border: 1px solid var(--pv-line);
	border-radius: 999px;
	background: #fff;
	font-size: 16px;
	color: var(--pv-ink);
}

.pv-csum__input:focus {
	outline: 0;
	border-color: var(--pv-brand);
	box-shadow: 0 0 0 3px rgba(15, 122, 90, .12);
}

.pv-csum__apply {
	flex: none;
	height: 42px;
	padding: 0 18px;
	border: 0;
	border-radius: 999px;
	background: var(--pv-brand);
	color: #fff;
	font-size: 13.5px;
	font-weight: 650;
	cursor: pointer;
	transition: background .15s;
}

.pv-csum__apply:hover {
	background: var(--pv-brand-d);
}

.pv-csum__msg {
	margin: 7px 2px 0;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--pv-muted);
}

.pv-csum__msg.is-err {
	color: #b91c1c;
}

.pv-csum__msg.is-ok {
	color: var(--pv-brand-d);
}

.pv-csum__codes {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 2px 0 8px;
	padding: 0;
	list-style: none;
}

.pv-csum__codes li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 4px 9px 4px 11px;
	border-radius: 999px;
	background: var(--pv-brand-soft);
}

.pv-csum__code {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--pv-brand-d);
}

.pv-csum__un {
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 11.5px;
	color: var(--pv-brand-d);
	text-decoration: underline;
	cursor: pointer;
}

.pv-csum__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 50px;
	margin-top: 16px;
	border-radius: 999px;
	background: var(--pv-brand);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: background .15s;
}

.pv-csum__cta:hover {
	background: var(--pv-brand-d);
	color: #fff;
}

.pv-csum__cta .pv-i {
	transition: transform .15s;
}

.pv-csum__cta:hover .pv-i {
	transform: translateX(2px);
}

.pv-csum__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 12px 0 0;
	font-size: 11.5px;
	color: var(--pv-muted);
}

/* ---------- Empty ---------- */
.pv-cart-empty {
	padding: 54px 22px 58px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: #fff;
	text-align: center;
}

.pv-cart-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--pv-soft);
	color: var(--pv-muted);
}

.pv-cart-empty__title {
	margin: 14px 0 4px;
	font-size: 20px;
	letter-spacing: -.015em;
}

.pv-cart-empty__txt {
	max-width: 42ch;
	margin: 0 auto;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--pv-ink-2);
}

.pv-cart-empty__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 46px;
	margin-top: 18px;
	padding: 0 22px;
	border-radius: 999px;
	background: var(--pv-brand);
	color: #fff;
	font-size: 14px;
	font-weight: 650;
	text-decoration: none;
}

.pv-cart-empty__cta:hover {
	background: var(--pv-brand-d);
	color: #fff;
}

/* ---------- Checkout: promo row inside the summary ---------- */
.pv-coupon-row th {
	padding-top: 10px;
	vertical-align: top;
	font-weight: 600;
}

.pv-coupon-row td {
	padding-top: 10px;
}

.pv-csum__codes--co {
	margin: 0 0 6px;
}

.pv-csum__couprow--co {
	gap: 6px;
}

.pv-csum__couprow--co .pv-csum__input {
	height: 38px;
	font-size: 16px;
}

.pv-csum__couprow--co .pv-csum__apply {
	height: 38px;
	padding: 0 14px;
	font-size: 13px;
}

.pv-checkout .woocommerce-form-coupon-toggle,
.pv-woo--checkout .woocommerce-form-coupon-toggle {
	display: none;
}

@media (min-width: 1000px) {
	.pv-cart {
		grid-template-columns: minmax(0, 1fr) 372px;
		gap: 26px;
	}

	/* The totals follow the list, so the checkout button is never scrolled
	   out of reach on a long cart. */
	.pv-cart__side {
		position: sticky;
		top: calc(var(--pv-head-h) + 16px);
	}
}

@media (max-width: 760px) {
	.pv-cart__main {
		padding: 0 14px;
	}

	.pv-cline--head {
		display: none;
	}

	.pv-cline {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"prod remove"
			"price qty"
			"sum sum";
		gap: 10px 12px;
		padding: 16px 0;
	}

	.pv-cline__prod {
		grid-area: prod;
	}

	.pv-cline__price {
		grid-area: price;
		align-self: center;
	}

	.pv-cline__qty {
		grid-area: qty;
		justify-self: end;
	}

	.pv-cline__sum {
		grid-area: sum;
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		padding-top: 9px;
		border-top: 1px dashed var(--pv-line-2);
	}

	.pv-cline__rm {
		grid-area: remove;
		align-self: start;
	}

	.pv-cline__label {
		display: block;
		margin-bottom: 2px;
		font-size: 10px;
		font-weight: 700;
		letter-spacing: .07em;
		text-transform: uppercase;
		color: var(--pv-muted);
	}

	.pv-cline__sum .pv-cline__label {
		margin: 0;
	}

	.pv-cline__media {
		width: 66px;
		height: 66px;
	}

	.pv-csum__in {
		padding: 16px 16px 18px;
	}
}

@media (max-width: 380px) {
	.pv-cline {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.pv-cline__media {
		width: 58px;
		height: 58px;
	}

	.pv-step__btn {
		width: 28px;
	}
}

/* ---------- Checkout summary ----------
   The theme's checkout stylesheet does not load on this page, so the order
   review table arrives unformatted: 600px thumbnails, stretched rows and the
   line total printed twice. These rules rebuild the compact summary the theme
   intended, without touching its markup. */
.pv-csum__amt {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--pv-brand-d);
}

.pv-woo--checkout .woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table thead th {
	padding: 0 0 10px;
	border-bottom: 1px solid var(--pv-line-2);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pv-muted);
	text-align: left;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table thead th.product-total {
	text-align: right;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tbody td {
	padding: 12px 0;
	border-bottom: 1px solid var(--pv-line-2);
	vertical-align: middle;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tbody tr:last-child td {
	border-bottom: 0;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tbody td.product-total {
	text-align: right;
	white-space: nowrap;
	font-weight: 650;
	color: var(--pv-ink);
}

.pv-woo--checkout .wd-checkout-prod {
	display: flex;
	align-items: center;
	gap: 12px;
}

.pv-woo--checkout .wd-checkout-prod-img {
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
}

.pv-woo--checkout .wd-checkout-prod-img img {
	width: 56px;
	height: 56px;
	padding: 3px;
	border-radius: 9px;
	background: var(--pv-soft);
	object-fit: contain;
}

.pv-woo--checkout .wd-checkout-prod-cont {
	flex: 1 1 auto;
	min-width: 0;
}

.pv-woo--checkout .wd-checkout-prod-title a,
.pv-woo--checkout .wd-checkout-prod-title .cart-product-label {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--pv-ink);
	text-decoration: none;
}

/* The line total is in the right column; the copy inside the product cell
   would print it twice. */
.pv-woo--checkout .wd-checkout-prod-total {
	display: none;
}

.pv-woo--checkout .wd-checkout-remove-btn-wrapp {
	order: 3;
	flex: none;
	margin-left: 2px;
}

.pv-woo--checkout .wd-checkout-remove-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--pv-soft);
	text-decoration: none;
}

.pv-woo--checkout .wd-checkout-remove-btn::before {
	content: "\00d7";
	font-size: 14px;
	line-height: 1;
	color: var(--pv-muted);
}

/* Quantity is fixed at checkout: show it, do not invite editing it. */
.pv-woo--checkout .wd-checkout-prod .quantity {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	margin-top: 3px;
}

.pv-woo--checkout .wd-checkout-prod .quantity::before {
	content: "\00d7";
	font-size: 12px;
	color: var(--pv-muted);
}

.pv-woo--checkout .wd-checkout-prod .quantity .minus,
.pv-woo--checkout .wd-checkout-prod .quantity .plus {
	display: none;
}

.pv-woo--checkout .wd-checkout-prod .quantity input.qty {
	width: 20px;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left;
	font-size: 12.5px;
	font-weight: 650;
	color: var(--pv-ink-2);
	pointer-events: none;
	-moz-appearance: textfield;
	appearance: textfield;
}

.pv-woo--checkout .wd-checkout-prod .quantity input.qty::-webkit-outer-spin-button,
.pv-woo--checkout .wd-checkout-prod .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tfoot th {
	padding: 9px 0;
	text-align: left;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pv-ink-2);
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tfoot td {
	padding: 9px 0;
	text-align: right;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pv-ink);
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tfoot tr.pv-coupon-row th {
	padding-top: 12px;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tfoot tr.pv-coupon-row td {
	padding-top: 12px;
	text-align: left;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tfoot tr.order-total th,
.pv-woo--checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td {
	padding-top: 14px;
	border-top: 1px solid var(--pv-line);
	font-size: 15px;
	font-weight: 700;
	color: var(--pv-ink);
}

.pv-woo--checkout .woocommerce-checkout-review-order-table tfoot tr.order-total .amount {
	font-size: 19px;
	letter-spacing: -.02em;
}

/* The applied code is in the promo row above, with its own remove control. */
.pv-woo--checkout .woocommerce-checkout-review-order-table .cart-discount {
	display: none;
}

/* Checkout summary, second pass: the theme prints the line total inside the
   product cell (the table body has one cell, the head has two), so the amount
   travels with the row and the empty second header goes away. */
.pv-woo--checkout .woocommerce-checkout-review-order-table thead th.product-total {
	display: none;
}

.pv-woo--checkout .wd-checkout-prod-total {
	display: block;
	flex: none;
	margin-left: auto;
	text-align: right;
	white-space: nowrap;
	font-weight: 650;
	color: var(--pv-ink);
}

.pv-woo--checkout .pv-coupon-row td {
	padding: 12px 0 14px;
	text-align: left;
}

.pv-coup__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.pv-coup__label {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pv-muted);
}

.pv-coup .pv-csum__codes {
	margin: 0;
}

.pv-coup__row {
	display: flex;
	gap: 8px;
	max-width: 420px;
}

.pv-coup__row .pv-csum__input {
	height: 40px;
}

.pv-coup__row .pv-csum__apply {
	height: 40px;
}

.pv-coup .pv-csum__msg:empty {
	display: none;
}

.pv-woo--checkout .wd-checkout-prod {
	flex-wrap: nowrap;
}

.pv-woo--checkout .wd-checkout-prod-cont {
	flex: 1 1 auto;
}

.pv-woo--checkout .woocommerce-checkout-review-order-table .pv-shiprow td {
	white-space: nowrap;
}
