:root {
	/* Brand palette - Eco Steps guideline */
	--es-primary: #739642;
	--es-secondary: #cadb65;
	--es-paper: #f4f5f1;
	--es-warm: #fdca7b;
	--es-bronze: #c3914c;
	--es-forest: #0f2a0e;
	--es-ink: #142414;
	--es-muted: #5c6b52;
	--es-white: #fff;

	/* Semantic aliases (kept for existing selectors) */
	--es-moss: var(--es-primary);
	--es-leaf: var(--es-secondary);
	--es-stone: var(--es-paper);
	--es-sage: var(--es-bronze);
	--es-accent: var(--es-warm);

	/* Type: single family - Montserrat */
	--es-font-display: "Montserrat", system-ui, sans-serif;
	--es-font-heading: "Montserrat", system-ui, sans-serif;
	--es-font-body: "Montserrat", system-ui, sans-serif;
	--es-container: 1280px;
	--es-header-h: 4.25rem;
	--es-ease: cubic-bezier(0.22, 1, 0.36, 1);

	/* Type scale (16px root) */
	--es-text-xs: 0.75rem;
	--es-text-sm: 0.875rem;
	--es-text-md: 1rem;
	--es-text-lg: 1.125rem;
	--es-text-xl: 1.25rem;
	--es-text-brand: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
	--es-text-section: clamp(1.75rem, 1.15rem + 1.5vw, 2.25rem);
	--es-text-statement: clamp(1.85rem, 1.2rem + 1.8vw, 2.5rem);
	--es-text-hero: clamp(2.25rem, 1.15rem + 3.2vw, 3.5rem);
	--es-leading-body: 1.65;
	--es-leading-tight: 1.12;
}

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

html {
	scroll-behavior: smooth;
	font-size: 100%; /* 16px browser default */
}

body.es-theme {
	margin: 0;
	font-family: var(--es-font-body);
	font-size: var(--es-text-md);
	font-weight: 500;
	color: var(--es-ink);
	background: var(--es-paper);
	line-height: var(--es-leading-body);
	letter-spacing: 0;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }

.es-container {
	width: min(100% - 2rem, var(--es-container));
	margin-inline: auto;
}

.es-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .95rem 1.6rem;
	border: 1px solid transparent;
	font-family: var(--es-font-heading);
	font-weight: 700;
	font-size: var(--es-text-sm);
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .25s var(--es-ease), color .25s var(--es-ease), border-color .25s var(--es-ease), transform .25s var(--es-ease);
}
.es-btn--primary { background: var(--es-primary); color: var(--es-white); }
.es-btn--primary:hover { background: var(--es-forest); }
.es-btn--ghost { background: transparent; color: var(--es-white); border-color: var(--es-white); }
.es-btn--ghost:hover { background: var(--es-secondary); color: var(--es-forest); border-color: var(--es-secondary); }
.es-btn--ghost-dark { background: transparent; color: var(--es-forest); border-color: var(--es-primary); }
.es-btn--ghost-dark:hover { background: var(--es-primary); color: var(--es-white); }

.es-link {
	font-size: var(--es-text-sm);
	font-weight: 600;
	text-decoration: none;
	color: var(--es-forest);
}
.es-link:hover { color: var(--es-primary); }

.es-section { padding: clamp(3rem, 6vw, 5.5rem) 0; }
.es-section__head { margin-bottom: 2rem; }
.es-section__head h2 {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-section);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 0;
}
.es-section__sub {
	margin: .55rem 0 0;
	max-width: 36rem;
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: var(--es-leading-body);
	color: var(--es-muted);
}
.es-section__head--row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.es-eyebrow {
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: var(--es-text-xs);
	font-weight: 600;
	color: var(--es-sage);
	margin: 0 0 .75rem;
}

/* Announcement + header */
.es-announcement {
	background: var(--es-primary);
	color: var(--es-paper);
	text-align: center;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-sm);
	font-weight: 600;
	padding: .55rem 1rem;
	margin: 0;
}
.es-announcement p { margin: 0; }

.es-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(250, 251, 250, .92);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(26, 31, 28, .08);
	margin: 0;
}
/* Kill WP block flow gap between announcement and header */
.wp-site-blocks > .es-announcement,
.wp-site-blocks > .es-header,
.es-announcement + .es-header {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}
.es-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: var(--es-header-h);
	gap: 1rem;
}
.es-logo {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	justify-self: center;
	color: var(--es-primary);
	max-width: min(200px, 48vw);
}
.es-logo img,
.es-logo__img,
.es-logo .custom-logo {
	display: block;
	width: auto !important;
	max-width: 100% !important;
	height: 36px !important;
	object-fit: contain;
}
.es-logo--footer {
	max-width: 220px;
}
.es-logo--footer img,
.es-logo--footer .es-logo__img,
.es-logo--footer .custom-logo {
	height: 40px !important;
}
.es-logo__text {
	font-family: var(--es-font-display);
	font-weight: 800;
	font-size: var(--es-text-xl);
	letter-spacing: .04em;
	line-height: 1;
	text-transform: uppercase;
}
.es-nav-desktop { justify-self: start; }
.es-header__actions {
	justify-self: end;
	display: flex;
	align-items: center;
	gap: .35rem;
}
.es-nav {
	display: flex;
	gap: 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-sm);
	font-weight: 600;
}
.es-nav a:hover { color: var(--es-moss); }
.es-nav__item--mega { position: relative; }
.es-mega {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 520px;
	padding: 1.5rem;
	background: var(--es-white);
	border: 1px solid rgba(26, 31, 28, .08);
	box-shadow: 0 16px 40px rgba(26, 31, 28, .08);
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
	z-index: 20;
}
.es-nav__item--mega:hover .es-mega,
.es-nav__item--mega:focus-within .es-mega { display: grid; }
.es-mega__col { display: flex; flex-direction: column; gap: .45rem; }
.es-mega__col strong {
	font-size: var(--es-text-xs);
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-bottom: .35rem;
}
.es-mega__col a { font-size: var(--es-text-sm); color: var(--es-muted); }
.es-mega__col a:hover { color: var(--es-ink); }

.es-icon-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	border: 0;
	background: transparent;
	color: var(--es-ink);
	cursor: pointer;
}
.es-cart-badge {
	position: absolute;
	top: .15rem;
	right: .1rem;
	min-width: 1.05rem;
	height: 1.05rem;
	padding: 0 .25rem;
	border-radius: 999px;
	background: var(--es-moss);
	color: var(--es-white);
	font-size: var(--es-text-xs);
	font-weight: 700;
	line-height: 1.05rem;
	text-align: center;
}
.es-lang { display: inline-flex; gap: .15rem; margin-right: .35rem; }
.es-lang__item {
	padding: .2rem .4rem;
	font-size: var(--es-text-xs);
	font-weight: 600;
	color: var(--es-muted);
}
.es-lang__item.is-active { color: var(--es-ink); text-decoration: underline; text-underline-offset: .15em; }

.es-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 2.4rem;
	height: 2.4rem;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.es-nav-toggle span {
	display: block;
	width: 1.25rem;
	height: 2px;
	background: var(--es-ink);
}

.es-search-panel {
	border-top: 1px solid rgba(26, 31, 28, .08);
	padding: .75rem 0 1rem;
	background: var(--es-paper);
}
.es-search-form {
	display: flex;
	gap: .5rem;
}
.es-search-form input {
	flex: 1;
	border: 1px solid rgba(26, 31, 28, .15);
	padding: .75rem 1rem;
	background: var(--es-white);
}
.es-search-form input[type="search"] {
	padding-right: .65rem;
	-webkit-appearance: none;
	appearance: none;
}
.es-search-form input[type="search"]::-webkit-search-decoration,
.es-search-form input[type="search"]::-webkit-search-results-button,
.es-search-form input[type="search"]::-webkit-search-results-decoration {
	display: none;
	-webkit-appearance: none;
}
.es-search-form input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	cursor: pointer;
	opacity: .55;
	background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='8' cy='8' r='7' stroke='%235c6b52' stroke-width='1.25'/%3E%3Cpath d='M5.5 5.5l5 5M10.5 5.5l-5 5' stroke='%235c6b52' stroke-width='1.25' stroke-linecap='square'/%3E%3C/svg%3E");
	transition: opacity .15s var(--es-ease);
}
.es-search-form input[type="search"]::-webkit-search-cancel-button:hover {
	opacity: 1;
}
.es-search-form button {
	border: 0;
	background: var(--es-moss);
	color: var(--es-white);
	padding: 0 1.25rem;
	cursor: pointer;
}

/* Drawer */
.es-drawer[hidden] { display: none !important; }
.es-drawer { position: fixed; inset: 0; z-index: 200; }
.es-drawer__backdrop { position: absolute; inset: 0; background: rgba(26, 31, 28, .45); }
.es-drawer__panel {
	position: absolute;
	inset: 0 auto 0 0;
	width: min(88vw, 320px);
	background: var(--es-paper);
	padding: 1.5rem;
	transform: translateX(0);
	animation: es-drawer-in .35s var(--es-ease);
}
@keyframes es-drawer-in {
	from { transform: translateX(-100%); }
	to { transform: translateX(0); }
}
.es-drawer__panel nav { display: flex; flex-direction: column; gap: .85rem; margin: 2rem 0; }
.es-drawer__panel a { font-size: var(--es-text-lg); font-weight: 600; }
.es-drawer__close {
	border: 0;
	background: transparent;
	font-size: var(--es-text-section);
	cursor: pointer;
	line-height: 1;
}

/* Hero - single full-bleed image */
.es-hero {
	position: relative;
	min-height: min(70vh, 640px);
	overflow: hidden;
	background: #1c1814;
	color: var(--es-white);
}
.es-hero__media {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(28, 22, 16, .62) 0%, rgba(28, 22, 16, .28) 38%, rgba(28, 22, 16, .06) 68%, transparent 100%),
		linear-gradient(180deg, rgba(28, 22, 16, .12) 0%, transparent 28%, rgba(28, 22, 16, .22) 100%),
		var(--es-hero-bg) center / cover no-repeat;
	transform: scale(1.04);
	animation: es-hero-ken 12s var(--es-ease) forwards;
}
@keyframes es-hero-ken {
	to { transform: scale(1); }
}
.es-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: min(70vh, 640px);
	padding: 4rem 0 3.25rem;
	max-width: 40rem;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 28px rgba(0, 0, 0, .28);
}
.es-hero__brand {
	font-family: var(--es-font-display);
	font-weight: 800;
	font-size: var(--es-text-brand);
	letter-spacing: .06em;
	line-height: 1.2;
	margin: 0 0 .65rem;
	text-transform: uppercase;
	color: var(--es-secondary);
}
.es-hero__title {
	font-family: var(--es-font-display);
	font-size: var(--es-text-hero);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 0 0 1rem;
	font-weight: 800;
	text-transform: none;
	color: var(--es-white);
}
.es-hero__text {
	margin: 0 0 1.75rem;
	font-size: var(--es-text-lg);
	font-weight: 600;
	line-height: var(--es-leading-body);
	max-width: 32rem;
	color: var(--es-white);
}
.es-hero__cta {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	text-shadow: none;
}

/* Explore */
.es-explore__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
}
.es-explore__tile {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: var(--es-stone);
}
.es-explore__tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .55s var(--es-ease);
}
.es-explore__tile:hover img { transform: scale(1.05); }
.es-explore__tile span {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-lg);
	line-height: 1.2;
	color: var(--es-white);
	text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

/* Press */
.es-press { padding-block: 2.5rem; background: var(--es-stone); }
.es-press__label {
	text-align: center;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: var(--es-text-xs);
	font-weight: 600;
	color: var(--es-muted);
	margin: 0 0 1.25rem;
}
.es-press__row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 2rem 3rem;
	opacity: .7;
}
.es-press__row img { height: 28px; width: auto; filter: grayscale(1); }

/* Materials story - intro + photo cards */
.es-materials {
	margin: 0;
}
.es-materials__layout {
	display: grid;
	grid-template-columns: minmax(13.5rem, 16.5rem) minmax(0, 1fr);
	gap: 2rem 1.25rem;
	align-items: start;
}
.es-materials__intro {
	padding-top: .15rem;
}
.es-materials__eyebrow {
	margin: 0 0 .85rem;
	font-size: var(--es-text-xs);
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--es-muted);
}
.es-materials__heading {
	margin: 0 0 1.15rem;
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(1.85rem, 1.3rem + 1.5vw, 2.5rem);
	line-height: 1.08;
	letter-spacing: -.03em;
	color: var(--es-forest);
}
.es-materials__lead {
	margin: 0 0 1.75rem;
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: 1.65;
	color: var(--es-muted);
}
.es-materials__more {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-size: var(--es-text-sm);
	font-weight: 600;
	color: var(--es-forest);
	text-decoration: none;
}
.es-materials__more svg {
	flex: 0 0 auto;
	transition: transform .2s var(--es-ease);
}
.es-materials__more:hover {
	color: var(--es-primary);
}
.es-materials__more:hover svg {
	transform: translate(.15rem, -.15rem);
}
.es-materials__carousel {
	min-width: 0;
}
.es-materials__track {
	display: flex;
	gap: 1.35rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-bottom: .15rem;
}
.es-materials__track::-webkit-scrollbar {
	display: none;
}
.es-materials__card {
	flex: 0 0 calc((100% - 2.7rem) / 3);
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .85rem;
	color: var(--es-forest);
	scroll-snap-align: start;
}
.es-materials__nav {
	display: flex;
	justify-content: flex-end;
	gap: .55rem;
	margin-top: 1.15rem;
}
.es-materials__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--es-forest);
	cursor: pointer;
	transition: color .2s var(--es-ease), opacity .2s var(--es-ease);
}
.es-materials__arrow svg {
	display: block;
}
.es-materials__arrow:hover:not(:disabled) {
	color: var(--es-primary);
}
.es-materials__arrow:disabled {
	opacity: .28;
	cursor: default;
}
.es-materials__media {
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--es-stone);
}
.es-materials__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--es-ease);
}
.es-materials__card:hover .es-materials__media img {
	transform: scale(1.03);
}
.es-materials__title {
	margin: 0;
	font-family: var(--es-font-heading);
	font-weight: 700;
	font-size: var(--es-text-md);
	line-height: 1.3;
	letter-spacing: -.01em;
}
.es-materials__text {
	margin: 0;
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: 1.55;
	color: var(--es-muted);
}

/* Styles */
.es-styles__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}
.es-styles__item {
	display: grid;
	gap: .75rem;
}
.es-styles__item img {
	aspect-ratio: 1;
	width: 100%;
	object-fit: cover;
	background: var(--es-stone);
	transition: transform .4s var(--es-ease);
}
.es-styles__item:hover img { transform: scale(1.03); }
.es-styles__item span {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-md);
	line-height: 1.3;
}

/* Story */
.es-story {
	background: var(--es-stone);
	text-align: center;
}
.es-story__content {
	max-width: 40rem;
	margin-inline: auto;
	padding-block: clamp(1rem, 2vw, 1.5rem);
}
.es-story__content h2 {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-statement);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 0 0 1rem;
	color: var(--es-forest);
}
.es-story__content > p {
	margin: 0 0 1.5rem;
	font-size: var(--es-text-md);
	line-height: var(--es-leading-body);
	font-weight: 500;
	color: var(--es-muted);
}
.es-story__cta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem;
}

/* Catalog - full 6 SKU grid */
.es-catalog__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem 1.25rem;
}
.es-catalog .es-product-card {
	opacity: 0;
	transform: translateY(12px);
	animation: es-catalog-in .55s var(--es-ease) forwards;
}
.es-catalog .es-product-card:nth-child(1) { animation-delay: .05s; }
.es-catalog .es-product-card:nth-child(2) { animation-delay: .1s; }
.es-catalog .es-product-card:nth-child(3) { animation-delay: .15s; }
.es-catalog .es-product-card:nth-child(4) { animation-delay: .2s; }
.es-catalog .es-product-card:nth-child(5) { animation-delay: .25s; }
.es-catalog .es-product-card:nth-child(6) { animation-delay: .3s; }
@keyframes es-catalog-in {
	to { opacity: 1; transform: translateY(0); }
}

/* How it works */
.es-how { background: var(--es-stone); }
.es-how__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem 1.5rem;
	counter-reset: none;
}
.es-how__step {
	position: relative;
	padding-top: .25rem;
}
.es-how__num {
	display: block;
	font-family: var(--es-font-display);
	font-weight: 800;
	font-size: clamp(2rem, 4vw, 2.75rem);
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--es-primary);
	margin: 0 0 .85rem;
}
.es-how__title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-md);
	line-height: 1.3;
	margin: 0 0 .5rem;
	color: var(--es-ink);
}
.es-how__text {
	margin: 0;
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: var(--es-leading-body);
	color: var(--es-muted);
	max-width: 22rem;
}

/* Bestsellers / product cards (kept for optional pattern insert) */
.es-bestsellers__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(220px, 280px);
	gap: 1.25rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: .5rem;
	-webkit-overflow-scrolling: touch;
}
.es-product-card { scroll-snap-align: start; }
.es-product-card__media {
	display: block;
	overflow: hidden;
	background: var(--es-stone);
	aspect-ratio: 1;
}
.es-product-card__media img,
.es-product-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s var(--es-ease);
}
.es-product-card:hover .es-product-card__media img,
.es-product-card:hover .es-product-card__img { transform: scale(1.04); }
.es-product-card__body { padding: .85rem 0 0; }
.es-product-card__title {
	font-family: var(--es-font-heading);
	font-size: var(--es-text-md);
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 .35rem;
}
.es-product-card__price { font-size: var(--es-text-sm); font-weight: 500; color: var(--es-muted); }

/* Mission */
.es-mission { background: var(--es-stone); text-align: center; }
.es-mission__inner { max-width: 42rem; }
.es-mission h2 {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-statement);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 0 0 1rem;
	color: var(--es-primary);
}
.es-mission p {
	color: var(--es-muted);
	margin: 0 0 1.5rem;
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: var(--es-leading-body);
}

/* UGC */
.es-ugc__handle {
	margin: .5rem 0 0;
	font-size: var(--es-text-md);
	font-weight: 600;
	color: var(--es-moss);
}
.es-ugc__grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: .5rem;
}
.es-ugc__cell { aspect-ratio: 1; overflow: hidden; background: var(--es-stone); }
.es-ugc__cell img { width: 100%; height: 100%; object-fit: cover; }

/* About / founder story */
.es-about {
	padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(3.5rem, 7vw, 6rem);
	background: var(--es-paper);
}
.es-about__inner { max-width: 42rem; }
.es-about__hero { margin-bottom: 2.25rem; }
.es-about__tagline {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(1.85rem, 4.5vw, 2.75rem);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 0;
	color: var(--es-forest);
}
.es-about__body > p {
	margin: 0 0 1.15rem;
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: 1.7;
	color: var(--es-ink);
}
.es-about__body > h2 {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-section);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 2.25rem 0 .9rem;
	color: var(--es-primary);
}
.es-about__quote {
	margin: 2.5rem 0;
	padding: 1.5rem 0 1.5rem 1.25rem;
	border-left: 3px solid var(--es-primary);
	background: transparent;
}
.es-about__quote p {
	margin: 0 0 1rem;
	font-size: var(--es-text-lg);
	font-weight: 600;
	line-height: 1.55;
	color: var(--es-forest);
}
.es-about__quote footer {
	display: flex;
	flex-direction: column;
	gap: .2rem;
	font-size: var(--es-text-sm);
	color: var(--es-muted);
}
.es-about__quote footer strong {
	font-weight: 700;
	color: var(--es-ink);
}
.es-about__closing {
	margin: 2rem 0 0 !important;
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-md);
	letter-spacing: .02em;
	color: var(--es-primary) !important;
}

/* Legal pages - privacy, terms, shipping */
.es-legal {
	padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(3.5rem, 7vw, 6rem);
	background: var(--es-paper);
}
.es-legal__inner { max-width: none; }
.es-legal__hero { margin-bottom: 2.25rem; }
.es-legal__hero h1 {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(1.85rem, 4.5vw, 2.75rem);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 0 0 .85rem;
	color: var(--es-forest);
}
.es-legal__lead {
	margin: 0 0 .75rem;
	font-size: var(--es-text-lg);
	font-weight: 500;
	line-height: 1.6;
	color: var(--es-ink);
}
.es-legal__meta {
	margin: 0;
	font-size: var(--es-text-xs);
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--es-muted);
}
.es-legal__body > p {
	margin: 0 0 1.15rem;
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: 1.7;
	color: var(--es-ink);
}
.es-legal__body > h2 {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-xl);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 2.1rem 0 .75rem;
	color: var(--es-forest);
}
.es-legal__body ul {
	margin: 0 0 1.15rem;
	padding: 0 0 0 1.15rem;
}
.es-legal__body li {
	margin: 0 0 .45rem;
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: 1.65;
	color: var(--es-ink);
}
.es-legal__more {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem 1.25rem;
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(20, 36, 20, .1);
	font-size: var(--es-text-sm);
	font-weight: 600;
}
.es-legal__more a { color: var(--es-forest); }
.es-legal__more a:hover { color: var(--es-primary); }

/* Footer */
.es-footer { background: var(--es-forest); color: rgba(244, 245, 241, .85); margin-top: 0; }
.es-footer a { color: rgba(244, 245, 241, .85); }
.es-footer a:hover { color: var(--es-secondary); }
.es-footer__trust {
	background: rgba(0, 0, 0, .18);
	border-bottom: 1px solid rgba(255, 255, 255, .1);
	padding: 1.75rem 0;
}
.es-footer__trust-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	align-items: stretch;
}
.es-footer__trust-item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .9rem;
	padding: .35rem 1.25rem;
	text-align: left;
}
.es-footer__trust-item + .es-footer__trust-item {
	border-left: 1px solid rgba(255, 255, 255, .12);
}
.es-footer__trust-icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--es-secondary);
}
.es-footer__trust-icon svg {
	width: 2rem;
	height: 2rem;
}
.es-footer__trust-copy {
	display: grid;
	gap: .2rem;
	min-width: 0;
}
.es-footer__trust-copy strong {
	display: block;
	margin: 0;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-sm);
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.3;
	color: var(--es-white);
}
.es-footer__trust-copy span {
	font-size: var(--es-text-xs);
	font-weight: 500;
	line-height: 1.4;
	color: rgba(244, 245, 241, .7);
}
.es-footer__main { padding: 3.5rem 0; }
.es-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(3, 1fr);
	gap: 2rem;
}
.es-footer__brand .es-logo { color: var(--es-secondary); margin-bottom: 1rem; justify-self: start; }
.es-footer__brand .es-logo--image { color: inherit; }
.es-footer__brand p {
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: var(--es-leading-body);
}
.es-footer h4 {
	margin: 0 0 1rem;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--es-warm);
}
.es-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .45rem;
	font-size: var(--es-text-sm);
	font-weight: 500;
}
.es-social { display: flex; gap: 1rem; margin-top: 1rem; }
.es-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding: 1rem 0;
	font-size: var(--es-text-xs);
}
.es-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.es-footer__legal { display: flex; gap: 1rem; }
.es-footer .es-lang__item { color: rgba(255, 255, 255, .65); }
.es-footer .es-lang__item.is-active { color: var(--es-white); }

/* Cookie */
.es-cookie {
	position: fixed;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	z-index: 300;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: var(--es-white);
	border: 1px solid rgba(26, 31, 28, .12);
	box-shadow: 0 12px 40px rgba(26, 31, 28, .12);
	max-width: 640px;
	margin-inline: auto;
}
.es-cookie[hidden] { display: none !important; }
.es-cookie p { margin: 0; font-size: var(--es-text-sm); font-weight: 500; }
.es-cookie button {
	border: 0;
	background: var(--es-moss);
	color: var(--es-white);
	padding: .65rem 1.1rem;
	cursor: pointer;
	font-family: var(--es-font-heading);
	font-weight: 700;
}

/* Contact / forms */
.es-contact-main {
	padding: 0 !important;
	background: var(--es-paper);
}
.es-contact {
	padding: clamp(2.25rem, 4.5vw, 4rem) 0 clamp(3.25rem, 6vw, 5.5rem);
	background: var(--es-paper);
}
.es-contact__head {
	max-width: 38rem;
	margin: 0 0 2.25rem;
}
.es-contact__title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(1.85rem, 3vw, 2.5rem);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	color: var(--es-forest);
	margin: 0 0 .75rem;
}
.es-contact__lead {
	margin: 0;
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: var(--es-leading-body);
	color: var(--es-muted);
}
.es-contact__grid {
	display: grid;
	grid-template-columns: minmax(16rem, 20rem) minmax(0, 1fr);
	gap: 2rem 2.5rem;
	align-items: start;
}
.es-contact__aside {
	display: grid;
	gap: .65rem;
}
.es-contact__card {
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: .9rem;
	row-gap: .15rem;
	padding: 1rem 1.05rem;
	background: #fff;
	color: inherit;
	text-decoration: none;
}
a.es-contact__card:hover .es-contact__card-value { color: var(--es-primary); }
.es-contact__card-icon {
	grid-row: 1 / span 2;
	align-self: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	background: var(--es-paper);
	color: var(--es-forest);
}
.es-contact__card-label {
	font-size: var(--es-text-xs);
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--es-muted);
}
.es-contact__card-value {
	font-family: var(--es-font-heading);
	font-size: var(--es-text-md);
	font-weight: 700;
	line-height: 1.35;
	color: var(--es-forest);
}
.es-contact__note {
	margin: .35rem 0 0;
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: 1.5;
	color: var(--es-muted);
}
.es-contact__form {
	background: #fff;
	padding: 1.6rem 1.5rem 1.45rem;
}
.es-form { display: grid; gap: .9rem; }
.es-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .9rem;
}
.es-form label {
	display: grid;
	gap: .4rem;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-xs);
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--es-forest);
}
.es-form__req { color: var(--es-primary); }
.es-form input,
.es-form textarea {
	width: 100%;
	border: 1px solid rgba(15, 42, 14, .14);
	padding: .75rem .9rem;
	background: var(--es-white);
	font-family: var(--es-font-body);
	font-size: var(--es-text-md);
	font-weight: 500;
	color: var(--es-ink);
	line-height: 1.45;
	border-radius: 0;
}
.es-form textarea {
	min-height: 8.5rem;
	resize: vertical;
}
.es-form input:focus,
.es-form textarea:focus {
	outline: 2px solid rgba(115, 150, 66, .35);
	outline-offset: 1px;
	border-color: var(--es-primary);
}
.es-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.es-form__ok,
.es-form__err {
	margin: 0;
	padding: .85rem 1rem;
	font-size: var(--es-text-sm);
	font-weight: 600;
	line-height: 1.45;
}
.es-form__ok {
	background: rgba(115, 150, 66, .12);
	color: var(--es-forest);
}
.es-form__err {
	background: rgba(163, 51, 51, .08);
	color: #8a2a2a;
}
.es-contact__submit {
	width: 100%;
	height: 48px;
	padding: 0 1.25rem;
}
.es-contact__legal {
	margin: 0;
	font-size: var(--es-text-sm);
	font-weight: 500;
	color: var(--es-muted);
}
.es-contact__legal a { color: var(--es-forest); }
.es-contact__legal a:hover { color: var(--es-primary); }
.es-404 { text-align: center; padding: 5rem 1rem; }

/* Blog / articles (featured + rail) */
.es-posts-main,
.es-article-main {
	margin-block-start: 0 !important;
	padding: 0 !important;
	background: var(--es-paper);
}
.es-blog {
	padding: clamp(2.5rem, 5vw, 4rem) 0 4rem;
}
.es-blog__hero {
	text-align: center;
	max-width: 40rem;
	margin: 0 auto 3.5rem;
}
.es-blog__title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	color: var(--es-forest);
	margin: 0 0 .85rem;
}
.es-blog__lead {
	margin: 0 auto 1.5rem;
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: var(--es-leading-body);
	color: var(--es-muted);
}
.es-blog__subscribe {
	display: flex;
	align-items: stretch;
	max-width: 28rem;
	margin: 0 auto;
	border: 1px solid rgba(15, 42, 14, .16);
	background: var(--es-white, #fff);
}
.es-blog__subscribe input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: .85rem 1rem;
	font-size: var(--es-text-sm);
	font-weight: 500;
	color: var(--es-ink);
}
.es-blog__subscribe input[type="search"] {
	padding-right: .65rem;
	-webkit-appearance: none;
	appearance: none;
}
.es-blog__subscribe input[type="search"]::-webkit-search-decoration,
.es-blog__subscribe input[type="search"]::-webkit-search-results-button,
.es-blog__subscribe input[type="search"]::-webkit-search-results-decoration {
	display: none;
	-webkit-appearance: none;
}
.es-blog__subscribe input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	cursor: pointer;
	opacity: .55;
	background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='8' cy='8' r='7' stroke='%235c6b52' stroke-width='1.25'/%3E%3Cpath d='M5.5 5.5l5 5M10.5 5.5l-5 5' stroke='%235c6b52' stroke-width='1.25' stroke-linecap='square'/%3E%3C/svg%3E");
	transition: opacity .15s var(--es-ease);
}
.es-blog__subscribe input[type="search"]::-webkit-search-cancel-button:hover {
	opacity: 1;
}
.es-blog__subscribe input::placeholder { color: var(--es-muted); }
.es-blog__subscribe input:focus { outline: none; }
.es-blog__subscribe button {
	flex: 0 0 auto;
	border: 0;
	background: var(--es-forest);
	color: var(--es-white);
	font-family: var(--es-font-heading);
	font-size: var(--es-text-xs);
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: 0 1.25rem;
	cursor: pointer;
	transition: background .2s var(--es-ease);
}
.es-blog__subscribe button:hover { background: var(--es-primary); }

.es-blog__section-title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-lg);
	color: var(--es-forest);
	margin: 0 0 1.5rem;
}
.es-blog__empty {
	color: var(--es-muted);
	font-size: var(--es-text-sm);
}
.es-blog__recent {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 2rem 2.5rem;
	align-items: start;
}
.es-blog__rail {
	display: grid;
	gap: 1.75rem;
}

.es-blog-card__media {
	display: block;
	overflow: hidden;
	background: var(--es-stone);
}
.es-blog-card__media img,
.es-blog-card__placeholder {
	display: block;
	width: 100%;
	object-fit: cover;
	transition: transform .45s var(--es-ease);
}
.es-blog-card__placeholder {
	aspect-ratio: 16 / 10;
	background: linear-gradient(145deg, #e4e7df 0%, #d2d8c8 100%);
}
.es-blog-card:hover .es-blog-card__media img {
	transform: scale(1.03);
}
.es-blog-card__meta {
	margin: 0 0 .55rem;
	font-size: var(--es-text-xs);
	font-weight: 600;
	color: var(--es-primary);
	letter-spacing: .02em;
}
.es-blog-card__title {
	font-family: var(--es-font-heading);
	font-weight: 700;
	margin: 0 0 .55rem;
	line-height: 1.3;
}
.es-blog-card__title a {
	display: inline-flex;
	align-items: flex-start;
	gap: .45rem;
	color: var(--es-forest);
	text-decoration: none;
}
.es-blog-card__title a:hover { color: var(--es-primary); }
.es-blog-card__arrow {
	flex: 0 0 auto;
	margin-top: .2em;
	transition: transform .2s var(--es-ease);
}
.es-blog-card__title a:hover .es-blog-card__arrow {
	transform: translate(.15rem, -.15rem);
}
.es-blog-card__excerpt {
	margin: 0 0 .85rem;
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: 1.55;
	color: var(--es-muted);
}
.es-blog-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.es-blog-card__tags a {
	display: inline-block;
	padding: 0;
	border: 0;
	font-size: var(--es-text-xs);
	font-weight: 600;
	color: var(--es-muted);
	line-height: 1.2;
	text-decoration: none;
}
.es-blog-card__tags a:hover {
	color: var(--es-primary);
}

.es-blog-card--featured .es-blog-card__media { margin-bottom: 1.15rem; }
.es-blog-card--featured .es-blog-card__media img,
.es-blog-card--featured .es-blog-card__placeholder {
	aspect-ratio: 16 / 10;
}
.es-blog-card--featured .es-blog-card__title {
	font-size: clamp(1.25rem, 1rem + 1vw, 1.55rem);
}

.es-blog-card--rail {
	display: grid;
	grid-template-columns: 9.5rem minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
}
.es-blog-card--rail .es-blog-card__media img,
.es-blog-card--rail .es-blog-card__placeholder {
	aspect-ratio: 4 / 3;
	height: 100%;
	min-height: 5.5rem;
}
.es-blog-card--rail .es-blog-card__title {
	font-size: var(--es-text-md);
}
.es-blog-card--rail .es-blog-card__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: .65rem;
}

.es-blog__section--all {
	margin-top: 3.5rem;
	padding-top: 2.5rem;
	border-top: 1px solid rgba(15, 42, 14, .08);
}
.es-blog__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem 1.5rem;
}
.es-blog-card--grid .es-blog-card__media {
	margin-bottom: 1rem;
}
.es-blog-card--grid .es-blog-card__media img,
.es-blog-card--grid .es-blog-card__placeholder {
	aspect-ratio: 16 / 10;
}
.es-blog-card--grid .es-blog-card__title {
	font-size: var(--es-text-lg);
}
.es-blog-card--grid .es-blog-card__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.es-search-page__hero {
	margin-bottom: 2.75rem;
}
.es-search-page__eyebrow {
	margin: 0 0 .65rem;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-xs);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--es-primary);
}
.es-search-page .es-blog__empty a,
.es-blog__empty a {
	color: var(--es-forest);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .15em;
}
.es-search-page .es-blog__empty a:hover,
.es-blog__empty a:hover { color: var(--es-primary); }
.es-search-page__products {
	margin: 0;
}
.es-search-page__products ul.products {
	margin: 0;
}

.es-home-banner {
	margin: 0;
	padding: 0;
	line-height: 0;
}
.es-home-banner img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 1rem;
	background: #3a6a2e;
}

.es-home-posts {
	background: var(--es-paper);
}
.es-home-posts .es-blog__grid {
	margin: 0;
}

.es-article {
	padding: clamp(2.25rem, 4.5vw, 4rem) 0 clamp(3.25rem, 6vw, 5.5rem);
	background: var(--es-paper);
}
.es-article__back {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: 0 0 1.75rem;
	font-size: var(--es-text-sm);
	font-weight: 600;
	color: var(--es-muted);
	text-decoration: none;
}
.es-article__back:hover { color: var(--es-primary); }
.es-article__back svg {
	flex: 0 0 auto;
	display: block;
}
.es-article__hero {
	margin: 0 0 2rem;
}
.es-article__title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(1.85rem, 4vw, 2.75rem);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	color: var(--es-forest);
	margin: 0 0 .85rem;
}
.es-article__meta {
	margin: 0;
	font-size: var(--es-text-xs);
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--es-muted);
}
.es-article__media {
	margin: 0 0 2.25rem;
	background: var(--es-stone);
}
.es-article__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}
.es-article__body {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.75;
	color: var(--es-ink);
}
.es-article__body > p:first-child {
	font-size: var(--es-text-lg);
	line-height: 1.65;
}
.es-article__body p { margin: 0 0 1.15rem; }
.es-article__body > h2 {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-xl);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 2.1rem 0 .75rem;
	color: var(--es-forest);
}
.es-article__body ul,
.es-article__body ol {
	margin: 0 0 1.15rem;
	padding: 0 0 0 1.15rem;
}
.es-article__body li {
	margin: 0 0 .45rem;
	font-weight: 500;
	line-height: 1.65;
}
.es-article__body a {
	color: var(--es-forest);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .15em;
}
.es-article__body a:hover { color: var(--es-primary); }
.es-article__related {
	margin-top: 3.5rem;
	padding-top: 2.5rem;
	border-top: 1px solid rgba(15, 42, 14, .08);
}
.es-article__related-title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-lg);
	color: var(--es-forest);
	margin: 0 0 1.5rem;
}

/* WooCommerce */
.es-woo .woocommerce,
.es-woo .woocommerce-page { padding: 0 0 4rem; }
.es-pdp-main,
.es-shop-main {
	padding-top: 0;
	margin-block-start: 0 !important;
}
.es-pdp,
.es-shop {
	padding-top: 1.75rem;
	padding-bottom: 1rem;
}

/* Breadcrumb */
.es-woo .woocommerce-breadcrumb {
	font-size: var(--es-text-md);
	font-weight: 500;
	color: var(--es-muted);
	margin: 0 0 1.25rem;
	padding: 0;
}
.es-woo .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	display: none !important;
}
.es-woo .woocommerce-breadcrumb a { color: var(--es-muted); }
.es-woo .woocommerce-breadcrumb a:hover { color: var(--es-primary); }

/* Shop archive header + toolbar */
.es-woo.post-type-archive-product .woocommerce-products-header {
	display: none;
}
.es-woo .woocommerce-products-header {
	margin: 0 0 1.25rem;
}
.es-woo .woocommerce-products-header__title,
.es-woo h1.page-title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(1.75rem, 3vw, 2.35rem);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	color: var(--es-forest);
	margin: 0;
}
.es-woo .woocommerce-result-count {
	font-size: var(--es-text-sm);
	font-weight: 500;
	color: var(--es-muted);
	margin: 0 !important;
}
.es-shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin: 0 0 1.75rem;
}
.es-woo .woocommerce-ordering {
	position: relative;
	margin: 0 !important;
	float: none !important;
}
.es-woo .woocommerce-ordering select.orderby,
.es-woo .woocommerce-ordering select {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: auto;
	min-width: 14rem;
	max-width: 100%;
	height: 44px;
	margin: 0;
	padding: 0 2.75rem 0 1rem;
	border: 1px solid rgba(15, 42, 14, .18);
	border-radius: 0;
	background-color: var(--es-white, #fff);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%230F2A0E' stroke-width='1.5' stroke-linecap='square'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 12px 8px;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-xs);
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--es-forest);
	line-height: 44px;
	cursor: pointer;
	transition: border-color .2s var(--es-ease), background-color .2s var(--es-ease), color .2s var(--es-ease);
}
.es-woo .woocommerce-ordering select:hover {
	border-color: var(--es-primary);
	background-color: var(--es-paper);
}
.es-woo .woocommerce-ordering select:focus {
	outline: 2px solid rgba(115, 150, 66, .35);
	outline-offset: 1px;
	border-color: var(--es-primary);
}
.es-woo .woocommerce-ordering select:disabled {
	opacity: .55;
	cursor: not-allowed;
}

/* Archive / loops */
.es-woo ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem 1.35rem;
	list-style: none;
	padding: 0;
	margin: 0;
	clear: both;
}
.es-woo ul.products::before,
.es-woo ul.products::after { display: none !important; }
.es-woo ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	background: transparent;
	text-align: left;
}
.es-woo ul.products li.product .woocommerce-loop-product__link {
	display: block;
}
.es-woo ul.products li.product img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	background: var(--es-stone);
	margin: 0 0 .85rem;
	transition: transform .45s var(--es-ease);
}
.es-woo ul.products li.product:hover img { transform: scale(1.03); }
.es-woo ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--es-font-heading);
	font-size: var(--es-text-md);
	font-weight: 700;
	line-height: 1.3;
	padding: 0;
	margin: 0 0 .35rem;
	color: var(--es-forest);
}
.es-woo ul.products .price {
	display: block;
	color: var(--es-muted) !important;
	font-size: var(--es-text-sm);
	font-weight: 500 !important;
	margin: 0;
}
.es-woo ul.products li.product .button,
.es-woo ul.products li.product .added_to_cart,
.es-woo ul.products li.product .add_to_cart_button {
	display: none !important;
}

/* PDP layout */
.es-woo.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(1.75rem, 4vw, 3rem);
	align-items: start;
	margin: 0 0 3rem;
}
.es-woo.single-product div.product::before,
.es-woo.single-product div.product::after { display: none !important; content: none !important; }
.es-woo .woocommerce-product-gallery {
	margin: 0 !important;
	float: none !important;
	width: 100% !important;
	opacity: 1 !important;
	background: var(--es-stone);
}
.es-woo .woocommerce-product-gallery__wrapper { margin: 0; }
.es-woo .woocommerce-product-gallery__image {
	margin: 0 !important;
	background: var(--es-stone);
}
.es-woo .woocommerce-product-gallery__image img,
.es-woo .woocommerce-product-gallery figure img,
.es-woo .woocommerce-product-gallery .wp-post-image {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1;
	object-fit: cover;
	display: block;
	margin: 0;
}
.es-woo .flex-control-thumbs {
	display: flex !important;
	flex-wrap: wrap;
	gap: .4rem;
	margin: .4rem 0 0 !important;
	padding: 0 !important;
	list-style: none;
}
.es-woo .flex-control-thumbs li {
	/* Same visual size as the old 4-col grid cells, packed left - not stretched apart */
	width: calc((100% - 1.2rem) / 4) !important;
	float: none !important;
	margin: 0 !important;
	flex: 0 0 auto;
}
.es-woo .flex-control-thumbs img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	opacity: .55;
	border: 1px solid transparent;
	cursor: pointer;
}
.es-woo .flex-control-thumbs .flex-active,
.es-woo .flex-control-thumbs img:hover {
	opacity: 1;
	border-color: var(--es-primary);
}

/* Summary */
.es-woo.single-product div.product .summary {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: .25rem 0 0;
}
.es-woo .summary .product_title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(1.75rem, 3vw, 2.35rem);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	margin: 0 0 .65rem;
	color: var(--es-forest);
}
.es-woo.single-product .summary > .price {
	display: block;
	margin: 0 0 1.15rem !important;
	font-family: var(--es-font-heading) !important;
	font-size: clamp(1.25rem, 2vw, 1.55rem) !important;
	font-weight: 700 !important;
	color: var(--es-primary) !important;
	line-height: 1.2;
}
.es-woo .summary .woocommerce-product-details__short-description {
	margin: 0 0 1.5rem;
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: var(--es-leading-body);
	color: var(--es-muted);
}
.es-woo .summary .cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: .65rem;
	margin: 0 0 1.25rem !important;
}
.es-woo .summary .quantity {
	margin: 0 !important;
}
.es-woo .quantity input.qty {
	width: 4.25rem;
	height: 48px;
	border: 1px solid rgba(26, 31, 28, .18);
	padding: .5rem;
	text-align: center;
	font-weight: 600;
	background: var(--es-white);
}
.es-woo .single_add_to_cart_button,
.es-woo .checkout-button,
.es-woo button.button,
.es-woo a.button,
.es-woo #place_order {
	background: var(--es-primary) !important;
	color: var(--es-white) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: var(--es-font-heading) !important;
	font-weight: 700 !important;
	font-size: var(--es-text-sm) !important;
	text-transform: uppercase;
	letter-spacing: .05em;
	height: 48px;
	line-height: 48px !important;
	padding: 0 1.5rem !important;
	margin: 0 !important;
}
.es-woo .summary .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: 10rem;
}
.es-woo .single_add_to_cart_button:hover,
.es-woo .checkout-button:hover,
.es-woo button.button:hover,
.es-woo a.button:hover {
	background: var(--es-forest) !important;
}
.es-pdp-trust {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 1rem 0 0;
	border-top: 1px solid rgba(26, 31, 28, .1);
	display: grid;
	gap: .45rem;
}
.es-pdp-trust li {
	position: relative;
	padding-left: 1.1rem;
	font-size: var(--es-text-sm);
	font-weight: 500;
	color: var(--es-muted);
	line-height: 1.4;
}
.es-pdp-trust li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: .45rem;
	height: .45rem;
	background: var(--es-primary);
}
.es-pdp-meta,
.es-woo .product_meta {
	font-size: var(--es-text-xs);
	font-weight: 500;
	color: var(--es-muted);
	line-height: 1.6;
}
.es-woo .product_meta a { color: var(--es-forest); text-decoration: underline; text-underline-offset: .15em; }
.es-woo .product_meta a:hover { color: var(--es-primary); }

/* Tabs */
.es-woo .woocommerce-tabs {
	clear: both;
	grid-column: 1 / -1;
	margin: 0 0 3rem;
	padding-top: .5rem;
	border-top: 1px solid rgba(26, 31, 28, .1);
}
.es-woo .woocommerce-tabs ul.tabs {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0 0 1.5rem !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent;
}
.es-woo .woocommerce-tabs ul.tabs::before { display: none !important; }
.es-woo .woocommerce-tabs ul.tabs li {
	border: 0 !important;
	background: transparent !important;
	margin: 0 !important;
	padding: 0 !important;
}
.es-woo .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .85rem 1.15rem !important;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--es-muted) !important;
	border-bottom: 2px solid transparent;
}
.es-woo .woocommerce-tabs ul.tabs li.active a,
.es-woo .woocommerce-tabs ul.tabs li a:hover {
	color: var(--es-forest) !important;
	border-bottom-color: var(--es-primary);
}
.es-woo .woocommerce-Tabs-panel {
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
}
.es-woo .woocommerce-Tabs-panel h2 {
	font-family: var(--es-font-heading);
	font-size: var(--es-text-lg);
	font-weight: 800;
	margin: 0 0 1rem;
	color: var(--es-forest);
}
.es-woo .woocommerce-Tabs-panel h3 {
	font-family: var(--es-font-heading);
	font-size: var(--es-text-md);
	font-weight: 700;
	margin: 1.5rem 0 .65rem;
	color: var(--es-ink);
}
.es-woo .woocommerce-Tabs-panel p,
.es-woo .woocommerce-Tabs-panel li {
	font-size: var(--es-text-md);
	font-weight: 500;
	line-height: 1.65;
	color: var(--es-muted);
}
.es-woo .woocommerce-Tabs-panel ul {
	margin: 0 0 1rem;
	padding-left: 1.15rem;
}
.es-woo table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}
.es-woo table.shop_attributes th,
.es-woo table.shop_attributes td {
	border-bottom: 1px solid rgba(26, 31, 28, .1);
	padding: .4rem .25rem;
	text-align: left;
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: 1.35;
	vertical-align: middle;
}
.es-woo table.shop_attributes th {
	width: 32%;
	color: var(--es-forest);
	font-weight: 700;
}
.es-woo table.shop_attributes td p {
	margin: 0;
}

/* Reviews */
.es-woo .woocommerce-Reviews {
	max-width: 40rem;
}
.es-woo .woocommerce-Reviews-title {
	display: none;
}
.es-woo .woocommerce-noreviews {
	margin: 0 0 1.5rem;
	padding: .85rem 1rem;
	background: var(--es-stone, #eef0ea);
	color: var(--es-muted);
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: 1.45;
}
.es-woo #review_form_wrapper {
	margin: 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid rgba(26, 31, 28, .1);
}
.es-woo #comments:has(.woocommerce-noreviews) + #review_form_wrapper {
	border-top: 0;
	padding-top: 0;
}
.es-woo #reply-title.comment-reply-title {
	display: block;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-md);
	font-weight: 700;
	color: var(--es-forest);
	margin: 0 0 1.15rem;
	line-height: 1.35;
}
.es-woo #reply-title small {
	display: none;
}
.es-woo .comment-form {
	display: grid;
	gap: .9rem;
	margin: 0;
}
.es-woo .comment-form > p,
.es-woo .comment-form .comment-form-rating,
.es-woo .comment-form .comment-form-comment,
.es-woo .comment-form .comment-form-author,
.es-woo .comment-form .comment-form-email,
.es-woo .comment-form .comment-notes,
.es-woo .comment-form .form-submit {
	margin: 0;
}
.es-woo .comment-form label {
	display: block;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--es-forest);
	margin: 0 0 .4rem;
}
.es-woo .comment-form .required {
	color: var(--es-primary);
}
.es-woo .comment-form textarea,
.es-woo .comment-form input[type="text"],
.es-woo .comment-form input[type="email"] {
	width: 100%;
	border: 1px solid rgba(26, 31, 28, .16);
	background: var(--es-white, #fff);
	padding: .7rem .85rem;
	font-family: var(--es-font-body);
	font-size: var(--es-text-sm);
	font-weight: 500;
	color: var(--es-ink);
	line-height: 1.45;
	border-radius: 0;
}
.es-woo .comment-form textarea {
	min-height: 7rem;
	resize: vertical;
}
.es-woo .comment-form textarea:focus,
.es-woo .comment-form input[type="text"]:focus,
.es-woo .comment-form input[type="email"]:focus {
	outline: 2px solid rgba(115, 150, 66, .35);
	outline-offset: 1px;
	border-color: var(--es-primary);
}
.es-woo .comment-form-rating .stars {
	margin: .15rem 0 0;
	line-height: 1;
}
.es-woo .comment-form-rating .stars a {
	display: inline-block;
	position: relative;
	width: 1.4rem;
	height: 1.4rem;
	margin-right: .15rem;
	font-size: 1.4rem;
	text-indent: -9999px;
	overflow: hidden;
	color: transparent;
}
.es-woo .comment-form-rating .stars a::before {
	content: "★";
	position: absolute;
	inset: 0;
	text-indent: 0;
	line-height: 1.4rem;
	color: rgba(26, 31, 28, .2);
}
.es-woo .comment-form-rating .stars:hover a::before {
	color: var(--es-primary);
}
.es-woo .comment-form-rating .stars:hover a:hover ~ a::before {
	color: rgba(26, 31, 28, .2);
}
.es-woo .comment-form-rating .stars.selected a::before {
	color: var(--es-primary);
}
.es-woo .comment-form-rating .stars.selected a.active ~ a::before {
	color: rgba(26, 31, 28, .2);
}
.es-woo .comment-notes {
	font-size: var(--es-text-xs);
	color: var(--es-muted);
	line-height: 1.4;
}
.es-woo .comment-form .form-submit .submit,
.es-woo .comment-form .form-submit input[type="submit"] {
	background: var(--es-primary) !important;
	color: var(--es-white) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: var(--es-font-heading) !important;
	font-weight: 700 !important;
	font-size: var(--es-text-sm) !important;
	text-transform: uppercase;
	letter-spacing: .05em;
	height: 44px;
	padding: 0 1.35rem !important;
	cursor: pointer;
}
.es-woo .comment-form .form-submit .submit:hover,
.es-woo .comment-form .form-submit input[type="submit"]:hover {
	background: var(--es-forest) !important;
}
.es-woo .commentlist {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}
.es-woo .commentlist .comment {
	padding: 1rem 0;
	border-bottom: 1px solid rgba(26, 31, 28, .08);
}
.es-woo .commentlist .meta {
	font-size: var(--es-text-xs);
	color: var(--es-muted);
	margin: 0 0 .35rem;
}
.es-woo .commentlist .description p {
	margin: 0;
	font-size: var(--es-text-sm);
	color: var(--es-ink);
	line-height: 1.55;
}

/* Related */
.es-woo .related.products {
	clear: both;
	grid-column: 1 / -1;
	margin: 0;
	padding-top: 2rem;
	border-top: 0;
}
.es-woo .related.products > h2 {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: var(--es-text-section);
	margin: 0 0 1.5rem;
	color: var(--es-forest);
}
.es-woo .related ul.products {
	grid-template-columns: repeat(3, 1fr) !important;
}
.es-woo .related ul.products .button,
.es-woo .related ul.products .added_to_cart {
	display: none !important;
}

.es-cart-main,
.es-checkout-main {
	padding: clamp(2.25rem, 4.5vw, 4rem) 0 clamp(3.25rem, 6vw, 5.5rem) !important;
	background: var(--es-paper);
}
.es-cart .alignwide,
.es-checkout .alignwide {
	max-width: none;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.es-cart__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	flex-wrap: wrap;
	margin: 0 0 2rem;
	padding-bottom: 1.35rem;
	border-bottom: 1px solid rgba(20, 36, 20, .1);
}
.es-cart__title,
.es-checkout__title,
.es-cart h1.wp-block-post-title,
.es-checkout h1.wp-block-post-title {
	font-family: var(--es-font-heading);
	font-weight: 800;
	font-size: clamp(1.85rem, 3vw, 2.5rem);
	line-height: var(--es-leading-tight);
	letter-spacing: -.02em;
	color: var(--es-forest);
	margin: 0;
}
.es-cart__summary {
	margin: .4rem 0 0;
	font-size: var(--es-text-sm);
	font-weight: 500;
	color: var(--es-muted);
}
.es-cart .wp-block-woocommerce-cart,
.es-checkout .wp-block-woocommerce-checkout {
	margin-top: 0;
}
.es-woo .wc-block-cart,
.es-woo .wc-block-checkout {
	font-family: var(--es-font-body);
}
.es-woo .wc-block-components-sidebar-layout.wc-block-cart {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 22rem;
	gap: 2rem 2.25rem;
	align-items: start;
}
.es-woo .wc-block-cart__main,
.es-woo .wc-block-cart__sidebar {
	width: auto !important;
	max-width: none !important;
	flex: none !important;
}
.es-woo .wc-block-cart-items {
	width: 100%;
	border: 0 !important;
	border-spacing: 0;
}
.es-woo .wc-block-cart-items__header { display: none; }
.es-woo .wc-block-cart-items__header th {
	padding: 0 0 .75rem;
	border: 0;
	border-bottom: 1px solid rgba(20, 36, 20, .1);
	font-size: var(--es-text-xs);
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--es-muted);
	background: transparent;
}
.es-woo .wc-block-cart-items__header-image { width: 7.5rem; }
.es-woo .wc-block-cart-items__row td {
	padding: 1.25rem 0;
	border: 0 !important;
	vertical-align: top;
	background: transparent;
}
.es-woo .wc-block-cart-item__image {
	width: 7.5rem;
	padding-right: 1.15rem !important;
}
.es-woo .wc-block-cart-item__image a {
	display: block;
	background: #fff;
	overflow: hidden;
}
.es-woo .wc-block-cart-item__image img {
	width: 112px;
	height: 112px;
	object-fit: cover;
	display: block;
}
.es-woo table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name,
.es-woo .wc-block-components-product-name {
	display: inline-block;
	margin: 0 0 .4rem;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-xl);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -.01em;
	color: var(--es-forest) !important;
	text-decoration: none !important;
}
.es-woo .wc-block-components-product-name:hover { color: var(--es-primary) !important; }
.es-woo table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__prices,
.es-woo table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__prices .wc-block-components-product-price,
.es-woo .wc-block-cart-item__prices,
.es-woo .wc-block-cart-item__total .wc-block-components-product-price {
	font-size: var(--es-text-md);
	font-weight: 600;
	line-height: 1.4;
	color: var(--es-ink);
}
.es-woo table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total,
.es-woo .wc-block-cart-item__total {
	text-align: right;
	white-space: nowrap;
	font-size: var(--es-text-lg);
	font-weight: 700;
	line-height: 1.3;
	color: var(--es-forest);
}
.es-woo .wc-block-components-product-metadata {
	margin: .35rem 0 .85rem;
}
.es-woo .wc-block-components-product-metadata__description {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: var(--es-text-md);
	line-height: 1.5;
	color: var(--es-muted);
}
.es-woo .wc-block-components-product-metadata__description p { margin: 0; }
.es-woo .wc-block-cart-item__quantity {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin-top: .35rem;
}
.es-woo .wc-block-components-quantity-selector {
	display: inline-flex;
	align-items: stretch;
	width: auto;
	height: 42px;
	border: 1px solid rgba(15, 42, 14, .14);
	background: #fff;
}
.es-woo table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.es-woo .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.es-woo .wc-block-components-quantity-selector__button {
	position: relative;
	flex: 0 0 42px;
	width: 42px;
	min-width: 42px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--es-forest);
	font-size: 0;
	line-height: 0;
	cursor: pointer;
}
.es-woo .wc-block-components-quantity-selector__button::before {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	margin: 0 auto;
	background-color: currentColor;
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
}
.es-woo .wc-block-components-quantity-selector__button--minus::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='square'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='square'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E");
}
.es-woo .wc-block-components-quantity-selector__button--plus::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='square'%3E%3Cpath d='M6 12h12M12 6v12'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='square'%3E%3Cpath d='M6 12h12M12 6v12'/%3E%3C/svg%3E");
}
.es-woo .wc-block-components-quantity-selector__button:hover:not(:disabled) {
	background: var(--es-paper);
	color: var(--es-primary);
}
.es-woo .wc-block-components-quantity-selector__button:disabled { opacity: .28; cursor: default; }
.es-woo .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input,
.es-woo .wc-block-components-quantity-selector__input {
	width: 2.6rem;
	border: 0;
	border-left: 1px solid rgba(15, 42, 14, .1);
	border-right: 1px solid rgba(15, 42, 14, .1);
	text-align: center;
	font-size: var(--es-text-md);
	font-weight: 600;
	color: var(--es-ink);
	background: #fff;
	-moz-appearance: textfield;
	appearance: textfield;
}
.es-woo .wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
.es-woo .wc-block-components-quantity-selector__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.es-woo table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link,
.es-woo .wc-block-cart-item__quantity .wc-block-cart-item__remove-link,
.es-woo .wc-block-cart-item__remove-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	min-width: 42px;
	padding: 0;
	border: 1px solid rgba(15, 42, 14, .14);
	background: #fff;
	color: var(--es-muted);
	cursor: pointer;
	text-decoration: none !important;
	box-shadow: none !important;
}
.es-woo .wc-block-cart-item__remove-link svg { display: none; }
.es-woo .wc-block-cart-item__remove-link::before {
	content: "";
	display: block;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='M9 7V5h6v2'/%3E%3Cpath d='M6 7l1 13h10l1-13'/%3E%3Cpath d='M10 11v5M14 11v5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='M9 7V5h6v2'/%3E%3Cpath d='M6 7l1 13h10l1-13'/%3E%3Cpath d='M10 11v5M14 11v5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.es-woo .wc-block-cart-item__remove-link:hover {
	color: var(--es-forest);
	border-color: rgba(15, 42, 14, .28);
	background: var(--es-paper);
}
.es-woo .wc-block-cart__sidebar {
	background: #fff;
	padding: 1.5rem 1.4rem 1.4rem;
	align-self: start;
	position: sticky;
	top: calc(var(--es-header-h) + 2rem);
}
.es-woo .wc-block-cart__totals-title {
	margin: 0 0 .85rem;
	padding: 0;
	border: 0 !important;
	font-family: var(--es-font-heading);
	font-size: var(--es-text-lg);
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--es-forest);
}
.es-woo .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block,
.es-woo .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-totals-block,
.es-woo .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-heading-block,
.es-woo .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-coupon-form-block,
.es-woo .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.es-woo .wc-block-cart__sidebar .wc-block-components-totals-item,
.es-woo .wc-block-cart__sidebar .wc-block-components-panel,
.es-woo .wc-block-cart__totals-title {
	border: 0 !important;
	box-shadow: none !important;
}
.es-woo .wc-block-cart-items {
	border-color: rgba(20, 36, 20, .1) !important;
}
.es-woo .wc-block-cart__sidebar .wc-block-components-totals-wrapper {
	padding: .45rem 0;
}
.es-woo .wc-block-components-totals-item {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: var(--es-text-sm);
	font-weight: 500;
	color: var(--es-muted);
}
.es-woo .wc-block-components-totals-footer-item {
	align-items: baseline;
}
.es-woo .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.es-woo .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--es-font-heading);
	font-size: var(--es-text-lg);
	font-weight: 800;
	color: var(--es-forest);
}
.es-woo .wc-block-components-panel__button {
	font-size: var(--es-text-sm);
	font-weight: 600;
	color: var(--es-forest);
}
.es-woo .wc-block-cart__payment-options:empty { display: none; }
.es-woo .wc-block-cart__submit { margin-top: 1.15rem; }
.es-woo .wc-block-cart__submit-container { width: 100%; }
.es-woo .wc-block-cart__submit-button,
.es-woo .wc-block-components-checkout-place-order-button,
.es-woo .wc-block-cart__empty-cart__button,
.es-woo a.wc-block-components-button {
	display: flex !important;
	width: 100%;
	justify-content: center;
	background: var(--es-primary) !important;
	color: var(--es-white) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: var(--es-font-heading) !important;
	font-weight: 700 !important;
	font-size: var(--es-text-sm) !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	height: 48px;
	line-height: 48px !important;
	padding: 0 1.25rem !important;
	text-decoration: none !important;
}
.es-woo .wc-block-cart__submit-button:hover,
.es-woo a.wc-block-components-button:hover {
	background: var(--es-forest) !important;
}
.es-cart__trust {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	display: grid;
	gap: .4rem;
}
.es-cart__trust li {
	position: relative;
	padding-left: 1.05rem;
	font-size: var(--es-text-sm);
	font-weight: 500;
	line-height: 1.4;
	color: var(--es-muted);
}
.es-cart__trust li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: .4rem;
	height: .4rem;
	background: var(--es-primary);
}
.es-woo .wc-block-cart__empty-cart__title,
.es-woo .wc-block-cart .with-empty-cart-icon {
	font-family: var(--es-font-heading);
	font-weight: 800;
	color: var(--es-forest);
	letter-spacing: -.02em;
}
.es-woo .is-style-dots { opacity: .35; }

.es-woo table.shop_table { border-collapse: collapse; width: 100%; }
.es-woo table.shop_table th,
.es-woo table.shop_table td {
	border-bottom: 1px solid rgba(26, 31, 28, .1);
	padding: .85rem .5rem;
}
.es-woo .woocommerce-message,
.es-woo .woocommerce-info {
	border-top-color: var(--es-moss);
	background: var(--es-stone);
}

@media (max-width: 960px) {
	.es-nav-desktop { display: none; }
	.es-nav-toggle { display: inline-flex; justify-self: start; }
	.es-header__inner { grid-template-columns: auto 1fr auto; }
	.es-explore__grid { grid-template-columns: repeat(2, 1fr); }
	.es-styles__grid { grid-template-columns: repeat(2, 1fr); }
	.es-catalog__grid { grid-template-columns: repeat(2, 1fr); }
	.es-materials__layout {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}
	.es-materials__intro {
		max-width: 36rem;
	}
	.es-materials__card {
		flex-basis: calc((100% - 1.35rem) / 2);
	}
	.es-how__steps { grid-template-columns: 1fr; gap: 1.75rem; }
	.es-ugc__grid { grid-template-columns: repeat(3, 1fr); }
	.es-footer__trust-grid { grid-template-columns: 1fr; gap: .85rem; }
	.es-footer__trust-item {
		justify-content: flex-start;
		padding: .65rem 0;
	}
	.es-footer__trust-item + .es-footer__trust-item {
		border-left: 0;
		border-top: 1px solid rgba(255, 255, 255, .1);
		padding-top: .95rem;
	}
	.es-footer__grid,
	.es-woo ul.products { grid-template-columns: 1fr 1fr; }
	.es-contact__grid { grid-template-columns: 1fr; }
	.es-form__row { grid-template-columns: 1fr; }
	.es-blog__recent { grid-template-columns: 1fr; gap: 2rem; }
	.es-blog__grid { grid-template-columns: 1fr 1fr; }
	.es-blog-card--rail {
		grid-template-columns: 1fr;
		gap: .85rem;
	}
	.es-woo.single-product div.product { grid-template-columns: 1fr; gap: 1.75rem; }
	.es-footer__grid { grid-template-columns: 1fr 1fr; }
	.es-woo .wc-block-components-sidebar-layout.wc-block-cart {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}
	.es-woo .wc-block-cart__sidebar { position: static; }
	.es-woo .wc-block-cart-item__image img {
		width: 88px;
		height: 88px;
	}
	.es-woo .wc-block-cart-items__header-image,
	.es-woo .wc-block-cart-item__image { width: 6rem; }
}

@media (max-width: 640px) {
	.es-materials__card { flex-basis: 82%; }
	.es-hero__content { padding-bottom: 4.5rem; }
	.es-catalog__grid { grid-template-columns: repeat(2, 1fr); gap: 1.25rem .85rem; }
	.es-styles__grid,
	.es-footer__grid,
	.es-contact__grid,
	.es-woo ul.products,
	.es-woo .related ul.products { grid-template-columns: 1fr !important; }
	.es-blog__subscribe { flex-direction: column; }
	.es-blog__subscribe button { height: 44px; }
	.es-blog__grid { grid-template-columns: 1fr; }
	.es-article__media img { aspect-ratio: 4 / 3; }
	.es-mega { min-width: 0; }
	.es-cart__head { align-items: flex-start; }
	.es-woo .wc-block-cart-items__header { display: none; }
	.es-woo .wc-block-cart-item__total { text-align: left; padding-top: 0 !important; }
}
