/*
 * Wyld Grey — editorial storefront design system.
 *
 * A self-contained stylesheet: tokens, a small grid, and every component the
 * theme renders. It replaces the previous Bootstrap + Glowify layer entirely,
 * so nothing here depends on another framework being loaded first.
 *
 * The visual language is modern luxury-editorial commerce: a paper-white and
 * cream ground, a Caslon-style serif for anything that speaks, a tight grotesk
 * for anything that labels, hairline rules instead of boxes, and pill buttons.
 */

/* ==========================================================================
   1. Tokens
   ========================================================================== */

:root {
	/* Ink */
	--wg-ink: #000000;
	--wg-ink-80: #2b2b2b;
	--wg-ink-60: #6f6f6f;
	--wg-ink-40: #9b9b9b;
	--wg-ink-20: #c9c7c0;

	/* Ground */
	--wg-paper: #ffffff;
	--wg-cream: #f9f8f4;
	--wg-cream-deep: #f2f0e9;
	--wg-line: #e3e1da;
	--wg-line-strong: #cfccc2;

	/* Signal */
	--wg-sale: #c8402e;
	--wg-success: #3d6b4f;

	/* Type */
	--wg-serif: "Libre Caslon Display", "Libre Caslon Text", "Adobe Caslon Pro", Georgia, "Times New Roman", serif;
	--wg-serif-text: "Libre Caslon Text", "Adobe Caslon Pro", Georgia, serif;
	--wg-sans: "Inter", "Neue Haas Grotesk Display Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;

	/* Metrics */
	--wg-announce-h: 28px;
	--wg-header-h: 64px;
	--wg-gutter: clamp(16px, 2.4vw, 40px);
	--wg-max: 1760px;
	--wg-measure: 680px;
	--wg-drawer-w: 460px;
	--wg-radius-pill: 999px;

	/* Rhythm */
	--wg-block: clamp(56px, 7vw, 104px);
	--wg-block-sm: clamp(32px, 4vw, 56px);

	--wg-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Customizer colours still feed the accent tokens so the palette panel keeps
   working; the editorial system only uses them for sale/price emphasis. */
:root {
	--accent: var(--wg-sale);
	--primary: var(--wg-ink);
	--secondary: var(--wg-ink-60);
	--gray: var(--wg-cream);
	--border: var(--wg-line);
}

/* ==========================================================================
   2. Reset
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--wg-paper);
	color: var(--wg-ink);
	font-family: var(--wg-sans);
	font-size: 15px;
	line-height: 1.45;
	font-weight: 400;
	letter-spacing: 0.01em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

body.wg-no-scroll {
	overflow: hidden;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.2s var(--wg-ease), color 0.2s var(--wg-ease);
}

a:hover {
	color: inherit;
	opacity: 0.62;
}

button {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

p {
	margin: 0 0 1em;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-family: var(--wg-serif);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: -0.01em;
}

table {
	width: 100%;
	border-collapse: collapse;
}

hr {
	border: 0;
	border-top: 1px solid var(--wg-line);
	margin: var(--wg-block-sm) 0;
}

::selection {
	background: var(--wg-ink);
	color: var(--wg-paper);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 999;
	width: auto;
	height: auto;
	clip: auto;
	padding: 10px 18px;
	background: var(--wg-ink);
	color: var(--wg-paper);
}

:focus-visible {
	outline: 1px solid var(--wg-ink);
	outline-offset: 3px;
}

/* ==========================================================================
   3. Layout primitives (also cover the legacy grid class names)
   ========================================================================== */

.wg-wrap,
.container {
	width: 100%;
	max-width: var(--wg-max);
	margin-inline: auto;
	padding-inline: var(--wg-gutter);
}

.wg-wrap--narrow {
	max-width: 1240px;
}

.wg-wrap--text {
	max-width: var(--wg-measure);
}

.wg-bleed {
	width: 100%;
	padding-inline: 0;
}

.row {
	display: flex;
	flex-wrap: wrap;
	margin-inline: -12px;
}

.row > [class*="col-"] {
	padding-inline: 12px;
	width: 100%;
}

.col-12 { width: 100%; }
.col-6 { width: 50%; }

@media (min-width: 768px) {
	.col-md-6 { width: 50%; }
	.col-md-4 { width: 33.3333%; }
}

@media (min-width: 992px) {
	.col-lg-2 { width: 16.6666%; }
	.col-lg-3 { width: 25%; }
	.col-lg-4 { width: 33.3333%; }
	.col-lg-5 { width: 41.6666%; }
	.col-lg-6 { width: 50%; }
	.col-lg-7 { width: 58.3333%; }
	.col-lg-8 { width: 66.6666%; }
	.col-lg-9 { width: 75%; }
	.col-lg-10 { width: 83.3333%; }
	.col-lg-12 { width: 100%; }
}

.cs_gap_y_20 > [class*="col-"] { padding-block: 10px; }
.cs_gap_y_30 > [class*="col-"] { padding-block: 15px; }
.cs_gap_y_40 > [class*="col-"] { padding-block: 20px; }

.d-flex { display: flex; }
.d-block { display: block; }
.flex-wrap { flex-wrap: wrap; }
.flex-row-reverse { flex-direction: row-reverse; }
.align-items-center { align-items: center; }
.justify-content-between { justify-content: space-between; }
.justify-content-center { justify-content: center; }
.text-center { text-align: center; }
.text-uppercase { text-transform: uppercase; }
.mb-0 { margin-bottom: 0 !important; }
.w-100 { width: 100%; }
.overflow-hidden { overflow: hidden; }
.position-relative { position: relative; }

/* Vertical rhythm helper printed by wyldgrey_space(). The editorial layout is
   far tighter than the old template's spacing, so the requested heights are
   scaled rather than used literally. */
.wg-space {
	height: calc(var(--wg-space-d, 60px) * 0.55);
}

@media (max-width: 991px) {
	.wg-space {
		height: calc(var(--wg-space-m, 40px) * 0.6);
	}
}

.wg-section {
	margin-top: var(--wg-block);
}

.wg-section--flush {
	margin-top: 0;
}

/* ==========================================================================
   4. Typography
   ========================================================================== */

.wg-display {
	font-family: var(--wg-serif);
	font-size: clamp(38px, 6vw, 84px);
	line-height: 1.02;
	letter-spacing: -0.02em;
}

.wg-display em,
.wg-heading em,
.wg-italic {
	font-style: italic;
}

.wg-heading {
	font-family: var(--wg-serif);
	font-size: clamp(26px, 3vw, 40px);
	line-height: 1.08;
	text-transform: lowercase;
	margin: 0;
}

.wg-heading--sm {
	font-size: clamp(20px, 2vw, 26px);
}

.wg-deck {
	font-family: var(--wg-serif-text);
	font-size: clamp(16px, 1.5vw, 22px);
	line-height: 1.45;
	color: var(--wg-ink-80);
}

.wg-eyebrow {
	font-family: var(--wg-sans);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wg-ink-60);
}

.wg-label {
	font-family: var(--wg-sans);
	font-size: 13px;
	letter-spacing: 0.01em;
	color: var(--wg-ink-60);
	text-transform: lowercase;
}

.wg-cat {
	font-family: var(--wg-serif);
	font-style: italic;
	font-size: 15px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
}

.wg-prose {
	font-family: var(--wg-serif-text);
	font-size: 18px;
	line-height: 1.62;
	color: var(--wg-ink-80);
}

.wg-prose h2,
.wg-prose h3,
.wg-prose h4 {
	font-family: var(--wg-serif);
	margin-top: 1.6em;
	color: var(--wg-ink);
}

.wg-prose h2 { font-size: 30px; }
.wg-prose h3 { font-size: 24px; }

.wg-prose a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.wg-prose blockquote {
	margin: 1.8em 0;
	padding-left: 24px;
	border-left: 1px solid var(--wg-ink);
	font-style: italic;
	font-size: 22px;
}

.wg-prose img {
	margin-block: 1.6em;
}

.wg-prose ul,
.wg-prose ol {
	margin: 0 0 1.2em 1.2em;
	list-style: disc;
}

.wg-prose ol { list-style: decimal; }
.wg-prose li { margin-bottom: 0.4em; }

/* ==========================================================================
   5. Buttons, links, forms
   ========================================================================== */

.wg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	padding: 10px 28px;
	border-radius: var(--wg-radius-pill);
	border: 1px solid var(--wg-ink);
	background: var(--wg-ink);
	color: var(--wg-paper);
	font-family: var(--wg-sans);
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0.01em;
	text-transform: lowercase;
	text-align: center;
	cursor: pointer;
	transition: background 0.22s var(--wg-ease), color 0.22s var(--wg-ease), border-color 0.22s var(--wg-ease), opacity 0.22s var(--wg-ease);
}

.wg-btn:hover {
	opacity: 1;
	background: var(--wg-ink-80);
	color: var(--wg-paper);
	border-color: var(--wg-ink-80);
}

.wg-btn--ghost {
	background: transparent;
	color: var(--wg-ink);
	border-color: var(--wg-ink);
}

.wg-btn--ghost:hover {
	background: var(--wg-ink);
	color: var(--wg-paper);
}

.wg-btn--quiet {
	background: var(--wg-cream-deep);
	border-color: transparent;
	color: var(--wg-ink);
}

.wg-btn--quiet:hover {
	background: var(--wg-line);
	color: var(--wg-ink);
	border-color: transparent;
}

.wg-btn--light {
	background: var(--wg-paper);
	color: var(--wg-ink);
	border-color: var(--wg-paper);
}

.wg-btn--light:hover {
	background: var(--wg-cream);
	color: var(--wg-ink);
	border-color: var(--wg-cream);
}

.wg-btn--block {
	display: flex;
	width: 100%;
}

.wg-btn--sm {
	min-height: 34px;
	padding: 8px 20px;
	font-size: 13px;
}

.wg-btn[disabled],
.wg-btn.disabled {
	background: var(--wg-line);
	border-color: var(--wg-line);
	color: var(--wg-ink-40);
	pointer-events: none;
}

.wg-link {
	display: inline-block;
	font-size: 14px;
	text-transform: lowercase;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}

.wg-link:hover {
	opacity: 0.6;
}

/* Forms — underline only, no boxes. */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="date"],
select,
textarea {
	width: 100%;
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--wg-line-strong);
	border-radius: 0;
	background: transparent;
	font-family: var(--wg-sans);
	font-size: 15px;
	color: var(--wg-ink);
	appearance: none;
}

select {
	background-image: linear-gradient(45deg, transparent 50%, var(--wg-ink) 50%), linear-gradient(135deg, var(--wg-ink) 50%, transparent 50%);
	background-position: calc(100% - 12px) 55%, calc(100% - 7px) 55%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	padding-right: 26px;
	cursor: pointer;
}

textarea {
	min-height: 130px;
	resize: vertical;
}

input::placeholder,
textarea::placeholder {
	color: var(--wg-ink-40);
	text-transform: lowercase;
}

input:focus,
select:focus,
textarea:focus {
	outline: none;
	border-bottom-color: var(--wg-ink);
}

label {
	display: block;
	font-size: 13px;
	color: var(--wg-ink-60);
	text-transform: lowercase;
	margin-bottom: 2px;
}

.wg-field {
	margin-bottom: 22px;
}

/* ==========================================================================
   6. Header
   ========================================================================== */

.wg-announce {
	background: var(--wg-ink);
	color: var(--wg-paper);
	min-height: var(--wg-announce-h);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 5px 16px;
	font-size: 12px;
	line-height: 1.3;
	text-align: center;
	text-transform: lowercase;
	position: relative;
	z-index: 60;
}

.wg-announce a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wg-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--wg-paper);
	transition: background 0.3s var(--wg-ease), color 0.3s var(--wg-ease);
}

.wg-header__bar {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: var(--wg-header-h);
	padding-inline: var(--wg-gutter);
}

.wg-brand {
	font-family: var(--wg-serif);
	font-size: 30px;
	line-height: 1;
	letter-spacing: -0.02em;
	text-transform: lowercase;
	flex: none;
	margin-right: 6px;
}

.wg-brand img {
	max-height: 34px;
	width: auto;
}

.wg-brand:hover {
	opacity: 1;
}

.wg-nav-wrap {
	flex: 1 1 auto;
	min-width: 0;
}

.wg-nav {
	display: flex;
	align-items: center;
	gap: 26px;
}

.wg-nav > li {
	position: static;
}

.wg-nav > li > a,
.wg-nav > li > .wg-nav__toggle {
	display: inline-block;
	padding: 20px 0;
	font-size: 14px;
	letter-spacing: 0.01em;
	text-transform: lowercase;
}

.wg-nav > li.current-menu-item > a,
.wg-nav > li.current_page_item > a {
	border-bottom: 1px solid currentColor;
}

.wg-header__tools {
	display: flex;
	align-items: center;
	gap: 22px;
	flex: none;
	margin-left: auto;
	font-size: 14px;
	text-transform: lowercase;
}

.wg-header__tools button {
	text-transform: lowercase;
	font-size: 14px;
}

.wg-bag-count {
	font-variant-numeric: tabular-nums;
}

.wg-burger {
	display: none;
	width: 22px;
	height: 14px;
	position: relative;
}

.wg-burger span {
	position: absolute;
	left: 0;
	right: 0;
	height: 1px;
	background: currentColor;
}

.wg-burger span:nth-child(1) { top: 0; }
.wg-burger span:nth-child(2) { top: 50%; }
.wg-burger span:nth-child(3) { bottom: 0; }

/* Transparent-over-hero state, used on the front page and category heroes.
   The bar keeps its place in the flow (so it can stick) while a negative
   margin pulls the hero up underneath it. */
.wg-header--over {
	background: transparent;
	color: var(--wg-paper);
	margin-bottom: calc(-1 * var(--wg-header-h));
}

.wg-header--over .wg-header__bar {
	position: relative;
	z-index: 1;
	/* No scrim band — a soft text shadow keeps the nav legible on pale heroes. */
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 2px 18px rgba(0, 0, 0, 0.35);
}

.wg-header--over.is-stuck .wg-header__bar {
	text-shadow: none;
}

/* The hero has to start flush under the bar, whatever wrapper renders it. */
body.wg-has-hero .wg-main > *:first-child,
body.wg-has-hero .wg-main > .elementor > .elementor-section:first-child,
body.wg-has-hero .wg-main > .elementor > .elementor-element:first-child {
	margin-top: 0;
	padding-top: 0;
}

.wg-header--over.is-stuck {
	background: var(--wg-paper);
	color: var(--wg-ink);
	border-bottom: 1px solid var(--wg-line);
}

.wg-header--over.is-stuck .wg-header__bar {
	text-shadow: none;
}

.wg-header.is-stuck:not(.wg-header--over) {
	border-bottom: 1px solid var(--wg-line);
}

/* Mega menu panel */
.wg-nav__item--has-children > a::after {
	content: none;
}

.wg-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--wg-paper);
	color: var(--wg-ink);
	border-top: 1px solid var(--wg-line);
	border-bottom: 1px solid var(--wg-line);
	padding: 36px var(--wg-gutter) 44px;
	display: none;
	gap: 48px;
	z-index: 5;
}

.wg-nav__item:hover > .wg-mega,
.wg-nav__item:focus-within > .wg-mega {
	display: flex;
	flex-wrap: wrap;
}

.wg-mega__col {
	min-width: 160px;
}

.wg-mega__col h4 {
	font-family: var(--wg-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wg-ink-40);
	margin-bottom: 14px;
}

.wg-mega__col li + li {
	margin-top: 9px;
}

.wg-mega__col a {
	font-size: 14px;
	text-transform: lowercase;
}

/* Search overlay */
.wg-search {
	position: fixed;
	inset: 0 0 auto;
	top: 0;
	background: var(--wg-paper);
	z-index: 70;
	padding: 26px var(--wg-gutter) 40px;
	transform: translateY(-100%);
	transition: transform 0.35s var(--wg-ease);
	border-bottom: 1px solid var(--wg-line);
}

.wg-search.is-open {
	transform: translateY(0);
}

.wg-search__row {
	display: flex;
	align-items: flex-end;
	gap: 20px;
	max-width: 900px;
	margin-inline: auto;
}

.wg-search input[type="search"] {
	font-family: var(--wg-serif);
	font-size: clamp(24px, 4vw, 44px);
	padding-bottom: 12px;
	text-transform: lowercase;
}

.wg-search__hint {
	max-width: 900px;
	margin: 14px auto 0;
	font-size: 12px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
}

/* Mobile drawer navigation */
.wg-mobile-nav {
	position: fixed;
	inset: 0;
	background: var(--wg-paper);
	z-index: 80;
	padding: 22px var(--wg-gutter) 40px;
	overflow-y: auto;
	transform: translateX(-100%);
	transition: transform 0.35s var(--wg-ease);
}

.wg-mobile-nav.is-open {
	transform: translateX(0);
}

.wg-mobile-nav__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 26px;
}

.wg-mobile-nav ul li {
	border-bottom: 1px solid var(--wg-line);
}

.wg-mobile-nav ul li a {
	display: block;
	padding: 15px 0;
	font-family: var(--wg-serif);
	font-size: 22px;
	text-transform: lowercase;
}

.wg-mobile-nav ul ul {
	padding-left: 14px;
	padding-bottom: 8px;
}

.wg-mobile-nav ul ul li {
	border: 0;
}

.wg-mobile-nav ul ul li a {
	font-family: var(--wg-sans);
	font-size: 14px;
	padding: 7px 0;
}

.wg-scrim {
	position: fixed;
	inset: 0;
	background: rgba(20, 19, 17, 0.34);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s var(--wg-ease), visibility 0.3s var(--wg-ease);
	z-index: 65;
}

.wg-scrim.is-open {
	opacity: 1;
	visibility: visible;
}

/* ==========================================================================
   7. Cart drawer
   ========================================================================== */

.wg-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(100%, var(--wg-drawer-w));
	background: var(--wg-paper);
	z-index: 90;
	transform: translateX(100%);
	transition: transform 0.38s var(--wg-ease);
	display: flex;
	flex-direction: column;
}

.wg-drawer.is-open {
	transform: translateX(0);
}

.wg-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 22px 26px 16px;
}

.wg-drawer__title {
	font-family: var(--wg-sans);
	font-size: 14px;
	font-weight: 600;
	text-transform: lowercase;
	margin: 0;
}

.wg-drawer__body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 0 26px;
}

.wg-mini-cart li {
	display: flex;
	gap: 16px;
	padding: 18px 0;
	border-top: 1px solid var(--wg-line);
}

.wg-mini-cart li:first-child {
	border-top: 0;
}

.wg-mini-cart__thumb {
	flex: none;
	width: 84px;
	background: var(--wg-cream);
}

.wg-mini-cart__thumb img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.wg-mini-cart__body {
	flex: 1 1 auto;
	min-width: 0;
}

.wg-mini-cart__brand {
	font-size: 12px;
	font-weight: 600;
	text-transform: lowercase;
}

.wg-mini-cart__name {
	font-family: var(--wg-serif);
	font-size: 18px;
	text-transform: lowercase;
	margin: 2px 0 6px;
}

.wg-mini-cart__meta,
.wg-mini-cart__meta p {
	font-size: 13px;
	color: var(--wg-ink-60);
	margin: 0;
}

.wg-mini-cart__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-top: 8px;
	font-size: 14px;
}

.wg-mini-cart__remove {
	font-size: 12px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
	border-bottom: 1px solid currentColor;
}

.wg-drawer__foot {
	padding: 18px 26px 26px;
	border-top: 1px solid var(--wg-line);
	background: var(--wg-cream);
}

.wg-drawer__sum {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: 15px;
	margin-bottom: 14px;
}

.wg-drawer__note {
	margin: 10px 0 0;
	font-size: 12px;
	color: var(--wg-ink-60);
	text-align: center;
	text-transform: lowercase;
}

.wg-drawer__empty {
	padding: 60px 0;
	text-align: center;
	color: var(--wg-ink-60);
	text-transform: lowercase;
}

/* ==========================================================================
   8. Footer
   ========================================================================== */

.wg-footer {
	position: relative;
	margin-top: var(--wg-block);
	padding: clamp(48px, 6vw, 88px) 0 0;
	background: var(--wg-paper);
	overflow: hidden;
}

.wg-footer__mark {
	position: absolute;
	left: 50%;
	top: 46%;
	transform: translate(-50%, -50%);
	font-family: var(--wg-serif);
	font-size: min(46vw, 760px);
	line-height: 0.8;
	color: var(--wg-cream);
	text-transform: lowercase;
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
	z-index: 0;
}

.wg-footer__in {
	position: relative;
	z-index: 1;
}

.wg-footer__grid {
	display: grid;
	grid-template-columns: minmax(240px, 1.4fr) repeat(4, minmax(120px, 1fr));
	gap: 40px;
	align-items: start;
}

.wg-footer__title {
	font-family: var(--wg-sans);
	font-size: 15px;
	font-weight: 600;
	text-transform: lowercase;
	letter-spacing: 0;
	margin: 0 0 18px;
}

.wg-footer__menu li + li {
	margin-top: 12px;
}

.wg-footer__menu a {
	font-size: 15px;
	text-transform: lowercase;
}

.wg-subscribe {
	max-width: 340px;
}

.wg-subscribe__form {
	display: flex;
	align-items: center;
	gap: 10px;
	border-bottom: 1px solid var(--wg-ink);
}

.wg-subscribe__form input[type="email"] {
	border: 0;
	padding: 12px 0;
	font-size: 15px;
}

.wg-subscribe__form button {
	flex: none;
	font-size: 13px;
	text-transform: lowercase;
	border-bottom: 1px solid transparent;
	padding-bottom: 2px;
}

.wg-subscribe__form button:hover {
	border-bottom-color: currentColor;
}

.wg-subscribe__fine {
	margin: 12px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--wg-ink-60);
}

.wg-subscribe__fine a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wg-footer__social {
	display: flex;
	gap: 16px;
	margin-top: 22px;
	font-size: 15px;
}

.wg-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 26px;
	padding: 26px 0 30px;
	margin-top: clamp(40px, 6vw, 90px);
	font-size: 12px;
	color: var(--wg-ink-60);
	text-transform: lowercase;
}

.wg-footer__legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 26px;
}

.wg-footer__legal p {
	margin: 0;
	margin-left: auto;
}

/* ==========================================================================
   9. Home modules
   ========================================================================== */

.wg-hero {
	position: relative;
	min-height: calc(100vh - var(--wg-announce-h));
	display: flex;
	align-items: flex-end;
	color: var(--wg-paper);
	background: var(--wg-cream-deep) center / cover no-repeat;
	isolation: isolate;
}

.wg-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.22) 0%, rgba(0, 0, 0, 0) 38%, rgba(0, 0, 0, 0.28) 100%);
	z-index: -1;
}

.wg-hero__text {
	width: 100%;
	max-width: 620px;
	margin-left: auto;
	padding: 0 var(--wg-gutter) clamp(48px, 9vh, 120px);
	text-align: center;
}

.wg-hero__eyebrow {
	font-size: 15px;
	text-transform: lowercase;
	margin-bottom: 6px;
}

.wg-hero__title {
	font-family: var(--wg-serif);
	font-size: clamp(38px, 5.2vw, 68px);
	line-height: 1.02;
	margin: 0 0 22px;
	text-transform: lowercase;
}

.wg-hero__title em {
	font-style: italic;
}

.wg-hero--left .wg-hero__text {
	margin-left: 0;
	margin-right: auto;
	text-align: left;
}

/* Section head: serif title left, pill link right. */
.wg-sechead {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 22px;
}

.wg-sechead__title {
	font-family: var(--wg-serif);
	font-style: italic;
	font-size: clamp(24px, 2.6vw, 36px);
	line-height: 1;
	text-transform: lowercase;
	margin: 0;
}

.wg-sechead__title span {
	font-style: normal;
}

.wg-sechead__sub {
	margin: 6px 0 0;
	font-size: 14px;
	color: var(--wg-ink-60);
}

.wg-sechead--center {
	flex-direction: column;
	text-align: center;
}

/* Horizontal rail with scroll-snap. */
.wg-rail {
	position: relative;
}

.wg-rail__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 3 * 24px) / 4);
	gap: 24px;
	overflow-x: auto;
	/* overflow-x:auto implies a vertical scroll context too; with mandatory
	   snap that trapped the page's wheel whenever the cursor sat on a card.
	   Locking the y axis lets vertical scrolling pass through to the page. */
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.wg-rail__track::-webkit-scrollbar {
	display: none;
}

.wg-rail__track > * {
	scroll-snap-align: start;
}

.wg-rail--3 .wg-rail__track { grid-auto-columns: calc((100% - 2 * 24px) / 3); }
.wg-rail--5 .wg-rail__track { grid-auto-columns: calc((100% - 4 * 24px) / 5); }

.wg-rail__nav {
	position: absolute;
	top: 38%;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid var(--wg-line);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.25s var(--wg-ease);
	font-size: 15px;
}

.wg-rail:hover .wg-rail__nav {
	opacity: 1;
}

.wg-rail__nav--prev { left: -12px; }
.wg-rail__nav--next { right: -12px; }

/* Editorial split: two large linked panels. */
.wg-editorial {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(24px, 8vw, 140px);
}

.wg-edcard__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 10px;
}

.wg-edcard__title {
	font-family: var(--wg-serif);
	font-size: clamp(20px, 2vw, 28px);
	text-transform: lowercase;
	margin: 0;
}

.wg-edcard__media {
	position: relative;
	display: block;
	background: var(--wg-cream);
	aspect-ratio: 3 / 4;
	overflow: hidden;
}

.wg-edcard__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--wg-ease);
}

.wg-edcard:hover .wg-edcard__media img {
	transform: scale(1.03);
}

.wg-edcard__overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 30px;
	color: var(--wg-paper);
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.26) 45%, rgba(0, 0, 0, 0.58) 100%);
}

.wg-edcard__copy {
	display: block;
	font-family: var(--wg-serif);
	font-size: clamp(18px, 1.8vw, 26px);
	line-height: 1.18;
	margin: 0 0 10px;
	text-transform: lowercase;
}

.wg-edcard__body {
	padding-top: 14px;
}

/* Category tiles */
.wg-cats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

@media (min-width: 992px) {
	.wg-cats {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.wg-cat-card {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--wg-cream);
	color: var(--wg-paper);
}

.wg-cat-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--wg-ease);
}

.wg-cat-card:hover img {
	transform: scale(1.04);
}

.wg-cat-card__text {
	position: absolute;
	inset: auto 0 0 0;
	padding: 26px;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.28) 45%, rgba(0, 0, 0, 0.62) 100%);
}

.wg-cat-card__title {
	display: block;
	font-family: var(--wg-serif);
	font-size: clamp(22px, 2.2vw, 32px);
	line-height: 1.1;
	text-transform: lowercase;
	margin: 0 0 4px;
}

.wg-cat-card__meta {
	display: block;
	font-size: 13px;
	text-transform: lowercase;
	opacity: 0.85;
	margin: 0;
}

/* Trust row */
.wg-features {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1px;
	background: var(--wg-line);
	border-block: 1px solid var(--wg-line);
}

.wg-features__item {
	background: var(--wg-paper);
	padding: 30px 20px;
	text-align: center;
}

.wg-features__item img {
	height: 26px;
	width: auto;
	margin: 0 auto 12px;
	opacity: 0.75;
}

.wg-features__item p {
	margin: 0;
	font-size: 14px;
	text-transform: lowercase;
}

/* Marquee */
.wg-marquee {
	overflow: hidden;
	border-block: 1px solid var(--wg-line);
	padding: 22px 0;
}

.wg-marquee__track {
	display: flex;
	gap: 64px;
	width: max-content;
	animation: wg-marquee 34s linear infinite;
	align-items: center;
}

.wg-marquee img {
	height: 22px;
	width: auto;
	opacity: 0.55;
}

.wg-marquee__word {
	font-family: var(--wg-serif);
	font-style: italic;
	font-size: 26px;
	text-transform: lowercase;
	color: var(--wg-ink-40);
	white-space: nowrap;
}

@keyframes wg-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* Journal cards */
.wg-posts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 32px;
}

.wg-post-card__media {
	display: block;
	background: var(--wg-cream);
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.wg-post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--wg-ease);
}

.wg-post-card:hover .wg-post-card__media img {
	transform: scale(1.03);
}

.wg-post-card__cat {
	font-family: var(--wg-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
	margin: 14px 0 4px;
}

.wg-post-card__title {
	font-family: var(--wg-serif);
	font-size: 22px;
	line-height: 1.2;
	text-transform: lowercase;
	margin: 0 0 8px;
}

.wg-post-card__meta {
	font-size: 12px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
}

/* Accordion / FAQ */
.wg-accordion {
	border-top: 1px solid var(--wg-line);
}

.wg-accordion__item {
	border-bottom: 1px solid var(--wg-line);
}

.wg-accordion__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
	padding: 20px 0;
	text-align: left;
	font-family: var(--wg-serif);
	font-size: 20px;
	text-transform: lowercase;
}

/* Product details read as labels rather than headlines. */
.wg-pdp__details .wg-accordion__head {
	font-family: var(--wg-sans);
	font-size: 15px;
	font-weight: 600;
	padding: 17px 0;
}

.wg-accordion__icon {
	flex: none;
	width: 12px;
	height: 12px;
	position: relative;
}

.wg-accordion__icon::before,
.wg-accordion__icon::after {
	content: "";
	position: absolute;
	background: var(--wg-ink);
	transition: transform 0.3s var(--wg-ease), opacity 0.3s var(--wg-ease);
}

.wg-accordion__icon::before {
	inset: 5px 0 auto;
	height: 1px;
}

.wg-accordion__icon::after {
	inset: 0 5px auto;
	width: 1px;
	height: 12px;
}

.wg-accordion__item.is-open .wg-accordion__icon::after {
	transform: scaleY(0);
	opacity: 0;
}

.wg-accordion__body {
	display: none;
	padding: 0 0 24px;
	max-width: 720px;
	font-family: var(--wg-serif-text);
	font-size: 16px;
	line-height: 1.6;
	color: var(--wg-ink-80);
}

.wg-accordion__item.is-open .wg-accordion__body {
	display: block;
}

/* Newsletter band */
.wg-newsletter {
	background: var(--wg-cream);
	padding: clamp(48px, 7vw, 96px) var(--wg-gutter);
	text-align: center;
}

.wg-newsletter__title {
	font-family: var(--wg-serif);
	font-size: clamp(26px, 3.2vw, 44px);
	text-transform: lowercase;
	margin: 0 0 10px;
}

.wg-newsletter__sub {
	max-width: 520px;
	margin: 0 auto 26px;
	font-family: var(--wg-serif-text);
	font-size: 17px;
	color: var(--wg-ink-80);
}

.wg-newsletter__form {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 460px;
	margin-inline: auto;
	border-bottom: 1px solid var(--wg-ink);
}

.wg-newsletter__form input {
	border: 0;
	text-align: left;
}

/* ==========================================================================
   10. Product card
   ========================================================================== */

.wg-card {
	position: relative;
	display: flex;
	flex-direction: column;
	text-align: center;
	height: 100%;
}

.wg-card__media {
	position: relative;
	display: block;
	background: var(--wg-cream);
	aspect-ratio: 4 / 5;
	overflow: hidden;
}

.wg-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity 0.4s var(--wg-ease);
}

.wg-card__media.is-contain img {
	object-fit: contain;
	padding: 8%;
}

.wg-card__media.is-blend img {
	mix-blend-mode: multiply;
}

.wg-card__media .wg-card__img--alt {
	position: absolute;
	inset: 0;
	opacity: 0;
}

.wg-card:hover .wg-card__img--alt {
	opacity: 1;
}

.wg-card__flag {
	position: absolute;
	top: 12px;
	left: 12px;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wg-ink);
	background: var(--wg-paper);
	padding: 4px 10px;
	border-radius: var(--wg-radius-pill);
}

.wg-card__flag--sale {
	color: var(--wg-sale);
}

.wg-card__quick {
	position: absolute;
	left: 50%;
	bottom: 14px;
	transform: translate(-50%, 8px);
	opacity: 0;
	transition: opacity 0.25s var(--wg-ease), transform 0.25s var(--wg-ease);
	background: var(--wg-paper);
	border-color: var(--wg-paper);
	color: var(--wg-ink);
	white-space: nowrap;
	z-index: 2;
}

.wg-card:hover .wg-card__quick,
.wg-card__quick:focus-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

.wg-card__body {
	padding: 14px 6px 0;
}

.wg-card__brand {
	font-size: 13px;
	font-weight: 600;
	text-transform: lowercase;
	margin: 0 0 2px;
}

.wg-card__title {
	font-family: var(--wg-serif);
	font-size: 19px;
	line-height: 1.2;
	text-transform: lowercase;
	margin: 0 0 6px;
}

.wg-card__price {
	font-size: 14px;
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 10px;
	margin: 0;
}

.wg-card__price del,
.wg-price del {
	color: var(--wg-ink-40);
	text-decoration: line-through;
}

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

.wg-card__rating {
	margin-top: 6px;
	font-size: 12px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
}

.wg-card__excerpt {
	display: none;
}

/* List view keeps the same language, laid on its side. */
.wg-grid.is-list .wg-card {
	flex-direction: row;
	text-align: left;
	gap: 26px;
	padding-bottom: 26px;
	border-bottom: 1px solid var(--wg-line);
}

.wg-grid.is-list .wg-card__media {
	flex: none;
	width: 220px;
}

.wg-grid.is-list .wg-card__price {
	justify-content: flex-start;
}

.wg-grid.is-list .wg-card__excerpt {
	display: block;
	margin-top: 10px;
	font-family: var(--wg-serif-text);
	font-size: 15px;
	color: var(--wg-ink-60);
	max-width: 60ch;
}

/* ==========================================================================
   11. Shop archive
   ========================================================================== */

.wg-page-hero {
	position: relative;
	min-height: clamp(320px, 62vh, 620px);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: var(--wg-paper);
	background: var(--wg-ink-80) center / cover no-repeat;
	padding: 80px var(--wg-gutter);
	isolation: isolate;
}

.wg-page-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.12) 45%, rgba(0, 0, 0, 0.3));
	z-index: -1;
}

.wg-page-hero__in {
	max-width: 780px;
}

.wg-page-hero__title {
	font-family: var(--wg-serif);
	font-style: italic;
	font-size: clamp(32px, 4.4vw, 60px);
	text-transform: lowercase;
	margin: 0 0 12px;
}

.wg-page-hero__deck {
	font-family: var(--wg-serif-text);
	font-size: clamp(15px, 1.5vw, 21px);
	line-height: 1.45;
	margin: 0;
}

.wg-page-hero--plain {
	color: var(--wg-ink);
	background: var(--wg-paper);
	min-height: 0;
	padding: clamp(48px, 6vw, 96px) var(--wg-gutter) 0;
	text-align: left;
	justify-content: flex-start;
}

.wg-page-hero--plain::after {
	content: none;
}

.wg-crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 12px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
	margin-bottom: 14px;
}

.wg-crumbs li + li::before {
	content: "/";
	margin-right: 8px;
	color: var(--wg-ink-20);
}

.wg-filterbar {
	position: sticky;
	top: var(--wg-header-h);
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 14px var(--wg-gutter);
	background: var(--wg-paper);
	border-bottom: 1px solid var(--wg-line);
	font-size: 14px;
	text-transform: lowercase;
}

.wg-filterbar__left {
	display: flex;
	align-items: center;
	gap: 26px;
	min-width: 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.wg-filterbar__left::-webkit-scrollbar {
	display: none;
}

.wg-filterbar__count {
	color: var(--wg-ink-40);
	white-space: nowrap;
}

.wg-filterbar select {
	width: auto;
	border: 0;
	padding: 0 20px 0 0;
	font-size: 14px;
	text-transform: lowercase;
}

.wg-filterbar__right {
	display: flex;
	align-items: center;
	gap: 14px;
	flex: none;
}

.wg-viewtoggle {
	display: flex;
	gap: 10px;
	color: var(--wg-ink-40);
}

.wg-viewtoggle button.active {
	color: var(--wg-ink);
}

/* Filter panel (drops the shop sidebar widgets in from the top). */
.wg-filters {
	display: none;
	padding: 26px var(--wg-gutter) 34px;
	border-bottom: 1px solid var(--wg-line);
	background: var(--wg-paper);
}

.wg-filters.is-open {
	display: block;
}

.wg-filters__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 34px;
}

.wg-filters .widget > *:first-child,
.wg-filters .wg-sidebar__title {
	font-family: var(--wg-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wg-ink-40);
	margin-bottom: 12px;
}

.wg-filters ul li {
	margin-bottom: 8px;
	font-size: 14px;
	text-transform: lowercase;
}

.wg-grid,
ul.products {
	display: grid;
	grid-template-columns: repeat(var(--wg-cols, 4), minmax(0, 1fr));
	gap: 40px 24px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.wg-grid.is-list,
ul.products.wg-list-mode {
	grid-template-columns: 1fr;
	gap: 26px;
}

.wg-shop {
	padding: 34px var(--wg-gutter) 0;
}

.wg-shop__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}

.wg-pagination {
	display: flex;
	justify-content: center;
	gap: 14px;
	margin-top: var(--wg-block-sm);
	font-size: 14px;
	text-transform: lowercase;
}

.wg-pagination .page-numbers {
	min-width: 30px;
	text-align: center;
	padding-bottom: 3px;
	border-bottom: 1px solid transparent;
}

.wg-pagination .page-numbers.current {
	border-bottom-color: var(--wg-ink);
}

.woocommerce-result-count,
.woocommerce-ordering {
	margin: 0;
}

/* WooCommerce notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	list-style: none;
	margin: 0 0 24px;
	padding: 14px 18px;
	background: var(--wg-cream);
	border-left: 2px solid var(--wg-ink);
	font-size: 14px;
	text-transform: lowercase;
}

.woocommerce-error {
	border-left-color: var(--wg-sale);
	color: var(--wg-sale);
}

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
	font-size: 13px;
	border-bottom: 1px solid currentColor;
}

/* ==========================================================================
   12. Single product
   ========================================================================== */

.wg-pdp {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
	padding: 24px var(--wg-gutter) 0;
}

@media (min-width: 992px) {
	.wg-pdp {
		grid-template-columns: minmax(240px, 1fr) minmax(0, 2.1fr) minmax(280px, 1fr);
		gap: 48px;
		align-items: start;
	}

	.wg-pdp__info,
	.wg-pdp__buy {
		position: sticky;
		top: calc(var(--wg-header-h) + 32px);
	}

	/* The facts read as a caption to the picture, so they sit at its middle;
	   the buy box stays at the top where the hand goes. */
	.wg-pdp__info {
		top: 34vh;
	}
}

.wg-pdp__brand {
	font-size: 13px;
	font-weight: 600;
	text-transform: lowercase;
	margin: 0 0 4px;
}

.wg-pdp__title,
.product_title {
	font-family: var(--wg-serif);
	font-size: clamp(26px, 2.4vw, 34px);
	line-height: 1.1;
	text-transform: lowercase;
	margin: 0 0 16px;
}

.wg-pdp__desc {
	font-size: 15px;
	line-height: 1.6;
	color: var(--wg-ink-80);
	margin-bottom: 22px;
}

.wg-pdp__desc p:last-child {
	margin-bottom: 0;
}

.wg-pdp__priceline {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--wg-line);
	font-size: 16px;
}

.wg-pdp__priceline .price {
	display: flex;
	gap: 10px;
	align-items: baseline;
	margin: 0;
	font-size: 16px;
}

.wg-pdp__flag {
	color: var(--wg-sale);
	font-size: 14px;
	text-transform: lowercase;
}

.wg-pdp__facts {
	margin-top: 16px;
	font-size: 14px;
	color: var(--wg-ink-60);
}

.wg-pdp__facts div {
	padding: 4px 0;
	text-transform: lowercase;
}

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

.wg-gallery__item {
	background: var(--wg-cream);
	overflow: hidden;
}

.wg-gallery__item img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.wg-gallery__item.is-contain img {
	object-fit: contain;
	padding: 5%;
}

.wg-gallery__item.is-blend img {
	mix-blend-mode: multiply;
}

@media (min-width: 992px) {
	.wg-gallery--pair {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wg-gallery--pair .wg-gallery__item:first-child {
		grid-column: 1 / -1;
	}
}

.wg-buy__row {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 14px 0;
	font-size: 15px;
}

.wg-buy__row .wg-label {
	flex: none;
	width: 72px;
}

.wg-buy__swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	padding: 4px 0 12px;
	font-size: 15px;
	text-transform: lowercase;
}

.wg-buy__swatches button {
	padding-bottom: 3px;
	border-bottom: 1px solid transparent;
}

.wg-buy__swatches button.is-active {
	border-bottom-color: var(--wg-ink);
}

.wg-buy__swatches button.is-out {
	color: var(--wg-ink-40);
	text-decoration: line-through;
}

.wg-buy__stock {
	color: var(--wg-sale);
	font-size: 13px;
	text-transform: lowercase;
	margin: 0 0 12px;
}

.wg-buy__actions {
	padding-top: 18px;
	border-top: 1px solid var(--wg-line);
	display: grid;
	gap: 10px;
}

.wg-buy__note {
	margin: 6px 0 0;
	font-size: 12px;
	color: var(--wg-ink-60);
	text-align: center;
	text-transform: lowercase;
}

.wg-buy__note--warn {
	color: var(--wg-sale);
}

/* WooCommerce's own add-to-cart form, restyled in place. */
.cart,
form.cart {
	margin: 0;
}

/* One item is the norm here; the quantity field still submits its default. */
.wg-pdp__buy .quantity {
	display: none;
}

.quantity {
	display: inline-flex;
	align-items: center;
	border-bottom: 1px solid var(--wg-line-strong);
	margin-bottom: 14px;
}

.quantity input.qty {
	width: 64px;
	text-align: center;
	border: 0;
	padding: 8px 0;
}

.single_add_to_cart_button,
.wg-buy__actions .button,
.wc-forward,
.checkout-button,
button.button,
input.button,
a.button,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 10px 28px;
	border-radius: var(--wg-radius-pill);
	border: 1px solid var(--wg-ink);
	background: var(--wg-ink);
	color: var(--wg-paper);
	font-family: var(--wg-sans);
	font-size: 14px;
	text-transform: lowercase;
	cursor: pointer;
	transition: opacity 0.2s var(--wg-ease);
}

.single_add_to_cart_button {
	width: 100%;
}

button.button:hover,
a.button:hover,
.single_add_to_cart_button:hover,
.checkout-button:hover {
	opacity: 0.85;
	color: var(--wg-paper);
}

.button.alt.disabled,
.single_add_to_cart_button.disabled {
	background: var(--wg-line);
	border-color: var(--wg-line);
	color: var(--wg-ink-40);
}

.wg-wishlist-btn {
	display: flex;
	width: 100%;
	background: var(--wg-cream-deep);
	color: var(--wg-ink);
	border-color: transparent;
}

.wg-wishlist-btn:hover {
	background: var(--wg-line);
	color: var(--wg-ink);
}

/* Variations table */
.variations {
	margin-bottom: 14px;
}

.variations th,
.variations td {
	padding: 8px 0;
	text-align: left;
	vertical-align: middle;
}

.variations th label {
	margin: 0;
}

.woocommerce-variation-price {
	margin-bottom: 12px;
	font-size: 16px;
}

.reset_variations {
	font-size: 12px;
	text-transform: lowercase;
	border-bottom: 1px solid currentColor;
}

/* Product detail accordions + tabs */
/* Details band: a still on the left, the accordions beside it. */
.wg-pdp-band {
	display: grid;
	grid-template-columns: 1fr;
	gap: 26px;
	margin-top: var(--wg-block);
	padding: 0 var(--wg-gutter);
	align-items: start;
}

@media (min-width: 992px) {
	.wg-pdp-band {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}

	.wg-pdp-band__body {
		position: sticky;
		top: calc(var(--wg-header-h) + 32px);
	}
}

.wg-pdp-band__media {
	background: var(--wg-cream);
	overflow: hidden;
}

.wg-pdp-band__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.wg-accordion--details {
	border-top: 1px solid var(--wg-line);
}

.woocommerce-tabs .panel {
	font-family: var(--wg-serif-text);
	font-size: 16px;
	line-height: 1.6;
	color: var(--wg-ink-80);
}

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

.shop_attributes th,
.shop_attributes td {
	padding: 10px 0;
	border-bottom: 1px solid var(--wg-line);
	text-align: left;
	font-size: 14px;
	font-weight: 400;
	text-transform: lowercase;
}

.shop_attributes th {
	color: var(--wg-ink-60);
	width: 34%;
}

/* Reviews */
.wg-reviews {
	max-width: 900px;
	margin: 0 auto;
}

.wg-review-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: center;
	padding: 26px 0;
	border-block: 1px solid var(--wg-line);
	margin-bottom: 30px;
}

.wg-review-summary__score {
	font-family: var(--wg-serif);
	font-size: 44px;
	line-height: 1;
}

.wg-review-bars {
	flex: 1 1 260px;
	min-width: 220px;
}

.wg-review-bar {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	color: var(--wg-ink-60);
	margin-bottom: 6px;
}

.wg-review-bar__track {
	flex: 1 1 auto;
	height: 1px;
	background: var(--wg-line);
	position: relative;
}

.wg-review-bar__fill {
	position: absolute;
	inset: 0 auto 0 0;
	background: var(--wg-ink);
	height: 1px;
}

.commentlist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.commentlist li {
	padding: 22px 0;
	border-bottom: 1px solid var(--wg-line);
}

.commentlist .avatar {
	width: 40px;
	border-radius: 50%;
	float: left;
	margin-right: 14px;
}

.comment-text .meta {
	font-size: 12px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
}

.stars a,
.star-rating {
	font-size: 13px;
	letter-spacing: 0.1em;
}

/* Star rows rendered by the theme */
.wg-stars {
	display: inline-flex;
	gap: 3px;
	font-size: 11px;
	color: var(--wg-ink);
}

.wg-stars i {
	font-style: normal;
}

/* Related products */
.related.products > h2,
.upsells.products > h2,
.wg-related__title {
	font-family: var(--wg-serif);
	font-style: italic;
	font-size: clamp(22px, 2.4vw, 32px);
	text-transform: lowercase;
	margin: 0 0 22px;
}

.related.products,
.upsells.products {
	margin-top: var(--wg-block);
	padding-inline: var(--wg-gutter);
}

/* Quick view */
.wg-modal {
	position: fixed;
	inset: 0;
	z-index: 95;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(20, 19, 17, 0.4);
}

.wg-modal.active {
	display: flex;
}

.wg-modal_dialog {
	position: relative;
	width: min(980px, 100%);
	max-height: 88vh;
	overflow-y: auto;
	background: var(--wg-paper);
	padding: 34px;
}

.wg-modal_close {
	position: absolute;
	top: 14px;
	right: 18px;
	font-size: 13px;
	text-transform: lowercase;
	border-bottom: 1px solid currentColor;
}

.wg-quick-view-inner {
	display: grid;
	gap: 30px;
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.wg-quick-view-inner {
		grid-template-columns: 0.9fr 1.1fr;
	}
}

.wg-quick-view-thumb {
	background: var(--wg-cream);
}

.wg-quick-view-thumb img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

/* ==========================================================================
   13. Cart, checkout, account
   ========================================================================== */

.wg-cart-page {
	/* Explicit: some UA/grid interactions resolved auto width short of the
	   container on small screens. */
	width: 100%;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	align-items: start;
}

@media (min-width: 992px) {
	.wg-cart-page {
		grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
	}
}

.wg-cart-page__items {
	padding: 40px var(--wg-gutter) 60px;
}

.wg-cart-page__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 26px;
}

.wg-cart-page__title {
	font-family: var(--wg-sans);
	font-size: 15px;
	font-weight: 600;
	text-transform: lowercase;
	margin: 0;
}

.wg-cart-line {
	display: flex;
	gap: 22px;
	padding: 24px 0;
	border-top: 1px solid var(--wg-line);
}

.wg-cart-line__media {
	flex: none;
	width: 120px;
	background: var(--wg-cream);
}

.wg-cart-line__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.wg-cart-line__body {
	flex: 1 1 auto;
	min-width: 0;
}

.wg-cart-line__name {
	font-family: var(--wg-serif);
	font-size: 20px;
	text-transform: lowercase;
	margin: 2px 0 8px;
}

.wg-cart-line__meta {
	font-size: 13px;
	color: var(--wg-ink-60);
	text-transform: lowercase;
}

.wg-cart-line__foot {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: 12px;
	font-size: 13px;
	text-transform: lowercase;
}

.wg-cart-line__price {
	margin-left: auto;
	font-size: 15px;
}

.wg-summary {
	background: var(--wg-cream);
	padding: 40px clamp(20px, 3vw, 44px) 44px;
	align-self: stretch;
}

.wg-summary__title {
	font-family: var(--wg-sans);
	font-size: 15px;
	font-weight: 600;
	text-align: center;
	text-transform: lowercase;
	margin: 0 0 28px;
}

.wg-summary__row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	font-size: 15px;
	text-transform: lowercase;
}

.wg-summary__row--total {
	border-top: 1px solid var(--wg-line-strong);
	margin-top: 12px;
	padding-top: 18px;
	font-size: 16px;
}

.wg-summary__note {
	margin: 12px 0 0;
	font-size: 12px;
	color: var(--wg-ink-60);
	text-align: center;
	text-transform: lowercase;
}

.wg-summary .wg-btn {
	margin-top: 18px;
}

/* WooCommerce cart / checkout / account chrome */
.woocommerce-cart-form__cart-item.cart_item,
.shop_table {
	font-size: 15px;
}

.cart_totals h2,
.cross-sells h2,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
	font-family: var(--wg-serif);
	font-size: 22px;
	text-transform: lowercase;
	margin-bottom: 18px;
}

.wg-checkout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	align-items: start;
}

.woocommerce-checkout .col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 34px;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	width: 100%;
	padding: 0;
}

.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
	background: var(--wg-cream);
	padding: 28px;
	margin-top: 30px;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td,
.cart_totals table th,
.cart_totals table td {
	padding: 10px 0;
	text-align: left;
	font-weight: 400;
	font-size: 15px;
	text-transform: lowercase;
	border-bottom: 1px solid var(--wg-line);
}

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

#payment .payment_methods {
	margin: 0 0 18px;
}

#payment .payment_methods li {
	padding: 12px 0;
	border-bottom: 1px solid var(--wg-line);
	font-size: 14px;
	text-transform: lowercase;
}

#payment .payment_box {
	font-size: 13px;
	color: var(--wg-ink-60);
	padding-top: 8px;
}

.woocommerce-terms-and-conditions-wrapper {
	font-size: 13px;
	color: var(--wg-ink-60);
	margin-bottom: 14px;
}

#place_order {
	width: 100%;
}

.woocommerce-form-coupon-toggle,
.woocommerce-form-login-toggle {
	margin-bottom: 20px;
}

.woocommerce-form-coupon,
.woocommerce-form-login {
	padding: 20px 0;
	border-block: 1px solid var(--wg-line);
	margin-bottom: 24px;
}

.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 1fr;
	gap: 34px;
	padding: clamp(40px, 6vw, 80px) var(--wg-gutter);
}

@media (min-width: 992px) {
	.woocommerce-account .woocommerce {
		grid-template-columns: 220px minmax(0, 1fr);
		gap: 60px;
	}
}

.woocommerce-MyAccount-navigation ul li {
	padding: 9px 0;
	border-bottom: 1px solid var(--wg-line);
	font-size: 15px;
	text-transform: lowercase;
}

.woocommerce-MyAccount-navigation ul li.is-active a {
	border-bottom: 1px solid var(--wg-ink);
	padding-bottom: 2px;
}

.woocommerce-form__label-for-checkbox,
.woocommerce-form__label-for-checkbox span {
	display: inline;
	font-size: 13px;
}

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

.woocommerce form .form-row label {
	margin-bottom: 2px;
}

.select2-container .select2-selection--single {
	border: 0;
	border-bottom: 1px solid var(--wg-line-strong);
	border-radius: 0;
	height: 40px;
}

/* ==========================================================================
   14. Editorial pages, blog, comments, 404
   ========================================================================== */

.wg-article {
	padding: clamp(30px, 5vw, 60px) var(--wg-gutter) 0;
}

.wg-article__head {
	max-width: 820px;
	margin: 0 auto clamp(26px, 4vw, 48px);
	text-align: center;
}

.wg-article__cat {
	font-family: var(--wg-serif);
	font-style: italic;
	font-size: 15px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
	margin-bottom: 10px;
}

.wg-article__title {
	font-family: var(--wg-serif);
	font-size: clamp(30px, 4vw, 54px);
	line-height: 1.06;
	text-transform: lowercase;
	margin: 0 0 14px;
}

.wg-article__meta {
	font-size: 12px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
}

.wg-article__hero {
	max-width: 1224px;
	margin: 0 auto clamp(26px, 4vw, 48px);
	background: var(--wg-cream);
}

.wg-article__body {
	max-width: var(--wg-measure);
	margin-inline: auto;
}

.wg-article__tags {
	max-width: var(--wg-measure);
	margin: 34px auto 0;
	font-size: 12px;
	color: var(--wg-ink-40);
	text-transform: lowercase;
}

.wg-postnav {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	max-width: var(--wg-measure);
	margin: var(--wg-block-sm) auto 0;
	padding-top: 24px;
	border-top: 1px solid var(--wg-line);
	font-size: 14px;
	text-transform: lowercase;
}

.wg-comments {
	max-width: var(--wg-measure);
	margin: var(--wg-block) auto 0;
}

.wg-comments h3,
.wg-comments .comment-reply-title {
	font-family: var(--wg-serif);
	font-size: 24px;
	text-transform: lowercase;
	margin-bottom: 20px;
}

.wg-comments .comment-list li,
.cs_comment_list li {
	padding: 20px 0;
	border-bottom: 1px solid var(--wg-line);
	list-style: none;
}

.wg-comments .comment-form p {
	margin-bottom: 16px;
}

.wg-empty {
	max-width: 520px;
	margin: clamp(60px, 12vh, 140px) auto;
	text-align: center;
	padding-inline: var(--wg-gutter);
}

.wg-empty__title {
	font-family: var(--wg-serif);
	font-size: clamp(30px, 5vw, 56px);
	text-transform: lowercase;
	margin-bottom: 10px;
}

.wg-empty p {
	color: var(--wg-ink-60);
	margin-bottom: 22px;
}

.wg-sidebar .widget {
	margin-bottom: 34px;
}

.wg-sidebar .widget > *:first-child {
	font-family: var(--wg-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wg-ink-40);
	margin-bottom: 12px;
}

.wg-sidebar ul li {
	padding: 6px 0;
	font-size: 14px;
	text-transform: lowercase;
}

/* ==========================================================================
   15. Responsive
   ========================================================================== */

@media (max-width: 1279px) {
	.wg-grid,
	ul.products {
		grid-template-columns: repeat(min(var(--wg-cols, 4), 3), minmax(0, 1fr));
	}
}

@media (max-width: 991px) {
	:root {
		--wg-header-h: 56px;
	}

	.wg-nav,
	.wg-header__tools .wg-header__tool--desktop {
		display: none;
	}

	.wg-burger {
		display: block;
	}

	.wg-brand {
		font-size: 26px;
	}

	.wg-header__bar {
		gap: 16px;
	}

	.wg-editorial {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.wg-rail__track {
		grid-auto-columns: 62%;
		gap: 16px;
	}

	.wg-rail--5 .wg-rail__track,
	.wg-rail--3 .wg-rail__track {
		grid-auto-columns: 62%;
	}

	.wg-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px;
	}

	.wg-footer__legal p {
		margin-left: 0;
	}

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

	.wg-grid.is-list .wg-card__media {
		width: 130px;
	}
}

@media (max-width: 575px) {
	.wg-hero {
		min-height: 78vh;
	}

	.wg-rail__track {
		grid-auto-columns: 76%;
	}

	.wg-footer__grid {
		grid-template-columns: 1fr;
	}

	.wg-cart-line__media {
		width: 92px;
	}
}

/* ==========================================================================
   16. Print
   ========================================================================== */

@media print {
	.wg-header,
	.wg-announce,
	.wg-footer,
	.wg-drawer,
	.wg-scrim {
		display: none !important;
	}
}

/* ==========================================================================
   17. Page-level containers added by the templates
   ========================================================================== */

.wg-main {
	display: block;
}

.wg-shop-wrap {
	display: block;
}

.wg-archive,
.wg-page {
	padding-top: clamp(24px, 4vw, 48px);
	padding-bottom: var(--wg-block);
}

.wg-archive__sidebar {
	margin-top: var(--wg-block);
	border-top: 1px solid var(--wg-line);
	padding-top: 30px;
}

.wg-page .wg-wrap--text {
	padding-inline: 0;
}

.wg-faq__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 26px;
}

@media (min-width: 992px) {
	.wg-faq__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		gap: 60px;
	}
}

.wg-product-rail + .wg-product-rail {
	margin-top: var(--wg-block);
}

.wg-share {
	display: flex;
	gap: 18px;
	margin-top: 18px;
	font-size: 13px;
}

.wg-card__rating-count {
	color: var(--wg-ink-40);
}

/* Cart page footer controls */
.wg-cart-page__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 20px;
	padding: 26px 0 0;
	border-top: 1px solid var(--wg-line);
}

.wg-cart-page__actions .coupon {
	display: flex;
	align-items: flex-end;
	gap: 12px;
	flex-wrap: wrap;
}

.wg-cart-page__actions .coupon input {
	width: 180px;
}

/* WooCommerce's own totals table, dropped into the cream summary panel. */
.wg-summary .cart_totals h2,
.wg-summary h2 {
	font-family: var(--wg-sans);
	font-size: 15px;
	font-weight: 600;
	text-align: center;
	text-transform: lowercase;
	margin-bottom: 24px;
}

.wg-summary table {
	background: transparent;
}

.wg-summary .wc-proceed-to-checkout {
	margin-top: 18px;
}

.wg-summary .checkout-button {
	width: 100%;
}

.wg-summary .shipping-calculator-button {
	font-size: 13px;
	border-bottom: 1px solid currentColor;
}

/* Footer legal menu inherits the flex row from .wg-footer__legal ul. */
.wg-footer__legal-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 26px;
}

/* The filter bar sits under the header, which is only as tall as the bar. */
.wg-filterbar {
	top: var(--wg-header-h);
}

body.wg-has-hero .wg-filterbar {
	top: 0;
}

/* Quantity inputs inside cart lines stay compact. */
.wg-cart-line__foot .quantity {
	margin-bottom: 0;
}

.wg-cart-line__foot .quantity input.qty {
	width: 52px;
	font-size: 14px;
}

/* Product page trail sits quietly above the three columns. */
.wg-shop-crumbs {
	padding: 22px var(--wg-gutter) 0;
}

/* ==========================================================================
   18. Checkout and account page frames
   ========================================================================== */

.woocommerce-checkout .wg-shop-main,
.woocommerce-account .wg-shop-main,
.woocommerce-order-received .wg-shop-main {
	padding: clamp(28px, 4vw, 56px) var(--wg-gutter) var(--wg-block);
}

.woocommerce-checkout .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce-notices-wrapper {
	padding: 16px var(--wg-gutter) 0;
}

/* Billing on the left, the order review in a cream panel on the right. */
@media (min-width: 992px) {
	.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
		/* The heading row is only as tall as the heading, so the summary panel
		   sits directly under it instead of sharing the billing column's height. */
		grid-template-rows: min-content auto;
		column-gap: clamp(32px, 5vw, 72px);
		align-items: start;
	}

	/* Billing sits in the second row so the summary heading can own the first
	   one; a spanning item would hand part of its height to that row. */
	.woocommerce-checkout form.checkout > #customer_details,
	.woocommerce-checkout form.checkout > .col2-set {
		grid-column: 1;
		grid-row: 2;
	}

	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > .order_review_heading {
		grid-column: 2;
		grid-row: 1;
	}

	.woocommerce-checkout form.checkout > #order_review,
	.woocommerce-checkout form.checkout > .woocommerce-checkout-review-order {
		grid-column: 2;
		grid-row: 2;
		align-self: start;
		position: sticky;
		top: calc(var(--wg-header-h) + 24px);
	}

	/* Inside the narrower left column the two field groups stack. */
	.woocommerce-checkout form.checkout > .col2-set {
		grid-template-columns: 1fr;
	}
}

.woocommerce-checkout #order_review_heading {
	margin-bottom: 14px;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table {
	margin-bottom: 20px;
}

.woocommerce-account .woocommerce-MyAccount-content {
	min-width: 0;
}

.woocommerce-order .woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 20px;
	padding: 24px 0;
	border-block: 1px solid var(--wg-line);
	font-size: 14px;
	text-transform: lowercase;
}

/* The cart lays its own gutters, so only checkout and account get page padding. */
.woocommerce-cart .wg-shop-main {
	padding: 0;
}

/* Logged-out account page: one centred column, no empty nav gutter. */
@media (min-width: 992px) {
	.woocommerce-account:not(.logged-in) .woocommerce {
		grid-template-columns: minmax(0, 560px);
		justify-content: center;
	}
}

.woocommerce-account h2,
.woocommerce-account legend,
.woocommerce-ResetPassword h2 {
	font-family: var(--wg-serif);
	font-size: 24px;
	text-transform: lowercase;
	margin-bottom: 16px;
}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	border: 0;
	padding: 0 0 34px;
	margin-bottom: 34px;
	border-bottom: 1px solid var(--wg-line);
}

.woocommerce-account .woocommerce-form-login__rememberme {
	display: inline-block;
	margin-right: 16px;
}

.woocommerce-privacy-policy-text {
	font-size: 13px;
	color: var(--wg-ink-60);
}

@media (max-width: 575px) {
	.wg-filterbar__count,
	.wg-viewtoggle {
		display: none;
	}
}

/* PDP rails sit flush with the page gutters, like the grid above them. */
.wg-single-product .wg-product-rail {
	margin-top: var(--wg-block);
}

/* WooCommerce repeats the tab title inside the panel; the accordion head
   already says it. */
.wg-accordion__body > h2:first-child,
.wg-accordion__body > h2.woocommerce-Reviews-title {
	display: none;
}

/* Product-page details labels read as labels, not headlines. */
.wg-accordion--details .wg-accordion__head {
	font-family: var(--wg-sans);
	font-size: 15px;
	font-weight: 600;
	padding: 17px 0;
}

.wg-accordion--details .wg-accordion__body {
	max-width: none;
	font-family: var(--wg-sans);
	font-size: 15px;
	line-height: 1.62;
	color: var(--wg-ink);
}

.wg-accordion--details .wg-accordion__body p {
	margin-bottom: 1em;
}

/* "$120 value" chip under a discounted product's name. */
.wg-chip {
	display: inline-block;
	background: var(--wg-cream-deep);
	padding: 5px 10px;
	margin: 0 0 16px;
	font-size: 13px;
	text-transform: lowercase;
}

.wg-chip .amount {
	font-weight: 500;
}

.wg-pdp__price {
	font-size: 17px;
	margin: 0;
	display: flex;
	gap: 10px;
	align-items: baseline;
}

.wg-pdp__reviews {
	margin: 12px 0 0;
	font-size: 12px;
	color: var(--wg-ink-40);
}

/* Label/value rows above the buy buttons. */
.wg-buy__meta {
	margin-bottom: 6px;
}

.wg-buy__meta .wg-buy__row {
	padding: 8px 0;
	border-bottom: 1px solid var(--wg-line);
}

.wg-buy__meta .wg-label {
	width: 84px;
	flex: none;
}

/* Variation options: an inline row, with the native select kept for the form. */
.variations select {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.wg-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	padding: 2px 0 4px;
	font-size: 15px;
	text-transform: lowercase;
}

.wg-swatches button {
	padding-bottom: 3px;
	border-bottom: 1px solid transparent;
	color: var(--wg-ink);
}

.wg-swatches button.is-active {
	border-bottom-color: var(--wg-ink);
}

.wg-swatches button.is-out {
	color: var(--wg-ink-40);
	text-decoration: line-through;
	cursor: default;
}

.variations tr {
	display: block;
	padding: 10px 0;
	border-bottom: 1px solid var(--wg-line);
}

.variations th,
.variations td {
	display: block;
	padding: 0;
}

.variations th label {
	margin-bottom: 6px;
}

/* Attribute label with the chosen value beside it. */
.variations th label {
	display: flex;
	gap: 16px;
	align-items: baseline;
	font-size: 13px;
	color: var(--wg-ink-60);
	text-transform: lowercase;
}

.wg-variation-value {
	color: var(--wg-ink);
	font-size: 15px;
}

/* ==========================================================================
   19. Motion
   ========================================================================== */

.wg-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.7s var(--wg-ease), transform 0.7s var(--wg-ease);
	will-change: opacity, transform;
}

.wg-reveal.is-inview {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.wg-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* Nav links draw a hairline underline on hover. */
.wg-nav > li > a,
.wg-header__tools a,
.wg-header__tools button {
	position: relative;
}

.wg-nav > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: 14px;
	height: 1px;
	background: currentColor;
	transition: right 0.28s var(--wg-ease);
}

.wg-nav > li > a:hover::after,
.wg-nav > li.current-menu-item > a::after,
.wg-nav > li.current_page_item > a::after {
	right: 0;
}

.wg-nav > li.current-menu-item > a,
.wg-nav > li.current_page_item > a {
	border-bottom: 0;
}

/* Card hover: the tile breathes a touch. */
.wg-card__media img {
	transition: opacity 0.4s var(--wg-ease), transform 0.7s var(--wg-ease);
}

.wg-card:hover .wg-card__media img:first-child {
	transform: scale(1.025);
}

/* Buttons ease rather than snap. */
.wg-btn,
button.button,
a.button,
.single_add_to_cart_button {
	transition: background 0.25s var(--wg-ease), color 0.25s var(--wg-ease), border-color 0.25s var(--wg-ease), opacity 0.25s var(--wg-ease), transform 0.25s var(--wg-ease);
}

.wg-btn:active,
.single_add_to_cart_button:active {
	transform: scale(0.98);
}

/* ==========================================================================
   20. Elementor-built pages
   ========================================================================== */

/* Elementor's global kit styles load after the theme's, so these carry
   !important — the kit's blue heading must never surface. */
.elementor-widget-heading .elementor-heading-title {
	font-family: var(--wg-serif) !important;
	font-weight: 400 !important;
	color: var(--wg-ink) !important;
	text-transform: lowercase;
	letter-spacing: -0.01em;
}

.elementor-widget-heading h1.elementor-heading-title {
	font-style: italic;
	font-size: clamp(32px, 4.4vw, 60px) !important;
	line-height: 1.05 !important;
}

.elementor-widget-text-editor {
	font-family: var(--wg-sans);
	font-size: 15px;
	line-height: 1.6;
	color: var(--wg-ink-80);
}

/* Full-bleed bands escape Elementor's boxed content width. */
.e-con .wg-newsletter,
.elementor-section .wg-newsletter,
.e-con .wg-features,
.elementor-section .wg-features,
.e-con .wg-marquee,
.elementor-section .wg-marquee,
.e-con .wg-hero,
.elementor-section .wg-hero,
.e-con .wg-page-hero,
.elementor-section .wg-page-hero {
	width: 100vw;
	margin-left: 50%;
	transform: translateX(-50%);
}

/* Elementor pages start under the header without a page-hero of their own;
   a page that opens on a full-bleed hero must stay flush instead. */
body.wg-elementor-page:not(.wg-has-hero) .wg-main > .elementor > .e-con:first-child,
body.wg-elementor-page:not(.wg-has-hero) .wg-main > .elementor > .elementor-section:first-child {
	padding-top: clamp(32px, 5vw, 64px);
}

/* ==========================================================================
   21. Order received
   ========================================================================== */

.woocommerce-thankyou-order-received {
	font-family: var(--wg-serif);
	font-style: italic;
	font-size: clamp(26px, 3.4vw, 44px);
	line-height: 1.1;
	text-transform: lowercase;
	margin: 0 0 26px;
}

.woocommerce-thankyou-order-details.order_details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 20px;
	padding: 22px 0;
	margin: 0 0 34px;
	border-block: 1px solid var(--wg-line);
	font-size: 14px;
	text-transform: lowercase;
	list-style: none;
}

.woocommerce-thankyou-order-details.order_details li {
	border: 0;
	padding: 0;
	margin: 0;
	float: none;
	color: var(--wg-ink-60);
}

.woocommerce-thankyou-order-details.order_details li strong {
	display: block;
	margin-top: 4px;
	font-family: var(--wg-serif);
	font-size: 17px;
	font-weight: 400;
	color: var(--wg-ink);
}

.woocommerce-table--order-details {
	margin-bottom: 34px;
}

.woocommerce-table--order-details th,
.woocommerce-table--order-details td {
	padding: 12px 0;
	border-bottom: 1px solid var(--wg-line);
	text-align: left;
	font-weight: 400;
	font-size: 15px;
}

.woocommerce-table--order-details th:last-child,
.woocommerce-table--order-details td:last-child,
.woocommerce-table--order-details tfoot td {
	text-align: right;
}

.woocommerce-order-details__title,
.woocommerce-column__title {
	font-family: var(--wg-serif);
	font-size: 22px;
	text-transform: lowercase;
	margin-bottom: 16px;
}

.woocommerce-customer-details address {
	font-style: normal;
	font-size: 15px;
	line-height: 1.7;
	color: var(--wg-ink-80);
	border: 0;
	padding: 0;
}

.woocommerce-customer-details .woocommerce-columns {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 34px;
}

.wc-bacs-bank-details-heading,
.wc-bacs-bank-details-account-name {
	font-family: var(--wg-serif);
	font-size: 20px;
	text-transform: lowercase;
}

.wc-bacs-bank-details {
	list-style: none;
	padding: 16px 0;
	border-block: 1px solid var(--wg-line);
	margin: 0 0 26px;
	font-size: 14px;
}

/* ==========================================================================
   22. Shop flyout
   ========================================================================== */

.wg-shopmega {
	/* Fixed so the JS can pin it flush under the sticky header bar. */
	position: fixed;
	left: 0;
	right: 0;
	z-index: 45;
	background: var(--wg-paper);
	border-bottom: 1px solid var(--wg-line);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity 0.28s var(--wg-ease), transform 0.28s var(--wg-ease), visibility 0.28s var(--wg-ease);
	box-shadow: 0 30px 60px -40px rgba(20, 19, 17, 0.25);
}

.wg-shopmega.is-open {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.wg-shopmega__in {
	display: grid;
	grid-template-columns: minmax(180px, 0.8fr) minmax(0, 2fr) minmax(280px, 1.2fr);
	gap: clamp(24px, 4vw, 64px);
	align-items: stretch;
	padding: clamp(24px, 3vw, 44px) 0 0 var(--wg-gutter);
	max-height: min(72vh, 640px);
}

.wg-shopmega__links {
	padding-bottom: clamp(24px, 3vw, 44px);
}

.wg-shopmega__links li + li {
	margin-top: 15px;
}

.wg-shopmega__links a {
	font-family: var(--wg-serif);
	font-size: 20px;
	line-height: 1.1;
	text-transform: lowercase;
}

.wg-shopmega__links li:first-child a {
	font-family: var(--wg-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wg-shopmega__stories {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	align-content: start;
	padding-bottom: clamp(24px, 3vw, 44px);
}

.wg-shopmega__thumb {
	display: block;
	background: var(--wg-cream);
	aspect-ratio: 4 / 3;
	overflow: hidden;
	margin-bottom: 12px;
}

.wg-shopmega__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--wg-ease);
}

.wg-shopmega__story:hover .wg-shopmega__thumb img {
	transform: scale(1.03);
}

.wg-shopmega__story .wg-link {
	font-size: 12px;
}

.wg-shopmega__title {
	display: block;
	margin-top: 8px;
	font-family: var(--wg-serif);
	font-size: 19px;
	line-height: 1.25;
	text-transform: lowercase;
}

/* Promo tile bleeds to the panel's right edge, full height. */
.wg-shopmega__promo {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	min-height: 380px;
	background: var(--wg-cream-deep) center / cover no-repeat;
	color: var(--wg-paper);
	isolation: isolate;
	overflow: hidden;
}

.wg-shopmega__promo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.45) 100%);
	z-index: -1;
	transition: background 0.4s var(--wg-ease);
}

.wg-shopmega__promo-text {
	text-align: center;
	padding: 0 24px 34px;
}

.wg-shopmega__promo-eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: lowercase;
	margin-bottom: 6px;
}

.wg-shopmega__promo-title {
	display: block;
	font-family: var(--wg-serif);
	font-size: clamp(24px, 2.4vw, 38px);
	line-height: 1.05;
	text-transform: lowercase;
	margin-bottom: 16px;
}

.wg-shopmega__promo-title em {
	font-style: italic;
}

@media (max-width: 991px) {
	.wg-shopmega {
		display: none;
	}
}

/* Mobile drawer: category block under the main links. */
.wg-mobile-nav__label {
	margin: 26px 0 4px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wg-ink-40);
}

.wg-mobile-nav__cats li {
	border-bottom: 1px solid var(--wg-line);
}

.wg-mobile-nav__cats a {
	display: block;
	padding: 12px 0;
	font-family: var(--wg-serif);
	font-size: 18px;
	text-transform: lowercase;
}

/* ==========================================================================
   23. Mobile pass — production polish
   ========================================================================== */

/* --- Product page stacks image-first on small screens ------------------- */
@media (max-width: 991px) {
	.wg-pdp {
		display: flex;
		flex-direction: column;
		gap: 22px;
		padding-top: 8px;
	}

	.wg-pdp__media { order: 1; }
	.wg-pdp__info  { order: 2; }
	.wg-pdp__buy   { order: 3; }

	.wg-pdp__info,
	.wg-pdp__buy {
		position: static;
	}

	.wg-pdp__title {
		font-size: 24px;
	}

	.wg-shop-crumbs {
		padding-top: 14px;
	}

	.wg-pdp-band {
		margin-top: var(--wg-block-sm);
	}

	.wg-pdp-band__body {
		position: static;
	}
}

/* --- Rails show two cards per view on phones ---------------------------- */
@media (max-width: 991px) {
	.wg-rail__track,
	.wg-rail--3 .wg-rail__track,
	.wg-rail--4 .wg-rail__track,
	.wg-rail--5 .wg-rail__track {
		grid-auto-columns: calc((100% - 14px) / 2);
		gap: 14px;
	}

	.wg-rail__nav {
		display: none;
	}

	.wg-card__title {
		font-size: 16px;
	}

	.wg-card__brand {
		font-size: 12px;
	}

	.wg-card__price {
		font-size: 13px;
	}

	.wg-card__quick {
		display: none;
	}

	.wg-sechead__title {
		font-size: 24px;
	}
}

/* --- Small-screen type and spacing -------------------------------------- */
@media (max-width: 575px) {
	.wg-hero__title {
		font-size: 34px;
	}

	.wg-hero__text {
		padding-bottom: 56px;
	}

	.wg-page-hero__title {
		font-size: 30px;
	}

	.wg-editorial {
		gap: 34px;
	}

	.wg-posts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 14px;
	}

	.wg-post-card__title {
		font-size: 16px;
	}

	.wg-cats {
		gap: 14px;
	}

	.wg-cat-card__title {
		font-size: 18px;
	}

	.wg-cat-card__text {
		padding: 14px;
	}

	.wg-newsletter__title {
		font-size: 24px;
	}

	.wg-footer__mark {
		font-size: 74vw;
	}
}

/* --- Cart page on phones ------------------------------------------------- */
@media (max-width: 991px) {
	.wg-cart-page__items {
		padding: 24px var(--wg-gutter) 40px;
	}

	.wg-cart-line {
		gap: 14px;
		padding: 18px 0;
	}

	.wg-cart-line__name {
		font-size: 17px;
	}

	.wg-cart-page__actions {
		gap: 14px;
	}

	.wg-summary {
		padding: 28px var(--wg-gutter) 34px;
	}
}

/* --- Checkout ------------------------------------------------------------ */

/* First/last name (and any half-width pairs) sit side by side. */
.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	width: calc(50% - 8px);
	display: inline-block;
	vertical-align: top;
}

.woocommerce form .form-row-first {
	margin-right: 16px;
}

.woocommerce-billing-fields h3,
#order_review_heading {
	font-size: 24px;
}

.woocommerce-checkout #payment {
	background: transparent;
}

#payment .payment_methods {
	border-top: 1px solid var(--wg-line-strong);
}

#payment .payment_methods li {
	padding: 14px 0;
}

#payment .payment_methods input[type="radio"] {
	accent-color: var(--wg-ink);
	margin-right: 8px;
}

#payment .place-order {
	padding-top: 8px;
}

#place_order {
	min-height: 48px;
	font-size: 15px;
}

.woocommerce-checkout .wg-shop-main > .woocommerce > .woocommerce-form-coupon-toggle .woocommerce-info {
	background: transparent;
	border: 0;
	padding: 0 0 8px;
}

@media (max-width: 991px) {
	.woocommerce-checkout .wg-shop-main {
		padding-top: 20px;
	}

	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last {
		width: 100%;
		display: block;
		margin-right: 0;
	}
}

/* --- Account on phones --------------------------------------------------- */
@media (max-width: 991px) {
	.woocommerce-account .woocommerce {
		padding: 24px var(--wg-gutter) 48px;
		gap: 24px;
	}

	.woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: wrap;
		gap: 4px 18px;
		border-bottom: 1px solid var(--wg-line);
		padding-bottom: 12px;
	}

	.woocommerce-MyAccount-navigation ul li {
		border: 0;
		padding: 4px 0;
	}
}

/* --- Quick view / modals fill small screens gracefully ------------------- */
@media (max-width: 575px) {
	.wg-modal {
		padding: 12px;
	}

	.wg-modal_dialog {
		padding: 22px 18px;
	}
}
