/* She Said Flowers — reproduction of the Shopify Dawn theme settings used by the source store.
   Measured values: page width 120rem (content 110rem), body "Klee One" 1.6rem / 1.8 / .06rem,
   headings Assistant 400, scheme-1 #fff/#121212, scheme-2 #ADCAB8 (accent buttons #800020),
   square corners, 3px button borders, 8px grid gaps (4px mobile). */

@font-face {
	font-family: "Klee One";
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	src: url("../fonts/klee-one-400.woff2") format("woff2");
}
@font-face {
	font-family: Assistant;
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	src: url("../fonts/assistant-400.woff2") format("woff2");
}

:root {
	--font-body-family: "Klee One", cursive;
	--font-heading-family: Assistant, sans-serif;
	--color-foreground: 18, 18, 18;
	--color-background: 255, 255, 255;
	--color-sage: #adcab8;
	--color-burgundy: #800020;
	--page-width: 120rem;
	--grid-h: 0.4rem;
	--grid-v: 0.4rem;
	--buttons-border-width: 3px;
	--header-bottom: 0px;
}
@media screen and (min-width: 750px) {
	:root { --grid-h: 0.8rem; --grid-v: 0.8rem; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: inherit; }
html { box-sizing: border-box; font-size: 62.5%; height: 100%; }
body {
	margin: 0;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	font-family: var(--font-body-family);
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: 0.06rem;
	line-height: 1.8;
	color: rgba(var(--color-foreground), 0.75);
	background: rgb(var(--color-background));
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
}
@media screen and (min-width: 750px) { body { font-size: 1.6rem; } }
main { flex: 1 0 auto; display: block; }
img { max-width: 100%; height: auto; }
button { font-family: inherit; }
a { color: rgb(var(--color-foreground)); }
a:empty, ul:empty, dl:empty, section:empty, article:empty, p:empty, h1:empty, h2:empty, h3:empty, h4:empty, h5:empty, h6:empty { display: none; }
[hidden] { display: none !important; }
summary { cursor: pointer; list-style: none; position: relative; }
summary::-webkit-details-marker { display: none; }
:focus-visible { outline: 0.2rem solid rgba(var(--color-foreground), 0.5); outline-offset: 0.3rem; box-shadow: 0 0 0 0.3rem #fff, 0 0 0.5rem 0.4rem rgba(var(--color-foreground), 0.3); }
.focus-inset:focus-visible { outline-offset: -0.2rem; box-shadow: 0 0 0.2rem 0 rgba(var(--color-foreground), 0.3); }

.visually-hidden { 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 !important; overflow: auto; width: auto; height: auto; clip: auto; top: 1rem; left: 1rem; }
.list-unstyled { margin: 0; padding: 0; list-style: none; }
.center { text-align: center; }
.light { opacity: 0.7; }
@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; } }
@media screen and (min-width: 750px) { .small-hide-up { display: none !important; } }

.page-width { max-width: var(--page-width); margin: 0 auto; padding: 0 1.5rem; }
@media screen and (min-width: 750px) { .page-width { padding: 0 5rem; } }
@media screen and (min-width: 990px) { .page-width--narrow { max-width: 72.6rem; padding: 0; } }
.section-padding { padding-top: 2.7rem; padding-bottom: 2.7rem; }
@media screen and (min-width: 750px) { .section-padding { padding-top: 3.6rem; padding-bottom: 3.6rem; } }

/* Typography */
h1, h2, h3, h4, h5, .h0, .h1, .h2, .h3, .h4, .h5 {
	font-family: var(--font-heading-family);
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.06rem;
	color: rgb(var(--color-foreground));
	line-height: 1.3;
	word-break: break-word;
}
.h0 { font-size: 4rem; }
h1, .h1 { font-size: 3rem; }
h2, .h2 { font-size: 2rem; }
h3, .h3 { font-size: 1.7rem; }
h4, .h4 { font-size: 1.5rem; }
h5, .h5 { font-size: 1.2rem; }
h6 { font-size: 1.1rem; }
@media only screen and (min-width: 750px) {
	.h0 { font-size: 5.2rem; }
	h1, .h1 { font-size: 4rem; }
	h2, .h2 { font-size: 2.4rem; }
	h3, .h3 { font-size: 1.8rem; }
	h5, .h5 { font-size: 1.3rem; }
}
.caption { font-size: 1rem; letter-spacing: 0.07rem; line-height: 1.7; }
@media screen and (min-width: 750px) { .caption { font-size: 1.2rem; } }
.caption-with-letter-spacing { font-size: 1rem; letter-spacing: 0.13rem; line-height: 1.2; text-transform: uppercase; }
.caption-large, .field__input, .form__label, .select__select { font-size: 1.3rem; line-height: 1.5; letter-spacing: 0.04rem; }
.color-foreground { color: rgb(var(--color-foreground)); }
.text-body { font-size: 1.5rem; letter-spacing: 0.06rem; line-height: 1.8; font-family: var(--font-body-family); }

.link, .customer a { cursor: pointer; display: inline-block; border: none; box-shadow: none; text-decoration: underline; text-underline-offset: 0.3rem; color: rgb(var(--color-foreground)); 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-foreground), 0.85); text-underline-offset: 0.3rem; text-decoration-thickness: 0.1rem; transition: text-decoration-thickness 0.1s ease; }
.underlined-link:hover { color: rgb(var(--color-foreground)); text-decoration-thickness: 0.2rem; }
.full-unstyled-link { text-decoration: none; color: currentColor; display: block; }
.title, .title-wrapper-with-link { margin: 0 0 3rem; }
.title--primary { margin: 4rem 0; }
.title-wrapper--no-top-margin > .title { margin-top: 0; }

/* Rich text */
.rte > p:first-child { margin-top: 0; }
.rte > p:last-child { margin-bottom: 0; }
.rte table { table-layout: fixed; }
.rte img { height: auto; max-width: 100%; border: 0; }
.rte ul, .rte ol { list-style-position: inside; padding-left: 2rem; }
.rte li { list-style: inherit; }
.rte li:last-child { margin-bottom: 0; }
.rte a { color: rgba(var(--color-foreground), 0.75); text-underline-offset: 0.3rem; text-decoration-thickness: 0.1rem; transition: text-decoration-thickness 0.1s ease; }
.rte a:hover { color: rgb(var(--color-foreground)); text-decoration-thickness: 0.2rem; }
.rte blockquote { display: inline-flex; }
.rte blockquote > * { margin: -0.5rem 0; }
.rte strong, .rte b { color: rgb(var(--color-foreground)); }

/* Buttons */
.button, .shopify-challenge__button, .customer button {
	--border-width: var(--buttons-border-width);
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	border: 0;
	border-radius: 0;
	padding: 0 3rem;
	font: inherit;
	font-size: 1.5rem;
	letter-spacing: 0.1rem;
	line-height: 1.2;
	text-decoration: none;
	color: #fff;
	background-color: rgb(var(--color-foreground));
	min-width: 12rem;
	min-height: calc(4.5rem + var(--buttons-border-width) * 2);
	position: relative;
	box-shadow: 0 0 0 var(--buttons-border-width) rgb(var(--color-foreground)) inset;
	transition: box-shadow 0.1s ease;
	-webkit-appearance: none;
	appearance: none;
}
.button:hover { box-shadow: 0 0 0 calc(var(--buttons-border-width) + 1.3px) rgb(var(--color-foreground)) inset, 0 0 0 0.1rem rgb(var(--color-foreground)); }
.button--secondary { color: rgb(var(--color-foreground)); background-color: #fff; }
.button--full-width { display: flex; width: 100%; }
.button:disabled, .button[aria-disabled="true"], .button.disabled { cursor: not-allowed; opacity: 0.5; }
.button-label { font-size: 1.5rem; letter-spacing: 0.1rem; line-height: 1.2; }

/* Form fields */
.field { position: relative; width: 100%; display: flex; transition: box-shadow 0.1s ease; }
.field::before, .select::before { pointer-events: none; content: ""; position: absolute; inset: 0; }
.field::after, .select::after { pointer-events: none; content: ""; position: absolute; inset: 0; box-shadow: 0 0 0 1px rgba(var(--color-foreground), 0.55); transition: box-shadow 0.1s ease; z-index: 1; }
.field:hover::after { box-shadow: 0 0 0 2px rgba(var(--color-foreground), 0.55); }
.field__input, .select__select, .customer .field input {
	flex-grow: 1;
	-webkit-appearance: none;
	appearance: none;
	background-color: #fff;
	color: rgb(var(--color-foreground));
	font-family: var(--font-body-family);
	font-size: 1.6rem;
	width: 100%;
	box-shadow: 0 0 0 0 transparent;
	box-sizing: border-box;
	transition: box-shadow 0.1s ease;
	border-radius: 0;
	height: 4.5rem;
	min-height: 4.5rem;
	min-width: calc(7rem + 2px);
	position: relative;
	border: 0;
	padding: 0 2rem;
	margin: 1px;
	letter-spacing: 0.04rem;
}
.field__input:focus { outline: none; box-shadow: 0 0 0 1px rgba(var(--color-foreground), 0.55); }
.field__input::placeholder { opacity: 0; }
.field__label {
	font-size: 1.6rem;
	left: 2.1rem;
	top: 1.1rem;
	margin-bottom: 0;
	pointer-events: none;
	position: absolute;
	transition: top 0.1s ease, font-size 0.1s ease;
	color: rgba(var(--color-foreground), 0.75);
	letter-spacing: 0.1rem;
	line-height: 1.5;
	z-index: 1;
}
.field__input:focus ~ .field__label,
.field__input:not(:placeholder-shown) ~ .field__label { font-size: 1rem; top: 0.3em; letter-spacing: 0.04rem; }
.field__input:focus, .field__input:not(:placeholder-shown) { padding: 2.2rem 2rem 0.8rem; }
.text-area { font-family: var(--font-body-family); font-style: normal; font-weight: 400; min-height: 10rem; resize: none; }
textarea.field__input { padding-top: 2.2rem; }
.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 > .icon { height: 1.5rem; width: 1.5rem; }
.form__message { align-items: center; display: flex; font-size: 1.4rem; line-height: 1; margin-top: 1rem; }
.form__message .icon { flex-shrink: 0; height: 1.3rem; margin-right: 0.5rem; width: 1.3rem; }
.select { display: flex; position: relative; width: 100%; }
.select .icon-caret { height: 0.6rem; pointer-events: none; position: absolute; top: calc(50% - 0.2rem); right: 1.5rem; }
.ssf-hp { position: absolute; left: -9999px; }

.icon { fill: currentColor; height: 1.5rem; width: 1.5rem; vertical-align: middle; }
.icon-arrow { width: 1.5rem; }
.icon-caret { height: 0.6rem; width: 1rem; }
.animate-arrow .icon-arrow path { transform: translateX(-0.25rem); transition: transform 0.15s ease; }
.animate-arrow:hover .icon-arrow path { transform: translateX(-0.05rem); }

/* ---------- Announcement bar ---------- */
.utility-bar { background: var(--color-sage); color: #000; }
.utility-bar__grid { display: grid; grid-template-columns: 1fr; }
.announcement-bar { display: flex; justify-content: center; align-items: center; min-height: 3.8rem; }
.announcement-bar__message {
	text-align: center;
	padding: 1rem 0;
	margin: 0;
	letter-spacing: 0.1rem;
	min-height: 3.8rem;
	color: #000;
	font-family: var(--font-heading-family);
}
.announcement-bar__link { display: flex; width: 100%; text-decoration: none; justify-content: center; color: #000; }

/* ---------- Header ---------- */
.section-header { position: relative; z-index: 4; }
.header-wrapper { display: block; position: relative; background-color: #fff; }
.header-wrapper--border-bottom { border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08); }
.header {
	display: grid;
	grid-template-areas: "left-icons heading icons";
	grid-template-columns: 1fr 2fr 1fr;
	align-items: center;
	padding-top: 1rem;
	padding-bottom: 1rem;
}
@media screen and (max-width: 749px) {
	.header.page-width { padding-left: 3rem; padding-right: 3rem; }
	.header__icons { padding-right: 0.8rem; margin-right: -1.5rem; }
	.header__icon--menu { margin-left: -1.2rem; }
}
@media screen and (min-width: 990px) {
	.header {
		grid-template-areas: "heading navigation icons";
		grid-template-columns: auto auto 1fr;
		column-gap: 2rem;
		padding-top: 2rem;
		padding-bottom: 2rem;
	}
}
.header__heading { margin: 0; line-height: 0; grid-area: heading; justify-self: center; }
.header > .header__heading-link { grid-area: heading; justify-self: center; }
@media screen and (min-width: 990px) {
	.header__heading, .header > .header__heading-link { justify-self: start; }
}
.header__heading-link { display: inline-block; padding: 0.75rem; text-decoration: none; word-break: break-word; }
.header__heading-logo-wrapper { width: 100%; display: block; line-height: 0; }
.header__heading-logo { height: auto; max-width: 100%; width: 13.9rem; display: block; aspect-ratio: 600 / 332; }
@media screen and (min-width: 750px) { .header__heading-logo { width: 300px; } }
@media screen and (min-width: 750px) and (max-width: 989px) { .header__heading-logo { width: 20rem; } }

.header__icons { display: flex; grid-area: icons; justify-self: end; padding-right: 0.8rem; }
.header__icon, .header__icon--cart .icon { height: 4.4rem; width: 4.4rem; padding: 0; }
.header__icon { color: rgb(var(--color-foreground)); display: flex; align-items: center; justify-content: center; text-decoration: none; position: relative; }
.header__icon .icon { height: 2rem; width: 2rem; fill: none; vertical-align: middle; }
.header__icon--cart { position: relative; margin-right: -1.2rem; }
.header__icon--cart .icon { margin: 0 -1.2rem; height: 4.4rem; width: 4.4rem; }
.header__icon--menu { grid-area: left-icons; }
.header__icon--summary .icon-close, details[open] > .header__icon--summary .icon-hamburger, details[open] > .header__icon--summary .icon-search { display: none; }
details[open] > .header__icon--summary .icon-close { display: block; }
.header__icon--summary > span { display: flex; align-items: center; justify-content: center; height: 100%; }
.menu-drawer-container { display: flex; grid-area: left-icons; }
@media screen and (min-width: 990px) { .menu-drawer-container { display: none; } }
.cart-count-bubble {
	position: absolute;
	background-color: rgb(var(--color-foreground));
	color: #fff;
	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: 1.1;
}

/* Inline menu */
.header__inline-menu { margin-left: -1.2rem; grid-area: navigation; display: none; }
@media screen and (min-width: 990px) { .header__inline-menu { display: block; } }
.list-menu--inline { display: inline-flex; flex-wrap: wrap; }
.list-menu { list-style: none; padding: 0; margin: 0; }
.list-menu__item { display: flex; align-items: center; line-height: 1.3; }
.header__inline-menu li { position: relative; }
.header__menu-item {
	padding: 1.2rem;
	text-decoration: none;
	color: rgba(var(--color-foreground), 0.75);
	font-size: 1.4rem;
	letter-spacing: 0.06rem;
}
.header__menu-item:hover { color: rgb(var(--color-foreground)); }
.header__menu-item span { transition: text-decoration 0.1s ease; }
.header__menu-item:hover span { text-decoration: underline; text-underline-offset: 0.3rem; }
.header__active-menu-item { transition: text-decoration-thickness 0.1s ease; color: rgb(var(--color-foreground)); text-decoration: underline; text-underline-offset: 0.3rem; }
.header__menu-item:hover .header__active-menu-item { text-decoration-thickness: 0.2rem; }
summary.header__menu-item { padding-right: 2.7rem; }
summary.header__menu-item .icon-caret { position: absolute; height: 0.6rem; right: 0.8rem; top: calc(50% - 0.2rem); }
details[open] > summary.header__menu-item .icon-caret { transform: rotate(180deg); }
details[open] > .header__menu-item { color: rgb(var(--color-foreground)); }
details[open] > .header__menu-item span { text-decoration: underline; text-underline-offset: 0.3rem; }
.header__submenu {
	list-style: none;
	padding: 1rem 0;
	margin: 0;
	transition: opacity 0.1s ease, transform 0.1s ease;
	font-size: 1.3rem;
}
.header__submenu.list-menu--disclosure {
	position: absolute;
	min-width: 100%;
	width: 20rem;
	border: 1px solid rgba(var(--color-foreground), 0.1);
	background-color: #fff;
	z-index: 3;
	top: 100%;
	left: 0;
	box-shadow: 28px 4px 5px rgba(var(--color-foreground), 0.05);
}
.header__submenu .header__menu-item { padding: 0.95rem 3.5rem 0.95rem 2rem; justify-content: space-between; font-size: 1.3rem; letter-spacing: 0.04rem; line-height: 1.5; }
.header__submenu .header__submenu { background-color: rgba(var(--color-foreground), 0.03); padding: 0.5rem 0; margin: 0.5rem 0; }
.header__submenu .header__submenu .header__menu-item { padding-left: 3rem; }
.header__submenu summary.header__menu-item .icon-caret { right: 2rem; }

/* Search modal */
.header__search { display: inline-flex; line-height: 0; }
.search-modal {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 5;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
}
.search-modal .modal-overlay { display: none; }
.header__search:not([open]) .search-modal { display: none; }
.search-modal__content { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 0 5rem 0 1rem; line-height: 1.8; position: relative; }
@media screen and (min-width: 750px) { .search-modal__content { padding: 0 6rem; } }
.search-modal__form { width: 100%; max-width: 74.1rem; }
.search-modal__close-button { position: absolute; right: 0.3rem; background: none; border: 0; height: 4.4rem; width: 4.4rem; display: flex; align-items: center; justify-content: center; color: rgb(var(--color-foreground)); cursor: pointer; }
@media screen and (min-width: 750px) { .search-modal__close-button { right: 1rem; } }
.search-modal__close-button .icon { width: 1.7rem; height: 1.7rem; }
.search__input.field__input { padding-right: 9.8rem; }
.search__button { right: 0; top: 0; }
.search__button .icon { height: 1.8rem; width: 1.8rem; }
input::-webkit-search-decoration, input::-webkit-search-cancel-button { -webkit-appearance: none; }

/* Mobile drawer */
.menu-drawer {
	position: fixed;
	top: var(--header-bottom);
	bottom: 0;
	left: 0;
	transform: translateX(-100%);
	visibility: hidden;
	z-index: 3;
	width: 100%;
	padding: 0;
	background-color: #fff;
	overflow-x: hidden;
	border-right: 1px solid rgba(var(--color-foreground), 0.1);
	transition: transform 0.2s ease, visibility 0.2s;
}
@media screen and (min-width: 750px) { .menu-drawer { width: 40rem; } }
.menu-drawer-container[open] .menu-drawer { transform: translateX(0); visibility: visible; }
.menu-drawer-container[open] > .header__icon--menu::before {
	content: "";
	position: fixed;
	top: var(--header-bottom);
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(var(--color-foreground), 0.5);
	cursor: default;
}
.menu-drawer__inner-container { position: relative; height: 100%; }
.menu-drawer__navigation-container { display: grid; grid-template-rows: 1fr auto; align-content: space-between; overflow-y: auto; height: 100%; }
.menu-drawer__navigation { padding: 3rem 0; }
.menu-drawer__menu { list-style: none; padding: 0; margin: 0; }
.menu-drawer__menu li { margin-bottom: 0.2rem; }
.menu-drawer__menu-item {
	padding: 1.1rem 3rem;
	text-decoration: none;
	font-size: 1.8rem;
	color: rgb(var(--color-foreground));
	position: relative;
	display: flex;
}
.menu-drawer__menu-item--active, .menu-drawer__menu-item:hover { background-color: rgba(var(--color-foreground), 0.04); }
.menu-drawer__menu-item .icon-arrow { position: absolute; right: 3rem; top: calc(50% - 0.75rem); width: 1.5rem; height: 1.5rem; }
.menu-drawer__menu-item .icon-caret { display: none; }
.menu-drawer__submenu {
	height: 100%;
	position: absolute;
	width: 100%;
	top: 0;
	left: 0;
	background-color: #fff;
	z-index: 1;
	transform: translateX(100%);
	visibility: hidden;
	overflow-y: auto;
	transition: transform 0.2s ease, visibility 0.2s;
}
.menu-drawer details[open] > .menu-drawer__submenu { transform: translateX(0); visibility: visible; }
.menu-drawer__inner-submenu { height: 100%; overflow-x: hidden; overflow-y: auto; }
.menu-drawer__close-button {
	margin-top: 1.5rem;
	padding: 1.2rem 2.6rem 1.2rem 3rem;
	text-decoration: none;
	display: flex;
	align-items: center;
	font-size: 1.4rem;
	width: 100%;
	background-color: transparent;
	font-family: var(--font-body-family);
	text-align: left;
	border: 0;
	cursor: pointer;
	color: rgb(var(--color-foreground));
}
.menu-drawer__close-button .icon-arrow { transform: rotate(180deg); margin-right: 1rem; }
.menu-drawer__utility-links { padding: 0; background-color: rgba(var(--color-foreground), 0.03); position: relative; }
.menu-drawer__account { display: inline-flex; align-items: center; text-decoration: none; padding: 1.2rem; margin-left: -1.2rem; font-size: 1.4rem; color: rgb(var(--color-foreground)); }
.menu-drawer__account .icon-account { height: 2rem; width: 2rem; margin-right: 1rem; }
.menu-drawer__utility-links { padding: 2rem 3rem; }
.menu-drawer .list-social { justify-content: flex-start; margin-left: -1.25rem; margin-top: 2rem; }
.list-social { display: flex; flex-wrap: wrap; justify-content: flex-end; }
.list-social__link { align-items: center; display: flex; padding: 1.1rem; color: rgb(var(--color-foreground)); }
.list-social__link:hover .icon { transform: scale(1.07); }
.list-social__link .icon { height: 1.8rem; width: 1.8rem; transition: transform 0.1s ease; }
body.ssf-drawer-open { overflow: hidden; }

/* ---------- Grid & cards ---------- */
.grid { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; column-gap: var(--grid-h); row-gap: var(--grid-v); }
.grid__item { width: calc(25% - var(--grid-h) * 3 / 4); max-width: calc(50% - var(--grid-h) / 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-h) / 2); }
@media screen and (min-width: 750px) {
	.grid--2-col-tablet .grid__item { width: calc(50% - var(--grid-h) / 2); }
}
@media screen and (max-width: 989px) {
	.grid--1-col-tablet-down .grid__item { width: 100%; max-width: 100%; }
}
@media screen and (min-width: 990px) {
	.grid--4-col-desktop .grid__item { width: calc(25% - var(--grid-h) * 3 / 4); max-width: calc(25% - var(--grid-h) * 3 / 4); }
	.grid--3-col-desktop .grid__item { width: calc(33.33% - var(--grid-h) * 2 / 3); max-width: calc(33.33% - var(--grid-h) * 2 / 3); }
}
.grid--gapless { column-gap: 0; row-gap: 0; }

.card-wrapper { color: inherit; height: 100%; position: relative; text-decoration: none; }
.card { text-decoration: none; text-align: left; display: flex; flex-direction: column; height: 100%; position: relative; }
.card__inner { position: relative; width: 100%; aspect-ratio: 1 / 1; background: var(--color-sage); overflow: hidden; }
.card__media { position: absolute; inset: 0; margin: 0; width: 100%; }
.media { display: block; background-color: rgba(var(--color-foreground), 0.1); position: relative; overflow: hidden; }
.media--transparent { background-color: transparent; }
.card__media .media { height: 100%; }
.card__media .media img, .media > img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; transition: opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.4s ease; }
.media--hover-effect > img + img { opacity: 0; }
@media screen and (min-width: 990px) {
	.card-wrapper:hover .media.media--hover-effect > img:first-child:not(:only-child) { opacity: 0; }
	.card-wrapper:hover .media.media--hover-effect > img + img { opacity: 1; transform: scale(1.03); }
	.card-wrapper:hover .media.media--hover-effect > img:only-child { transform: scale(1.03); }
}
.card__inner > .card__content { position: absolute; inset: 0; padding: 1rem; display: flex; align-items: flex-end; pointer-events: none; }
.card > .card__content { display: block; flex-grow: 1; }
.card__information { padding: 1.7rem 0; }
.card__heading { margin: 0; }
.card__heading a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card__heading.h5 { font-size: 1.2rem; }
.card__content--text { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 2rem; text-align: center; }
@media screen and (min-width: 750px) { .card__heading.h5 { font-size: 1.3rem; } }
.underline-links-hover:hover a { text-decoration: underline; text-underline-offset: 0.3rem; }
.card-information > .price { margin-top: 0.7rem; }
.card__badge { align-self: flex-end; }

.badge {
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 4rem;
	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-foreground));
	color: #fff;
	word-break: break-word;
}
.badge.color-scheme-3 { background-color: #242833; }

/* Collection card */
.collection-card-wrapper .card__heading { font-size: 1.7rem; }
@media screen and (min-width: 750px) { .collection-card-wrapper .card__heading { font-size: 1.8rem; } }
.collection-card-wrapper .card__information { padding: 1.7rem 0; }
.collection-card-wrapper .icon-wrap { margin-left: 0.8rem; white-space: nowrap; display: inline-flex; vertical-align: middle; }
.collection-card-wrapper .icon-wrap .icon { width: 1.2rem; height: 1rem; }
.collection-card-wrapper:hover .card__heading a { text-decoration: underline; text-underline-offset: 0.3rem; }
.collection-list { margin-top: 0; margin-bottom: 0; }
.collection-list-title { margin: 0; }
@media screen and (max-width: 749px) {
	.collection-list .collection-list__item { width: 100%; max-width: 100%; }
}

/* Price */
.price { font-size: 1.6rem; letter-spacing: 0.1rem; line-height: 1.5; color: rgb(var(--color-foreground)); }
.price > * { display: inline-block; vertical-align: top; }
.price-item { margin: 0 1rem 0 0; display: inline-block; }
.price .price-item:last-child { margin-right: 0; }
.price__sale { display: flex; flex-wrap: wrap; align-items: center; }
.price--on-sale .price__sale s.price-item--regular { margin-right: 1rem; }
.price--on-sale .price-item--sale { margin-right: 0; }
.price--on-sale .price-item--regular { text-decoration: line-through; color: rgba(var(--color-foreground), 0.75); font-size: 1.3rem; margin-right: 0; }
.price .badge { margin-left: 0; }

/* ---------- Home ---------- */
.banner { display: flex; position: relative; flex-direction: column; }
.banner__media { height: 39rem; position: relative; width: 100%; overflow: hidden; }
.banner__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.banner__content { padding: 0; position: relative; width: 100%; max-width: none; }
.banner__box { background: var(--color-sage); padding: 4rem 3.5rem; min-height: 10.6rem; width: 100%; }
@media screen and (min-width: 750px) {
	.banner--large { min-height: 72rem; }
	.banner__media { position: absolute; top: 0; left: 0; height: 100%; }
	.banner__box { display: none; }
}
.section-collection-list.section-padding { padding-bottom: 3.6rem; }
.collection-list-wrapper .title-wrapper-with-link { margin-top: 2rem; margin-bottom: 3rem; }
.section-featured-collection .collection__title { padding-top: 0.9rem; }
.section-featured-collection .collection__title .title { margin: 0 0 3rem; }
.product-grid { margin-top: 1.6rem; }
.collection__title + .product-grid { margin-top: 0; }
.collection__view-all { margin-top: 1rem; margin-bottom: 0; }
.collection__view-all .button { margin-top: 0; }
.section-featured-collection.section-padding { padding-bottom: 1.6rem; }

/* ---------- Collection page ---------- */
.collection-hero__inner { display: flex; flex-direction: column; }
.collection-hero__title { margin: 2.5rem 0; }
.collection-hero__description { margin-bottom: 2.5rem; }
.facets-container { padding-top: 1rem; }
.facets__form--desktop { display: none; }
@media screen and (min-width: 750px) {
	.facets__form--desktop { display: grid; grid-template-columns: 1fr auto auto; align-items: flex-start; column-gap: 0; }
	.mobile-facets__wrapper, .mobile-product-count { display: none !important; }
}
.facets__wrapper { display: flex; flex-wrap: wrap; align-items: flex-start; }
.facets__heading { margin: 0 2rem 0 0; display: block; color: rgba(var(--color-foreground), 0.85); font-size: 1.4rem; line-height: 1.5; letter-spacing: 0.04rem; font-family: var(--font-body-family); }
.facets__disclosure { margin-right: 3.5rem; position: relative; }
.facets__summary { color: rgba(var(--color-foreground), 0.75); font-size: 1.4rem; line-height: 1.5; letter-spacing: 0.04rem; padding: 0 1.75rem 0 0; margin-bottom: 1.5rem; }
.facets__summary > div { display: flex; align-items: center; }
.facets__summary .icon-caret { position: absolute; height: 0.6rem; right: 0; top: calc(50% - 0.2rem); }
.facets__summary:hover .facets__summary-label { text-decoration: underline; text-underline-offset: 0.3rem; }
details[open] > .facets__summary .icon-caret { transform: rotate(180deg); }
.facets__display {
	background-color: #fff;
	position: absolute;
	border: 1px solid rgba(var(--color-foreground), 0.2);
	top: calc(100% - 1rem);
	left: -1.2rem;
	width: 35rem;
	max-height: 55rem;
	overflow-y: auto;
	z-index: 3;
}
.facets__header { border-bottom: 1px solid rgba(var(--color-foreground), 0.2); padding: 1.5rem 2rem; display: flex; justify-content: space-between; font-size: 1.4rem; position: sticky; top: 0; background: #fff; z-index: 1; }
.facets__header .facets__reset { font-size: 1.4rem; }
.facets__list { padding: 0.5rem 2rem; }
.facets__item { display: flex; align-items: center; }
.facet-checkbox { padding: 1rem 2rem 1rem 0; flex-grow: 1; position: relative; font-size: 1.4rem; display: flex; word-break: break-word; cursor: pointer; align-items: center; }
.facet-checkbox input[type="checkbox"] { position: absolute; opacity: 1; width: 1.6rem; height: 1.6rem; top: 0.7rem; left: -0.4rem; z-index: -1; appearance: none; -webkit-appearance: none; }
.facet-checkbox > svg { background-color: #fff; margin-right: 1.2rem; flex-shrink: 0; width: 1.6rem; height: 1.6rem; }
.facet-checkbox .icon-tick { visibility: hidden; position: absolute; left: 0.3rem; z-index: 5; top: 1.6rem; width: 1rem; height: 0.9rem; }
.facet-checkbox input[type="checkbox"]:checked ~ .icon-tick { visibility: visible; }
.facet-checkbox--disabled { color: rgba(var(--color-foreground), 0.4); cursor: default; }
.facets__price { display: flex; padding: 2rem; align-items: center; }
.facets__price .field-currency { align-self: center; margin-right: 0.6rem; }
.facets__price + .facets__price { padding-top: 0; }
.facet-filters { align-items: flex-start; display: flex; padding-left: 2.5rem; }
.facet-filters__field { align-items: center; display: flex; flex-grow: 1; justify-content: flex-end; }
.facet-filters__label { white-space: nowrap; color: rgba(var(--color-foreground), 0.85); font-size: 1.4rem; margin: 0 2rem 0 0; font-family: var(--font-body-family); }
.facet-filters__label label { cursor: pointer; }
.facet-filters__sort {
	background-color: transparent;
	border: 0;
	border-radius: 0;
	font-size: 1.4rem;
	height: auto;
	line-height: 1.5;
	margin: 0;
	padding-left: 0;
	padding-right: 1.75rem;
	color: rgba(var(--color-foreground), 0.75);
	min-height: 0;
	box-shadow: none;
	font-family: var(--font-body-family);
	letter-spacing: 0.04rem;
	cursor: pointer;
}
.facet-filters__field .select::after { display: none; }
.facet-filters__field .select .icon-caret { right: 0; }
.facet-filters__sort:focus { outline: none; box-shadow: none; }
.product-count { align-self: flex-start; margin-left: 3.5rem; }
.product-count__text { font-size: 1.4rem; line-height: 1.5; margin: 0; color: rgb(var(--color-foreground)); letter-spacing: 0.06rem; }
#product-grid { margin-top: 1.6rem; margin-bottom: 2rem; }
.collection { position: relative; }
.collection--empty .title-wrapper { margin-top: 10rem; margin-bottom: 15rem; }

/* Mobile facets */
.facets-container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.facets-container > form { width: 100%; }
.mobile-facets__wrapper { margin-right: 2rem; }
.mobile-facets__open { display: flex; align-items: center; color: rgba(var(--color-foreground), 0.75); padding: 1.2rem 0; }
.mobile-facets__open .icon-filter { width: 2rem; height: 2rem; margin-right: 1rem; }
.mobile-facets__open-label { font-size: 1.5rem; }
.mobile-facets__wrapper[open] .mobile-facets__form {
	position: fixed;
	inset: 0;
	left: auto;
	width: min(100%, 37.5rem);
	background: #fff;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	border-left: 1px solid rgba(var(--color-foreground), 0.1);
}
.mobile-facets__wrapper:not([open]) .mobile-facets__form { display: none; }
.mobile-facets__wrapper[open] > summary::before { content: ""; position: fixed; inset: 0; background: rgba(var(--color-foreground), 0.5); z-index: 999; }
.mobile-facets__header { border-bottom: 1px solid rgba(var(--color-foreground), 0.08); padding: 1rem 2.5rem; text-align: center; }
.mobile-facets__heading { font-size: 1.4rem; margin: 0; }
.mobile-facets__count { margin: 0; font-size: 1.3rem; line-height: 1.5; }
.mobile-facets__main { flex-grow: 1; overflow-y: auto; padding: 1rem 2.5rem; }
.mobile-facets__main .facets__disclosure { margin: 0; border-bottom: 1px solid rgba(var(--color-foreground), 0.08); }
.mobile-facets__main .facets__summary { padding: 1.5rem 0; margin: 0; font-size: 1.4rem; }
.mobile-facets__main .facets__display { position: static; width: 100%; border: 0; max-height: none; }
.mobile-facets__main .facets__header { padding: 0 0 1rem; border: 0; }
.mobile-facets__main .facets__list, .mobile-facets__main .facets__price { padding-left: 0; padding-right: 0; }
.mobile-facets__sort { padding: 1.5rem 0; }
.mobile-facets__sort .facet-filters__field { justify-content: space-between; }
.mobile-facets__footer { border-top: 1px solid rgba(var(--color-foreground), 0.08); padding: 2rem; display: flex; gap: 1rem; }
.mobile-facets__footer .button { flex: 1; min-width: 0; padding: 0 1rem; }
.mobile-product-count .product-count__text { color: rgba(var(--color-foreground), 0.75); }

/* Pagination */
.pagination-wrapper { margin-top: 4rem; }
@media screen and (min-width: 990px) { .pagination-wrapper { margin-top: 5rem; } }
.pagination__list { display: flex; flex-wrap: wrap; justify-content: center; }
.pagination__list > li { flex: 1 0 4.4rem; max-width: 4.4rem; }
.pagination__item {
	color: rgb(var(--color-foreground));
	display: inline-flex;
	justify-content: center;
	align-items: center;
	position: relative;
	height: 4.4rem;
	width: 100%;
	padding: 0;
	text-decoration: none;
}
a.pagination__item:hover::after { content: ""; display: block; width: 2rem; height: 0.1rem; position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); background-color: currentColor; }
.pagination__item--current::after { content: ""; display: block; width: 2rem; height: 0.1rem; position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); background-color: currentColor; }
.pagination__item--next .icon { margin-left: -0.2rem; transform: rotate(90deg); }
.pagination__item--prev .icon { margin-right: -0.2rem; transform: rotate(-90deg); }
.pagination__item-arrow .icon { width: 1.2rem; }

/* ---------- Product page ---------- */
.section-main-product { padding-top: 2.7rem; padding-bottom: 0.9rem; }
@media screen and (min-width: 750px) { .section-main-product { padding-top: 3.6rem; padding-bottom: 1.2rem; } }
.product { margin: 0; }
.product.grid { gap: 0; }
.product__media-wrapper { padding-left: 0; width: 100%; max-width: 100%; }
.product__info-wrapper { padding: 0; width: 100%; max-width: 100%; }
@media screen and (min-width: 750px) {
	.product__media-wrapper { width: calc(50% - var(--grid-h) / 2); max-width: 50%; }
	.product__info-wrapper { width: calc(50% - var(--grid-h) / 2); max-width: 50%; padding: 0 0 0 5rem; }
}
@media screen and (min-width: 990px) {
	.product--large .product__media-wrapper { max-width: 65%; width: calc(65% - var(--grid-h) / 2); }
	.product--large .product__info-wrapper { max-width: 35%; width: calc(35% - var(--grid-h) / 2); padding: 0 0 0 4rem; }
}
.product__media-list { margin: 0 0 2rem; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: var(--grid-v) var(--grid-h); }
.product .product__media-list .product__media-item { position: relative; width: calc(50% - var(--grid-h) / 2); max-width: 100%; flex-grow: 0; }
.product .product__media-list .product__media-item--full, .product--single-media .product__media-list .product__media-item { width: 100%; max-width: 100%; }
.product-media-container { border: 1px solid rgba(var(--color-foreground), 0.05); overflow: hidden; }
.product__media { position: relative; }
.product__media img { position: static; display: block; width: 100%; height: auto; }
.product__media-toggle { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; background: transparent; border: 0; padding: 0; cursor: zoom-in; }
@media screen and (max-width: 749px) {
	.product__media-list.slider--mobile { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; gap: var(--grid-h); margin-bottom: 1rem; scrollbar-width: none; margin-left: -1.5rem; margin-right: -1.5rem; padding: 0 1.5rem; scroll-padding-left: 1.5rem; }
	.product__media-list.slider--mobile::-webkit-scrollbar { display: none; }
	.product .slider--mobile .product__media-item { width: calc(100% - 3rem); flex-shrink: 0; scroll-snap-align: start; }
	.product--single-media .slider--mobile .product__media-item { width: 100%; }
	.slider-buttons { display: flex; justify-content: center; align-items: center; margin-bottom: 1rem; }
	.slider-counter { font-size: 1.2rem; display: flex; justify-content: center; min-width: 4.4rem; color: rgba(var(--color-foreground), 0.75); }
}
.product__info-container > * + * { margin: 1.5rem 0; }
.product__info-container .product__text + .product__title { margin-top: 0; }
.product__text { margin-bottom: 0; }
.product__text.caption-with-letter-spacing { margin: 0; color: rgba(var(--color-foreground), 0.75); }
.product__title { word-break: break-word; margin-bottom: 1.5rem; }
.product__title > h1 { margin: 0; }
@media screen and (min-width: 990px) {
	.product__column-sticky { display: block; position: sticky; top: 3rem; z-index: 2; }
}
.product .price { font-size: 1.8rem; letter-spacing: 0.13rem; line-height: 1.5; display: flex; flex-wrap: wrap; align-items: center; }
.product .price .price-item { font-size: 1.8rem; }
.product .price--on-sale .price-item--regular { font-size: 1.6rem; }
.product .price__container { margin-bottom: 0.5rem; margin-right: 1rem; }
.product .price .badge { margin-bottom: 0.5rem; }
.product-form__input { flex: 0 0 100%; padding: 0; margin: 0 0 1.2rem; min-width: fit-content; border: none; }
.quantity__label { color: rgba(var(--color-foreground), 0.75); margin-bottom: 0.6rem; display: block; font-size: 1.3rem; }
.quantity {
	color: rgba(var(--color-foreground));
	position: relative;
	width: calc(14rem + 2px);
	display: flex;
	min-height: calc(4.5rem + 2px);
}
.quantity::after { pointer-events: none; content: ""; position: absolute; inset: 0; box-shadow: 0 0 0 1px rgba(var(--color-foreground), 0.55); z-index: 1; }
.quantity:hover::after { box-shadow: 0 0 0 2px rgba(var(--color-foreground), 0.55); }
.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 { outline: none; }
.quantity__button {
	width: 4.5rem;
	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 0 0 1px;
}
.quantity__button .icon { width: 1rem; pointer-events: none; }
.product-form__buttons { max-width: 44rem; margin-top: 2.5rem; }
.product-form__submit { margin-bottom: 1rem; }
.product-form__buy-now { font-weight: 500; }
.pickup-availability-preview { align-items: flex-start; display: flex; gap: 0.2rem; padding: 1rem 2rem 0 0; }
.pickup-availability-preview .icon { color: #428445; width: 1.3rem; height: 1.3rem; flex-shrink: 0; margin-top: 0.6rem; margin-right: 0.4rem; }
.pickup-availability-info * { margin: 0 0 0.6rem; }
.pickup-availability-info .caption-large { font-size: 1.4rem; letter-spacing: 0.06rem; line-height: 1.5; }
.pickup-availability-info .caption { font-size: 1.2rem; }
.pickup-availability-button { background-color: transparent; color: rgba(var(--color-foreground), 0.75); letter-spacing: 0.06rem; padding: 0 0 0.2rem; text-align: left; text-decoration: underline; border: 0; font-size: 1.4rem; font-family: var(--font-body-family); cursor: pointer; }
.pickup-availability-button:hover { color: rgb(var(--color-foreground)); }
.pickup-drawer { position: fixed; inset: 0; z-index: 1000; }
.pickup-drawer__overlay { position: absolute; inset: 0; background: rgba(var(--color-foreground), 0.5); }
.pickup-drawer__panel { position: absolute; top: 0; right: 0; height: 100%; width: 40rem; max-width: 100%; background: #fff; padding: 2.5rem 3rem; overflow-y: auto; border-left: 1px solid rgba(var(--color-foreground), 0.1); }
.pickup-availability-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.2rem; }
.pickup-availability-drawer-title { margin: 0.5rem 0 0; font-size: 1.5rem; }
.pickup-drawer__button { background: none; border: 0; cursor: pointer; padding: 0; width: 4.4rem; height: 4.4rem; display: flex; align-items: center; justify-content: center; color: rgb(var(--color-foreground)); }
.pickup-drawer__button .icon { width: 2rem; height: 2rem; }
.pickup-availability-list__item { border-bottom: 1px solid rgba(var(--color-foreground), 0.08); padding: 2rem 0; }
.pickup-availability-list__item:first-child { border-top: 1px solid rgba(var(--color-foreground), 0.08); }
.pickup-availability-list__item h3 { margin: 0 0 1rem; }
.pickup-availability-address { font-style: normal; font-size: 1.2rem; line-height: 1.5; }
.product__description { margin: 2.5rem 0; }
.share-button { display: block; position: relative; }
.share-button__button { font-size: 1.4rem; display: flex; align-items: center; color: rgb(var(--color-foreground)); margin-left: 0; padding-left: 0; min-height: 4.4rem; background: none; border: 0; cursor: pointer; font-family: inherit; letter-spacing: 0.06rem; }
.share-button__button:hover { text-decoration: underline; text-underline-offset: 0.3rem; }
.share-button__button .icon-share { height: 1.2rem; margin-right: 1rem; min-width: 1.3rem; }
.share-button__message { font-size: 1.3rem; }
.product-lightbox { position: fixed; inset: 0; z-index: 1000; background: #fff; overflow-y: auto; }
.product-lightbox__content { max-width: 120rem; margin: 0 auto; padding: 6rem 1.5rem 3rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.product-lightbox__content img { width: auto; max-width: 100%; height: auto; }
.product-lightbox__close { position: fixed; top: 1.5rem; right: 1.5rem; width: 4.4rem; height: 4.4rem; border-radius: 50%; border: 1px solid rgba(var(--color-foreground), 0.1); background: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; color: rgb(var(--color-foreground)); }
.product-lightbox__close .icon { width: 1.8rem; height: 1.8rem; }
.related-products__heading { margin: 0 0 3rem; }
.related-products { padding-top: 3.6rem; padding-bottom: 2.8rem; }

/* Cart notification */
.cart-notification-wrapper { position: relative; }
.cart-notification {
	border: 1px solid rgba(var(--color-foreground), 0.1);
	border-top: 0;
	background: #fff;
	padding: 2.5rem 3.5rem;
	position: fixed;
	top: var(--header-bottom);
	right: 0;
	width: 100%;
	z-index: 100;
}
@media screen and (min-width: 750px) { .cart-notification { max-width: 36.8rem; right: 4rem; } }
.cart-notification__header { align-items: flex-start; display: flex; }
.cart-notification__heading { align-items: center; display: flex; flex-grow: 1; margin-bottom: 0; margin-top: 0; font-size: 1.3rem; }
.cart-notification__heading .icon-tick { margin-right: 1rem; width: 1.3rem; height: 1.3rem; }
.cart-notification__close { margin-top: -2rem; margin-right: -3rem; background: none; border: 0; width: 4.4rem; height: 4.4rem; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgb(var(--color-foreground)); }
.cart-notification__close .icon { width: 1.7rem; height: 1.7rem; }
.cart-notification__links { text-align: center; }
.cart-notification__links > * { margin-top: 1rem; }
.cart-notification-product { align-items: flex-start; display: flex; padding-bottom: 3rem; padding-top: 2rem; }
.cart-notification-product__image { display: inline-flex; margin-right: 1.5rem; margin-top: 0.3rem; width: 7rem; border: 1px solid rgba(var(--color-foreground), 0.03); }
.cart-notification-product__image img { width: 100%; height: auto; display: block; }
.cart-notification-product__name { margin: 0 0 0.5rem; font-size: 1.5rem; }
.cart-notification__close-link { background: none; border: 0; font-size: 1.5rem; letter-spacing: 0.1rem; color: rgb(var(--color-foreground)); text-decoration: underline; text-underline-offset: 0.3rem; cursor: pointer; padding: 1rem; font-family: inherit; }

/* ---------- Pages ---------- */
.main-page-title { margin-bottom: 3rem; margin-top: 0; }
@media screen and (min-width: 750px) { .main-page-title { margin-bottom: 4rem; } }
.main-page .rte .contact { margin-top: 11.6rem; padding: 0; max-width: none; }
.contact .field { margin-bottom: 1.5rem; }
@media screen and (min-width: 750px) {
	.contact .field { margin-bottom: 2rem; }
	.contact__fields { display: grid; grid-template-columns: repeat(2, 1fr); grid-column-gap: 2rem; }
}
.contact__button { margin-top: 3rem; }
@media screen and (min-width: 750px) { .contact__button { margin-top: 4rem; } }
.contact .form__message { margin-bottom: 2rem; font-size: 1.6rem; line-height: 1.3; }
.page-store .main-page-title { margin-bottom: 3rem; }

.shopify-policy__container { max-width: 65ch; margin: 0 auto; padding: 0 1.5rem; margin-top: 2.7rem; margin-bottom: 4rem; }
.shopify-policy__title { text-align: center; }
.shopify-policy__title h1 { margin: 0 0 3rem; }

/* Blog */
.main-blog .title--primary { margin: 2rem 0; }
.blog-articles { display: grid; grid-gap: 1rem; column-gap: var(--grid-h); row-gap: var(--grid-v); }
.blog-articles .card-wrapper { height: auto; }
.blog-articles .card__inner { aspect-ratio: auto; height: 22rem; background: var(--color-sage); }
.blog-articles .card__information { padding: 1.7rem 0; }
.blog-articles .card__heading { font-size: 2rem; margin-bottom: 0.6rem; color: #000; }
@media screen and (min-width: 750px) {
	.blog-articles { grid-template-columns: 1fr 1fr; }
	.blog-articles .card__inner { height: 30.7rem; }
	.blog-articles .card__heading { font-size: 2.4rem; }
	.blog-articles--collage > *:nth-child(3n + 1) { grid-column: span 2; text-align: center; }
	.blog-articles--collage > *:nth-child(3n + 1) .card { text-align: center; }
	.blog-articles--collage > *:nth-child(3n + 1) .card__inner { height: 55rem; }
	.blog-articles--collage > *:nth-child(3n + 1) .article-card__excerpt { margin-left: auto; margin-right: auto; }
}
.article-card__info { padding-top: 0.4rem; font-family: var(--font-heading-family); color: #000; }
.article-card__excerpt { width: 100%; margin: 1.2rem auto 2rem; color: rgba(0, 0, 0, 0.75); }
.rte-width { max-width: 82rem; }

/* Article */
.article-template__hero-container { max-width: 130rem; margin: 0 auto; }
.article-template__hero-adapt img { position: static; display: block; width: 100%; height: auto; }
.article-template header { margin-top: 4.4rem; margin-bottom: 2rem; line-height: calc(0.8 / 1); }
@media screen and (min-width: 750px) { .article-template header { margin-top: 5rem; } }
.article-template__title { margin: 0 0 1rem; }
.article-template__title:only-child { margin-bottom: 0; }
.article-template__social-sharing { margin-top: 3rem; }
.article-template__content { margin-top: 1.5rem; margin-bottom: 3rem; }
.article-template__back:last-child { margin-bottom: 3.2rem; }
.element-margin-top { margin-top: 5rem; }
.article-template__link { font-size: 1.8rem; display: inline-flex; align-items: center; text-decoration: none; }
.article-template__link .icon-wrap { display: flex; margin-right: 1rem; transform: rotate(180deg); }
.article-template__link:hover { text-decoration: underline; text-underline-offset: 0.3rem; }
.circle-divider { font-size: 1rem; }

/* Image with text */
.image-with-text__grid { overflow: visible; }
.image-with-text__media { background-color: transparent; min-height: 100%; height: 100%; overflow: hidden; border: 1px solid rgba(var(--color-foreground), 0.05); }
.image-with-text__media img { position: static; display: block; width: 100%; height: 100%; object-fit: cover; }
.image-with-text__content {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: flex-start;
	align-self: stretch;
	padding: 4rem 2rem 5rem;
	position: relative;
	z-index: 1;
	border: 8px solid rgba(var(--color-foreground), 0.65);
	border-top-width: 0;
	border-radius: 0 0 18px 18px;
	box-shadow: -2px -6px 5px rgba(var(--color-foreground), 0.4);
	background: #fff;
}
@media screen and (min-width: 750px) {
	.image-with-text__content { padding: 6rem 7rem 7rem; border-top-width: 8px; border-left-width: 0; border-radius: 0 18px 18px 0; }
}
.image-with-text__text-item { display: flex; align-items: stretch; }
.image-with-text__heading { margin: 0; }
.image-with-text__text { margin-top: 2rem; }
.image-with-text__content .button { margin-top: 3rem; }
.grid__item.image-with-text__media-item, .grid__item.image-with-text__text-item { max-width: 100%; }
@media screen and (max-width: 749px) {
	.image-with-text__grid .grid__item { width: 100%; }
}

/* Search & 404 */
.template-search__header { margin-bottom: 3rem; }
@media screen and (min-width: 750px) { .template-search__header { margin-bottom: 5rem; } }
.template-search__header h1 { margin: 5.4rem 0 0; }
.template-search__search { margin: 0 auto 3.5rem; max-width: 74.1rem; }
.template-search__search .search { margin-top: 3rem; }
.template-search--empty { padding-bottom: 18rem; }
.template-404 { margin-top: 5rem; margin-bottom: 5rem; }
@media screen and (min-width: 750px) { .template-404 { margin-top: 7rem; margin-bottom: 7rem; } }
.template-404 .h2 { margin: 4rem 0 3rem; }

/* ---------- Footer ---------- */
.footer { border-top: 0.1rem solid rgba(var(--color-foreground), 0.08); padding-top: 2.7rem; padding-bottom: 2.7rem; }
@media screen and (min-width: 750px) { .footer { padding-top: 3.6rem; padding-bottom: 3.6rem; } }
.footer__content-top { padding-bottom: 5rem; display: block; }
.footer__blocks-wrapper { margin: 0 0 -2rem; padding-top: 4rem; }
.footer-block { text-align: center; width: 100%; max-width: 100%; }
.footer-block__brand-info { text-align: center; }
.footer-block__image-wrapper { margin: 0 auto 2rem; max-width: min(100%, 525px); overflow: hidden; }
.footer-block__image-wrapper img { display: block; width: 100%; height: auto; aspect-ratio: 760 / 420; }
.footer-block__heading { margin: 0 0 2rem; font-size: 1.7rem; }
@media screen and (min-width: 990px) { .footer-block__heading { font-size: 1.8rem; } }
.footer-block__heading a { color: rgb(var(--color-foreground)); }
.footer-block .rte p { margin: 0; }
.footer-block .rte a { color: rgba(var(--color-foreground), 0.75); }
.footer-block--newsletter { display: flex; align-items: flex-end; margin-top: 3rem; gap: 1rem; justify-content: space-between; flex-wrap: wrap; }
.footer-block__newsletter { text-align: left; flex-grow: 1; }
@media screen and (min-width: 750px) { .footer-block__newsletter { flex-grow: 0; } }
.newsletter-form { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; position: relative; max-width: 36rem; }
.newsletter-form__field-wrapper { width: 100%; }
.newsletter-form__field-wrapper .field__input { padding-right: 5rem; }
.newsletter-form__field-wrapper .field { z-index: 0; }
.newsletter-form__message { justify-content: flex-start; margin-bottom: 0; font-size: 1.4rem; }
.newsletter-form__message--success { margin-top: 2rem; }
.newsletter-form__button { width: 4.4rem; margin: 0; right: 1px; top: 0; height: 100%; z-index: 2; }
.newsletter-form__button .icon { width: 1.5rem; }
.footer__list-social { justify-content: flex-end; margin-right: -1.1rem; }
.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%; }
.footer__copyright { text-align: left; margin-top: 2.3rem; font-size: 1.2rem; letter-spacing: 0.07rem; line-height: 1.7; }
.copyright__content { font-size: 1.1rem; }
.copyright__content a { color: currentColor; text-decoration: none; }
.policies { display: inline; }
.policies li { display: inline-flex; justify-content: center; align-items: center; }
.policies li::before { content: "\00B7"; padding: 0 0.8rem; }
.policies li a { padding: 0.6rem 0; display: block; color: rgba(var(--color-foreground), 0.75); text-decoration: none; font-size: 1.2rem; }
.policies li a:hover { text-decoration: underline; text-underline-offset: 0.3rem; }
@media screen and (max-width: 749px) {
	.footer__copyright { text-align: center; }
	.footer-block--newsletter { flex-direction: column; align-items: center; }
	.footer-block__newsletter { width: 100%; text-align: center; }
	.newsletter-form { margin: 0 auto; }
	.footer__list-social { justify-content: center; margin: 0; }
}

/* ---------- WooCommerce blocks (cart, checkout, account) ---------- */
.page-store .wc-block-components-button:not(.is-link),
.page-store .wp-element-button,
.woocommerce-account .woocommerce-Button,
.woocommerce-account button.button {
	border-radius: 0 !important;
	background: rgb(var(--color-foreground)) !important;
	color: #fff !important;
	font-family: var(--font-body-family) !important;
	letter-spacing: 0.1rem;
	min-height: 5.1rem;
	font-size: 1.5rem !important;
	text-transform: none;
}
.page-store input, .page-store select, .page-store textarea { font-family: var(--font-body-family); border-radius: 0 !important; }
.page-store .wc-block-components-text-input input, .page-store .wc-blocks-components-select__select { border-radius: 0 !important; }
.page-store .wc-block-components-product-name { font-family: var(--font-heading-family); color: rgb(var(--color-foreground)); }
.page-store h2, .page-store .wc-block-components-title { font-family: var(--font-heading-family) !important; }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; padding: 1.5rem 2rem; margin: 0 0 2rem; border: 1px solid rgba(var(--color-foreground), 0.2); font-size: 1.4rem; }

/* -------------------------------------------------------------------------
 * Loading feedback: image skeletons, navigation progress bar, transition skeleton.
 * Only applied while content is genuinely loading (classes set by main.js);
 * nothing here changes the rendered page once it has loaded.
 * ---------------------------------------------------------------------- */
:root { --ssf-sk-base: #f4efe8; --ssf-sk-shine: #fbf8f4; }
@keyframes ssf-sk-shimmer { from { background-position: 150% 0; } to { background-position: -50% 0; } }
@keyframes ssf-sk-in { from { opacity: 0; } to { opacity: 1; } }
.ssf-sk, .ssf-sk-block {
	background-color: var(--ssf-sk-base);
	background-image: linear-gradient(100deg, transparent 30%, var(--ssf-sk-shine) 50%, transparent 70%);
	background-size: 200% 100%;
	animation: ssf-sk-shimmer 1.6s ease-in-out infinite;
}
/* Image placeholders: the wrapper already reserves the image box (ratio or width/height). */
.media.ssf-sk, .product__media.ssf-sk { background-color: var(--ssf-sk-base); }
.product-lightbox__content img.ssf-sk { min-height: 30vh; min-width: min(100%, 60rem); }

/* Add-to-cart in progress: same button, dimmed label + small spinner (after 150 ms, so quick adds don't flash). */
@keyframes ssf-spin { to { transform: rotate(360deg); } }
.product-form__submit.loading { cursor: progress; }
.product-form__submit.loading > span { opacity: 0.25; transition: opacity 0.2s 0.15s; }
.product-form__submit.loading::before {
	content: ""; position: absolute; top: 50%; left: 50%; width: 1.8rem; height: 1.8rem; margin: -0.9rem 0 0 -0.9rem;
	border: 0.2rem solid currentColor; border-right-color: transparent; border-radius: 50%;
	animation: ssf-spin 0.7s linear infinite, ssf-sk-in 0.2s 0.15s both;
}

/* Navigation progress bar: fixed, transform-only (no layout impact), never intercepts input. */
.ssf-progress { position: fixed; top: 0; left: 0; right: 0; height: 0.3rem; z-index: 100000; pointer-events: none; opacity: 0; transition: opacity 0.25s ease 0.1s; }
.ssf-progress.is-active { opacity: 1; transition-delay: 0s; }
.ssf-progress__bar { height: 100%; background: var(--color-burgundy); transform: scaleX(0); transform-origin: 0 50%; transition: transform 0.3s ease-out; box-shadow: 0 0 0.6rem rgba(128, 0, 32, 0.35); }

/* Transition skeleton: only after a genuinely slow navigation (> 450 ms), below the header. */
.ssf-nav-skeleton { position: fixed; left: 0; right: 0; bottom: 0; top: var(--header-bottom, 0px); z-index: 3; background: #fff; pointer-events: none; overflow: hidden; animation: ssf-sk-in 0.2s ease both; }
.ssf-nav-skeleton__inner { padding-top: 3rem; }
.ssf-nav-skeleton .ssf-sk-block { border-radius: 0.2rem; margin-bottom: 1.2rem; }
.ssf-nav-skeleton .sk-title { height: 3.2rem; width: min(60%, 36rem); margin-bottom: 2.5rem; }
.ssf-nav-skeleton .sk-line { height: 1.4rem; width: 100%; }
.ssf-nav-skeleton .sk-line--short { width: 60%; }
.ssf-nav-skeleton .sk-line--tiny { width: 30%; }
.ssf-nav-skeleton .sk-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--grid-v, 0.8rem) var(--grid-h, 0.8rem); }
.ssf-nav-skeleton .sk-square { aspect-ratio: 1 / 1; }
.ssf-nav-skeleton .sk-product { display: grid; grid-template-columns: 1fr; gap: 3rem; }
.ssf-nav-skeleton .sk-button { height: 4.5rem; width: 100%; max-width: 44rem; }
.ssf-nav-skeleton .sk-article { max-width: 72.6rem; margin: 0 auto; }
.ssf-nav-skeleton .sk-hero { aspect-ratio: 16 / 9; margin-bottom: 3rem; }
@media screen and (min-width: 750px) {
	.ssf-nav-skeleton .sk-grid { grid-template-columns: repeat(4, 1fr); }
	.ssf-nav-skeleton .sk-product { grid-template-columns: 1.4fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.ssf-sk, .ssf-sk-block { animation: none; background-image: none; }
	.ssf-progress, .ssf-progress__bar { transition: none; }
	.product-form__submit.loading::before { animation: none; border-right-color: currentColor; opacity: 0.6; }
	.ssf-nav-skeleton { animation: none; }
}
