/*
 * Wiggledoo theme styles.
 *
 * Design tokens (colours, type scale, spacing) match the store's previous
 * Shopify theme settings. 1rem = 10px (html font-size 62.5%).
 */

/* ---------------------------------------------------------------
   Fonts
--------------------------------------------------------------- */
@font-face {
	font-family: "Platypi";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/platypi-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Platypi";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/platypi-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------------------------------------------------------------
   Tokens and colour schemes
--------------------------------------------------------------- */
:root,
.color-scheme-1 {
	--color-background: 223, 223, 216;
	--color-foreground: 17, 21, 28;
	--color-button: 133, 88, 50;
	--color-button-text: 223, 223, 216;
	--color-secondary-button: 223, 223, 216;
	--color-secondary-button-text: 133, 88, 50;
	--color-link: 133, 88, 50;
	--color-badge-foreground: 17, 21, 28;
	--color-badge-background: 223, 223, 216;
	--color-badge-border: 17, 21, 28;
}
.color-scheme-2 {
	--color-background: 255, 255, 255;
	--color-foreground: 17, 21, 28;
	--color-button: 17, 21, 28;
	--color-button-text: 255, 255, 255;
	--color-secondary-button: 255, 255, 255;
	--color-secondary-button-text: 17, 21, 28;
	--color-link: 17, 21, 28;
	--color-badge-foreground: 17, 21, 28;
	--color-badge-background: 255, 255, 255;
	--color-badge-border: 17, 21, 28;
}
.color-scheme-3 {
	--color-background: 17, 21, 28;
	--color-foreground: 255, 255, 255;
	--color-button: 255, 255, 255;
	--color-button-text: 17, 21, 28;
	--color-secondary-button: 17, 21, 28;
	--color-secondary-button-text: 255, 255, 255;
	--color-link: 255, 255, 255;
	--color-badge-foreground: 255, 255, 255;
	--color-badge-background: 17, 21, 28;
	--color-badge-border: 255, 255, 255;
}
.color-scheme-4 {
	--color-background: 133, 88, 50;
	--color-foreground: 223, 223, 216;
	--color-button: 223, 223, 216;
	--color-button-text: 133, 88, 50;
	--color-secondary-button: 133, 88, 50;
	--color-secondary-button-text: 223, 223, 216;
	--color-link: 223, 223, 216;
	--color-badge-foreground: 223, 223, 216;
	--color-badge-background: 133, 88, 50;
	--color-badge-border: 223, 223, 216;
}
.color-scheme-5 {
	--color-background: 76, 103, 98;
	--color-foreground: 223, 223, 216;
	--color-button: 223, 223, 216;
	--color-button-text: 76, 103, 98;
	--color-secondary-button: 76, 103, 98;
	--color-secondary-button-text: 223, 223, 216;
	--color-link: 223, 223, 216;
	--color-badge-foreground: 223, 223, 216;
	--color-badge-background: 76, 103, 98;
	--color-badge-border: 223, 223, 216;
}

:root {
	--font-body-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--font-body-weight: 400;
	--font-body-weight-bold: 700;
	--font-heading-family: "Platypi", Georgia, serif;
	--font-heading-weight: 500;
	--font-body-scale: 1;
	--font-heading-scale: 1.15;

	--page-width: 120rem;
	--grid-desktop-vertical-spacing: 40px;
	--grid-desktop-horizontal-spacing: 40px;
	--grid-mobile-vertical-spacing: 20px;
	--grid-mobile-horizontal-spacing: 20px;
	--grid-vertical-spacing: var(--grid-mobile-vertical-spacing);
	--grid-horizontal-spacing: var(--grid-mobile-horizontal-spacing);

	--duration-short: 100ms;
	--duration-default: 200ms;
	--duration-long: 500ms;
	--duration-extra-long: 600ms;
	--ease-out-slow: cubic-bezier(0, 0, 0.3, 1);

	--header-height: 0px;
}

@media screen and (min-width: 750px) {
	:root {
		--grid-vertical-spacing: var(--grid-desktop-vertical-spacing);
		--grid-horizontal-spacing: var(--grid-desktop-horizontal-spacing);
	}
}

.color-scheme-1,
.color-scheme-2,
.color-scheme-3,
.color-scheme-4,
.color-scheme-5,
body {
	color: rgba(var(--color-foreground), 0.75);
	background-color: rgb(var(--color-background));
}

/* ---------------------------------------------------------------
   Base
--------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
	font-size: calc(var(--font-body-scale) * 62.5%);
	height: 100%;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	margin: 0;
	font-size: 1.5rem;
	letter-spacing: 0.06rem;
	line-height: calc(1 + 0.8 / var(--font-body-scale));
	font-family: var(--font-body-family);
	font-weight: var(--font-body-weight);
	-webkit-font-smoothing: antialiased;
	overflow-wrap: break-word;
}

@media screen and (min-width: 750px) {
	body {
		font-size: 1.6rem;
	}
}

body.overflow-hidden {
	overflow: hidden;
}

main {
	flex-grow: 1;
}

main:focus {
	outline: none;
}

img,
video,
svg {
	max-width: 100%;
}

img {
	height: auto;
}

a {
	color: inherit;
}

button {
	font: inherit;
	color: inherit;
}

p {
	margin: 0 0 1.5rem;
}

[hidden] {
	display: none !important;
}

.visually-hidden,
.screen-reader-text {
	position: absolute !important;
	overflow: hidden;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	clip: rect(0 0 0 0);
	word-wrap: normal !important;
}

.skip-to-content-link:focus {
	z-index: 9999;
	position: fixed;
	top: 1rem;
	left: 1rem;
	overflow: visible;
	width: auto;
	height: auto;
	clip: auto;
}

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

.center {
	text-align: center;
}

.right {
	text-align: right;
}

.light {
	opacity: 0.7;
}

.break {
	word-break: break-word;
}

.isolate {
	position: relative;
	z-index: 0;
}

.gradient {
	background: rgb(var(--color-background));
	background-attachment: fixed;
}

:focus-visible {
	outline: 0.2rem solid rgba(var(--color-foreground), 0.5);
	outline-offset: 0.3rem;
	box-shadow: 0 0 0 0.3rem rgb(var(--color-background)), 0 0 0.5rem 0.4rem rgba(var(--color-foreground), 0.3);
}

.focus-inset:focus-visible {
	outline: 0.2rem solid rgba(var(--color-foreground), 0.5);
	outline-offset: -0.2rem;
	box-shadow: 0 0 0.2rem 0 rgba(var(--color-foreground), 0.3);
}

@media screen and (max-width: 749px) {
	.small-hide {
		display: none !important;
	}
}

@media screen and (min-width: 750px) and (max-width: 989px) {
	.medium-hide {
		display: none !important;
	}
}

@media screen and (min-width: 990px) {
	.large-up-hide {
		display: none !important;
	}
}

/* Page width */
.page-width {
	max-width: var(--page-width);
	margin: 0 auto;
	padding: 0 1.5rem;
}

.page-width--narrow {
	max-width: 72.6rem;
}

@media screen and (min-width: 750px) {
	.page-width {
		padding: 0 5rem;
	}

	.page-width--narrow {
		padding: 0 9rem;
	}
}

@media screen and (min-width: 990px) {
	.page-width--narrow {
		max-width: 72.6rem;
		padding: 0;
	}
}

/* ---------------------------------------------------------------
   Typography
--------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
.h0,
.hxl,
.h1,
.h2,
.h3,
.h4,
.h5 {
	font-family: var(--font-heading-family);
	font-style: normal;
	font-weight: var(--font-heading-weight);
	letter-spacing: calc(var(--font-heading-scale) * 0.06rem);
	color: rgb(var(--color-foreground));
	line-height: calc(1 + 0.3 / max(1, var(--font-heading-scale)));
	word-break: break-word;
}

.hxl {
	font-size: calc(var(--font-heading-scale) * 5rem);
}

.h0 {
	font-size: calc(var(--font-heading-scale) * 4rem);
}

h1,
.h1 {
	font-size: calc(var(--font-heading-scale) * 3rem);
}

h2,
.h2 {
	font-size: calc(var(--font-heading-scale) * 2rem);
}

h3,
.h3 {
	font-size: calc(var(--font-heading-scale) * 1.7rem);
}

h4,
.h4 {
	font-size: calc(var(--font-heading-scale) * 1.5rem);
}

h5,
.h5 {
	font-size: calc(var(--font-heading-scale) * 1.2rem);
}

@media only screen and (min-width: 750px) {
	.hxl {
		font-size: calc(var(--font-heading-scale) * 6.2rem);
	}

	.h0 {
		font-size: calc(var(--font-heading-scale) * 5.2rem);
	}

	h1,
	.h1 {
		font-size: calc(var(--font-heading-scale) * 4rem);
	}

	h2,
	.h2 {
		font-size: calc(var(--font-heading-scale) * 2.4rem);
	}

	h3,
	.h3 {
		font-size: calc(var(--font-heading-scale) * 1.8rem);
	}

	h5,
	.h5 {
		font-size: calc(var(--font-heading-scale) * 1.3rem);
	}
}

.caption,
.caption-with-letter-spacing {
	font-size: 1rem;
	letter-spacing: 0.07rem;
	line-height: calc(1 + 0.7 / var(--font-body-scale));
}

.caption-with-letter-spacing {
	text-transform: uppercase;
	letter-spacing: 0.13rem;
}

@media screen and (min-width: 750px) {
	.caption {
		font-size: 1.2rem;
	}
}

.caption-large,
.field__input,
.form__label,
.select__select {
	font-size: 1.3rem;
	line-height: calc(1 + 0.5 / var(--font-body-scale));
	letter-spacing: 0.04rem;
}

.link,
.underlined-link {
	cursor: pointer;
	display: inline-block;
	border: none;
	box-shadow: none;
	text-decoration: underline;
	text-underline-offset: 0.3rem;
	color: rgb(var(--color-link));
	background-color: transparent;
	font-size: 1.4rem;
	font-family: inherit;
}

.link--text {
	color: rgb(var(--color-foreground));
}

.link--text:hover {
	color: rgba(var(--color-foreground), 0.75);
}

.underlined-link {
	color: rgba(var(--color-link), 0.75);
	text-underline-offset: 0.3rem;
	text-decoration-thickness: 0.1rem;
	transition: text-decoration-thickness var(--duration-short) ease;
}

.underlined-link:hover {
	color: rgb(var(--color-link));
	text-decoration-thickness: 0.2rem;
}

.full-unstyled-link {
	text-decoration: none;
	color: currentColor;
	display: block;
}

.rte {
	word-break: break-word;
}

.rte > p:last-child,
.rte > :last-child {
	margin-bottom: 0;
}

.rte p {
	margin: 0 0 1.5rem;
}

.rte ul,
.rte ol {
	list-style-position: inside;
	padding-left: 2rem;
	margin: 0 0 1.5rem;
}

.rte li {
	list-style: inherit;
}

.rte a {
	color: rgba(var(--color-link), 0.75);
	text-underline-offset: 0.3rem;
	text-decoration-thickness: 0.1rem;
	transition: text-decoration-thickness var(--duration-short) ease;
}

.rte a:hover {
	color: rgb(var(--color-link));
	text-decoration-thickness: 0.2rem;
}

.rte img {
	height: auto;
	max-width: 100%;
	border: 0;
}

.rte blockquote {
	display: inline-flex;
	margin: 0;
	padding-left: 1.5rem;
	border-left: 0.2rem solid rgba(var(--color-foreground), 0.2);
}

.rte table {
	table-layout: fixed;
	border-collapse: collapse;
}

.rte td,
.rte th {
	border: 0.1rem solid rgba(var(--color-foreground), 0.2);
	padding: 0.5rem 1rem;
}

.svg-wrapper {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 20px;
	height: 20px;
}

.svg-wrapper > svg {
	height: 100%;
	width: 100%;
}

.icon-arrow {
	width: 1.5rem;
}

/* ---------------------------------------------------------------
   Grid
--------------------------------------------------------------- */
.grid {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
	column-gap: var(--grid-horizontal-spacing);
	row-gap: var(--grid-vertical-spacing);
}

.grid__item {
	width: calc(25% - var(--grid-horizontal-spacing) * 3 / 4);
	max-width: calc(50% - var(--grid-horizontal-spacing) / 2);
	flex-grow: 1;
	flex-shrink: 0;
}

.grid--1-col .grid__item {
	max-width: 100%;
	width: 100%;
}

.grid--2-col-tablet-down .grid__item {
	width: calc(50% - var(--grid-horizontal-spacing) / 2);
}

@media screen and (max-width: 989px) {
	.grid--1-col-tablet-down .grid__item {
		width: 100%;
		max-width: 100%;
	}
}

@media screen and (min-width: 750px) {
	.grid--2-col-tablet .grid__item {
		width: calc(50% - var(--grid-horizontal-spacing) / 2);
	}
}

@media screen and (min-width: 990px) {
	.grid--2-col-desktop .grid__item {
		width: calc(50% - var(--grid-horizontal-spacing) / 2);
		max-width: calc(50% - var(--grid-horizontal-spacing) / 2);
	}

	.grid--3-col-desktop .grid__item {
		width: calc(33.33% - var(--grid-horizontal-spacing) * 2 / 3);
		max-width: calc(33.33% - var(--grid-horizontal-spacing) * 2 / 3);
	}

	.grid--4-col-desktop .grid__item {
		width: calc(25% - var(--grid-horizontal-spacing) * 3 / 4);
		max-width: calc(25% - var(--grid-horizontal-spacing) * 3 / 4);
	}
}

/* ---------------------------------------------------------------
   Media
--------------------------------------------------------------- */
.media {
	display: block;
	position: relative;
	overflow: hidden;
	background-color: rgba(var(--color-foreground), 0.04);
}

.media > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

/* ---------------------------------------------------------------
   Buttons
--------------------------------------------------------------- */
.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	--alpha-button-background: 1;
	--alpha-button-border: 1;
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-width: calc(12rem + 2px);
	min-height: calc(4.5rem + 2px);
	padding: 0 3rem;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	font: inherit;
	font-size: 1.5rem;
	letter-spacing: 0.1rem;
	line-height: calc(1 + 0.2 / var(--font-body-scale));
	text-decoration: none;
	color: rgb(var(--color-button-text));
	background-color: rgba(var(--color-button), var(--alpha-button-background));
	box-shadow: 0 0 0 1px rgba(var(--button-border, var(--color-button)), var(--alpha-button-border));
	transition: box-shadow var(--duration-short) ease;
	-webkit-appearance: none;
	appearance: none;
}

.button:not([disabled]):hover,
.woocommerce a.button:hover,
.woocommerce button.button:not([disabled]):hover {
	box-shadow: 0 0 0 2px rgba(var(--button-border, var(--color-button)), var(--alpha-button-border));
}

.button--secondary {
	--color-button: var(--color-secondary-button);
	--color-button-text: var(--color-secondary-button-text);
	--button-border: var(--color-secondary-button-text);
}

.button--tertiary {
	font-size: 1.2rem;
	padding: 1rem 1.5rem;
	min-width: calc(9rem + 2px);
	min-height: calc(3.5rem + 2px);
	--color-button: var(--color-background);
	--color-button-text: var(--color-foreground);
	--alpha-button-border: 0;
}

.button--full-width {
	display: flex;
	width: 100%;
}

.button:disabled,
.button[aria-disabled="true"],
.button.disabled,
.button.loading {
	cursor: not-allowed;
	opacity: 0.5;
}

.button.loading {
	color: transparent;
}

.product-form__buy-now {
	font-weight: 600;
}

.product-form__buy-now:disabled {
	opacity: 1;
}

.button .loading__spinner {
	position: absolute;
	width: 1.8rem;
	height: 1.8rem;
	border: 0.2rem solid rgba(var(--color-button-text), 0.3);
	border-top-color: rgb(var(--color-button-text));
	border-radius: 50%;
	animation: wiggledoo-spin 0.6s linear infinite;
}

.button--secondary .loading__spinner {
	border-color: rgba(var(--color-secondary-button-text), 0.3);
	border-top-color: rgb(var(--color-secondary-button-text));
}

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

/* ---------------------------------------------------------------
   Form fields
--------------------------------------------------------------- */
.field {
	position: relative;
	width: 100%;
	display: flex;
	transition: box-shadow var(--duration-short) ease;
}

.field::after {
	content: "";
	pointer-events: none;
	position: absolute;
	inset: 1px;
	box-shadow: 0 0 0 1px rgb(var(--color-foreground));
	transition: box-shadow var(--duration-short) ease;
	z-index: 1;
}

.field:hover::after {
	box-shadow: 0 0 0 2px rgb(var(--color-foreground));
}

.field__input,
.select__select,
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
	-webkit-appearance: none;
	appearance: none;
	background-color: rgb(var(--color-background));
	color: rgb(var(--color-foreground));
	font-family: var(--font-body-family);
	font-weight: var(--font-body-weight);
	font-size: 1.6rem;
	width: 100%;
	box-sizing: border-box;
	border-radius: 0;
	height: 4.5rem;
	min-height: calc(2px * 2);
	min-width: calc(7rem + 2px * 2);
	position: relative;
	border: 0;
}

.field__input {
	flex-grow: 1;
	text-align: left;
	padding: 1.5rem;
	margin: 1px;
}

.field__input:focus,
.select__select:focus {
	outline: none;
}

.field__input:focus-visible {
	box-shadow: 0 0 0 1px rgb(var(--color-foreground));
}

.field__label {
	font-size: 1.6rem;
	left: calc(1px + 2rem);
	top: calc(1rem + 1px);
	margin-bottom: 0;
	pointer-events: none;
	position: absolute;
	transition: top var(--duration-short) ease, font-size var(--duration-short) ease;
	color: rgba(var(--color-foreground), 0.75);
	letter-spacing: 0.1rem;
	line-height: 1.5;
}

.field__input::placeholder {
	opacity: 0;
}

.field__input:focus ~ .field__label,
.field__input:not(:placeholder-shown) ~ .field__label,
.field__input:-webkit-autofill ~ .field__label {
	font-size: 1rem;
	top: calc(1px + 0.5rem);
	left: calc(1px + 2rem);
	letter-spacing: 0.04rem;
}

.field__input:focus,
.field__input:not(:placeholder-shown),
.field__input:-webkit-autofill {
	padding: 2.2rem 1.5rem 0.8rem 2rem;
	margin: 1px;
}

.field__input:not(textarea) {
	padding-left: 2rem;
}

.field__input::-webkit-search-cancel-button {
	display: none;
}

.field__button {
	align-items: center;
	background-color: transparent;
	border: 0;
	color: currentColor;
	cursor: pointer;
	display: flex;
	height: 4.4rem;
	justify-content: center;
	overflow: hidden;
	padding: 0;
	position: absolute;
	right: 0;
	top: 0;
	width: 4.4rem;
	z-index: 2;
}

.field__button > .svg-wrapper {
	height: 2.5rem;
	width: 2.5rem;
}

.text-area {
	font-family: var(--font-body-family);
	font-style: normal;
	font-weight: var(--font-body-weight);
	min-height: 10rem;
	resize: none;
}

textarea.field__input {
	height: auto;
	padding: 1.5rem 2rem;
}

.field__input.text-area:focus,
.field__input.text-area:not(:placeholder-shown) {
	padding: 2.2rem 2rem 1rem;
}

.form__label {
	display: block;
	margin-bottom: 0.6rem;
}

.form__message {
	align-items: center;
	display: flex;
	font-size: 1.4rem;
	line-height: 1;
	margin-top: 1rem;
	font-family: var(--font-body-family);
	font-weight: var(--font-body-weight);
	letter-spacing: 0.04rem;
}

.form__message .svg-wrapper {
	flex-shrink: 0;
	height: 1.3rem;
	width: 1.3rem;
	margin-right: 0.5rem;
}

.form__message--success {
	color: rgb(var(--color-foreground));
}

/* ---------------------------------------------------------------
   Badges and prices
--------------------------------------------------------------- */
.badge {
	border: 1px solid transparent;
	border-radius: 0;
	display: inline-block;
	font-size: 1.2rem;
	letter-spacing: 0.1rem;
	line-height: 1;
	padding: 0.5rem 1.3rem 0.6rem;
	text-align: center;
	background-color: rgb(var(--color-badge-background));
	border-color: rgba(var(--color-badge-border), 0.1);
	color: rgb(var(--color-badge-foreground));
	word-break: break-word;
}

.price {
	font-size: 1.6rem;
	letter-spacing: 0.1rem;
	line-height: calc(1 + 0.5 / var(--font-body-scale));
	color: rgb(var(--color-foreground));
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.price > * {
	display: inline-block;
	vertical-align: top;
}

.price .price__container {
	margin: 0 1rem 0 0;
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
}

.price .badge {
	margin: 0 1rem 0 0;
}

.price del {
	color: rgba(var(--color-foreground), 0.75);
	font-size: 1.3rem;
	margin: 0 1rem 0 0;
	order: 0;
	text-decoration: line-through;
}

.price ins {
	text-decoration: none;
}

.price--large {
	font-size: 1.6rem;
	line-height: calc(1 + 0.5 / var(--font-body-scale));
	letter-spacing: 0.13rem;
}

@media screen and (min-width: 750px) {
	.price--large {
		font-size: 1.8rem;
	}

	.price--large del {
		font-size: 1.5rem;
	}
}

.woocommerce-Price-amount bdi {
	white-space: nowrap;
}

/* ---------------------------------------------------------------
   Announcement bar
--------------------------------------------------------------- */
.utility-bar {
	height: 100%;
}

.utility-bar--bottom-border {
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
}

.utility-bar__grid {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-areas: "announcements";
}

.announcement-bar {
	grid-area: announcements;
}

.announcement-bar__link {
	display: flex;
	width: 100%;
	text-decoration: none;
	height: 100%;
	justify-content: center;
	align-items: center;
}

.announcement-bar__message {
	text-align: center;
	padding: 1rem 0;
	margin: 0;
	letter-spacing: 0.1rem;
	min-height: 3.8rem;
}

/* ---------------------------------------------------------------
   Header
--------------------------------------------------------------- */
.section-header {
	position: sticky;
	top: 0;
	z-index: 3;
	transition: transform var(--duration-default) ease;
}

.admin-bar .section-header {
	top: var(--wp-admin--admin-bar--height, 0px);
}

@media screen and (max-width: 600px) {
	.admin-bar .section-header {
		top: 0;
	}
}

.section-header.is-hidden {
	transform: translateY(-100%);
}

.section-header.is-scrolled .header-wrapper {
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
}

.header-wrapper {
	display: block;
	position: relative;
	background-color: rgb(var(--color-background));
}

.header {
	display: grid;
	grid-template-areas: "left-icons heading icons";
	grid-template-columns: 1fr 2fr 1fr;
	align-items: center;
	padding: 18px 3rem 6px;
}

@media screen and (min-width: 990px) {
	.header {
		padding-top: 36px;
		padding-bottom: 12px;
		grid-template-columns: 1fr auto 1fr;
	}

	.header--top-center {
		grid-template-areas:
			"left-icons heading icons"
			"navigation navigation navigation";
		row-gap: 1.5rem;
	}
}

.header__heading {
	margin: 0;
	line-height: 0;
	grid-area: heading;
	justify-self: center;
	text-align: center;
	font-size: inherit;
}

.header__heading-link {
	display: inline-block;
	padding: 0.75rem;
	text-decoration: none;
	word-break: break-word;
}

.header__heading-link .h2 {
	line-height: 1;
	color: rgba(var(--color-foreground), 0.75);
}

.header__heading-link:hover .h2 {
	color: rgb(var(--color-foreground));
}

.header__heading-logo {
	height: auto;
	max-width: 100%;
	width: 200px;
}

.header__icons {
	display: flex;
	grid-area: icons;
	justify-self: end;
	padding-right: 0.8rem;
}

.header__icon,
.header__icon--cart {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 4.4rem;
	width: 4.4rem;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	text-decoration: none;
	color: rgb(var(--color-foreground));
}

.header__icon:hover .svg-wrapper {
	transform: scale(1.07);
}

.header__icon .svg-wrapper {
	transition: transform var(--duration-short) ease;
}

.header__icon--cart .svg-wrapper {
	width: 4.4rem;
	height: 4.4rem;
	margin: 0 -1.2rem;
}

.header__icon--account .svg-wrapper {
	width: 2rem;
	height: 2rem;
}

.header__search--left {
	grid-area: left-icons;
	justify-self: start;
	margin-left: -1.2rem;
}

.header--has-menu .header__search--left {
	display: none;
}

.header-drawer {
	grid-area: left-icons;
	justify-self: start;
	margin-left: -1.2rem;
}

@media screen and (min-width: 990px) {
	.header__search--left,
	.header-drawer {
		display: none;
	}
}

@media screen and (max-width: 989px) {
	.header__search--right {
		display: none;
	}
}

.cart-count-bubble {
	position: absolute;
	background-color: rgb(var(--color-button));
	color: rgb(var(--color-button-text));
	height: 1.7rem;
	width: 1.7rem;
	border-radius: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 0.9rem;
	bottom: 0.8rem;
	left: 2.2rem;
	line-height: calc(1 + 0.1 / var(--font-body-scale));
}

/* Inline menu, shown only when a Header menu is assigned. */
.header__inline-menu {
	grid-area: navigation;
	display: none;
	justify-self: center;
}

@media screen and (min-width: 990px) {
	.header__inline-menu {
		display: block;
	}
}

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

.list-menu--inline {
	display: inline-flex;
	flex-wrap: wrap;
}

.list-menu--inline a {
	display: flex;
	align-items: center;
	padding: 1.2rem;
	text-decoration: none;
	color: rgba(var(--color-foreground), 0.75);
	font-size: 1.4rem;
}

.list-menu--inline a:hover,
.list-menu--inline .current-menu-item > a {
	color: rgb(var(--color-foreground));
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}

.header__icon--menu .icon-close,
.header__icon--menu[aria-expanded="true"] .icon-hamburger {
	display: none;
}

.header__icon--menu[aria-expanded="true"] .icon-close {
	display: block;
}

.header__icon--menu .svg-wrapper:has(.icon-close) {
	display: none;
}

.header__icon--menu[aria-expanded="true"] .svg-wrapper:has(.icon-close) {
	display: inline-flex;
}

.header__icon--menu[aria-expanded="true"] .svg-wrapper:has(.icon-hamburger) {
	display: none;
}

.menu-drawer {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	height: calc(100vh - 100%);
	height: calc(100dvh - var(--header-bottom, 100%));
	border-top: 0.1rem solid rgba(var(--color-foreground), 0.08);
	padding: 2rem 0;
	overflow-y: auto;
	z-index: 4;
}

.menu-drawer__menu a {
	display: block;
	padding: 1.1rem 3rem;
	text-decoration: none;
	font-size: 1.8rem;
	color: rgb(var(--color-foreground));
}

.menu-drawer__menu .sub-menu {
	list-style: none;
	padding-left: 1.5rem;
}

.menu-drawer__account {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	padding: 1.2rem 3rem;
	text-decoration: none;
}

/* Account popover */
.header__account {
	display: flex;
}

@media screen and (min-width: 750px) {
	.header__account {
		position: relative;
	}
}

.account-popover {
	position: absolute;
	z-index: 6;
	top: calc(100% - 0.4rem);
	left: 1.5rem;
	right: 1.5rem;
	padding: 2rem;
	background: rgb(var(--color-background));
	border: 0.1rem solid rgba(var(--color-foreground), 0.08);
	box-shadow: 0 0.4rem 2.4rem rgba(var(--color-foreground), 0.12);
	color: rgba(var(--color-foreground), 0.75);
	text-align: left;
}

@media screen and (min-width: 750px) {
	.account-popover {
		top: calc(100% + 0.8rem);
		left: auto;
		right: -1.2rem;
		width: 36rem;
	}
}

.account-popover__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.6rem;
}

.account-popover__title {
	margin: 0;
	font-size: calc(var(--font-heading-scale) * 1.6rem);
}

.account-popover__close {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3.2rem;
	height: 3.2rem;
	padding: 0;
	border: 0;
	background: rgba(var(--color-foreground), 0.06);
	color: rgb(var(--color-foreground));
	cursor: pointer;
}

.account-popover__close:hover {
	background: rgba(var(--color-foreground), 0.1);
}

.account-popover__close .svg-wrapper {
	width: 1.2rem;
	height: 1.2rem;
}

.account-popover__message {
	margin: 0 0 1.6rem;
	line-height: 1.4;
	align-items: flex-start;
}

.account-popover__form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.account-popover__form .button {
	margin-top: 0.4rem;
}

.account-popover__lost {
	align-self: flex-start;
	font-size: 1.3rem;
}

.account-popover__hint {
	margin: 0;
	font-size: 1.3rem;
	line-height: 1.5;
}

.account-popover__form .field__button .svg-wrapper {
	width: 1.5rem;
	height: 1.5rem;
}

.account-popover__checkbox {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 1.4rem;
	color: rgb(var(--color-foreground));
	cursor: pointer;
}

.account-popover__checkbox input {
	width: 1.6rem;
	height: 1.6rem;
	margin: 0;
	accent-color: rgb(var(--color-button));
}

.account-popover .woocommerce-privacy-policy-text p {
	margin: 0;
	font-size: 1.2rem;
	line-height: 1.5;
}

.account-popover__divider {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	margin: 1.8rem 0;
	font-size: 1.2rem;
	letter-spacing: 0.1rem;
}

.account-popover__divider::before,
.account-popover__divider::after {
	content: "";
	flex: 1;
	border-top: 0.1rem solid rgba(var(--color-foreground), 0.15);
}

.account-popover__links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-top: 2rem;
}

.account-popover__link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	min-height: 4.6rem;
	padding: 0 1rem;
	border: 0.1rem solid rgba(var(--color-foreground), 0.2);
	color: rgb(var(--color-foreground));
	font-size: 1.4rem;
	text-decoration: none;
	transition: border-color var(--duration-short) ease;
}

.account-popover__link:hover {
	border-color: rgb(var(--color-foreground));
}

.account-popover__link .svg-wrapper {
	width: 1.8rem;
	height: 1.8rem;
}

.account-popover__logout {
	margin-top: 1.6rem;
	font-size: 1.3rem;
}

/* Search modal */
.search-modal {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	min-height: calc(100% + 0.1rem);
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
	display: flex;
	align-items: center;
	z-index: 5;
	background: rgb(var(--color-background));
}

.search-modal__content {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 0 5rem 0 1rem;
	position: relative;
}

@media screen and (min-width: 750px) {
	.search-modal__content {
		padding: 0 6rem;
	}
}

.search-modal__form {
	width: 100%;
	max-width: 74.2rem;
}

.search-modal__close-button {
	position: absolute;
	right: 0.3rem;
	width: 4.4rem;
	height: 4.4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: none;
	cursor: pointer;
}

@media screen and (min-width: 750px) {
	.search-modal__close-button {
		right: 1rem;
	}
}

.search-modal__close-button .svg-wrapper {
	width: 1.8rem;
	height: 1.8rem;
}

.search .field__button .svg-wrapper {
	width: 2rem;
	height: 2rem;
}

/* ---------------------------------------------------------------
   Scroll animations (disabled for reduced motion)
--------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.js .scroll-trigger.animate--fade-in,
	.js .scroll-trigger.animate--slide-in {
		opacity: 0.01;
	}

	.js .scroll-trigger.animate--slide-in {
		transform: translateY(2rem);
	}

	.js .scroll-trigger.animate--fade-in.is-visible {
		opacity: 1;
		animation: wiggledoo-fade-in var(--duration-extra-long) var(--ease-out-slow) forwards;
	}

	.js .scroll-trigger.animate--slide-in.is-visible {
		opacity: 1;
		transform: none;
		animation: wiggledoo-slide-in var(--duration-extra-long) var(--ease-out-slow) forwards;
		animation-delay: calc(var(--animation-order, 0) * 75ms);
	}

	@keyframes wiggledoo-fade-in {
		from {
			opacity: 0.01;
		}
		to {
			opacity: 1;
		}
	}

	@keyframes wiggledoo-slide-in {
		from {
			opacity: 0.01;
			transform: translateY(2rem);
		}
		to {
			opacity: 1;
			transform: translateY(0);
		}
	}
}

/* ---------------------------------------------------------------
   Rich text sections
--------------------------------------------------------------- */
.rich-text {
	z-index: 1;
}

.rich-text__wrapper {
	display: flex;
	justify-content: center;
	width: calc(100% - 4rem / var(--font-body-scale));
}

.rich-text:not(.rich-text--full-width) .rich-text__wrapper {
	margin: auto;
	width: calc(100% - 8rem / var(--font-body-scale));
}

.rich-text__blocks {
	width: 100%;
}

@media screen and (min-width: 750px) {
	.rich-text__wrapper {
		width: 100%;
	}

	.rich-text__wrapper--center {
		justify-content: center;
	}

	.rich-text__blocks {
		max-width: 50rem;
	}
}

@media screen and (min-width: 990px) {
	.rich-text__blocks {
		max-width: 78rem;
	}
}

.rich-text__blocks * {
	overflow-wrap: break-word;
}

.rich-text__blocks > * {
	margin-top: 0;
	margin-bottom: 0;
}

.rich-text__blocks > * + * {
	margin-top: 2rem;
}

.rich-text__text {
	color: rgba(var(--color-foreground), 0.75);
}

.rich-text__heading {
	color: rgb(var(--color-foreground));
}

.rich-text--home-heading {
	padding-top: 30px;
	padding-bottom: 45px;
}

.rich-text--reviews {
	padding-top: 30px;
	padding-bottom: 15px;
}

@media screen and (min-width: 750px) {
	.rich-text--home-heading {
		padding-top: 40px;
		padding-bottom: 60px;
	}

	.rich-text--reviews {
		padding-top: 40px;
		padding-bottom: 20px;
	}
}

/* ---------------------------------------------------------------
   Product layout (featured product and product page)
--------------------------------------------------------------- */
.featured-product__padding {
	padding-top: 24px;
	padding-bottom: 36px;
}

.main-product__padding {
	padding-top: 27px;
	padding-bottom: 9px;
}

@media screen and (min-width: 750px) {
	.featured-product__padding {
		padding-top: 32px;
		padding-bottom: 48px;
	}

	.main-product__padding {
		padding-top: 36px;
		padding-bottom: 12px;
	}
}

.product {
	margin: 0;
}

.product.grid {
	gap: 0;
}

.product__media-wrapper {
	padding-left: 0;
}

@media screen and (min-width: 750px) {
	.product__media-wrapper,
	.product__info-wrapper {
		width: 50%;
		max-width: 50%;
	}

	.product__info-wrapper {
		padding: 0 0 0 5rem;
	}
}

@media screen and (min-width: 990px) {
	.product--medium .product__media-wrapper {
		max-width: 55%;
		width: calc(55% - var(--grid-desktop-horizontal-spacing) / 2);
	}

	.product--medium .product__info-wrapper {
		max-width: 45%;
		width: calc(45% - var(--grid-desktop-horizontal-spacing) / 2);
		padding: 0 0 0 5rem;
	}

	.featured-product .product__info-wrapper {
		padding: 0 7rem;
	}
}

.product__info-wrapper {
	max-width: 100%;
}

.product__info-container {
	max-width: 60rem;
}

.product__info-container > * + * {
	margin: 1.5rem 0;
}

.product__info-container .product__description,
.product__info-container .product__text {
	margin: 2.5rem 0;
}

.product__info-container .product__text + .product__title {
	margin-top: 0;
}

@media screen and (max-width: 749px) {
	.product__info-wrapper {
		padding-top: 3rem;
	}
}

.product__title {
	word-break: break-word;
	margin-bottom: 1.5rem;
}

.product__title > * {
	margin: 0;
}

h2.product__title {
	margin: 0 0 1.5rem;
}

.product__text {
	margin-bottom: 1rem;
	color: rgba(var(--color-foreground), 0.75);
}

.product__info-container > .product__text:first-child {
	margin: 0 0 1rem;
}

.product__text.subtitle {
	font-size: 1.8rem;
	line-height: calc(1 + 0.8 / var(--font-body-scale));
	letter-spacing: 0.06rem;
	color: rgba(var(--color-foreground), 0.7);
}

.product__text.subtitle p {
	margin: 0;
}

.product__text strong,
.rte strong {
	color: rgba(var(--color-foreground), 0.9);
}

.product__description h2 {
	font-size: calc(var(--font-heading-scale) * 2rem);
}

.product__description h3 {
	font-size: calc(var(--font-heading-scale) * 1.7rem);
}

@media screen and (min-width: 750px) {
	.product__description h2 {
		font-size: calc(var(--font-heading-scale) * 2.4rem);
	}

	.product__description h3 {
		font-size: calc(var(--font-heading-scale) * 1.8rem);
	}
}

/* Media */
.product__media-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.product__media-item {
	position: relative;
}

.product-media-container {
	--aspect-ratio: var(--ratio);
	position: relative;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
}

.product-media-container .media {
	padding-top: calc(100% / var(--ratio));
	background: transparent;
}

.product-media-container .media > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

@media screen and (min-width: 750px) {
	.product-media-container.constrain-height {
		--viewport-offset: 400px;
		--constrained-min-height: 300px;
		--constrained-height: max(var(--constrained-min-height), calc(100vh - var(--viewport-offset)));
		margin-right: auto;
		margin-left: auto;
	}

	.product-media-container.constrain-height .media {
		padding-top: min(var(--constrained-height), calc(100% / var(--ratio)));
	}
}

.product__media-icon {
	position: absolute;
	left: 1.2rem;
	top: 1.2rem;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	color: rgb(var(--color-foreground));
	background-color: rgb(var(--color-background));
	border: 0.1rem solid rgba(var(--color-foreground), 0.1);
	transition: opacity var(--duration-short) linear;
	pointer-events: none;
}

.product__media-icon .svg-wrapper {
	width: 1.2rem;
	height: 1.4rem;
}

@media screen and (min-width: 750px) {
	.product__media-icon {
		opacity: 0;
	}

	.product-media-container:hover .product__media-icon {
		opacity: 1;
	}
}

.product__media-toggle {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	cursor: zoom-in;
	z-index: 1;
}

/* Product form */
.product-form-wrapper {
	margin: 2.5rem 0;
}

.product-form {
	display: block;
}

.product-form__input {
	flex: 0 0 100%;
	padding: 0;
	margin: 0 0 1.2rem;
	min-width: fit-content;
	border: none;
}

.product-form__quantity {
	margin-bottom: 2.5rem;
}

.quantity__label {
	font-size: 1.3rem;
	color: rgba(var(--color-foreground), 0.75);
	letter-spacing: 0.04rem;
}

.quantity {
	color: rgba(var(--color-foreground));
	position: relative;
	width: calc(14rem / var(--font-body-scale) + 2px);
	display: flex;
	min-height: calc(4.5rem + 2px);
}

.quantity::after {
	pointer-events: none;
	content: "";
	position: absolute;
	inset: 1px;
	box-shadow: 0 0 0 1px rgb(var(--color-foreground));
	transition: box-shadow var(--duration-short) ease;
	z-index: 1;
}

.quantity:hover::after {
	box-shadow: 0 0 0 2px rgb(var(--color-foreground));
}

.quantity__input {
	color: currentColor;
	font-family: var(--font-body-family);
	font-size: 1.6rem;
	font-weight: 500;
	opacity: 0.85;
	text-align: center;
	background-color: transparent;
	border: 0;
	padding: 0 0.5rem;
	width: 100%;
	flex-grow: 1;
	-webkit-appearance: none;
	appearance: none;
	-moz-appearance: textfield;
}

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

.quantity__input:focus-visible {
	outline: none;
	box-shadow: none;
}

.quantity__button {
	width: calc(4.5rem / var(--font-body-scale));
	flex-shrink: 0;
	font-size: 1.8rem;
	border: 0;
	background-color: transparent;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgb(var(--color-foreground));
	padding: 0;
	z-index: 2;
}

.quantity__button .svg-wrapper {
	width: 1rem;
	pointer-events: none;
}

.quantity__button:disabled,
.quantity__input:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

.product-form__buttons {
	max-width: 44rem;
}

.product-form__submit {
	margin-bottom: 1rem;
}

.product-form__error-message-wrapper {
	display: flex;
	align-items: flex-start;
	font-size: 1.2rem;
	line-height: 1.5;
	margin-bottom: 1.5rem;
}

.product-form__error-message-wrapper[hidden] {
	display: none;
}

.product-form__error-message-wrapper .svg-wrapper {
	flex-shrink: 0;
	width: 1.3rem;
	height: 1.3rem;
	margin-right: 0.7rem;
	margin-top: 0.3rem;
}

/* Variations (variable products) */
.variations {
	border: 0;
	margin-bottom: 1.5rem;
}

.variations th,
.variations td {
	display: block;
	text-align: left;
	padding: 0;
}

.variations label {
	font-size: 1.4rem;
	color: rgba(var(--color-foreground), 0.75);
}

.variations select {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	max-width: 44rem;
	height: 4.5rem;
	padding: 0 4rem 0 1.5rem;
	margin: 0.6rem 0 1.5rem;
	border: 1px solid rgb(var(--color-foreground));
	border-radius: 0;
	background: rgb(var(--color-background)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath fill='%2311151c' d='M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708'/%3E%3C/svg%3E") no-repeat right 1.5rem center / 1rem;
	font: inherit;
	font-size: 1.5rem;
	color: rgb(var(--color-foreground));
}

.reset_variations {
	font-size: 1.3rem;
	color: rgb(var(--color-link));
}

.single_variation_wrap .woocommerce-variation {
	margin-bottom: 1.5rem;
}

/* Share and "View full details" */
.product__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	max-width: 44rem;
}

.product__actions .share-button {
	margin: 0;
}

.share-button {
	display: block;
	position: relative;
	margin: 2rem 0;
}

.share-button__button {
	font-size: 1.4rem;
	display: flex;
	gap: 1rem;
	align-items: center;
	color: rgb(var(--color-link));
	margin-left: 0;
	padding-left: 0;
	min-height: 4.4rem;
	text-decoration: none;
}

.share-button__button:hover {
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}

.share-button__button .svg-wrapper {
	width: 1.3rem;
	height: 1.3rem;
}

.share-button__fallback {
	display: flex;
	align-items: center;
	position: absolute;
	top: 3rem;
	left: 0.1rem;
	z-index: 3;
	width: 100%;
	min-width: max(30rem, 100%);
	background-color: rgb(var(--color-background));
	flex-wrap: wrap;
}

.share-button__fallback[hidden] {
	display: none;
}

.share-button__fallback .field {
	flex: 1;
}

.share-button__fallback .field__input {
	padding-right: 5rem;
	font-size: 1.4rem;
}

.share-button__copy .svg-wrapper {
	width: 1.4rem;
	height: 1.4rem;
}

.share-button__message {
	font-size: 1.2rem;
	flex-basis: 100%;
	padding: 0.5rem 0;
}

.share-button__message:empty {
	display: none;
}

.product__view-details {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	font-size: 1.4rem;
	text-decoration: none;
	color: rgb(var(--color-link));
}

.product__view-details:hover {
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}

.product__view-details .svg-wrapper {
	width: 1.5rem;
	height: 1rem;
	transition: transform var(--duration-short) ease;
}

.product__view-details:hover .svg-wrapper {
	transform: translateX(0.4rem);
}

/* ---------------------------------------------------------------
   Image banner
--------------------------------------------------------------- */
.banner {
	display: flex;
	position: relative;
	flex-direction: column;
	min-height: 28rem;
}

@media screen and (min-width: 750px) {
	.banner {
		flex-direction: row;
		min-height: 42rem;
	}
}

.banner__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	background: transparent;
}

.banner__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---------------------------------------------------------------
   Multicolumn (testimonials)
--------------------------------------------------------------- */
.multicolumn__padding {
	padding-top: 27px;
	padding-bottom: 27px;
}

@media screen and (min-width: 750px) {
	.multicolumn__padding {
		padding-top: 36px;
		padding-bottom: 36px;
	}
}

.multicolumn-list {
	margin: 0;
	padding: 0;
}

.multicolumn-list__item {
	list-style: none;
}

.multicolumn-card {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
}

.multicolumn-card__info {
	padding: 0;
}

.multicolumn-card__info > :nth-child(2) {
	margin-top: 1rem;
}

.multicolumn-card__info h3 {
	margin: 0;
}

.multicolumn-card__info .rte {
	font-size: 1.5rem;
}

@media screen and (min-width: 750px) {
	.multicolumn-card__info .rte {
		font-size: 1.6rem;
	}
}

/* ---------------------------------------------------------------
   Product cards and collection page
--------------------------------------------------------------- */
.collection-hero__padding {
	padding-top: 3rem;
	padding-bottom: 1.5rem;
}

@media screen and (min-width: 750px) {
	.collection-hero__padding {
		padding-top: 0;
		padding-bottom: 4rem;
	}
}

.collection-hero__title {
	margin: 1.5rem 0 2.5rem;
}

.collection-hero__description {
	max-width: 66.67%;
}

.product-grid-container {
	padding-top: 2.7rem;
	padding-bottom: 2.7rem;
}

@media screen and (min-width: 750px) {
	.product-grid-container {
		padding-top: 1.1rem;
		padding-bottom: 3.6rem;
	}
}

.product-grid {
	margin-bottom: 2rem;
}

.card-wrapper {
	color: inherit;
	height: 100%;
	position: relative;
	text-decoration: none;
}

.card {
	text-decoration: none;
	text-align: left;
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.card__inner {
	position: relative;
	width: 100%;
}

.card__media .media > img {
	height: auto;
	object-fit: cover;
	transition: transform var(--duration-long) ease;
}

.card-wrapper:hover .card__media .media > img {
	transform: scale(1.03);
}

.card__badge {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 1;
}

.card__badge .badge {
	background-color: rgb(var(--color-badge-background));
	border-color: rgba(var(--color-badge-border), 0.1);
	font-size: 1.2rem;
}

.card__content {
	padding: 1.3rem 0 1.7rem;
	width: 100%;
	flex-grow: 1;
}

.card__information {
	padding: 0;
}

.card__heading {
	margin: 0 0 0.3rem;
}

.card__heading a {
	position: static;
}

.card__heading a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.card-wrapper:hover .card__heading a {
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}

.card-information {
	margin-top: 0.7rem;
}

.card-information .price {
	font-size: 1.5rem;
	letter-spacing: 0.1rem;
}

@media screen and (min-width: 750px) {
	.card-information .price {
		font-size: 1.6rem;
	}
}

.woocommerce-pagination ul,
.nav-links {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	list-style: none;
	padding: 0;
	margin: 2rem 0 0;
}

.woocommerce-pagination a,
.woocommerce-pagination span,
.nav-links a,
.nav-links span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 4.4rem;
	height: 4.4rem;
	padding: 0 1rem;
	text-decoration: none;
	color: rgb(var(--color-foreground));
	font-size: 1.4rem;
}

.woocommerce-pagination .current,
.nav-links .current {
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}

/* Legacy WooCommerce loops (related products, shortcodes) */
ul.products {
	display: flex;
	flex-wrap: wrap;
	gap: var(--grid-vertical-spacing) var(--grid-horizontal-spacing);
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.products > li.grid__item {
	width: calc(50% - var(--grid-horizontal-spacing) / 2);
	max-width: calc(50% - var(--grid-horizontal-spacing) / 2);
}

@media screen and (min-width: 990px) {
	ul.products.columns-3 > li.grid__item {
		width: calc(33.33% - var(--grid-horizontal-spacing) * 2 / 3);
	}

	ul.products.columns-4 > li.grid__item {
		width: calc(25% - var(--grid-horizontal-spacing) * 3 / 4);
	}
}

/* ---------------------------------------------------------------
   Pages
--------------------------------------------------------------- */
.section-main-page {
	padding-top: 2.7rem;
	padding-bottom: 2.7rem;
}

@media screen and (min-width: 750px) {
	.section-main-page {
		padding-top: 2.1rem;
		padding-bottom: 3.6rem;
	}
}

.page-title {
	margin-top: 0;
}

.main-page-title {
	margin-bottom: 3rem;
}

@media screen and (min-width: 750px) {
	.main-page-title {
		margin-bottom: 4rem;
	}
}

.section-main-page .rte h2 {
	margin: 3rem 0 1.5rem;
}

/* Contact */
.section-contact-form {
	padding-top: 3.6rem;
	padding-bottom: 3.6rem;
}

.contact .field {
	margin-bottom: 1.5rem;
}

@media screen and (min-width: 750px) {
	.contact .field {
		margin-bottom: 2rem;
	}
}

.contact__button {
	margin-top: 3rem;
}

.contact textarea.field__input {
	height: 10rem;
}

@media screen and (min-width: 750px) {
	.contact__button {
		margin-top: 4rem;
	}

	.contact__fields {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		grid-column-gap: 2rem;
	}
}

.contact .form__message {
	margin: 0 0 2rem;
	font-size: 1.6rem;
}

/* Search results and 404 */
.template-search {
	padding-top: 3.6rem;
	padding-bottom: 3.6rem;
}

.template-search__header {
	margin-bottom: 3rem;
}

.template-search__search {
	max-width: 47.8rem;
	margin: 0 auto 3.5rem;
}

.template-404 {
	padding-top: 5.6rem;
	padding-bottom: 5.6rem;
}

@media screen and (min-width: 750px) {
	.template-404 {
		padding-top: 12rem;
		padding-bottom: 12rem;
	}
}

.template-404 h1 {
	margin: 1rem 0 3rem;
}

.article-card {
	margin-bottom: 4rem;
}

.article-card h2 {
	margin-bottom: 0.5rem;
}

/* ---------------------------------------------------------------
   Footer
--------------------------------------------------------------- */
.footer {
	border-top: 0.1rem solid rgba(var(--color-foreground), 0.08);
	padding-top: 36px;
	padding-bottom: 36px;
}

@media screen and (min-width: 750px) {
	.footer {
		padding-top: 48px;
		padding-bottom: 48px;
	}
}

.footer__content-top {
	padding-bottom: 5rem;
	display: block;
}

@media screen and (min-width: 750px) {
	.footer__content-top {
		padding-bottom: 3rem;
	}
}

.footer-block--newsletter {
	display: flex;
	align-items: flex-end;
	margin-top: 0;
	gap: 1rem;
	justify-content: center;
}

.footer-block__newsletter {
	text-align: center;
	flex-grow: 0;
	width: 100%;
}

.footer-block__heading {
	margin-bottom: 2rem;
	margin-top: 0;
	font-size: calc(var(--font-heading-scale) * 1.6rem);
}

@media screen and (min-width: 990px) {
	.footer-block__heading {
		font-size: calc(var(--font-heading-scale) * 1.8rem);
	}
}

.newsletter-form {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	position: relative;
	margin: 0 auto;
}

@media screen and (min-width: 750px) {
	.newsletter-form {
		max-width: 36rem;
	}
}

.newsletter-form__field-wrapper {
	width: 100%;
}

.newsletter-form__field-wrapper .field__input {
	padding-right: 5rem;
}

.newsletter-form__button {
	width: 4.4rem;
	margin: 0;
	right: 1px;
	top: 0;
	height: 100%;
	z-index: 2;
}

.newsletter-form__button .svg-wrapper {
	width: 1.5rem;
	height: 1.5rem;
	transition: transform var(--duration-short) ease;
}

.newsletter-form__button:hover .svg-wrapper {
	transform: translateX(0.2rem);
}

.newsletter-form .form__message {
	justify-content: center;
}

.footer__content-bottom {
	border-top: 0.1rem solid rgba(var(--color-foreground), 0.08);
	padding-top: 3rem;
}

.footer__content-bottom-wrapper {
	display: flex;
	width: 100%;
}

@media screen and (max-width: 749px) {
	.footer__content-bottom-wrapper {
		flex-wrap: wrap;
		row-gap: 1.5rem;
		column-gap: 1rem;
		justify-content: center;
	}
}

.footer__copyright {
	text-align: center;
	margin-top: 1.5rem;
	width: 100%;
}

@media screen and (min-width: 750px) {
	.footer__copyright {
		text-align: left;
	}
}

.copyright__content {
	font-size: 1.1rem;
}

.copyright__content a {
	color: currentColor;
	text-decoration: none;
}

.copyright__content a:hover,
.policies a:hover {
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}

.policies {
	display: inline;
	margin: 0;
	padding: 0;
	list-style: none;
}

.policies li {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-size: 1.1rem;
}

.policies li::before {
	content: "\00B7";
	padding: 0 0.8rem;
}

.policies a {
	color: currentColor;
	text-decoration: none;
	font-size: 1.1rem;
}

/* ---------------------------------------------------------------
   Cart drawer
--------------------------------------------------------------- */
.cart-drawer {
	position: fixed;
	z-index: 1000;
	inset: 0;
	width: 100vw;
	height: 100%;
	display: flex;
	justify-content: flex-end;
	background-color: rgba(var(--color-foreground), 0.5);
	transition: visibility var(--duration-default) ease;
	visibility: hidden;
}

.cart-drawer.is-open {
	visibility: visible;
}

.cart-drawer__overlay {
	position: fixed;
	inset: 0;
}

.drawer__inner-wrapper {
	position: relative;
	height: 100%;
	width: 42rem;
	max-width: calc(100vw - 3rem);
	border: 0.1rem solid rgba(var(--color-foreground), 0.2);
	border-right: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform var(--duration-default) ease;
}

.cart-drawer.is-open .drawer__inner-wrapper {
	transform: translateX(0);
}

.admin-bar .drawer__inner-wrapper {
	margin-top: var(--wp-admin--admin-bar--height, 0px);
	height: calc(100% - var(--wp-admin--admin-bar--height, 0px));
}

.drawer__inner {
	height: 100%;
	padding: 0 1.5rem;
	display: flex;
	flex-direction: column;
}

@media screen and (min-width: 750px) {
	.drawer__inner {
		padding: 0 3rem;
	}
}

.drawer__inner-empty {
	height: 100%;
	padding: 0 1.5rem;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.cart-drawer__warnings {
	display: flex;
	flex-direction: column;
	flex: 1;
	justify-content: center;
}

.cart-drawer__empty-content {
	text-align: center;
	margin-bottom: 4rem;
}

.cart-drawer__empty-content .drawer__close {
	position: absolute;
	top: 0.5rem;
	right: 0;
}

.cart__empty-text {
	margin: 4.5rem 0 2rem;
}

.cart-drawer .cart__empty-text {
	margin: 0 0 2rem;
}

.cart__login-title {
	margin: 5.5rem 0 0.5rem;
}

.cart__login-paragraph {
	margin-top: 0.8rem;
}

.cart__login-paragraph a {
	font-size: inherit;
}

.drawer__header {
	position: relative;
	padding: 1.5rem 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.drawer__heading {
	margin: 0 0 1rem;
}

.drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	min-width: 4.4rem;
	min-height: 4.4rem;
	box-shadow: 0 0 0 0.2rem rgba(var(--color-button), 0);
	position: absolute;
	top: 1rem;
	right: -1rem;
	color: rgb(var(--color-foreground));
	background-color: transparent;
	border: none;
	cursor: pointer;
}

.drawer__close .svg-wrapper {
	width: 1.8rem;
	height: 1.8rem;
}

.drawer__contents {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	min-height: 0;
}

.cart-items-header {
	display: flex;
	justify-content: space-between;
	padding-bottom: 1rem;
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
	opacity: 0.75;
}

.drawer__contents .cart-items {
	padding-top: 1.5rem;
}

.drawer__contents .cart-item {
	display: grid;
	grid-template-columns: 8rem minmax(0, 1fr) auto;
	grid-template-rows: auto auto;
	gap: 1rem 1.5rem;
	margin-bottom: 0;
	padding-bottom: 3rem;
}

.drawer__contents .cart-item:last-child {
	margin-bottom: 1rem;
}

.drawer__contents .cart-item__media {
	grid-row: 1 / 3;
	position: relative;
}

.cart-item__media img,
.cart-item__image {
	display: block;
	width: 100%;
	max-width: 10rem;
	height: auto;
}

.cart-item__link {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.cart-item__image-link {
	display: block;
}

.drawer__contents .cart-item__details {
	grid-column: 2;
	grid-row: 1;
}

.drawer__contents .cart-item__quantity {
	grid-column: 2 / 4;
	grid-row: 2;
}

.drawer__contents .cart-item__totals {
	grid-column: 3;
	grid-row: 1;
}

.cart-item__name {
	text-decoration: none;
	display: block;
	color: rgb(var(--color-foreground));
	margin-bottom: 0.5rem;
}

.cart-item__name:hover {
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}

.product-option {
	font-size: 1.4rem;
	line-height: calc(1 + 0.5 / var(--font-body-scale));
}

.cart-item__details .variation,
.cart-item__details dl {
	font-size: 1.4rem;
	margin: 0.5rem 0 0;
}

.cart-item__details dd {
	margin: 0;
}

.cart-item__quantity-wrapper {
	display: flex;
	align-items: center;
}

.cart-quantity {
	width: 12rem;
	min-height: 4.5rem;
}

.cart-remove-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 1rem;
	min-width: 4rem;
	min-height: 4rem;
	padding: 0;
	color: rgb(var(--color-foreground));
	background: none;
	border: 0;
	cursor: pointer;
	box-shadow: none;
}

.cart-remove-button .svg-wrapper {
	width: 1.5rem;
	height: 1.5rem;
}

.cart-remove-button:hover .svg-wrapper {
	transform: scale(1.1);
}

.cart-item__totals .price,
.cart-item__totals {
	font-size: 1.4rem;
	display: block;
}

.cart-item__error {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	font-size: 1.2rem;
	margin: 0 0 1rem;
}

.cart-item__error[hidden] {
	display: none;
}

.cart-drawer.is-loading .drawer__contents {
	opacity: 0.6;
	pointer-events: none;
}

.drawer__footer {
	border-top: 0.1rem solid rgba(var(--color-foreground), 0.2);
	padding: 1.5rem 0;
}

.cart-drawer__note summary {
	display: flex;
	align-items: center;
	cursor: pointer;
	list-style: none;
	padding: 0 0 1rem;
}

.cart-drawer__note summary::-webkit-details-marker {
	display: none;
}

.cart-drawer__note .summary__title {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 1.4rem;
	color: rgb(var(--color-foreground));
}

.cart-drawer__note .summary__title .svg-wrapper {
	width: 1rem;
	height: 1rem;
	transition: transform var(--duration-short) ease;
}

.cart-drawer__note[open] .summary__title .svg-wrapper {
	transform: rotate(180deg);
}

.cart-drawer__note .field {
	margin-bottom: 1.5rem;
}

.cart-drawer__note .text-area {
	min-height: 8rem;
}

.cart-drawer__footer {
	padding-top: 1.5rem;
}

.totals {
	display: flex;
	justify-content: center;
	align-items: flex-end;
}

.cart-drawer .totals {
	justify-content: space-between;
}

.totals > * {
	font-size: 1.6rem;
	margin: 0;
}

.totals > h2,
.totals > h3 {
	font-size: calc(var(--font-heading-scale) * 1.6rem);
}

.totals * {
	line-height: 1;
}

.totals > * + * {
	margin-left: 2rem;
}

.totals__total-value {
	font-size: 1.8rem;
}

.totals--discount {
	margin-bottom: 1rem;
}

.totals--discount > * {
	font-size: 1.4rem;
}

.tax-note {
	display: block;
	margin: 2.2rem 0 1.6rem auto;
	text-align: center;
	color: rgba(var(--color-foreground), 0.75);
}

.cart-drawer .tax-note {
	margin: 1.2rem 0 1rem auto;
	text-align: left;
}

.cart__ctas {
	display: flex;
	gap: 1rem;
}

.cart__checkout-button {
	flex-grow: 1;
	max-width: 36rem;
}

.cart-drawer .cart__checkout-button {
	max-width: none;
}

/* ---------------------------------------------------------------
   Cart page
--------------------------------------------------------------- */
.store-page {
	padding-top: 3.6rem;
	padding-bottom: 3.6rem;
}

.store-page--cart {
	padding-top: 2.5rem;
	padding-bottom: 4rem;
}

.title-wrapper-with-link {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1rem;
	margin: 3rem 0 2rem;
}

.title-wrapper-with-link .title {
	margin: 0;
}

.title--primary {
	margin: 4rem 0;
}

.cart__warnings {
	text-align: center;
	padding: 0 0 3rem;
}

.cart__warnings .cart__empty-text {
	margin: 3rem 0 3rem;
}

table.cart-items {
	border-spacing: 0;
	border-collapse: separate;
	box-shadow: none;
	width: 100%;
	display: table;
}

table.cart-items thead th {
	text-transform: uppercase;
	text-align: left;
	opacity: 0.85;
	font-weight: normal;
	padding-bottom: 1.8rem;
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
}

table.cart-items thead th.right {
	text-align: right;
}

table.cart-items td {
	padding-top: 4rem;
	vertical-align: top;
}

table.cart-items .cart-item__media {
	width: 10rem;
}

@media screen and (min-width: 750px) {
	table.cart-items .cart-item__media {
		width: 12rem;
	}
}

table.cart-items .cart-item__details {
	padding-left: 2rem;
	width: 35rem;
}

@media screen and (min-width: 750px) {
	table.cart-items .cart-item__details {
		padding-left: 4rem;
	}
}

table.cart-items .cart-item__quantity {
	padding-left: 4rem;
}

table.cart-items .cart-item__totals {
	text-align: right;
	padding-left: 2rem;
}

@media screen and (max-width: 749px) {
	table.cart-items,
	table.cart-items thead,
	table.cart-items tbody {
		display: block;
		width: 100%;
	}

	table.cart-items thead tr {
		display: flex;
		justify-content: space-between;
		border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.2);
		margin-bottom: 4rem;
	}

	table.cart-items thead th {
		border: 0;
	}

	table.cart-items .cart-item {
		display: grid;
		grid-template: repeat(2, auto) / repeat(4, 1fr);
		gap: 1.5rem;
		margin-bottom: 3.5rem;
	}

	table.cart-items td {
		padding: 0;
	}

	table.cart-items .cart-item__media {
		grid-row: 1 / 3;
		width: auto;
	}

	table.cart-items .cart-item__details {
		grid-column: 2 / 4;
		padding: 0;
		width: auto;
	}

	table.cart-items .cart-item__quantity {
		grid-column: 2 / 5;
		padding: 0;
	}

	table.cart-items .cart-item__totals {
		grid-column: 4 / 5;
		grid-row: 1;
		padding: 0;
	}
}

.cart__footer {
	padding: 4rem 0 0;
	border-top: 0.1rem solid rgba(var(--color-foreground), 0.08);
	margin-top: 4rem;
}

.cart__blocks {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}

@media screen and (min-width: 750px) {
	.cart__blocks {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
	}

	.cart__blocks .cart__note {
		max-width: 50%;
	}

	.cart__totals {
		width: 35rem;
		margin-left: auto;
	}

	.cart__totals .totals {
		justify-content: flex-end;
	}

	.cart__totals .tax-note {
		text-align: right;
		margin: 2.2rem 0 1.6rem auto;
	}

	.cart__totals .cart__ctas {
		justify-content: flex-end;
	}
}

.cart__totals {
	flex-shrink: 0;
}

.woocommerce .cart__totals .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
}

.cart__note {
	flex-direction: column;
	height: fit-content;
}

.cart__note label {
	display: flex;
	align-items: flex-end;
	position: absolute;
	line-height: 1;
	height: 1.8rem;
	top: -3rem;
	color: rgba(var(--color-foreground), 0.75);
	font-size: 1.4rem;
}

.cart__footer .cart__note {
	margin-top: 3rem;
}

.cart__note .text-area {
	resize: vertical;
}

/* ---------------------------------------------------------------
   Media lightbox
--------------------------------------------------------------- */
.media-modal {
	position: fixed;
	inset: 0;
	z-index: 1001;
	background: rgb(var(--color-background));
	display: flex;
	align-items: center;
	justify-content: center;
}

.media-modal[hidden] {
	display: none;
}

.media-modal__content {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 6rem 1.5rem;
	cursor: zoom-out;
}

.media-modal__content img {
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
}

.media-modal__toggle {
	position: fixed;
	top: 2rem;
	right: 2rem;
	z-index: 2;
	width: 4.4rem;
	height: 4.4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 0.1rem solid rgba(var(--color-foreground), 0.1);
	background: rgba(var(--color-background), 0.6);
	color: rgb(var(--color-foreground));
	cursor: pointer;
}

.media-modal__toggle .svg-wrapper {
	width: 1.6rem;
	height: 1.6rem;
}

/* ---------------------------------------------------------------
   WooCommerce notices, checkout and account
--------------------------------------------------------------- */
.woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	list-style: none;
	margin: 0 0 2rem;
	padding: 1.5rem 2rem;
	border: 0.1rem solid rgba(var(--color-foreground), 0.2);
	background: rgba(var(--color-foreground), 0.03);
	color: rgb(var(--color-foreground));
	font-size: 1.4rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.woocommerce-error {
	border-color: rgba(235, 0, 27, 0.4);
}

.woocommerce-error li {
	margin: 0;
}

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	min-height: 3.6rem;
	font-size: 1.3rem;
	padding: 0 1.5rem;
}

.woocommerce-info a:not(.button),
.woocommerce-message a:not(.button) {
	color: rgb(var(--color-link));
}

.woocommerce form .form-row {
	padding: 0;
	margin: 0 0 1.5rem;
}

.woocommerce form .form-row label {
	display: block;
	font-size: 1.4rem;
	color: rgba(var(--color-foreground), 0.75);
	margin-bottom: 0.6rem;
	line-height: 1.4;
}

.woocommerce form .form-row .required {
	color: inherit;
	text-decoration: none;
}

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce-checkout .select2-container .select2-selection--single {
	height: 4.5rem;
	padding: 0 1.5rem;
	border: 0.1rem solid rgb(var(--color-foreground));
	border-radius: 0;
	background: rgb(var(--color-background));
	font-size: 1.5rem;
	color: rgb(var(--color-foreground));
}

.woocommerce form .form-row textarea.input-text {
	height: auto;
	min-height: 10rem;
	padding: 1.2rem 1.5rem;
	resize: vertical;
}

.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus {
	outline: none;
	box-shadow: 0 0 0 1px rgb(var(--color-foreground));
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
	line-height: 4.3rem;
	padding: 0;
	color: rgb(var(--color-foreground));
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
	height: 4.3rem;
}

.select2-dropdown {
	border-radius: 0 !important;
	border-color: rgb(var(--color-foreground)) !important;
	background: rgb(var(--color-background)) !important;
}

.select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: rgb(var(--color-button)) !important;
	color: rgb(var(--color-button-text)) !important;
}

.woocommerce form .form-row.woocommerce-invalid .input-text,
.woocommerce form .form-row.woocommerce-invalid select {
	border-color: #eb001b;
}

.woocommerce-checkout h3,
.woocommerce-account h2,
#order_review_heading {
	font-size: calc(var(--font-heading-scale) * 2rem);
	margin: 0 0 2rem;
}

.woocommerce-checkout #customer_details {
	margin-bottom: 3rem;
}

.woocommerce table.shop_table:not(.cart-items),
.woocommerce-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 3rem;
	font-size: 1.5rem;
}

.woocommerce table.shop_table:not(.cart-items) th,
.woocommerce table.shop_table:not(.cart-items) td,
.woocommerce-table th,
.woocommerce-table td {
	padding: 1.2rem 0;
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
	text-align: left;
	vertical-align: top;
}

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

.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
	font-size: 1.8rem;
	color: rgb(var(--color-foreground));
	border-bottom: 0;
}

.woocommerce-checkout #payment {
	background: rgba(var(--color-foreground), 0.04);
	border: 0.1rem solid rgba(var(--color-foreground), 0.1);
	padding: 2rem;
}

.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
}

.woocommerce-checkout #payment ul.payment_methods li {
	padding: 1rem 0;
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
}

.woocommerce-checkout #payment div.payment_box {
	font-size: 1.4rem;
	padding: 1rem 0 0;
}

.woocommerce-checkout #payment .place-order .button,
#place_order {
	width: 100%;
	margin-top: 1.5rem;
}

.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
	justify-content: flex-start;
}

.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 2rem;
}

.checkout_coupon p:first-child:not(.form-row) {
	width: 100%;
}

.woocommerce-privacy-policy-text {
	font-size: 1.3rem;
}

@media screen and (min-width: 990px) {
	.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		column-gap: 6rem;
		align-items: start;
	}

	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup {
		grid-column: 1 / -1;
	}

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

	.woocommerce-checkout #customer_details .col-1,
	.woocommerce-checkout #customer_details .col-2 {
		float: none;
		width: 100%;
	}

	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review {
		grid-column: 2;
	}
}

/* My account */
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 3rem;
	padding: 0;
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.8rem 0;
	text-decoration: none;
	color: rgba(var(--color-foreground), 0.75);
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
	color: rgb(var(--color-foreground));
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}

.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword {
	max-width: 50rem;
}

.woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin: 1rem 0 2rem;
	font-size: 1.4rem;
}

.woocommerce-LostPassword a {
	color: rgb(var(--color-link));
	font-size: 1.4rem;
}

.woocommerce-account .u-columns .u-column1,
.woocommerce-account .u-columns .u-column2 {
	margin-bottom: 4rem;
}

.store-page--account .main-page-title,
.store-page--checkout .main-page-title {
	font-size: calc(var(--font-heading-scale) * 3rem);
}

@media screen and (min-width: 750px) {
	.store-page--account .main-page-title,
	.store-page--checkout .main-page-title {
		font-size: calc(var(--font-heading-scale) * 4rem);
	}
}

.woocommerce-password-strength {
	font-size: 1.3rem;
	margin-top: 0.5rem;
}

.woocommerce .blockUI.blockOverlay {
	background: rgba(var(--color-background), 0.6) !important;
}

/* ---------------------------------------------------------------
   Block editor content
--------------------------------------------------------------- */

/* Palette colours carry their colour scheme, so text and buttons inside a
   coloured Group stay readable. */
.has-sand-background-color {
	--color-background: 223, 223, 216;
	--color-foreground: 17, 21, 28;
	--color-button: 133, 88, 50;
	--color-button-text: 223, 223, 216;
	--color-link: 133, 88, 50;
}

.has-ink-background-color {
	--color-background: 17, 21, 28;
	--color-foreground: 255, 255, 255;
	--color-button: 255, 255, 255;
	--color-button-text: 17, 21, 28;
	--color-secondary-button: 17, 21, 28;
	--color-secondary-button-text: 255, 255, 255;
	--color-link: 255, 255, 255;
}

.has-cocoa-background-color {
	--color-background: 133, 88, 50;
	--color-foreground: 223, 223, 216;
	--color-button: 223, 223, 216;
	--color-button-text: 133, 88, 50;
	--color-secondary-button: 133, 88, 50;
	--color-secondary-button-text: 223, 223, 216;
	--color-link: 223, 223, 216;
}

.has-sage-background-color {
	--color-background: 76, 103, 98;
	--color-foreground: 223, 223, 216;
	--color-button: 223, 223, 216;
	--color-button-text: 76, 103, 98;
	--color-secondary-button: 76, 103, 98;
	--color-secondary-button-text: 223, 223, 216;
	--color-link: 223, 223, 216;
}

.has-white-background-color {
	--color-background: 255, 255, 255;
	--color-foreground: 17, 21, 28;
	--color-button: 17, 21, 28;
	--color-button-text: 255, 255, 255;
	--color-secondary-button: 255, 255, 255;
	--color-secondary-button-text: 17, 21, 28;
	--color-link: 17, 21, 28;
}

.has-background:where(.has-sand-background-color, .has-ink-background-color, .has-cocoa-background-color, .has-sage-background-color, .has-white-background-color) {
	color: rgba(var(--color-foreground), 0.75);
}

/* Homepage and other full-width block content. Sections sit edge to edge,
   as they did on the Shopify homepage. */
.page-blocks > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

.page-blocks > :not(.alignfull) {
	max-width: var(--page-width);
	margin-inline: auto;
	padding-inline: 1.5rem;
}

@media screen and (min-width: 750px) {
	.page-blocks > :not(.alignfull) {
		padding-inline: 5rem;
	}
}

.page-blocks > p:not(.alignfull),
.page-blocks > .wp-block-heading:not(.alignfull),
.page-blocks > ul,
.page-blocks > ol {
	margin-block: 2rem;
}

.entry-content .wp-block-button__link {
	border-radius: 0;
	background-color: rgb(var(--color-button));
	color: rgb(var(--color-button-text));
	font-size: 1.5rem;
	letter-spacing: 0.1rem;
	padding: 1.3rem 3rem;
}

.entry-content .is-style-outline .wp-block-button__link {
	background: transparent;
	color: rgb(var(--color-link));
	border: 1px solid currentColor;
}

/* Group style: Section spacing */
.wp-block-group.is-style-section {
	padding: 30px 1.5rem 45px;
}

@media screen and (min-width: 750px) {
	.wp-block-group.is-style-section {
		padding: 40px 5rem 60px;
	}
}

/* Heading styles */
.wp-block-heading.is-style-display,
.wp-block-heading.is-style-large {
	color: rgb(var(--color-foreground));
	overflow-wrap: break-word;
}

.wp-block-heading.is-style-display {
	font-size: calc(var(--font-heading-scale) * 5rem);
	max-width: 78rem;
}

.wp-block-heading.is-style-large {
	font-size: calc(var(--font-heading-scale) * 4rem);
}

.wp-block-heading.is-style-display.has-text-align-center,
.wp-block-heading.is-style-large.has-text-align-center {
	margin-inline: auto;
}

@media screen and (min-width: 750px) {
	.wp-block-heading.is-style-display {
		font-size: calc(var(--font-heading-scale) * 6.2rem);
	}

	.wp-block-heading.is-style-large {
		font-size: calc(var(--font-heading-scale) * 5.2rem);
	}
}

.wp-block-group.is-style-section > .wp-block-heading:first-child {
	margin-top: 0;
}

/* Testimonials section */
.wiggledoo-testimonials.is-style-section {
	padding-top: 30px;
	padding-bottom: 27px;
}

@media screen and (min-width: 750px) {
	.wiggledoo-testimonials.is-style-section {
		padding-top: 40px;
		padding-bottom: 36px;
	}
}

.wiggledoo-testimonials > p:first-child {
	margin: 0;
}

.wiggledoo-testimonials > .wp-block-heading {
	margin-top: 2rem;
	margin-bottom: 0;
}

.wiggledoo-testimonials > .wp-block-columns {
	margin-top: 4.7rem;
	gap: 2rem 4rem;
}

@media screen and (min-width: 750px) {
	.wiggledoo-testimonials > .wp-block-columns {
		margin-top: 5.6rem;
	}
}

.wiggledoo-testimonials .wp-block-column > h3 {
	margin: 0;
}

.wiggledoo-testimonials .wp-block-column > p {
	margin: 1rem 0 0;
}

/* Image banner (Cover block) */
.wp-block-cover.wiggledoo-banner {
	padding: 0;
}

@media screen and (max-width: 749px) {
	.wp-block-cover.wiggledoo-banner {
		min-height: 28rem !important;
	}
}

.wp-block-cover .wp-block-cover__inner-container {
	color: inherit;
}

/* Theme block notices (shown only in the editor) */
.wiggledoo-block-notice {
	padding: 2rem;
	border: 1px dashed rgba(var(--color-foreground), 0.3);
	text-align: center;
	font-size: 1.4rem;
}

/* Featured product: image on the right */
@media screen and (min-width: 750px) {
	.product--right .product__media-wrapper {
		order: 2;
	}

	.product--right:not(.featured-product) .product__info-wrapper {
		padding: 0 5rem 0 0;
	}
}

/* Product attributes table */
.product__attributes table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.4rem;
}

.product__attributes th,
.product__attributes td {
	padding: 0.8rem 0;
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
	text-align: left;
	vertical-align: top;
}

.product__attributes th {
	width: 40%;
	font-weight: 600;
	color: rgb(var(--color-foreground));
}

.product__attributes td p {
	margin: 0;
}

/* Product grid block */
.product-grid-block {
	padding-top: 2.7rem;
	padding-bottom: 2.7rem;
}

@media screen and (min-width: 750px) {
	.product-grid-block {
		padding-top: 3.6rem;
		padding-bottom: 3.6rem;
	}
}

.product-grid-block .product-grid {
	margin-bottom: 0;
}

@media screen and (min-width: 990px) {
	.grid--1-col-desktop .grid__item {
		width: 100%;
		max-width: 100%;
	}
}

@media screen and (max-width: 989px) {
	.grid--2-col-tablet-down .grid__item {
		max-width: calc(50% - var(--grid-horizontal-spacing) / 2);
	}
}

.card__media--square .media,
.card__media--portrait .media {
	aspect-ratio: 1 / 1;
}

.card__media--portrait .media {
	aspect-ratio: 4 / 5;
}

.card__media--square .media > img,
.card__media--portrait .media > img {
	position: absolute;
	inset: 0;
	height: 100%;
	object-fit: cover;
}

.card__button {
	position: relative;
	z-index: 2;
	margin-top: 1.2rem;
}

.card__button .button {
	min-height: 4rem;
	font-size: 1.4rem;
}

/* Contact form directly under the page title keeps the original spacing. */
.entry-content > .wp-block-wiggledoo-contact-form:first-child {
	padding-top: 7.2rem;
}

/* Full-width images (Image block set to full width) show uncropped. */
.entry-content .wp-block-image {
	margin: 0;
}

.entry-content .wp-block-image.alignfull img {
	display: block;
	width: 100%;
	height: auto;
}

/* Announcement bar: close button and dismissed state */
.announcement-dismissed .utility-bar {
	display: none;
}

.utility-bar--dismissible .utility-bar__grid {
	position: relative;
	padding-right: 4.4rem;
	padding-left: 4.4rem;
}

.announcement-bar__close {
	position: absolute;
	top: 50%;
	right: 0.8rem;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.6rem;
	height: 3.6rem;
	padding: 0;
	border: 0;
	background: none;
	color: rgb(var(--color-foreground));
	cursor: pointer;
	opacity: 0.8;
}

.announcement-bar__close:hover {
	opacity: 1;
}

.announcement-bar__close .svg-wrapper {
	width: 1.2rem;
	height: 1.2rem;
}

@media screen and (min-width: 750px) {
	.announcement-bar__close {
		right: 3rem;
	}
}
