/* ==========================================================================
   Pickwell - design tokens
   ========================================================================== */

/* Default scheme: forest. Each body.pw-scheme-* below swaps only these six
   tokens; every other rule is written against them. */
:root {
	--pw-ink: #123529;
	--pw-ink-soft: #1d4a3a;
	--pw-paper: #f9f8f3;
	--pw-accent: #ff6a3d;
	--pw-accent-dark: #e04f24;
	--pw-accent-soft: #fff0eb;
	--pw-accent-shadow: rgba(255, 106, 61, .3);
	--pw-line: #e7e4d9;
	--pw-line-strong: #d5d0c0;

	--pw-card: #ffffff;
	--pw-gold: #f2a007;
	--pw-muted: #6d7a88;
	--pw-muted-light: #98a4b0;
	--pw-radius: 16px;
	--pw-radius-sm: 12px;
	--pw-pill: 999px;
	--pw-shadow: 0 2px 6px rgba(20, 27, 36, .05);
	--pw-shadow-lift: 0 14px 30px rgba(20, 27, 36, .13);
	--pw-display: "Fraunces", Georgia, "Times New Roman", serif;
	--pw-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

body.pw-scheme-midnight {
	--pw-ink: #18213f;
	--pw-ink-soft: #26315a;
	--pw-paper: #f7f9fc;
	--pw-accent: #f5a524;
	--pw-accent-dark: #d98b0e;
	--pw-accent-soft: #fff6e6;
	--pw-accent-shadow: rgba(245, 165, 36, .32);
	--pw-line: #e4e8f0;
	--pw-line-strong: #cdd4e0;
}

body.pw-scheme-aubergine {
	--pw-ink: #2e1b33;
	--pw-ink-soft: #43284b;
	--pw-paper: #fbf7fa;
	--pw-accent: #ff5d8f;
	--pw-accent-dark: #e13c71;
	--pw-accent-soft: #ffeef4;
	--pw-accent-shadow: rgba(255, 93, 143, .3);
	--pw-line: #ece3ea;
	--pw-line-strong: #dccdd8;
}

body.pw-scheme-espresso {
	--pw-ink: #2a1f1a;
	--pw-ink-soft: #3d2e26;
	--pw-paper: #fbf7f2;
	--pw-accent: #d9793f;
	--pw-accent-dark: #bd5f28;
	--pw-accent-soft: #fdf0e6;
	--pw-accent-shadow: rgba(217, 121, 63, .3);
	--pw-line: #ece4da;
	--pw-line-strong: #dbcebe;
}

body.pw-scheme-ink {
	--pw-ink: #141b24;
	--pw-ink-soft: #27323f;
	--pw-paper: #fbf9f6;
	--pw-accent: #ff5a35;
	--pw-accent-dark: #e0421f;
	--pw-accent-soft: #fff1ec;
	--pw-accent-shadow: rgba(255, 90, 53, .3);
	--pw-line: #e9e3da;
	--pw-line-strong: #d8cfc2;
}

/* ==========================================================================
   Base
   ========================================================================== */

body.pw,
body.pw .site {
	background-color: var(--pw-paper);
	color: var(--pw-ink);
	font-family: var(--pw-body);
}

body.pw h1,
body.pw h2,
body.pw h3 {
	font-family: var(--pw-display);
	color: var(--pw-ink);
	letter-spacing: -.01em;
}

.pw-icon {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	background-color: var(--pw-ink) !important;
	border-bottom: 0;
	padding: 0 !important;
	/* Storefront sets a large em-based margin here. */
	margin-bottom: 0 !important;
	position: sticky;
	top: 0;
	z-index: 120;
}

.site-header .col-full {
	padding: 0 20px;
	max-width: 1280px;
}

.pw-bar {
	display: flex;
	align-items: center;
	gap: 18px;
	min-height: 74px;
	padding: 12px 0;
}

.pw-bar__burger,
.pw-bar__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	border-radius: var(--pw-pill);
	background: transparent;
	color: #fff;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.pw-bar__burger:hover,
.pw-bar__burger:focus-visible,
.pw-bar__action:hover,
.pw-bar__action:focus-visible {
	background: rgba(255, 255, 255, .12);
	color: #fff;
	outline: none;
}

.pw-bar__burger .pw-icon {
	width: 24px;
	height: 24px;
}

/* Brand lockup */

.pw-bar__brand {
	flex: 0 0 auto;
}

.pw-brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #fff;
	text-decoration: none;
}

.pw-brand:hover {
	color: #fff;
	text-decoration: none;
}

.pw-brand__mark {
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	color: var(--pw-ink);
}

.pw-brand__mark-bg {
	fill: var(--pw-accent);
}

.pw-brand__mark-dot {
	fill: #fff;
}

.pw-brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1.1;
}

.pw-brand__name {
	font-family: var(--pw-display);
	font-size: 1.45rem;
	font-weight: 700;
	letter-spacing: -.02em;
}

.pw-brand__tag {
	color: rgba(255, 255, 255, .58);
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: .02em;
	margin-top: 2px;
}

/* Inline search */

.pw-bar__search {
	flex: 1 1 auto;
	min-width: 0;
}

.pw-search {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 540px;
	margin: 0 auto;
}

.pw-search__icon {
	position: absolute;
	left: 16px;
	color: var(--pw-muted);
	pointer-events: none;
	width: 18px;
	height: 18px;
}

.pw-search .pw-search__input {
	width: 100%;
	height: 46px;
	margin: 0;
	padding: 0 104px 0 44px;
	border: 1px solid transparent;
	border-radius: var(--pw-pill);
	background-color: rgba(255, 255, 255, .95);
	color: var(--pw-ink);
	font-family: var(--pw-body);
	font-size: .95rem;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
}

.pw-search .pw-search__input::placeholder {
	color: var(--pw-muted-light);
}

.pw-search .pw-search__input:focus {
	outline: none;
	border-color: var(--pw-accent);
	background-color: #fff;
	box-shadow: 0 0 0 3px var(--pw-accent-shadow);
}

.pw-search__submit {
	position: absolute;
	right: 5px;
	height: 36px;
	padding: 0 18px;
	border: 0;
	border-radius: var(--pw-pill);
	background: var(--pw-ink);
	color: #fff;
	font-family: var(--pw-body);
	font-size: .82rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .15s ease;
}

.pw-search__submit:hover {
	background: var(--pw-accent);
	color: #fff;
}

.pw-bar__actions {
	display: flex;
	align-items: center;
	gap: 2px;
	flex: 0 0 auto;
}

.pw-cart {
	position: relative;
}

.pw-cart__count {
	position: absolute;
	top: 2px;
	right: 0;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: var(--pw-pill);
	background: var(--pw-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 19px;
	text-align: center;
}

.pw-cart__count.is-empty {
	background: rgba(255, 255, 255, .22);
}

/* ==========================================================================
   Category navigation: one button opens a panel with every category, so none
   of the 19 is hidden behind a horizontal scrollbar.
   ========================================================================== */

.pw-nav {
	position: relative;
	padding-bottom: 14px;
}

.pw-nav__row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.pw-nav__toggle {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	height: 40px;
	padding: 0 16px 0 14px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: var(--pw-pill);
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-family: var(--pw-body);
	font-size: .88rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease;
}

.pw-nav__toggle:hover,
.pw-nav__toggle:focus-visible {
	background: rgba(255, 255, 255, .18);
	border-color: rgba(255, 255, 255, .5);
	outline: none;
}

.pw-nav__toggle.is-current,
.pw-nav__toggle[aria-expanded="true"] {
	background: var(--pw-accent);
	border-color: var(--pw-accent);
	color: #fff;
}

.pw-nav__toggle-icon {
	width: 18px;
	height: 18px;
}

.pw-nav__chevron {
	width: 16px;
	height: 16px;
	transition: transform .18s ease;
}

.pw-nav__toggle[aria-expanded="true"] .pw-nav__chevron {
	transform: rotate(180deg);
}

.pw-nav__divider {
	width: 1px;
	height: 22px;
	flex: 0 0 auto;
	background: rgba(255, 255, 255, .22);
	margin: 0 4px;
}

/* The panel */

.pw-catpanel {
	position: absolute;
	top: calc(100% - 4px);
	left: 0;
	right: 0;
	z-index: 20;
	padding: 20px 22px 22px;
	border-radius: var(--pw-radius);
	background: var(--pw-card);
	box-shadow: 0 20px 44px rgba(12, 20, 28, .26);
	max-height: min(70vh, 560px);
	overflow-y: auto;
	animation: pw-panel-in .16s ease-out;
}

.pw-catpanel[hidden] {
	display: none;
}

@keyframes pw-panel-in {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}

.pw-catpanel__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--pw-line);
}

.pw-catpanel__title {
	margin: 0;
	color: var(--pw-ink);
	font-family: var(--pw-display);
	font-size: 1.05rem;
	font-weight: 700;
}

.pw-catpanel__all {
	color: var(--pw-accent-dark);
	font-size: .85rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.pw-catpanel__all:hover {
	color: var(--pw-accent-dark);
	text-decoration: underline;
}

.pw-catpanel__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pw-catpanel__grid li {
	margin: 0;
	list-style: none;
}

.pw-cat {
	display: flex;
	align-items: center;
	gap: 11px;
	height: 100%;
	padding: 9px 11px;
	border-radius: var(--pw-radius-sm);
	color: var(--pw-ink);
	text-decoration: none;
	transition: background-color .13s ease;
}

.pw-cat:hover,
.pw-cat:focus-visible {
	background: var(--pw-accent-soft);
	color: var(--pw-ink);
	text-decoration: none;
	outline: none;
}

.pw-cat.is-active {
	background: var(--pw-accent-soft);
	box-shadow: inset 0 0 0 1px var(--pw-accent);
}

.pw-cat__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--pw-paper);
	color: var(--pw-ink);
}

.pw-cat:hover .pw-cat__icon,
.pw-cat.is-active .pw-cat__icon {
	background: var(--pw-accent);
	color: #fff;
}

.pw-cat__icon .pw-icon {
	width: 17px;
	height: 17px;
}

.pw-cat__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.pw-cat__name {
	font-size: .86rem;
	font-weight: 600;
	line-height: 1.25;
}

.pw-cat__count {
	color: var(--pw-muted-light);
	font-size: .73rem;
	line-height: 1.4;
}

/* Click-anywhere-else backdrop, behind the panel but over the page. */
.pw-catpanel-backdrop {
	position: fixed;
	inset: 0;
	z-index: 110;
	background: rgba(10, 16, 22, .3);
}

.pw-catpanel-backdrop[hidden] {
	display: none;
}

.pw-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	height: 36px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: var(--pw-pill);
	background: transparent;
	color: rgba(255, 255, 255, .84);
	font-size: .84rem;
	font-weight: 500;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.pw-chip:hover,
.pw-chip:focus-visible {
	background: rgba(255, 255, 255, .1);
	border-color: rgba(255, 255, 255, .42);
	color: #fff;
	text-decoration: none;
	outline: none;
}

.pw-chip.is-active {
	background: var(--pw-accent);
	border-color: var(--pw-accent);
	color: #fff;
	font-weight: 600;
}

.pw-chip .pw-icon {
	width: 17px;
	height: 17px;
	opacity: .9;
}

/* ==========================================================================
   Drawer
   ========================================================================== */

.pw-drawer {
	position: fixed;
	inset: 0;
	z-index: 500;
}

.pw-drawer[hidden] {
	display: none;
}

.pw-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 16, 22, .5);
}

.pw-drawer__panel {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: min(330px, 86vw);
	background: var(--pw-card);
	box-shadow: 4px 0 30px rgba(10, 16, 22, .24);
	display: flex;
	flex-direction: column;
	animation: pw-slide-in .18s ease-out;
}

@keyframes pw-slide-in {
	from { transform: translateX(-100%); }
	to   { transform: translateX(0); }
}

.pw-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 20px;
	background: var(--pw-ink);
	color: #fff;
}

.pw-drawer__title {
	font-family: var(--pw-display);
	font-size: 1.2rem;
	font-weight: 700;
}

.pw-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: var(--pw-pill);
	background: rgba(255, 255, 255, .12);
	color: #fff;
	cursor: pointer;
}

.pw-drawer__menu {
	margin: 0;
	padding: 8px 0;
	list-style: none;
	overflow-y: auto;
}

.pw-drawer__menu li {
	margin: 0;
	list-style: none;
}

.pw-drawer__menu a {
	display: block;
	padding: 14px 22px;
	border-bottom: 1px solid var(--pw-line);
	color: var(--pw-ink);
	font-weight: 500;
	text-decoration: none;
}

.pw-drawer__menu a:hover {
	background: var(--pw-accent-soft);
	color: var(--pw-accent-dark);
}

.pw-drawer__menu .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pw-drawer__menu .sub-menu a {
	padding-left: 38px;
	font-weight: 400;
}

body.pw-locked {
	overflow: hidden;
}

/* ==========================================================================
   Content area
   ========================================================================== */

.site-content {
	padding-top: 32px;
}

.site-content .col-full {
	max-width: 1280px;
	padding-left: 20px;
	padding-right: 20px;
}

.content-area {
	width: 100%;
	float: none;
	margin-right: 0;
}

#secondary,
.widget-area {
	display: none;
}

/* The shop page hides its title, leaving Storefront's tall, empty archive
   header. It holds only whitespace, so :empty cannot match it. */
body.post-type-archive-product .woocommerce-products-header {
	display: none;
}

body.woocommerce .woocommerce-products-header {
	padding: 0;
	margin-bottom: 1.4rem;
	text-align: left;
}

body.woocommerce .woocommerce-products-header .woocommerce-products-header__title,
body.woocommerce .woocommerce-products-header h1 {
	position: relative;
	margin: 0 0 .6rem;
	padding: 0 0 .5rem;
	color: var(--pw-ink);
	font-family: var(--pw-display);
	font-size: 2rem;
	font-weight: 700;
	text-align: left;
	text-shadow: none;
}

/* Accent rule under section headings. */
body.woocommerce .woocommerce-products-header .woocommerce-products-header__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 54px;
	height: 4px;
	border-radius: var(--pw-pill);
	background: var(--pw-accent);
}

body.woocommerce .woocommerce-products-header .term-description {
	color: var(--pw-muted);
	font-size: .95rem;
	max-width: 62ch;
}

/* ==========================================================================
   Product grid
   ========================================================================== */

.woocommerce ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0 0 2rem;
	padding: 0;
	border: 0;
	list-style: none;
}

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

.woocommerce ul.products li.product,
ul.products li.product {
	width: 100% !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 14px 14px 18px;
	border: 1px solid var(--pw-line);
	border-radius: var(--pw-radius);
	background: var(--pw-card);
	box-shadow: var(--pw-shadow);
	display: flex;
	flex-direction: column;
	position: relative;
	text-align: left;
	transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.woocommerce ul.products li.product:hover,
ul.products li.product:hover {
	transform: translateY(-3px);
	border-color: var(--pw-line-strong);
	box-shadow: var(--pw-shadow-lift);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	text-decoration: none;
}

/* Image well */

.pw-card__media {
	position: relative;
	border-radius: var(--pw-radius-sm);
	background: linear-gradient(160deg, #f7f4ef 0%, #f2eee7 100%);
	overflow: hidden;
	margin-bottom: 14px;
}

.woocommerce ul.products li.product .pw-card__media img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	display: block;
	margin: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	mix-blend-mode: multiply;
}

.pw-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
	padding: 4px 10px;
	border-radius: var(--pw-pill);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .01em;
	line-height: 1.4;
}

.pw-badge--sale {
	background: var(--pw-accent);
	color: #fff;
	box-shadow: 0 2px 8px var(--pw-accent-shadow);
}

/* Storefront's own sale flash is replaced by .pw-badge in the loop. */
.woocommerce ul.products li.product .onsale {
	display: none;
}

/* Title */

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0 0 10px;
	padding: 0;
	color: var(--pw-ink);
	font-family: var(--pw-body);
	font-size: .92rem;
	font-weight: 500;
	line-height: 1.4;
	min-height: 2.8em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
	color: var(--pw-accent-dark);
}

/* Price: WooCommerce prints the struck-through price first, the sale leads here. */

.woocommerce ul.products li.product .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	margin: auto 0 6px;
	color: var(--pw-ink);
	font-family: var(--pw-display);
	font-size: 1.22rem;
	font-weight: 700;
	line-height: 1.2;
}

.woocommerce ul.products li.product .price ins {
	order: 1;
	background: transparent;
	color: var(--pw-ink);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce ul.products li.product .price del {
	order: 2;
	color: var(--pw-muted-light);
	font-family: var(--pw-body);
	font-size: .8rem;
	font-weight: 400;
	opacity: 1;
}

.woocommerce ul.products li.product .price .screen-reader-text {
	order: 3;
}

/* Rating */

.woocommerce ul.products li.product .pw-rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 4px;
	min-height: 1.3em;
}

.woocommerce ul.products li.product .star-rating {
	margin: 0;
	float: none;
	font-size: .88em;
}

/* Storefront colours the stars from the link colour; override both layers. */
.woocommerce .star-rating::before,
.woocommerce .star-rating span::before,
.star-rating::before,
.star-rating span::before {
	color: var(--pw-gold);
}

.woocommerce ul.products li.product .star-rating--empty {
	opacity: .25;
}

.woocommerce ul.products li.product .pw-rating__count {
	color: var(--pw-muted);
	font-size: .78rem;
	line-height: 1;
}

/* Actions: buy now leads, add to cart is the quieter secondary. */

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products li.product .pw-buy {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin-top: 10px;
	padding: 10px 16px;
	border-radius: var(--pw-pill);
	font-family: var(--pw-body);
	font-size: .82rem;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
	line-height: 1.25;
}

.woocommerce ul.products li.product .pw-buy {
	width: 100%;
	background: var(--pw-accent);
	color: #fff;
	font-weight: 700;
	box-shadow: 0 4px 12px var(--pw-accent-shadow);
	transition: background-color .15s ease, box-shadow .15s ease;
}

.woocommerce ul.products li.product .pw-buy:hover,
.woocommerce ul.products li.product .pw-buy:focus-visible {
	background: var(--pw-accent-dark);
	color: #fff;
	box-shadow: 0 6px 16px var(--pw-accent-shadow);
}

.pw-buy__arrow {
	transition: transform .15s ease;
}

.pw-buy:hover .pw-buy__arrow {
	transform: translateX(3px);
}

.woocommerce ul.products li.product .pw-buy--options {
	background: var(--pw-accent-soft);
	color: var(--pw-accent-dark);
	box-shadow: none;
}

.woocommerce ul.products li.product .pw-buy--options:hover {
	background: var(--pw-accent);
	color: #fff;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	width: 100%;
	margin-top: 8px;
	background: transparent;
	border: 1px solid var(--pw-line-strong);
	color: var(--pw-ink);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover {
	background: var(--pw-ink);
	border-color: var(--pw-ink);
	color: #fff;
}

.woocommerce ul.products li.product .button.loading::after {
	top: auto;
}

/* Product page: buy now sits beside the add-to-cart button. */

.single-product div.product form.cart .pw-buy--single {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 10px;
	padding: 12px 26px;
	border: 0;
	border-radius: var(--pw-pill);
	background: var(--pw-accent);
	color: #fff;
	font-family: var(--pw-body);
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 6px 16px var(--pw-accent-shadow);
	transition: background-color .15s ease;
}

.single-product div.product form.cart .pw-buy--single:hover {
	background: var(--pw-accent-dark);
	color: #fff;
}

/* ==========================================================================
   Load more + ad gate
   ========================================================================== */

.pw-more {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin: 8px 0 44px;
	text-align: center;
}

.pw-more__count {
	margin: 0;
	color: var(--pw-muted);
	font-size: .88rem;
}

.pw-more__button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 230px;
	justify-content: center;
	padding: 15px 34px;
	border: 0;
	border-radius: var(--pw-pill);
	background: var(--pw-accent);
	color: #fff;
	font-family: var(--pw-body);
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 8px 20px var(--pw-accent-shadow);
	transition: background-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.pw-more__button:hover {
	background: var(--pw-accent-dark);
	transform: translateY(-1px);
	box-shadow: 0 12px 26px var(--pw-accent-shadow);
}

.pw-more__button.is-loading {
	opacity: .75;
	cursor: progress;
}

.pw-more__button[hidden] {
	display: none;
}

.pw-more__chevron {
	width: 18px;
	height: 18px;
}

.pw-more__button.is-loading .pw-more__chevron {
	animation: pw-spin .9s linear infinite;
}

@keyframes pw-spin {
	to { transform: rotate(360deg); }
}

.pw-more__note {
	margin: 0;
	color: var(--pw-muted-light);
	font-size: .76rem;
}

.pw-more__error {
	margin: 0;
	color: var(--pw-accent-dark);
	font-size: .85rem;
}

.pw-more__error[hidden] {
	display: none;
}

/* With JS the grid pages through the button, so the numbered pager is hidden
   but still rendered for crawlers and no-JS visitors. */
.pw-js .woocommerce-pagination {
	display: none;
}

.woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	border: 0;
}

.woocommerce-pagination ul.page-numbers li {
	border: 0;
}

.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: var(--pw-pill);
	background: #fff;
	border: 1px solid var(--pw-line);
	color: var(--pw-ink);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-pagination .page-numbers .current {
	background: var(--pw-ink);
	border-color: var(--pw-ink);
	color: #fff;
}

/* Ad dialog */

.pw-ad {
	position: fixed;
	inset: 0;
	z-index: 600;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.pw-ad[hidden] {
	display: none;
}

.pw-ad__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 16, 22, .62);
	backdrop-filter: blur(2px);
}

.pw-ad__panel {
	position: relative;
	width: min(420px, 100%);
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	background: var(--pw-card);
	border-radius: 20px;
	box-shadow: 0 24px 60px rgba(10, 16, 22, .4);
	animation: pw-pop .18s ease-out;
}

@keyframes pw-pop {
	from { transform: scale(.96); opacity: 0; }
	to   { transform: scale(1); opacity: 1; }
}

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

.pw-ad__label {
	margin: 0;
	color: var(--pw-muted-light);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.pw-ad__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: var(--pw-pill);
	background: transparent;
	color: var(--pw-muted);
	cursor: pointer;
}

.pw-ad__close:hover {
	background: var(--pw-line);
	color: var(--pw-ink);
}

.pw-ad__slot {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 250px;
	padding: 18px;
	overflow: hidden;
}

.pw-ad__slot img,
.pw-ad__slot iframe {
	max-width: 100%;
}

.pw-ad__house {
	width: 100%;
	padding: 26px 20px;
	border: 2px dashed var(--pw-line-strong);
	border-radius: var(--pw-radius);
	background: var(--pw-accent-soft);
	text-align: center;
}

.pw-ad__kicker {
	margin: 0 0 8px;
	color: var(--pw-accent-dark);
	font-family: var(--pw-display);
	font-size: 1.15rem;
	font-weight: 700;
}

.pw-ad__lead {
	margin: 0 0 8px;
	color: var(--pw-ink);
	font-size: .88rem;
	line-height: 1.5;
}

.pw-ad__hint {
	margin: 0;
	color: var(--pw-muted);
	font-size: .76rem;
	line-height: 1.5;
}

.pw-ad__foot {
	padding: 0 18px 18px;
}

.pw-ad__continue {
	width: 100%;
	padding: 14px 20px;
	border: 0;
	border-radius: var(--pw-pill);
	background: var(--pw-ink);
	color: #fff;
	font-family: var(--pw-body);
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .15s ease, opacity .15s ease;
}

.pw-ad__continue:hover:not(:disabled) {
	background: var(--pw-accent);
}

.pw-ad__continue:disabled {
	background: var(--pw-line-strong);
	color: var(--pw-muted);
	cursor: default;
}

/* ==========================================================================
   WooCommerce notices
   ========================================================================== */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--pw-radius);
	font-family: var(--pw-body);
	font-size: .92rem;
}

/*
 * Storefront gives the inline "View cart" button `padding: 0 0 0 16px`, so its
 * trailing arrow (a ::after icon glyph) runs into the pill's rounded right edge
 * and gets clipped. Restore padding on all four sides and leave room for it.
 */
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button {
	display: inline-flex;
	align-items: center;
	padding: 9px 20px;
	margin-left: 18px;
	border-radius: var(--pw-pill);
	background-color: var(--pw-ink);
	color: #fff;
	font-size: .84rem;
	font-weight: 600;
	line-height: 1.25;
	white-space: nowrap;
}

.woocommerce-message a.button:hover,
.woocommerce-info a.button:hover,
.woocommerce-error a.button:hover {
	background-color: var(--pw-accent);
	color: #fff;
}

/* The glyph is sized from the font; give it its own breathing room instead of
   relying on the button's padding alone. */
.woocommerce-message a.button::after,
.woocommerce-info a.button::after,
.woocommerce-error a.button::after {
	margin-left: 9px;
	line-height: 1;
}

/* ==========================================================================
   Shop chrome
   ========================================================================== */

/* Storefront floats the count and the dropdown, which have different heights,
   so their baselines never line up. One flex row fixes it. */
.storefront-sorting {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 16px;
	margin-bottom: 1.2rem;
}

.storefront-sorting::before,
.storefront-sorting::after {
	content: none;
}

/* WooCommerce drops its notices wrapper inside this row. Empty it is still a
   flex item, which pushed the count off to the middle; give it its own line. */
.storefront-sorting > .woocommerce-notices-wrapper {
	order: 0;
	flex: 0 0 100%;
}

.storefront-sorting > .woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-result-count {
	order: 1;
	float: none;
	margin: 0;
	color: var(--pw-muted);
	font-size: .88rem;
	line-height: 1.4;
}

.woocommerce-ordering {
	order: 2;
	float: none;
	margin: 0;
	color: var(--pw-muted);
	font-size: .85rem;
}

/* Native control: kept for no-JS and for the form itself, hidden once the
   custom listbox is built. */
.woocommerce-ordering select {
	height: 40px;
	padding: 0 14px;
	border: 1px solid var(--pw-line);
	border-radius: var(--pw-pill);
	background-color: #fff;
	color: var(--pw-ink);
	font-family: var(--pw-body);
	font-size: .85rem;
}

.pw-select__native {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   Custom sort dropdown
   ========================================================================== */

.pw-select {
	position: relative;
	display: inline-block;
}

.pw-select__button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 42px;
	padding: 0 14px 0 18px;
	border: 1px solid var(--pw-line-strong);
	border-radius: var(--pw-pill);
	background: var(--pw-card);
	color: var(--pw-ink);
	font-family: var(--pw-body);
	font-size: .87rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.pw-select__button:hover {
	border-color: var(--pw-ink);
}

.pw-select__button:focus-visible,
.pw-select__button[aria-expanded="true"] {
	outline: none;
	border-color: var(--pw-accent);
	box-shadow: 0 0 0 3px var(--pw-accent-shadow);
}

.pw-select__prefix {
	color: var(--pw-muted-light);
	font-weight: 500;
}

.pw-select__chevron {
	width: 16px;
	height: 16px;
	color: var(--pw-muted);
	transition: transform .18s ease;
}

.pw-select__button[aria-expanded="true"] .pw-select__chevron {
	transform: rotate(180deg);
}

.pw-select__menu {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	z-index: 40;
	min-width: 240px;
	margin: 0;
	padding: 6px;
	border-radius: var(--pw-radius-sm);
	background: var(--pw-card);
	box-shadow: 0 16px 36px rgba(12, 20, 28, .2);
	list-style: none;
	animation: pw-panel-in .14s ease-out;
}

.pw-select__menu[hidden] {
	display: none;
}

.pw-select__option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0;
	padding: 10px 12px;
	border-radius: 9px;
	color: var(--pw-ink);
	font-size: .87rem;
	list-style: none;
	cursor: pointer;
}

.pw-select__option:hover,
.pw-select__option.is-focused {
	background: var(--pw-accent-soft);
}

.pw-select__option.is-selected {
	color: var(--pw-accent-dark);
	font-weight: 600;
}

.pw-select__option.is-selected::after {
	content: "✓";
	font-size: .9rem;
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */

/* The breadcrumb renders outside #content, straight in .site, so it has to
   carry the content container's width and gutters itself. */
.pw-crumbs,
.storefront-breadcrumb {
	/* content-box, to match Storefront's .col-full so the crumbs line up with
	   the grid below rather than sitting 20px in. */
	box-sizing: content-box;
	max-width: 1280px;
	margin: 0 auto;
	padding: 18px 20px 0;
	background: transparent;
}

/* Storefront decorates breadcrumb links with an icon-font house. The theme
   draws its own outline house in the markup, so that one is suppressed
   outright - !important because the parent rule outranks anything scoped here. */
.pw-crumbs .pw-crumbs__link::before,
.pw-crumbs .pw-crumbs__link::after,
.pw-crumbs .pw-crumbs__current::before,
.pw-crumbs .pw-crumbs__current::after {
	content: none !important;
	display: none !important;
}

.pw-crumbs__list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .84rem;
}

.pw-crumbs__item {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	min-width: 0;
}

/* Chevron between items, drawn rather than typed, so it never wraps alone. */
.pw-crumbs__item + .pw-crumbs__item::before {
	content: "";
	width: 6px;
	height: 6px;
	margin: 0 9px;
	flex: 0 0 auto;
	border-right: 1.6px solid var(--pw-line-strong);
	border-bottom: 1.6px solid var(--pw-line-strong);
	transform: rotate(-45deg);
}

.pw-crumbs__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 8px;
	border-radius: 7px;
	color: var(--pw-muted);
	text-decoration: none;
	transition: background-color .13s ease, color .13s ease;
}

.pw-crumbs__link:hover,
.pw-crumbs__link:focus-visible {
	background: var(--pw-accent-soft);
	color: var(--pw-accent-dark);
	text-decoration: none;
	outline: none;
}

.pw-crumbs__home {
	width: 15px;
	height: 15px;
}

.pw-crumbs__current {
	display: block;
	padding: 3px 4px;
	color: var(--pw-ink);
	font-weight: 600;
	max-width: 46ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ==========================================================================
   Search suggestions
   ========================================================================== */

.pw-suggest {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	z-index: 200;
	max-height: min(66vh, 460px);
	overflow-y: auto;
	padding: 6px;
	border-radius: var(--pw-radius);
	background: var(--pw-card);
	box-shadow: 0 20px 44px rgba(12, 20, 28, .28);
	animation: pw-panel-in .14s ease-out;
}

.pw-suggest[hidden] {
	display: none;
}

.pw-suggest__status {
	padding: 16px 14px;
	color: var(--pw-muted);
	font-size: .87rem;
	text-align: center;
}

.pw-suggest__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 9px 10px;
	border-radius: var(--pw-radius-sm);
	color: var(--pw-ink);
	text-decoration: none;
}

.pw-suggest__item:hover,
.pw-suggest__item.is-focused {
	background: var(--pw-accent-soft);
	color: var(--pw-ink);
	text-decoration: none;
}

.pw-suggest__thumb {
	width: 48px;
	height: 48px;
	flex: 0 0 auto;
	border-radius: 9px;
	object-fit: contain;
	background: var(--pw-paper);
}

.pw-suggest__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	flex: 1 1 auto;
}

.pw-suggest__name {
	font-size: .88rem;
	font-weight: 500;
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	-webkit-box-orient: vertical;
}

.pw-suggest__name mark {
	padding: 0;
	background: transparent;
	color: var(--pw-accent-dark);
	font-weight: 700;
}

.pw-suggest__cat {
	color: var(--pw-muted-light);
	font-size: .74rem;
}

.pw-suggest__price {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	flex: 0 0 auto;
	color: var(--pw-ink);
	font-family: var(--pw-display);
	font-size: .92rem;
	font-weight: 700;
	line-height: 1.25;
	white-space: nowrap;
}

.pw-suggest__was {
	color: var(--pw-muted-light);
	font-family: var(--pw-body);
	font-size: .72rem;
	font-weight: 400;
}

.pw-suggest__all {
	display: block;
	margin-top: 4px;
	padding: 12px 10px;
	border-top: 1px solid var(--pw-line);
	color: var(--pw-accent-dark);
	font-size: .86rem;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
}

.pw-suggest__all:hover {
	color: var(--pw-accent-dark);
	background: var(--pw-accent-soft);
	border-radius: var(--pw-radius-sm);
}

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	border-radius: var(--pw-pill);
	background-color: var(--pw-ink);
	color: #fff;
	font-family: var(--pw-body);
	font-weight: 600;
	text-shadow: none;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background-color: var(--pw-accent);
	color: #fff;
}

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

.single-product div.product .product_title {
	font-family: var(--pw-display);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.18;
}

.single-product div.product .summary > .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px;
	color: var(--pw-ink);
	font-family: var(--pw-display);
	font-weight: 700;
}

.single-product div.product .summary > .price ins {
	order: 1;
	background: transparent;
	color: var(--pw-ink);
	text-decoration: none;
}

.single-product div.product .summary > .price del {
	order: 2;
	color: var(--pw-muted-light);
	font-family: var(--pw-body);
	font-size: .8em;
	font-weight: 400;
}

.single-product div.product span.onsale {
	display: inline-block;
	position: static;
	min-width: auto;
	min-height: auto;
	margin-bottom: 10px;
	padding: 4px 12px;
	border-radius: var(--pw-pill);
	background: var(--pw-accent);
	color: #fff;
	font-size: .74rem;
	font-weight: 700;
	line-height: 1.5;
}

/* With gallery slider support enabled, the viewport has to clip its slides. */
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .woocommerce-product-gallery .flex-viewport {
	overflow: hidden;
}

.woocommerce div.product .woocommerce-product-gallery__image img {
	border-radius: var(--pw-radius-sm);
	background: linear-gradient(160deg, #f7f4ef 0%, #f2eee7 100%);
}

/* ==========================================================================
   Footer
   ========================================================================== */

/* Storefront styles the footer from the Customizer with selectors such as
   `.site-footer a` and `.site-footer h2`, so these rules stay prefixed to win. */
.site-footer {
	background-color: var(--pw-ink) !important;
	color: #b9c3cd !important;
	padding: 0;
	margin-top: 0;
	font-size: .92rem;
}

.site-footer .col-full {
	max-width: 1280px;
	padding: 0 20px;
}

.site-footer .pw-footer__cols {
	display: grid;
	grid-template-columns: 1.1fr 1fr 1fr;
	gap: 36px;
	padding: 48px 0 30px;
}

.site-footer .pw-footer__brand {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
	color: #fff;
}

.site-footer .pw-footer__wordmark {
	font-family: var(--pw-display);
	font-size: 1.5rem;
	font-weight: 700;
	color: #fff;
	letter-spacing: -.02em;
}

.site-footer .pw-footer__heading {
	margin: 0 0 14px;
	color: #fff;
	font-family: var(--pw-display);
	font-size: 1.05rem;
	font-weight: 700;
}

.site-footer .pw-footer__subheading {
	margin: 18px 0 10px;
	color: #fff;
	font-family: var(--pw-body);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.site-footer .pw-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer .pw-footer__list li {
	margin: 0 0 10px;
	list-style: none;
}

.site-footer .pw-footer a,
.site-footer a {
	color: #b9c3cd !important;
	text-decoration: none;
}

.site-footer .pw-footer a:hover,
.site-footer a:hover {
	color: var(--pw-accent) !important;
	text-decoration: none;
}

.site-footer .pw-footer,
.site-footer .pw-footer p,
.site-footer .pw-footer li,
.site-footer .pw-footer strong {
	color: #b9c3cd;
}

.site-footer .pw-footer__address {
	margin: 0;
	line-height: 1.7;
}

.site-footer .pw-pay {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer .pw-pay__item {
	margin: 0;
	padding: 6px 11px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 7px;
	background: rgba(255, 255, 255, .05);
	color: #d3dce4;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .04em;
	list-style: none;
}

.site-footer .pw-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 18px 0 30px;
	border-top: 1px solid rgba(255, 255, 255, .1);
	color: #7f8e9c;
	font-size: .8rem;
	text-align: center;
}

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

@media (max-width: 1100px) {
	.pw-brand__tag {
		display: none;
	}
}

@media (max-width: 900px) {
	.pw-bar {
		flex-wrap: wrap;
		gap: 12px;
		padding: 12px 0 0;
	}

	.pw-bar__brand {
		flex: 1 1 auto;
	}

	.pw-bar__search {
		order: 3;
		flex: 1 1 100%;
		padding-bottom: 12px;
	}

	.pw-search {
		max-width: none;
	}

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

	.pw-catpanel__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.site-footer .pw-footer__cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1100px) and (min-width: 901px) {
	.pw-catpanel__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.site-header .col-full {
		padding: 0 14px;
	}

	.pw-brand__name {
		font-size: 1.22rem;
	}

	.pw-brand__mark {
		width: 34px;
		height: 34px;
	}

	.pw-chip {
		height: 33px;
		padding: 0 13px;
		font-size: .79rem;
	}

	.pw-nav__toggle {
		height: 36px;
		font-size: .82rem;
	}

	.pw-catpanel {
		padding: 16px 14px 18px;
		max-height: 74vh;
	}

	.pw-catpanel__grid {
		grid-template-columns: 1fr;
	}

	.woocommerce ul.products,
	ul.products {
		gap: 12px;
	}

	.woocommerce ul.products li.product,
	ul.products li.product {
		padding: 10px 10px 14px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: .84rem;
	}

	.woocommerce ul.products li.product .price {
		font-size: 1.08rem;
	}

	.pw-more__button {
		width: 100%;
		min-width: 0;
	}

	.site-footer .pw-footer__cols {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 34px 0 22px;
	}
}
