/* ==========================================================================
   Aura Shoes — main stylesheet
   Layout language follows the reference store (Shopify Dawn): clean white
   canvas, 120rem page width, square buttons, slide-in reveals. Brand layer:
   Aura brown + cream, Cormorant Garamond display type to echo the logo.
   ========================================================================== */

/* ---------- Tokens ---------- */
:root {
	--c-brand: #5a3212;
	--c-dark: #24160d;
	--c-text: #121212;
	--c-text-75: rgba(18, 18, 18, .75);
	--c-text-55: rgba(18, 18, 18, .55);
	--c-line: rgba(18, 18, 18, .1);
	--c-line-strong: rgba(18, 18, 18, .55);
	--c-bg: #ffffff;
	--c-cream: #f7f1ea;
	--c-blush: #f6e6e1;
	--c-card: #f6f2ee;
	--c-sale: #a3262b;
	--c-success: #2f6b3a;
	--c-star: #d7a12a;
	--c-whatsapp: #25d366;

	--font-body: "Assistant", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--font-display: "Cormorant Garamond", "Bodoni MT", Georgia, serif;

	--page-width: 120rem;
	--gutter: 1.5rem;
	--header-height: 7rem;
	--ease-out: cubic-bezier(0, 0, .3, 1);
	--ease-smooth: cubic-bezier(.25, .46, .45, .94);
	--duration-short: .1s;
	--duration-default: .2s;
	--duration-long: .5s;
	--duration-extra-long: .6s;
	--radius-pill: 4rem;
}
@media (min-width: 750px) {
	:root { --gutter: 5rem; --header-height: 8.2rem; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 62.5%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: var(--c-bg);
	color: var(--c-text-75);
	font-family: var(--font-body);
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: .06rem;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
@media (min-width: 750px) { body { font-size: 1.6rem; } }
body.is-locked { overflow: hidden; }
.site-main { flex: 1 0 auto; }
.site-main:focus { outline: none; }

h1, h2, h3, h4, h5, h6, .h0, .h1, .h2, .h3 {
	color: var(--c-text);
	font-family: var(--font-body);
	font-weight: 400;
	letter-spacing: .06rem;
	line-height: 1.3;
	margin: 0 0 1.5rem;
	word-break: break-word;
}
h1 { font-size: 3rem; }
h2 { font-size: 2.4rem; }
h3 { font-size: 1.8rem; }
h4 { font-size: 1.5rem; }
@media (min-width: 750px) {
	h1 { font-size: 4rem; }
	h2 { font-size: 2.4rem; }
}
p { margin: 0 0 1.5rem; }
a { color: var(--c-text); text-decoration-thickness: .1rem; text-underline-offset: .3rem; }
a:not([href]) { cursor: not-allowed; }
img, video { max-width: 100%; height: auto; display: block; }
ul, ol { padding-left: 2rem; }
hr { border: 0; border-top: .1rem solid var(--c-line); margin: 4rem 0; }
button { font-family: inherit; color: inherit; cursor: pointer; }
::selection { background: rgba(90, 50, 18, .18); }
:focus-visible { outline: .2rem solid rgba(18, 18, 18, .5); outline-offset: .3rem; box-shadow: 0 0 0 .3rem #fff, 0 0 .5rem .4rem rgba(18, 18, 18, .3); }
.screen-reader-text, .visually-hidden {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0 0 0 0); word-wrap: normal !important; border: 0;
}
.skip-to-content { position: absolute; left: -999rem; top: 1rem; z-index: 1000; background: #fff; padding: 1rem 2rem; }
.skip-to-content:focus { left: 1rem; }
.center { text-align: center; }
.full-unstyled-link { text-decoration: none; color: currentColor; display: block; }

.page-width { max-width: var(--page-width); margin: 0 auto; padding: 0 var(--gutter); }
.page-width--narrow { max-width: 82rem; }
@media (min-width: 750px) { .page-width--narrow { padding: 0 9rem; max-width: 90rem; } }

.section-padding { padding-top: 4rem; padding-bottom: 5rem; }
.section-padding--small { padding-top: 2.4rem; padding-bottom: 3rem; }
@media (min-width: 750px) {
	.section-padding { padding-top: 5.6rem; padding-bottom: 7.2rem; }
	.section-padding--small { padding-top: 3.6rem; padding-bottom: 4rem; }
}

.eyebrow {
	font-size: 1.2rem;
	letter-spacing: .3rem;
	text-transform: uppercase;
	color: var(--c-brand);
	margin-bottom: 1rem;
	font-weight: 600;
}

/* Brand serif display */
.hero__heading, .image-with-text__heading, .rich-text__heading, .page-banner__title,
.collection-hero__title, .product__title, .page-title {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: .02rem;
	line-height: 1.08;
}

/* ---------- Buttons ---------- */
/* Colours are custom properties set at zero specificity so any modifier class wins. */
:where(.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit) {
	--btn-bg: var(--c-brand);
	--btn-fg: #fff;
	--btn-border: var(--c-brand);
}
.button, button.button, a.button, input[type="submit"].button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .elementor a.button, .elementor button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .8rem;
	min-width: 12rem;
	min-height: 4.6rem;
	padding: .9rem 3rem;
	border: 0;
	border-radius: 0;
	background: var(--btn-bg);
	color: var(--btn-fg);
	box-shadow: 0 0 0 .1rem var(--btn-border);
	font: 500 1.5rem/1.2 var(--font-body);
	letter-spacing: .1rem;
	text-decoration: none;
	text-align: center;
	position: relative;
	cursor: pointer;
	transition: box-shadow var(--duration-short) ease, background-color var(--duration-default) ease, color var(--duration-default) ease;
	-webkit-appearance: none;
	appearance: none;
}
.button:hover, button.button:hover, a.button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .elementor a.button:hover, .elementor button.button:hover {
	box-shadow: 0 0 0 .2rem var(--btn-border);
	background: var(--btn-bg);
	color: var(--btn-fg);
}
.button:active { transform: translateY(1px); }
.button--secondary, a.button--secondary, button.button--secondary {
	--btn-bg: #fff;
	--btn-fg: var(--c-text);
	--btn-border: var(--c-text);
}
.button--secondary:hover { --btn-bg: var(--c-text); --btn-fg: #fff; }
.button--full { width: 100%; }
.button--small { min-height: 3.6rem; min-width: 0; padding: .6rem 1.6rem; font-size: 1.3rem; }
.button:disabled, .button.disabled, .button[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.button.loading { color: transparent !important; pointer-events: none; }
.button.loading::after {
	content: ""; position: absolute; width: 1.8rem; height: 1.8rem; border-radius: 50%;
	border: .2rem solid currentColor; border-color: var(--btn-fg) transparent var(--btn-fg) transparent;
	animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
a.added_to_cart { display: none !important; }

.link-arrow { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--c-text); font-size: 1.4rem; letter-spacing: .1rem; }
.link-arrow .icon { width: 1.4rem; transition: transform var(--duration-default) var(--ease-out); }
.link-arrow:hover .icon { transform: translateX(.4rem); }

.icon { width: 2rem; height: 2rem; flex-shrink: 0; display: block; }

/* ---------- Form fields (Dawn floating labels) ---------- */
.field { position: relative; width: 100%; display: flex; transition: box-shadow var(--duration-short) ease; }
.field::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	box-shadow: 0 0 0 .1rem var(--c-line-strong);
	transition: box-shadow var(--duration-short) ease;
}
.field:hover::after { box-shadow: 0 0 0 .2rem var(--c-line-strong); }
.field__input {
	flex-grow: 1;
	width: 100%;
	min-height: 4.6rem;
	padding: 1.5rem;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: #fff;
	color: var(--c-text);
	font: 1.6rem var(--font-body);
	letter-spacing: .04rem;
	-webkit-appearance: none;
	appearance: none;
}
.field__input:focus { outline: none; }
.field:focus-within::after { box-shadow: 0 0 0 .2rem var(--c-text); }
.field__input::placeholder { opacity: 0; }
.field__label {
	position: absolute;
	left: 1.5rem;
	top: 1.2rem;
	font-size: 1.6rem;
	color: var(--c-text-75);
	pointer-events: none;
	transition: top var(--duration-short) ease, font-size var(--duration-short) ease;
	letter-spacing: .1rem;
	line-height: 1.5;
}
.field__input:focus ~ .field__label,
.field__input:not(:placeholder-shown) ~ .field__label {
	top: .4rem;
	font-size: 1rem;
	letter-spacing: .04rem;
}
.field__input:focus, .field__input:not(:placeholder-shown) { padding: 2.2rem 1.5rem .8rem; }
.text-area { min-height: 12rem; resize: vertical; }
.field__button {
	position: absolute; right: 0; top: 0; height: 100%; width: 4.6rem; border: 0; background: transparent;
	display: flex; align-items: center; justify-content: center; color: var(--c-text);
}
.field__button .icon { width: 1.8rem; }

/* Generic inputs (WooCommerce forms) */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"],
input[type="search"], input[type="url"], textarea, select, .select2-container .select2-selection--single {
	font: 1.5rem var(--font-body);
	letter-spacing: .04rem;
	color: var(--c-text);
	background: #fff;
	border: .1rem solid var(--c-line-strong);
	border-radius: 0;
	min-height: 4.6rem;
	padding: 1rem 1.4rem;
	width: 100%;
	transition: box-shadow var(--duration-short) ease, border-color var(--duration-short) ease;
}
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--c-text); box-shadow: 0 0 0 .1rem var(--c-text); }
select {
	-webkit-appearance: none; appearance: none; padding-right: 4rem; cursor: pointer;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath fill='%23121212' d='M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z'/%3E%3C/svg%3E") no-repeat right 1.5rem center / 1rem;
}
label { color: var(--c-text); font-size: 1.4rem; letter-spacing: .06rem; }

/* ---------- Scroll-triggered animations (Dawn) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.scroll-trigger:not(.scroll-trigger--offscreen).animate--fade-in {
		animation: animateFadeIn var(--duration-extra-long) var(--ease-out) both;
	}
	.scroll-trigger:not(.scroll-trigger--offscreen).animate--slide-in {
		animation: animateSlideIn var(--duration-extra-long) var(--ease-out) both;
		animation-delay: calc(var(--animation-order, 0) * 75ms);
	}
	.scroll-trigger.scroll-trigger--offscreen { opacity: .01; }
	.scroll-trigger.scroll-trigger--offscreen.animate--slide-in { transform: translateY(2rem); }
	@keyframes animateSlideIn {
		from { transform: translateY(2rem); opacity: .01; }
		to { transform: translateY(0); opacity: 1; }
	}
	@keyframes animateFadeIn {
		from { opacity: .01; }
		to { opacity: 1; }
	}
}
.elementor-editor-active .scroll-trigger { opacity: 1 !important; transform: none !important; animation: none !important; }

/* ==========================================================================
   Announcement bar
   ========================================================================== */
.announcement-bar { background: var(--c-dark); color: #f4ece2; font-size: 1.3rem; position: relative; z-index: 4; }
.announcement-bar__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 4rem; }
.announcement-bar__side { display: none; }
.announcement-bar__side--end { justify-content: flex-end; }
@media (min-width: 990px) { .announcement-bar__side { display: flex; } }
@media (max-width: 989px) { .announcement-bar__inner { grid-template-columns: 1fr; padding: 0 .8rem; } }
.announcement-bar .list-social a { color: #f4ece2; }
.announcement-bar__contact { color: #f4ece2; text-decoration: none; display: inline-flex; align-items: center; gap: .6rem; font-size: 1.3rem; opacity: .9; }
.announcement-bar__contact:hover { opacity: 1; text-decoration: underline; }
.announcement-bar__contact .icon { width: 1.5rem; }
.announcement-slider { display: flex; align-items: center; justify-content: center; gap: .4rem; min-width: 0; }
.announcement-slider__track { display: grid; text-align: center; min-width: 0; }
@media (min-width: 990px) { .announcement-slider__track { min-width: 46rem; } }
.announcement-slider__item {
	grid-area: 1 / 1;
	margin: 0;
	padding: .9rem 0;
	letter-spacing: .1rem;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 1.2rem;
	line-height: 1.5;
	opacity: 0;
	visibility: hidden;
	transform: translateY(.6rem);
	transition: opacity .45s ease, transform .45s var(--ease-out), visibility .45s;
}
.announcement-slider__item.is-active { opacity: 1; visibility: visible; transform: none; }
.announcement-slider__btn { background: none; border: 0; padding: .8rem; color: inherit; opacity: .75; display: flex; }
.announcement-slider__btn:hover { opacity: 1; }
.announcement-slider__btn .icon { width: 1rem; height: 1rem; }

.list-social { display: flex; gap: .2rem; list-style: none; margin: 0; padding: 0; }
.list-social a { display: flex; padding: .9rem; color: var(--c-text); transition: transform var(--duration-short) ease; }
.list-social a:hover { transform: scale(1.07); }
.list-social .icon { width: 1.6rem; height: 1.6rem; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	position: relative;
	z-index: 3;
	background: #fff;
	border-bottom: .1rem solid var(--c-line);
}
.has-sticky-header .site-header { position: sticky; top: 0; }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header.is-animating { transition: transform .15s ease-out; }
.site-header.is-scrolled { box-shadow: 0 .4rem 1.2rem rgba(18, 18, 18, .05); }
.admin-bar.has-sticky-header .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar.has-sticky-header .site-header { top: 0; } }

.header {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	grid-template-areas: "start heading end";
	align-items: center;
	padding-top: 1rem;
	padding-bottom: 1rem;
}
@media (min-width: 990px) { .header { padding-top: 2rem; padding-bottom: .6rem; } }
.header__start { grid-area: start; display: flex; align-items: center; margin-left: -1.2rem; }
.header__end { grid-area: end; display: flex; align-items: center; justify-content: flex-end; margin-right: -1.2rem; }
.header__heading { grid-area: heading; margin: 0; line-height: 0; font-size: 0; }
.header__logo { display: inline-block; padding: .4rem; }
.header__logo img { width: 13rem; height: auto; transition: width var(--duration-default) ease; }
@media (min-width: 990px) { .header__logo img { width: 19rem; } }
.site-header.is-scrolled .header__logo img { width: 12rem; }
@media (min-width: 990px) { .site-header.is-scrolled .header__logo img { width: 15rem; } }

.header__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4.4rem;
	height: 4.4rem;
	border: 0;
	background: transparent;
	color: var(--c-text);
	position: relative;
	padding: 0;
	text-decoration: none;
}
.header__icon .icon { width: 2rem; height: 2rem; transition: transform var(--duration-short) ease; }
.header__icon:hover .icon { transform: scale(1.07); }
.header__icon--cart .icon { width: 4.4rem; height: 4.4rem; margin: 0 -1.2rem; }
.header__icon--menu { display: inline-flex; }
@media (min-width: 990px) { .header__icon--menu { display: none; } }
@media (max-width: 989px) { .header__icon--account { display: none; } }

.cart-count-bubble {
	position: absolute;
	right: .2rem;
	bottom: .6rem;
	min-width: 1.8rem;
	height: 1.8rem;
	padding: 0 .4rem;
	border-radius: 2rem;
	background: var(--c-brand);
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.8rem;
	text-align: center;
	letter-spacing: 0;
	transition: transform .3s cubic-bezier(.34, 1.56, .64, 1);
}
.cart-count-bubble.is-empty { transform: scale(0); }
.cart-count-bubble.bump { animation: bump .5s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes bump { 0% { transform: scale(1); } 40% { transform: scale(1.35); } 100% { transform: scale(1); } }

/* Desktop navigation */
.header__nav { display: none; }
@media (min-width: 990px) { .header__nav { display: block; } }
.header__menu { display: flex; justify-content: center; flex-wrap: wrap; list-style: none; margin: 0; padding: 0 0 .4rem; }
.header__menu > li { position: relative; }
.header__menu > li > a {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: 1.2rem;
	font-size: 1.4rem;
	letter-spacing: .06rem;
	color: var(--c-text-75);
	text-decoration: none;
	transition: color var(--duration-short) ease;
}
.header__menu > li > a:hover, .header__menu > li.current-menu-item > a, .header__menu > li.current-menu-ancestor > a { color: var(--c-text); }
.header__menu > li > a span, .header__menu > li > a { text-underline-offset: .4rem; }
.header__menu > li > a:hover { text-decoration: underline; }
.header__menu > li.current-menu-item > a { text-decoration: underline; }
.header__menu > li.menu-item--sale > a { color: var(--c-sale); font-weight: 700; }
.header__menu > li.menu-item-has-children > a::after {
	content: "";
	width: 1rem;
	height: .6rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform var(--duration-default) ease;
}
.header__menu > li.menu-item-has-children:hover > a::after, .header__menu > li.menu-item-has-children:focus-within > a::after { transform: rotate(180deg); }
.header__menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 20rem;
	list-style: none;
	margin: 0;
	padding: 2rem 0;
	background: #fff;
	border: .1rem solid var(--c-line);
	box-shadow: 0 1.2rem 2.4rem rgba(18, 18, 18, .06);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-1.2rem);
	transition: opacity var(--duration-default) ease, transform var(--duration-default) ease, visibility var(--duration-default);
	z-index: 5;
}
.header__menu > li:hover > .sub-menu, .header__menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.header__menu .sub-menu a {
	display: block;
	padding: .8rem 2.4rem;
	font-size: 1.4rem;
	color: var(--c-text-75);
	text-decoration: none;
	white-space: nowrap;
}
.header__menu .sub-menu a:hover { color: var(--c-text); text-decoration: underline; }
/* Mega menu: full-width columns */
.header__menu > li.menu-item--mega { position: static; }
.header__menu > li.menu-item--mega > .sub-menu {
	left: 0; right: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
	gap: 2rem 4rem;
	padding: 3.2rem max(var(--gutter), calc((100vw - var(--page-width)) / 2 + var(--gutter)));
	border-left: 0; border-right: 0;
}
.header__menu > li.menu-item--mega > .sub-menu > li > a { color: var(--c-text); font-weight: 600; padding: 0 0 .8rem; }
.header__menu > li.menu-item--mega .sub-menu .sub-menu {
	position: static; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; padding: 0; min-width: 0;
}
.header__menu > li.menu-item--mega .sub-menu .sub-menu a { padding: .5rem 0; }

/* ==========================================================================
   Drawers (menu + cart) & search modal
   ========================================================================== */
.drawer { position: fixed; inset: 0; z-index: 100; visibility: hidden; pointer-events: none; }
.drawer.is-open { visibility: visible; pointer-events: auto; }
.drawer__overlay { position: absolute; inset: 0; background: rgba(18, 18, 18, .45); opacity: 0; transition: opacity .35s ease; }
.drawer.is-open .drawer__overlay { opacity: 1; }
.drawer__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	width: min(40rem, 90vw);
	background: #fff;
	display: flex;
	flex-direction: column;
	transition: transform .4s var(--ease-smooth);
	box-shadow: 0 0 3rem rgba(0, 0, 0, .12);
}
.drawer--left .drawer__panel { left: 0; transform: translateX(-100%); }
.drawer--right .drawer__panel { right: 0; transform: translateX(100%); }
.drawer.is-open .drawer__panel { transform: none; }
.drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.2rem 1.6rem 1.2rem 2.4rem;
	border-bottom: .1rem solid var(--c-line);
	flex-shrink: 0;
}
.drawer__heading { font-size: 2rem; margin: 0; }
.drawer__logo img { width: 11rem; }
.drawer__nav { flex: 1; overflow-y: auto; padding: 1rem 0; }
.drawer__footer { padding: 2rem 2.4rem; background: var(--c-cream); }
.drawer__account { display: inline-flex; align-items: center; gap: 1rem; text-decoration: none; font-size: 1.4rem; color: var(--c-text); margin-bottom: 1rem; }
.drawer__account .icon { width: 1.8rem; }
.drawer__footer .list-social { margin-left: -.9rem; }

.mobile-menu { list-style: none; margin: 0; padding: 0; }
.mobile-menu li { position: relative; }
.mobile-menu a {
	display: block;
	padding: 1.1rem 6rem 1.1rem 2.4rem;
	font-size: 1.8rem;
	color: var(--c-text);
	text-decoration: none;
	letter-spacing: .06rem;
}
.mobile-menu a:hover { background: var(--c-cream); }
.mobile-menu .menu-item--sale > a { color: var(--c-sale); font-weight: 600; }
.mobile-menu .sub-menu { list-style: none; margin: 0; padding: 0 0 .8rem; display: none; background: #fbf8f5; }
.mobile-menu .sub-menu a { font-size: 1.6rem; padding: .9rem 2.4rem .9rem 3.6rem; color: var(--c-text-75); }
.mobile-menu .sub-menu .sub-menu a { padding-left: 4.8rem; }
.mobile-menu li.is-open > .sub-menu { display: block; animation: animateFadeIn .3s ease; }
.submenu-toggle {
	position: absolute;
	right: .8rem;
	top: .4rem;
	width: 4.4rem;
	height: 4.4rem;
	border: 0;
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
}
.submenu-toggle .icon { width: 1.2rem; transition: transform var(--duration-default) ease; }
li.is-open > .submenu-toggle .icon { transform: rotate(180deg); }

.search-modal {
	position: fixed;
	inset: 0;
	z-index: 101;
	visibility: hidden;
	pointer-events: none;
}
.search-modal::before { content: ""; position: absolute; inset: 0; background: rgba(18, 18, 18, .35); opacity: 0; transition: opacity .3s ease; }
.search-modal.is-open { visibility: visible; pointer-events: auto; }
.search-modal.is-open::before { opacity: 1; }
.search-modal__content {
	position: relative;
	background: #fff;
	max-width: none;
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding-top: 2.4rem;
	padding-bottom: 2.4rem;
	transform: translateY(-100%);
	transition: transform .35s var(--ease-smooth);
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, .08);
}
.search-modal.is-open .search-modal__content { transform: none; }
.search-modal__form { flex: 1; max-width: 74rem; margin: 0 auto; position: relative; }
.search-modal__close { flex-shrink: 0; }
.predictive-search:empty { display: none; }
.predictive-search {
	margin-top: 1rem;
	border: .1rem solid var(--c-line);
	max-height: 60vh;
	overflow-y: auto;
	background: #fff;
}
.predictive-search__heading { margin: 0; padding: 1.2rem 2rem; font-size: 1.2rem; letter-spacing: .13rem; text-transform: uppercase; color: var(--c-text-75); border-bottom: .1rem solid var(--c-line); }
.predictive-search__list { list-style: none; margin: 0; padding: .8rem 0; }
.predictive-search__item a { display: grid; grid-template-columns: 5.6rem 1fr; gap: 1.6rem; align-items: center; padding: .8rem 2rem; text-decoration: none; }
.predictive-search__item a:hover { background: var(--c-cream); }
.predictive-search__item img { width: 5.6rem; height: 5.6rem; object-fit: cover; }
.predictive-search__item h3 { font-size: 1.4rem; margin: 0; }
.predictive-search__item .price { font-size: 1.3rem; }
.predictive-search__all { display: flex; justify-content: space-between; padding: 1.4rem 2rem; border-top: .1rem solid var(--c-line); background: none; width: 100%; text-align: left; font-size: 1.4rem; text-decoration: none; }
.predictive-search__empty { padding: 1.6rem 2rem; margin: 0; }

/* ==========================================================================
   Section scaffolding (Elementor widgets)
   ========================================================================== */
.e-con > .elementor-widget[class*="elementor-widget-aura-"], .e-con-inner > .elementor-widget[class*="elementor-widget-aura-"] { width: 100%; max-width: 100%; }
.aura-section { --section-bg: #fff; background: var(--section-bg); }
.aura-section.color-cream { --section-bg: var(--c-cream); }
.aura-section.color-blush { --section-bg: var(--c-blush); }
.aura-section.color-dark { --section-bg: var(--c-dark); color: rgba(244, 236, 226, .8); }
.aura-section.color-dark h2, .aura-section.color-dark h3, .aura-section.color-dark .section-title { color: #f4ece2; }
.spacing-none { padding: 0; }
.spacing-small { padding: 2.4rem 0; }
.spacing-normal { padding: 3.6rem 0; }
.spacing-large { padding: 5.6rem 0; }
@media (min-width: 750px) {
	.spacing-small { padding: 3.6rem 0; }
	.spacing-normal { padding: 4.8rem 0; }
	.spacing-large { padding: 8rem 0; }
}
.aura-section + .aura-section.spacing-normal:not([class*="color-"]) { padding-top: 2rem; }
.section-header { margin-bottom: 2.4rem; }
.section-header--center { text-align: center; }
.section-title { font-size: 2.2rem; margin: 0 0 .6rem; }
@media (min-width: 750px) { .section-title { font-size: 2.4rem; } }
.section-subtitle { font-size: 1.4rem; margin: 0; color: var(--c-text-75); }
.section-header-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.section-header-row .section-header { margin-bottom: 2.4rem; }
.slider-nav { display: none; gap: .8rem; margin-bottom: 2.4rem; }
@media (min-width: 750px) { .slider-nav { display: flex; } }
.slider-nav.is-hidden { visibility: hidden; }
.slider-button {
	width: 4.4rem;
	height: 4.4rem;
	border-radius: 50%;
	border: .1rem solid var(--c-line);
	background: #fff;
	color: var(--c-text);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: border-color var(--duration-default) ease, transform var(--duration-default) ease, opacity var(--duration-default);
}
.slider-button:hover { border-color: var(--c-text); }
.slider-button:disabled { opacity: .35; cursor: default; border-color: var(--c-line); }
.slider-button .icon { width: 1.1rem; height: 1.1rem; }
.view-all { margin-top: 3.2rem; }

/* Horizontal sliders (products, reviews, reels) */
[data-slider] {
	display: grid;
	grid-auto-flow: column;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
}
[data-slider]::-webkit-scrollbar { display: none; }
[data-slider] > * { scroll-snap-align: start; }
[data-slider].is-dragging { scroll-snap-type: none; scroll-behavior: auto; cursor: grabbing; user-select: none; }
[data-slider].is-dragging a { pointer-events: none; }
@media (max-width: 749px) {
	[data-slider] { margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter); scroll-padding: 0 var(--gutter); }
}

/* ==========================================================================
   Hero slideshow
   ========================================================================== */
.hero { position: relative; overflow: hidden; background: var(--c-cream); }
.hero__track { display: grid; }
.hero__slide {
	grid-area: 1 / 1;
	background: var(--slide-bg, var(--c-blush));
	color: var(--c-text-75);
	opacity: 0;
	visibility: hidden;
	transition: opacity .9s ease, visibility .9s;
	overflow: hidden;
}
.hero__slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.hero__slide.tone-light { color: rgba(250, 243, 234, .82); }
.hero__slide.tone-light .hero__heading { color: #faf3ea; }
.hero__slide.tone-light .hero__eyebrow { color: #e7c9a6; }
.hero__slide.tone-light .hero__button { --btn-bg: #faf3ea; --btn-fg: var(--c-dark); --btn-border: #faf3ea; }
.hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: 2.4rem;
	padding-top: 2.4rem;
	padding-bottom: 7.2rem;
}
@media (min-width: 750px) {
	.hero__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 4rem; padding-top: 4.8rem; padding-bottom: 8rem; }
	.hero--large .hero__inner { min-height: 62rem; }
	.hero--medium .hero__inner { min-height: 48rem; }
}
.hero__content { position: relative; z-index: 1; order: 2; }
@media (min-width: 750px) { .hero__content { order: 0; padding-right: 2rem; } }
.hero__eyebrow { font-size: 1.2rem; letter-spacing: .32rem; text-transform: uppercase; font-weight: 600; color: var(--c-brand); margin-bottom: 1.6rem; }
.hero__heading { font-size: 4.4rem; margin: 0 0 1.6rem; color: var(--c-text); }
@media (min-width: 750px) { .hero__heading { font-size: 5.6rem; } }
@media (min-width: 1200px) { .hero__heading { font-size: 7.2rem; } }
.hero__text { font-size: 1.6rem; max-width: 42rem; margin-bottom: 2.8rem; }
@media (min-width: 750px) { .hero__text { font-size: 1.8rem; } }
.hero__button { min-width: 18rem; }

.hero__media { position: relative; display: flex; justify-content: center; align-items: flex-end; gap: 1.6rem; }
@media (min-width: 750px) { .hero__media { justify-content: flex-end; gap: 2.4rem; } }
.hero .hero__img { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: rgba(0, 0, 0, .04); }
.hero .hero__img img { width: 100%; height: 100%; object-fit: cover; }
.hero .hero__img--main { width: 100%; }
.hero .hero__media--double .hero__img--main { width: 62%; }
.hero .hero__img--second { width: 38%; transform: translateY(3.2rem); }
@media (max-width: 749px) {
	.hero .hero__img--main, .hero .hero__media--double .hero__img--main { width: 72%; }
	.hero .hero__img--second { width: 40%; position: absolute; right: 0; bottom: -2rem; box-shadow: 0 1rem 3rem rgba(0, 0, 0, .15); }
	.hero .hero__media--double { justify-content: flex-start; padding-bottom: 2rem; }
}
@media (prefers-reduced-motion: no-preference) {
	.hero__slide.is-active .hero__img img { animation: kenBurns 9s ease-out both; }
	.hero__slide.is-active .hero__img--second img { animation-duration: 11s; }
	.hero__slide.is-active .hero__content > * { animation: animateSlideIn .9s var(--ease-out) both; }
	.hero__slide.is-active .hero__content > :nth-child(2) { animation-delay: .1s; }
	.hero__slide.is-active .hero__content > :nth-child(3) { animation-delay: .2s; }
	.hero__slide.is-active .hero__content > :nth-child(4) { animation-delay: .3s; }
	.hero__slide.is-active .hero__img--main { animation: heroRise 1.1s var(--ease-out) both; }
	.hero__slide.is-active .hero__img--second { animation: heroRiseOffset 1.2s .15s var(--ease-out) both; }
}
@keyframes kenBurns { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes heroRise { from { clip-path: inset(12% 0 0 0); opacity: .4; } to { clip-path: inset(0); opacity: 1; } }
@keyframes heroRiseOffset { from { clip-path: inset(16% 0 0 0); opacity: 0; } to { clip-path: inset(0); opacity: 1; } }

.hero__controls {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 1.6rem;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .8rem;
}
@media (min-width: 750px) { .hero__controls { justify-content: flex-start; bottom: 2.4rem; } }
.hero__controls .slider-button { background: rgba(255, 255, 255, .85); border-color: transparent; width: 3.6rem; height: 3.6rem; }
.hero__controls .slider-button:hover { background: #fff; }
.hero__dots { display: flex; gap: .4rem; }
.hero__dot { width: 4.4rem; height: 3.6rem; padding: 0; border: 0; background: none; display: flex; align-items: center; }
.hero__dot span { position: relative; width: 100%; height: .2rem; background: rgba(18, 18, 18, .2); overflow: hidden; }
.hero__dot span::after { content: ""; position: absolute; inset: 0; background: var(--c-text); transform: scaleX(0); transform-origin: left; }
.hero__dot.is-active span::after { transform: scaleX(1); }
.hero[data-playing] .hero__dot.is-active span::after { animation: dotProgress var(--slide-duration, 6s) linear both; }
@keyframes dotProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.hero.is-light .hero__dot span { background: rgba(255, 255, 255, .3); }
.hero.is-light .hero__dot span::after { background: #fff; }
.hero__pause-icon { width: 1rem; height: 1.1rem; border-left: .25rem solid currentColor; border-right: .25rem solid currentColor; }
.hero:not([data-playing]) .hero__pause-icon { border: 0; width: 0; height: 0; border-left: .9rem solid currentColor; border-top: .55rem solid transparent; border-bottom: .55rem solid transparent; margin-left: .2rem; }

/* ==========================================================================
   Collection list
   ========================================================================== */
.collection-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem .8rem; }
@media (min-width: 750px) {
	.collection-list.grid--3 { grid-template-columns: repeat(3, 1fr); }
	.collection-list.grid--4 { grid-template-columns: repeat(4, 1fr); }
	.collection-list.grid--5 { grid-template-columns: repeat(5, 1fr); }
}
.collection-card { display: block; text-decoration: none; color: var(--c-text); }
.collection-card__media { overflow: hidden; aspect-ratio: 1; background: var(--c-card); }
.ratio-portrait .collection-card__media { aspect-ratio: 4 / 5; }
.collection-card .collection-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--duration-long) var(--ease-smooth); }
.collection-card:hover .collection-card__media img { transform: scale(1.03); }
.collection-card__title { display: flex; align-items: center; gap: .8rem; margin: 1.2rem 0 0; font-size: 1.6rem; }
@media (min-width: 750px) { .collection-card__title { font-size: 1.8rem; } }
.collection-card__title .icon { width: 1.2rem; transition: transform var(--duration-short) ease; }
.collection-card:hover .collection-card__title { text-decoration: underline; text-underline-offset: .3rem; }
.collection-card:hover .collection-card__title .icon { transform: translateX(.4rem); }

/* ==========================================================================
   Product grid + cards
   ========================================================================== */
.product-grid, ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2.4rem .8rem;
}
ul.products::before, ul.products::after { display: none !important; }
ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }
@media (min-width: 750px) {
	.product-grid--3, ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.product-grid--4, .product-grid--5, ul.products.columns-4, ul.products.columns-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 990px) {
	.product-grid--4, ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.product-grid--5, ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.product-grid, ul.products { gap: 3.2rem .8rem; }
}
.product-grid--slider { grid-template-columns: none !important; grid-auto-columns: calc((100% - .8rem) / 2); }
@media (max-width: 749px) { .product-grid--slider { grid-auto-columns: 42%; } }
@media (min-width: 750px) { .product-grid--slider.product-grid--3, .product-grid--slider.product-grid--4, .product-grid--slider.product-grid--5 { grid-auto-columns: calc((100% - 1.6rem) / 3); } }
@media (min-width: 990px) {
	.product-grid--slider.product-grid--4 { grid-auto-columns: calc((100% - 2.4rem) / 4); }
	.product-grid--slider.product-grid--5 { grid-auto-columns: calc((100% - 3.2rem) / 5); }
}

.card-wrapper { position: relative; height: 100%; display: flex; flex-direction: column; }
.card { position: relative; }
.card__media { display: block; overflow: hidden; }
.card .media { position: relative; aspect-ratio: 4 / 5; background: var(--c-card); overflow: hidden; }
.card .media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity var(--duration-long) ease, transform var(--duration-extra-long) var(--ease-smooth); }
.card .media .media__secondary { opacity: 0; }
@media (hover: hover) {
	.card-wrapper:hover .card .media img { transform: scale(1.03); }
	.card-wrapper:hover .card .media--hover-effect .media__primary { opacity: 0; }
	.card-wrapper:hover .card .media--hover-effect .media__secondary { opacity: 1; }
}
.card__badges { position: absolute; left: 1rem; bottom: 1rem; z-index: 1; display: flex; gap: .4rem; pointer-events: none; }
.badge {
	display: inline-block;
	padding: .4rem 1.2rem .5rem;
	border-radius: var(--radius-pill);
	font-size: 1.2rem;
	letter-spacing: .1rem;
	line-height: 1;
	font-weight: 600;
	background: var(--c-text);
	color: #fff;
}
.badge--sale { background: var(--c-sale); }
.badge--soldout { background: #fff; color: var(--c-text); border: .1rem solid var(--c-text); }
.badge--new { background: var(--c-brand); }
.card__quick {
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	z-index: 2;
	opacity: 0;
	transform: translateY(1rem);
	transition: opacity var(--duration-default) ease, transform var(--duration-default) var(--ease-out);
}
.card__quick .button { width: 100%; --btn-bg: rgba(255, 255, 255, .94); --btn-border: rgba(18, 18, 18, .2); }
.card__quick .button:hover { --btn-bg: var(--c-text); --btn-fg: #fff; --btn-border: var(--c-text); }
@media (hover: hover) and (min-width: 750px) {
	.card-wrapper:hover .card__quick, .card-wrapper:focus-within .card__quick { opacity: 1; transform: none; }
	.card-wrapper:hover .card__badges { opacity: 0; }
}
@media (hover: none), (max-width: 749px) { .card__quick { display: none; } }
.card__info { padding-top: 1.2rem; }
.card__heading { font-size: 1.3rem; letter-spacing: .06rem; line-height: 1.5; margin: 0 0 .6rem; font-weight: 400; }
@media (min-width: 750px) { .card__heading { font-size: 1.4rem; } }
.card__heading a { text-decoration: none; }
.card-wrapper:hover .card__heading a { text-decoration: underline; text-underline-offset: .3rem; }
.card__swatches { display: flex; align-items: center; gap: .6rem; margin-top: .8rem; }
.card__swatches .dot {
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 50%;
	padding: 0;
	background: var(--swatch);
	border: .1rem solid rgba(18, 18, 18, .18);
	box-shadow: 0 0 0 .2rem #fff;
	transition: box-shadow var(--duration-short) ease;
}
.card__swatches .dot.is-active, .card__swatches .dot:hover { box-shadow: 0 0 0 .2rem #fff, 0 0 0 .3rem var(--c-text); }
.card__swatch-count { font-size: 1.2rem; color: var(--c-text-55); margin-left: .2rem; }

/* Price */
.price { font-size: 1.5rem; letter-spacing: .1rem; color: var(--c-text); line-height: 1.5; }
@media (min-width: 750px) { .price { font-size: 1.6rem; } }
.price del { color: var(--c-text-55); font-size: 1.3rem; margin-right: .8rem; }
.price ins { text-decoration: none; color: var(--c-sale); }
.price .woocommerce-Price-currencySymbol { margin-right: .1rem; }
.price--large { font-size: 2rem; }
.price--large del { font-size: 1.6rem; }

/* Ratings */
.rating { display: inline-flex; align-items: center; gap: .6rem; font-size: 1.4rem; text-decoration: none; }
.rating__stars { position: relative; display: inline-block; letter-spacing: .15rem; line-height: 1; }
.rating__stars::before {
	content: "★★★★★";
	background: linear-gradient(90deg, var(--c-star) calc(var(--rating) / 5 * 100%), rgba(18, 18, 18, .15) calc(var(--rating) / 5 * 100%));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.rating__count { font-size: 1.2rem; color: var(--c-text-55); }
.star-rating {
	position: relative;
	display: inline-block;
	overflow: hidden;
	width: 5.6em;
	height: 1.1em;
	line-height: 1;
	font-size: 1.4rem;
	letter-spacing: .12em;
}
.star-rating::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: rgba(18, 18, 18, .15); }
.star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; height: 100%; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--c-star); }
.star-rating strong { display: none; }

/* ==========================================================================
   Image with text
   ========================================================================== */
.image-with-text__grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.image-with-text__grid > *, .hero__inner > *, .contact__grid > *, .footer__top > *, .collection-hero__inner > * { min-width: 0; }
@media (min-width: 750px) {
	.image-with-text__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
	.image-with-text__grid.image-right .image-with-text__media { order: 2; }
}
.image-with-text__media { overflow: hidden; aspect-ratio: 4 / 5; background: var(--c-card); }
@media (min-width: 990px) { .image-with-text__media { aspect-ratio: 1; } }
.image-with-text .image-with-text__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-smooth); }
.image-with-text__grid:hover .image-with-text__media img { transform: scale(1.03); }
.image-with-text__content {
	position: relative;
	z-index: 1;
	background: var(--section-bg);
	padding: 3.2rem 0 0;
}
@media (min-width: 750px) {
	.image-with-text__content { padding: 4.8rem 5rem; margin-top: 4.8rem; }
	.image-left .image-with-text__content { margin-left: -4rem; }
	.image-right .image-with-text__content { margin-right: -4rem; }
}
@media (min-width: 990px) { .image-with-text__content { padding: 6rem 7rem; } }
.image-with-text__heading { font-size: 3.2rem; margin-bottom: 1.6rem; }
@media (min-width: 750px) { .image-with-text__heading { font-size: 4rem; } }
.image-with-text__text { margin-bottom: 2.4rem; }
.image-with-text__price { font-size: 1.3rem; letter-spacing: .13rem; text-transform: uppercase; color: var(--c-brand); font-weight: 600; margin-bottom: 2.4rem; }

/* ==========================================================================
   Marquee
   ========================================================================== */
.marquee { overflow: hidden; white-space: nowrap; user-select: none; }
.marquee--dark { background: var(--c-dark); color: #f4ece2; padding: 1.6rem 0; }
.marquee--light { background: #fff; color: var(--c-brand); padding: 2.4rem 0; border-top: .1rem solid var(--c-line); border-bottom: .1rem solid var(--c-line); }
.marquee__track { display: flex; width: max-content; animation: marquee var(--marquee-speed, 30s) linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__group { display: flex; align-items: center; flex-shrink: 0; }
.marquee__item { padding: 0 2.4rem; text-transform: uppercase; letter-spacing: .3rem; font-size: 1.3rem; font-weight: 600; }
.marquee--light .marquee__item { text-transform: none; letter-spacing: .05rem; font-family: var(--font-display); font-style: italic; font-size: 3.6rem; font-weight: 500; }
.marquee__sep { opacity: .6; font-size: 1.1rem; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee__track { animation: none; } }

/* ==========================================================================
   Reels
   ========================================================================== */
.reels__list { list-style: none; margin: 0; padding: 0; gap: 1.2rem; grid-auto-columns: 46%; }
@media (min-width: 750px) { .reels__list { grid-auto-columns: calc((100% - 3.6rem) / 4); } }
@media (min-width: 990px) { .reels__list { grid-auto-columns: calc((100% - 6rem) / 6); } }
.reel__inner {
	position: relative;
	display: block;
	aspect-ratio: 9 / 15;
	border-radius: 1.6rem;
	overflow: hidden;
	background: var(--c-card);
	color: #fff;
	text-decoration: none;
	isolation: isolate;
}
.reel__inner::after { content: ""; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(0, 0, 0, .45)); z-index: 0; pointer-events: none; }
.reels .reel__inner img, .reel__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform var(--duration-extra-long) var(--ease-smooth); }
.reel__inner:hover img { transform: scale(1.05); }
.reel__play {
	position: absolute; top: 50%; left: 50%; z-index: 1; width: 4.8rem; height: 4.8rem; margin: -2.4rem 0 0 -2.4rem;
	border-radius: 50%; background: rgba(18, 18, 18, .55); display: flex; align-items: center; justify-content: center;
	transition: opacity var(--duration-default);
}
.reel.is-playing .reel__play { opacity: 0; }
.reel__play .icon { width: 2rem; color: #fff; }
.reel__caption {
	position: absolute;
	left: .8rem;
	right: .8rem;
	bottom: .8rem;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	padding: .8rem 1.2rem;
	border-radius: 1rem;
	background: rgba(18, 18, 18, .72);
	backdrop-filter: blur(6px);
	font-size: 1.2rem;
	font-weight: 600;
	letter-spacing: .04rem;
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.reel__caption .icon { width: 1.1rem; flex-shrink: 0; }

/* ==========================================================================
   Reviews
   ========================================================================== */
.reviews__summary { font-size: 1.5rem; color: var(--c-text); margin: 0 0 .4rem; }
.stars-static { color: var(--c-star); letter-spacing: .15rem; }
.reviews__list { list-style: none; margin: 0; padding: 0; gap: 1.2rem; grid-auto-columns: 78%; }
@media (min-width: 750px) { .reviews__list { grid-auto-columns: calc((100% - 2.4rem) / 3); } }
@media (min-width: 990px) { .reviews__list { grid-auto-columns: calc((100% - 3.6rem) / 4); } }
.review-card { background: #fff; display: flex; flex-direction: column; border: .1rem solid var(--c-line); }
.review-card__media { aspect-ratio: 4 / 5; overflow: hidden; background: var(--c-card); }
.reviews .review-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--duration-extra-long) var(--ease-smooth); }
.review-card:hover .review-card__media img { transform: scale(1.04); }
.review-card--media:not(:has(.review-card__quote)) .review-card__media { flex: 1; aspect-ratio: auto; min-height: 32rem; }
.review-card__body { padding: 1.6rem 1.8rem 2rem; display: flex; flex-direction: column; gap: .8rem; flex: 1; }
.review-card__stars { color: var(--c-star); letter-spacing: .2rem; font-size: 1.5rem; line-height: 1; }
.review-card__quote { margin: 0; font-size: 1.5rem; color: var(--c-text); line-height: 1.6; }
.review-card__author { margin: auto 0 0; font-size: 1.3rem; display: flex; flex-direction: column; line-height: 1.4; }
.review-card__author strong { color: var(--c-text); font-weight: 600; }
.review-card__author span { color: var(--c-text-55); }

/* ==========================================================================
   Features
   ========================================================================== */
.features__list { list-style: none; margin: 0; padding: 2.4rem 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.4rem 1.6rem; border-top: .1rem solid var(--c-line); border-bottom: .1rem solid var(--c-line); }
@media (min-width: 990px) { .features__list { grid-template-columns: repeat(var(--cols, 4), 1fr); padding: 3.2rem 0; } }
.feature { display: flex; gap: 1.4rem; align-items: flex-start; }
@media (max-width: 749px) { .feature { flex-direction: column; align-items: center; text-align: center; gap: 1rem; } }
.feature__icon {
	flex-shrink: 0;
	width: 4.8rem;
	height: 4.8rem;
	border-radius: 50%;
	background: var(--c-cream);
	color: var(--c-brand);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform var(--duration-long) var(--ease-out), background var(--duration-default);
}
.feature:hover .feature__icon { transform: translateY(-.3rem) rotate(-6deg); background: var(--c-blush); }
.feature__icon .icon { width: 2.4rem; height: 2.4rem; }
.feature__title { font-size: 1.5rem; font-weight: 600; margin: .2rem 0 .4rem; letter-spacing: .04rem; }
.feature__text { font-size: 1.4rem; margin: 0; line-height: 1.6; }

/* ==========================================================================
   Rich text, page banner, contact
   ========================================================================== */
.rich-text__inner.text-center { text-align: center; }
.rich-text__logo img { width: 18rem; margin: 0 auto 2.4rem; }
.text-left .rich-text__logo img { margin-left: 0; }
.rich-text__heading { font-size: 3.2rem; margin-bottom: 2rem; }
@media (min-width: 750px) { .rich-text__heading { font-size: 4.4rem; } }
.rich-text__text { font-size: 1.6rem; }
.rich-text__buttons { margin-top: 2.4rem; }

.page-banner { position: relative; background: var(--c-cream); text-align: center; padding: 5.6rem 0; overflow: hidden; }
@media (min-width: 750px) { .page-banner { padding: 8rem 0; } }
.page-banner--image { color: #fff; min-height: 40rem; display: flex; align-items: center; justify-content: center; }
.page-banner__media { position: absolute; inset: 0; }
.page-banner__media::after { content: ""; position: absolute; inset: 0; background: rgba(18, 18, 18, .35); }
.page-banner .page-banner__media img { width: 100%; height: 100%; object-fit: cover; }
.page-banner__inner { position: relative; z-index: 1; max-width: 76rem; }
.page-banner__title { font-size: 4rem; margin-bottom: 1.2rem; }
@media (min-width: 750px) { .page-banner__title { font-size: 5.6rem; } }
.page-banner--image .page-banner__title, .page-banner--image .eyebrow { color: #fff; }
.page-banner__text { font-size: 1.7rem; margin: 0 auto; max-width: 56rem; }

.contact__grid { display: grid; gap: 4rem; }
@media (min-width: 990px) { .contact__grid { grid-template-columns: 1fr 1.3fr; gap: 8rem; } }
.contact__intro { margin-bottom: 3rem; }
.contact__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2.4rem; }
.contact__list li { display: flex; gap: 1.6rem; align-items: center; }
.contact__list h3 { font-size: 1.2rem; text-transform: uppercase; letter-spacing: .2rem; margin: 0; color: var(--c-text-55); font-weight: 600; }
.contact__list a, .contact__list p { font-size: 1.8rem; color: var(--c-text); text-decoration: none; margin: 0; }
.contact__list a:hover { text-decoration: underline; }
.contact-form { display: grid; gap: 2rem; }
.contact-form__row { display: grid; gap: 2rem; }
@media (min-width: 750px) { .contact-form__row { grid-template-columns: 1fr 1fr; } }
.contact-form .button { justify-self: start; min-width: 20rem; }
.contact-form__hp { position: absolute; left: -9999px; }
.form-status { margin: 0; font-size: 1.5rem; }
.form-status.is-success { color: var(--c-success); }
.form-status.is-error { color: var(--c-sale); }

/* ==========================================================================
   Generic pages, RTE, posts
   ========================================================================== */
.page-header { margin-bottom: 3.2rem; text-align: center; }
.page-title { font-size: 4rem; margin: 0; }
@media (min-width: 750px) { .page-title { font-size: 5.2rem; } }
.rte { color: var(--c-text-75); }
.rte h2 { font-size: 2.4rem; margin-top: 3.2rem; }
.rte h3 { font-size: 1.9rem; margin-top: 2.4rem; }
.rte a { color: var(--c-text); }
.rte strong { color: var(--c-text); font-weight: 600; }
.rte ul, .rte ol { margin: 0 0 2rem; }
.rte li { margin-bottom: .6rem; }
.rte table, .size-table { width: 100%; border-collapse: collapse; margin: 2.4rem 0; font-size: 1.5rem; }
.rte th, .rte td { border: .1rem solid var(--c-line); padding: 1.2rem 1.6rem; text-align: left; }
.rte th { background: var(--c-cream); color: var(--c-text); font-weight: 600; }
.rte tbody tr:nth-child(even) td { background: #fcfaf8; }
.rte .wp-block-table { margin: 0; overflow-x: auto; }
.faq { border-top: .1rem solid var(--c-line); }
.faq:last-of-type { border-bottom: .1rem solid var(--c-line); }
.faq summary { list-style: none; cursor: pointer; padding: 1.8rem 4rem 1.8rem 0; position: relative; color: var(--c-text); font-size: 1.7rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: .4rem; top: 50%; transform: translateY(-50%); font-size: 2.4rem; font-weight: 300; transition: transform var(--duration-default) ease; }
.faq[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq p { padding-bottom: 1.6rem; margin: 0; }
.empty-state { text-align: center; padding: 4rem 0; }
.post-grid { display: grid; gap: 4rem 2.4rem; }
@media (min-width: 750px) { .post-grid { grid-template-columns: repeat(3, 1fr); } }
.post-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--c-card); margin-bottom: 1.6rem; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.post-card__meta { font-size: 1.2rem; letter-spacing: .13rem; text-transform: uppercase; margin-bottom: .6rem; }
.post-card__title { font-size: 2rem; }
.post-card__title a { text-decoration: none; }
.article__media { margin-bottom: 3.2rem; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--c-dark); color: rgba(244, 236, 226, .72); margin-top: auto; font-size: 1.5rem; }
.footer__top { display: grid; gap: 3.6rem; padding: 5.6rem 0 4rem; }
@media (min-width: 750px) { .footer__top { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 990px) { .footer__top { grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 4.8rem; padding: 7.2rem 0 5.6rem; } }
.footer__logo img { width: 16rem; margin-bottom: 2rem; }
.footer__about { max-width: 34rem; line-height: 1.7; }
.footer__heading { color: #f4ece2; font-size: 1.4rem; letter-spacing: .2rem; text-transform: uppercase; font-weight: 600; margin-bottom: 2rem; }
.footer__menu, .footer__contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.site-footer a { color: rgba(244, 236, 226, .78); text-decoration: none; transition: color var(--duration-short); }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.footer__contact li { display: flex; align-items: center; gap: 1.2rem; }
.footer__contact .icon { width: 1.8rem; height: 1.8rem; color: #e7c9a6; }
.site-footer .list-social { margin: 1.6rem 0 0 -.9rem; }
.site-footer .list-social a { color: #f4ece2; }
.footer__bottom { border-top: .1rem solid rgba(244, 236, 226, .14); padding: 2.4rem 0 3.2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.6rem; }
.footer__payments { display: flex; flex-wrap: wrap; gap: .8rem; }
.payment-pill { display: inline-flex; align-items: center; gap: .6rem; border: .1rem solid rgba(244, 236, 226, .25); border-radius: var(--radius-pill); padding: .4rem 1.2rem; font-size: 1.2rem; letter-spacing: .06rem; }
.payment-pill .icon { width: 1.6rem; height: 1.6rem; }
.footer__copyright { font-size: 1.2rem; margin: 0; letter-spacing: .06rem; }

/* WhatsApp float */
.whatsapp-float {
	position: fixed;
	right: 1.6rem;
	bottom: 1.6rem;
	z-index: 90;
	display: flex;
	align-items: center;
	gap: 0;
	height: 5.6rem;
	min-width: 5.6rem;
	padding: 0 1.6rem;
	border-radius: 3rem;
	background: var(--c-whatsapp);
	color: #fff;
	text-decoration: none;
	box-shadow: 0 .8rem 2.4rem rgba(37, 211, 102, .35);
	transition: transform var(--duration-default) ease, bottom .3s ease, gap .3s ease;
}
.whatsapp-float::before {
	content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--c-whatsapp); z-index: -1;
	animation: waPulse 2.4s ease-out infinite;
}
@keyframes waPulse { 0% { transform: scale(1); opacity: .5; } 80%, 100% { transform: scale(1.35); opacity: 0; } }
.whatsapp-float .icon { width: 2.6rem; height: 2.6rem; }
.whatsapp-float__label { max-width: 0; overflow: hidden; white-space: nowrap; font-weight: 600; font-size: 1.4rem; transition: max-width .4s ease; }
.whatsapp-float:hover { transform: translateY(-.2rem); gap: .8rem; }
.whatsapp-float:hover .whatsapp-float__label { max-width: 12rem; }
body.sticky-atc-visible .whatsapp-float { bottom: 9.6rem; }
@media (min-width: 990px) { .whatsapp-float { right: 2.4rem; bottom: 2.4rem; } }

/* Toast */
.toast {
	position: fixed;
	left: 50%;
	bottom: 2.4rem;
	z-index: 120;
	transform: translate(-50%, 150%);
	background: var(--c-text);
	color: #fff;
	padding: 1.2rem 2.4rem;
	font-size: 1.4rem;
	letter-spacing: .06rem;
	transition: transform .35s var(--ease-smooth);
	pointer-events: none;
	max-width: calc(100vw - 3.2rem);
	visibility: hidden;
}
.toast.is-visible { transform: translate(-50%, 0); visibility: visible; }

/* ==========================================================================
   Cart drawer
   ========================================================================== */
.cart-drawer__inner { display: flex; flex-direction: column; height: 100%; }
.cart-drawer__empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 1.6rem; padding: 3rem; }
.cart-drawer__empty-text { font-size: 2.4rem; color: var(--c-text); font-family: var(--font-display); }
.free-shipping { padding: 1.6rem 2.4rem; border-bottom: .1rem solid var(--c-line); font-size: 1.3rem; }
.free-shipping p { margin: 0 0 .8rem; }
.free-shipping__bar { height: .4rem; background: var(--c-line); border-radius: 1rem; overflow: hidden; }
.free-shipping__bar span { display: block; height: 100%; background: var(--c-brand); transition: width .6s var(--ease-out); }
.cart-items { list-style: none; margin: 0; padding: 0 2.4rem; flex: 1; overflow-y: auto; }
.cart-item {
	display: grid;
	grid-template-columns: 8rem 1fr auto;
	gap: 1.6rem;
	padding: 2rem 0;
	border-bottom: .1rem solid var(--c-line);
	transition: opacity var(--duration-default);
}
.cart-item.is-loading { opacity: .4; pointer-events: none; }
.cart-item__media img { width: 8rem; height: 10rem; object-fit: cover; background: var(--c-card); }
.cart-item__name { font-size: 1.4rem; color: var(--c-text); text-decoration: none; line-height: 1.4; display: block; margin-bottom: .4rem; }
.cart-item__name:hover { text-decoration: underline; }
.cart-item__price { font-size: 1.3rem; }
.cart-item__meta { font-size: 1.2rem; color: var(--c-text-55); }
.cart-item__meta dl { margin: .2rem 0; display: grid; grid-template-columns: auto 1fr; gap: 0 .6rem; }
.cart-item__meta dt, .cart-item__meta dd { margin: 0; }
.cart-item__meta dd p { margin: 0; }
.cart-item__actions { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; }
.cart-item__remove { border: 0; background: none; padding: .6rem; display: flex; color: var(--c-text-55); }
.cart-item__remove:hover { color: var(--c-text); }
.cart-item__remove .icon { width: 1.6rem; }
.cart-item__total { font-size: 1.4rem; color: var(--c-text); white-space: nowrap; }
.quantity-picker { display: inline-flex; align-items: center; border: .1rem solid var(--c-line-strong); height: 3.8rem; }
.quantity-picker__btn { width: 3.6rem; height: 100%; border: 0; background: none; display: flex; align-items: center; justify-content: center; }
.quantity-picker__btn .icon { width: 1rem; }
.quantity-picker__value { min-width: 2.8rem; text-align: center; color: var(--c-text); font-size: 1.4rem; }
.cart-drawer__footer { padding: 2rem 2.4rem 2.4rem; border-top: .1rem solid var(--c-line); background: #fff; }
.totals { display: flex; justify-content: space-between; align-items: baseline; }
.totals__label { font-size: 1.6rem; margin: 0; }
.totals__value { font-size: 1.8rem; margin: 0; color: var(--c-text); letter-spacing: .1rem; }
.cart-drawer__note { font-size: 1.2rem; margin: .4rem 0 1.6rem; color: var(--c-text-55); }
.cart-drawer__view-cart { display: block; text-align: center; margin-top: 1.2rem; font-size: 1.4rem; }

/* ==========================================================================
   Shop archive
   ========================================================================== */
.collection-hero { background: var(--c-cream); }
.collection-hero__inner { display: grid; gap: 2.4rem; padding-top: 4rem; padding-bottom: 4rem; align-items: center; }
@media (min-width: 750px) {
	.collection-hero__inner { padding-top: 5.6rem; padding-bottom: 5.6rem; }
	.collection-hero--with-image .collection-hero__inner { grid-template-columns: 1fr 1fr; gap: 6rem; padding-top: 0; padding-bottom: 0; }
}
.collection-hero__title { font-size: 4rem; margin: 0 0 1rem; }
@media (min-width: 750px) { .collection-hero__title { font-size: 5.6rem; } }
.collection-hero__description { max-width: 56rem; margin: 0; }
.collection-hero__description p:last-child { margin: 0; }
.collection-hero__image { aspect-ratio: 16 / 9; overflow: hidden; }
@media (min-width: 750px) { .collection-hero__image { aspect-ratio: 4 / 3; } }
.collection-hero .collection-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.category-pills { display: flex; gap: .8rem; overflow-x: auto; scrollbar-width: none; margin: 0 0 2.4rem; padding: .2rem; }
.category-pills::-webkit-scrollbar { display: none; }
.pill {
	flex-shrink: 0;
	padding: .8rem 1.8rem;
	border-radius: var(--radius-pill);
	border: .1rem solid var(--c-line-strong);
	text-decoration: none;
	font-size: 1.4rem;
	color: var(--c-text);
	transition: background var(--duration-default), color var(--duration-default), border-color var(--duration-default);
}
.pill:hover { border-color: var(--c-text); }
.pill.is-active { background: var(--c-text); border-color: var(--c-text); color: #fff; }
.facets { display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; margin-bottom: 2.4rem; padding-bottom: 1.6rem; border-bottom: .1rem solid var(--c-line); }
.woocommerce-result-count { margin: 0; font-size: 1.4rem; }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select { min-height: 4rem; font-size: 1.4rem; padding: .6rem 3.6rem .6rem 1.4rem; width: auto; border-color: var(--c-line); }
.woocommerce-pagination { margin-top: 4.8rem; text-align: center; }
.woocommerce-pagination ul.page-numbers, .pagination-wrap .nav-links { display: inline-flex; gap: .4rem; list-style: none; margin: 0; padding: 0; border: 0 !important; }
.woocommerce-pagination ul.page-numbers li { border: 0 !important; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 4.4rem; height: 4.4rem; text-decoration: none; color: var(--c-text); font-size: 1.4rem; }
.page-numbers.current { text-decoration: underline; text-underline-offset: .6rem; font-weight: 600; }
.page-numbers:hover { background: var(--c-cream); }
.woocommerce-info.woocommerce-no-products-found, .woocommerce-no-products-found { text-align: center; }

/* ==========================================================================
   Single product
   ========================================================================== */
.product-layout { display: grid; gap: 3.2rem; }
.product-layout > * { min-width: 0; }
@media (min-width: 990px) { .product-layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 6.4rem; align-items: start; } }
.product__media-wrapper { min-width: 0; }
@media (max-width: 749px) { .product__media-wrapper { margin: 0 calc(var(--gutter) * -1); } }
.product-media { position: relative; }
.product-media__list { list-style: none; margin: 0; padding: 0; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.product-media__list::-webkit-scrollbar { display: none; }
.product-media__item { flex: 0 0 100%; scroll-snap-align: start; }
.product-media__zoom { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--c-card); cursor: zoom-in; }
.product-media__zoom img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.product-media__zoom.is-zoomed img { transform: scale(1.8); }
.product-media__counter {
	position: absolute; right: 1.2rem; bottom: 1.2rem; z-index: 1; background: rgba(255, 255, 255, .9);
	padding: .2rem 1.2rem; border-radius: var(--radius-pill); font-size: 1.2rem; color: var(--c-text); letter-spacing: .1rem;
}
.product-media .slider-button { position: absolute; top: 50%; transform: translateY(-50%); z-index: 1; background: rgba(255, 255, 255, .9); border-color: transparent; opacity: 0; }
.product-media:hover .slider-button { opacity: 1; }
.product-media .slider-button--prev { left: 1.2rem; }
.product-media .slider-button--next { right: 1.2rem; }
@media (hover: none) { .product-media .slider-button { display: none; } }
.product-thumbs { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: .8rem; }
@media (max-width: 749px) { .product-thumbs { padding: 0 var(--gutter); grid-template-columns: repeat(5, 1fr); } }
.product-thumbs__btn { display: block; width: 100%; padding: 0; border: 0; background: var(--c-card); aspect-ratio: 1; overflow: hidden; position: relative; }
.product-thumbs__btn::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 .1rem transparent; transition: box-shadow var(--duration-short); }
.product-thumbs__btn.is-active::after { box-shadow: inset 0 0 0 .2rem var(--c-text); }
.product-thumbs__btn img { width: 100%; height: 100%; object-fit: cover; opacity: .7; transition: opacity var(--duration-default); }
.product-thumbs__btn.is-active img, .product-thumbs__btn:hover img { opacity: 1; }

.product__info-wrapper { min-width: 0; }
@media (min-width: 990px) { .product__info { position: sticky; top: calc(var(--header-height) + 4rem); } }
.product__vendor { font-size: 1.2rem; letter-spacing: .3rem; text-transform: uppercase; color: var(--c-brand); font-weight: 600; margin-bottom: .8rem; }
.product__title { font-size: 3.2rem; margin-bottom: 1.2rem; }
@media (min-width: 750px) { .product__title { font-size: 4rem; } }
.product__info .rating { margin-bottom: 1.2rem; }
.product__price { margin-bottom: .4rem; }
.product__tax { font-size: 1.3rem; color: var(--c-text-55); margin-bottom: .4rem; }
.product__sku { font-size: 1.3rem; letter-spacing: .1rem; color: var(--c-text-55); margin-bottom: 1.6rem; }
.product__short { margin-bottom: 2rem; font-size: 1.5rem; }

/* Variation form */
.product-form form.cart { margin: 0; }
.product-form table.variations { display: block; border: 0; margin: 0 0 1.2rem; }
.product-form table.variations tbody, .product-form table.variations tr, .product-form table.variations th, .product-form table.variations td { display: block; padding: 0; border: 0; background: none; text-align: left; }
.product-form table.variations tr { margin-bottom: 2rem; }
.product-form table.variations th.label { margin-bottom: .8rem; }
.product-form table.variations label { font-size: 1.4rem; letter-spacing: .1rem; color: var(--c-text-75); font-weight: 400; }
.variation-selected { color: var(--c-text); font-weight: 600; }
.swatches-select { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.swatches { display: flex; flex-wrap: wrap; gap: .8rem; }
.swatch {
	position: relative;
	padding: 0;
	background: #fff;
	border: .1rem solid var(--c-line-strong);
	color: var(--c-text);
	font-size: 1.4rem;
	letter-spacing: .1rem;
	transition: background var(--duration-short), color var(--duration-short), border-color var(--duration-short), box-shadow var(--duration-short);
}
.swatches--pill .swatch { min-width: 5.2rem; height: 4.4rem; padding: 0 1.4rem; border-radius: var(--radius-pill); }
.swatches--pill .swatch:hover { border-color: var(--c-text); }
.swatches--pill .swatch.is-selected { background: var(--c-text); border-color: var(--c-text); color: #fff; }
.swatches--color .swatch { width: 6.4rem; height: 6.4rem; overflow: hidden; border-color: var(--c-line); }
.swatches--color .swatch img { width: 100%; height: 100%; object-fit: cover; }
.swatches--color .swatch.is-selected { box-shadow: 0 0 0 .2rem #fff, 0 0 0 .3rem var(--c-text); border-color: transparent; }
.swatches--color .swatch span { padding: 0 .8rem; }
.swatch.is-disabled { opacity: .45; }
.swatch.is-disabled::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top left, transparent calc(50% - .05rem), var(--c-line-strong) calc(50% - .05rem), var(--c-line-strong) calc(50% + .05rem), transparent calc(50% + .05rem));
	border-radius: inherit;
}
.size-guide-link { display: inline-flex; align-items: center; gap: .6rem; font-size: 1.3rem; margin-top: -1rem; margin-bottom: 2rem; color: var(--c-text); }
.size-guide-link .icon { width: 1.6rem; }
.single_variation_wrap .woocommerce-variation-price { display: none; }
.woocommerce-variation-availability p, .product-form .stock { font-size: 1.3rem; margin: 0 0 1.2rem; }
.product-form .stock.in-stock { color: var(--c-success); }
.product-form .stock.out-of-stock { color: var(--c-sale); }
.woocommerce-variation-description p { font-size: 1.4rem; }
.product-form .variations_button, .product-form form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; gap: 1rem; }
.product-form .quantity { display: inline-flex; align-items: stretch; border: .1rem solid var(--c-line-strong); height: 4.6rem; flex: 0 0 auto; }
.product-form .quantity .qty { width: 4.6rem; min-height: 0; height: 100%; border: 0; padding: 0; text-align: center; font-size: 1.6rem; -moz-appearance: textfield; box-shadow: none; }
.product-form .quantity .qty::-webkit-inner-spin-button, .product-form .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.qty-btn { width: 4.2rem; border: 0; background: none; display: flex; align-items: center; justify-content: center; color: var(--c-text); }
.qty-btn .icon { width: 1rem; }
.product-form .single_add_to_cart_button {
	flex: 1 1 18rem;
	--btn-bg: #fff;
	--btn-fg: var(--c-text);
	--btn-border: var(--c-text);
}
.product-form .single_add_to_cart_button:hover { --btn-bg: var(--c-text); --btn-fg: #fff; }
.product-form .single_add_to_cart_button.disabled { opacity: 1; }
.product-form .buy-now-button { flex: 1 1 100%; }
.product__notes { list-style: none; margin: 2.4rem 0; padding: 1.6rem 2rem; display: grid; gap: 1rem; background: var(--c-cream); }
.product__notes li { display: flex; align-items: center; gap: 1.2rem; font-size: 1.4rem; color: var(--c-text); }
.product__notes .icon { color: var(--c-brand); width: 2.2rem; height: 2.2rem; }
.accordions { margin-top: 2.4rem; }
.accordion { border-top: .1rem solid var(--c-line); }
.accordion:last-child { border-bottom: .1rem solid var(--c-line); }
.accordion summary { list-style: none; display: flex; align-items: center; justify-content: space-between; padding: 1.6rem 0; cursor: pointer; color: var(--c-text); }
.accordion summary::-webkit-details-marker { display: none; }
.accordion__title { display: flex; align-items: center; gap: 1.2rem; font-size: 1.5rem; }
.accordion__title .icon { width: 2rem; color: var(--c-brand); }
.accordion summary > .icon { width: 1.1rem; transition: transform var(--duration-default) ease; }
.accordion[open] summary > .icon { transform: rotate(180deg); }
.accordion__content { padding: 0 0 2rem; font-size: 1.5rem; }
.accordion[open] .accordion__content { animation: animateFadeIn .4s ease; }
.product__share { display: flex; align-items: center; gap: 1rem; margin-top: 2rem; font-size: 1.3rem; }
.product__share a { display: flex; color: var(--c-text); padding: .4rem; }
.product__share .icon { width: 1.8rem; height: 1.8rem; }
.product__copy { border: 0; background: none; text-decoration: underline; text-underline-offset: .3rem; font-size: 1.3rem; padding: .4rem; }

/* Product reviews */
.product-reviews { border-top: .1rem solid var(--c-line); }
.woocommerce-Reviews-title, #reviews h2 { font-size: 2.4rem; }
#reviews .commentlist { list-style: none; padding: 0; margin: 0 0 3.2rem; display: grid; gap: 1.6rem; }
#reviews .commentlist li .comment_container { display: flex; gap: 1.6rem; padding: 2rem; background: var(--c-cream); }
#reviews .commentlist img.avatar { width: 4.8rem; height: 4.8rem; border-radius: 50%; }
#reviews .comment-text { flex: 1; }
#reviews .comment-text .meta { font-size: 1.3rem; margin: .4rem 0; }
#review_form_wrapper { max-width: 64rem; }
#review_form .comment-reply-title { font-size: 2rem; color: var(--c-text); display: block; margin-bottom: 1.6rem; }
#review_form p { margin-bottom: 1.6rem; }
#review_form label { display: block; margin-bottom: .4rem; }
p.stars { margin: .4rem 0 1.6rem; }
p.stars span { display: inline-flex; gap: .2rem; }
p.stars a { position: relative; display: inline-block; width: 2.4rem; height: 2.4rem; text-indent: -999rem; overflow: hidden; text-decoration: none; }
p.stars a::before { content: "☆"; position: absolute; inset: 0; text-indent: 0; font-size: 2.4rem; line-height: 1; color: var(--c-star); }
p.stars:hover a::before, p.stars.selected a.active::before, p.stars.selected a:not(.active)::before { content: "★"; }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { content: "☆"; }
.woocommerce-noreviews { color: var(--c-text-55); }

.related-products { border-top: .1rem solid var(--c-line); }

/* Sticky add to cart */
.sticky-atc {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 80;
	background: #fff;
	border-top: .1rem solid var(--c-line);
	box-shadow: 0 -.6rem 2rem rgba(18, 18, 18, .06);
	transform: translateY(110%);
	transition: transform .35s var(--ease-smooth);
}
.sticky-atc.is-visible { transform: none; }
.sticky-atc__inner { display: flex; align-items: center; gap: 1.2rem; padding-top: 1rem; padding-bottom: 1rem; }
.sticky-atc__img { width: 5.2rem; height: 5.2rem; object-fit: cover; }
.sticky-atc__text { flex: 1; min-width: 0; }
.sticky-atc__title { margin: 0; font-size: 1.4rem; color: var(--c-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sticky-atc .price { font-size: 1.4rem; }
.sticky-atc .button { min-width: 0; padding: .8rem 2rem; }
@media (max-width: 749px) { .sticky-atc__img { display: none; } }

/* ==========================================================================
   WooCommerce notices, cart, checkout, account
   ========================================================================== */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	list-style: none;
	margin: 0 0 2.4rem;
	padding: 1.4rem 2rem;
	background: var(--c-cream);
	border-left: .3rem solid var(--c-brand);
	color: var(--c-text);
	font-size: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.woocommerce-error { border-left-color: var(--c-sale); background: #fbefee; flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; min-height: 3.8rem; font-size: 1.3rem; padding: .6rem 1.6rem; }
.woocommerce-info a:not(.button), .woocommerce-message a:not(.button) { font-weight: 600; }

/* Cart page */
.woocommerce-cart .rte, .woocommerce-checkout .rte, .woocommerce-account .rte { color: var(--c-text-75); }
table.shop_table { width: 100%; border-collapse: collapse; border: 0; margin: 0 0 3.2rem; font-size: 1.5rem; }
table.shop_table th { text-align: left; font-weight: 400; font-size: 1.2rem; letter-spacing: .13rem; text-transform: uppercase; color: var(--c-text-75); padding: 1.2rem; border-bottom: .1rem solid var(--c-line); }
table.shop_table td { padding: 2rem 1.2rem; border-bottom: .1rem solid var(--c-line); vertical-align: middle; color: var(--c-text); }
table.shop_table td.product-thumbnail img { width: 9rem; height: 11rem; object-fit: cover; }
table.shop_table td.product-name a { text-decoration: none; }
table.shop_table td.product-name a:hover { text-decoration: underline; }
table.shop_table td.product-name dl.variation { display: grid; grid-template-columns: auto 1fr; gap: 0 .6rem; font-size: 1.3rem; color: var(--c-text-55); margin: .4rem 0 0; }
table.shop_table td.product-name dl.variation dd, table.shop_table td.product-name dl.variation dt { margin: 0; }
table.shop_table td.product-name dl.variation p { margin: 0; }
table.shop_table a.remove { display: inline-flex; width: 3.2rem; height: 3.2rem; align-items: center; justify-content: center; border-radius: 50%; text-decoration: none; font-size: 2rem; color: var(--c-text-55) !important; }
table.shop_table a.remove:hover { background: var(--c-cream); color: var(--c-sale) !important; }
table.shop_table .quantity .qty { width: 8rem; text-align: center; }
table.shop_table td.actions { padding-top: 2.4rem; }
table.shop_table td.actions .coupon { display: flex; gap: 1rem; flex-wrap: wrap; }
table.shop_table td.actions .coupon .input-text { width: 20rem; }
table.shop_table td.actions > .button { float: right; }
.cart-collaterals { display: flex; justify-content: flex-end; }
.cart-collaterals .cart_totals { width: 100%; max-width: 44rem; float: none; background: var(--c-cream); padding: 2.4rem; }
.cart_totals h2 { font-size: 2rem; }
.cart_totals table.shop_table { margin-bottom: 2rem; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td { padding: 1.2rem 0; background: none; text-transform: none; letter-spacing: .06rem; font-size: 1.5rem; }
.cart_totals .order-total td, .cart_totals .order-total th { font-size: 1.8rem; color: var(--c-text); }
.wc-proceed-to-checkout .checkout-button { width: 100%; }
#shipping_method { list-style: none; margin: 0; padding: 0; }
#shipping_method li { margin-bottom: .4rem; }
.woocommerce-shipping-destination, .woocommerce-shipping-calculator { font-size: 1.3rem; }
@media (max-width: 749px) {
	table.shop_table_responsive thead { display: none; }
	table.shop_table_responsive tr { display: block; border-bottom: .1rem solid var(--c-line); padding: 1rem 0; }
	table.shop_table_responsive td { display: flex; justify-content: space-between; align-items: center; text-align: right !important; border: 0; padding: .6rem 0; }
	table.shop_table_responsive td::before { content: attr(data-title); font-size: 1.2rem; letter-spacing: .1rem; text-transform: uppercase; color: var(--c-text-55); }
	table.shop_table_responsive td.product-remove::before, table.shop_table_responsive td.actions::before, table.shop_table_responsive td.product-thumbnail::before { display: none; }
	table.shop_table_responsive td.product-thumbnail { display: block; }
	table.shop_table_responsive td.actions { display: block; text-align: left !important; }
	table.shop_table td.actions > .button { float: none; width: 100%; margin-top: 1rem; }
}

/* Checkout */
.woocommerce-checkout .page-width { max-width: 120rem; }
form.checkout { display: grid; gap: 3.2rem; }
@media (min-width: 990px) {
	form.checkout { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 0 6.4rem; align-items: start; }
	form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
	form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
	form.checkout #order_review_heading { grid-column: 2; grid-row: 1; }
	form.checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: calc(var(--header-height) + 2.4rem); }
}
#customer_details.col2-set .col-1, #customer_details.col2-set .col-2 { float: none; width: 100%; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3, #order_review_heading { font-size: 2rem; margin: 0 0 1.6rem; }
.woocommerce form .form-row { margin: 0 0 1.6rem; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: .6rem; font-size: 1.3rem; letter-spacing: .08rem; }
.woocommerce form .form-row .required { color: var(--c-sale); text-decoration: none; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 48.5%; }
@media (max-width: 749px) { .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; } }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--c-sale); }
.select2-container .select2-selection--single { height: auto; display: flex; align-items: center; }
.select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.5; color: var(--c-text); }
.select2-container .select2-selection--single .select2-selection__arrow { height: 100%; right: 1rem; }
.select2-dropdown { border-color: var(--c-line-strong); border-radius: 0; font-size: 1.5rem; }
.select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--c-brand) !important; }
#order_review { background: var(--c-cream); padding: 2.4rem; }
#order_review table.shop_table th, #order_review table.shop_table td { padding: 1.2rem 0; background: none; font-size: 1.4rem; }
#order_review table.shop_table thead th { font-size: 1.2rem; }
#order_review .order-total th, #order_review .order-total td { font-size: 1.8rem; color: var(--c-text); }
#payment { background: #fff; padding: 2rem; }
#payment ul.payment_methods { list-style: none; margin: 0 0 1.6rem; padding: 0 0 1.6rem; border-bottom: .1rem solid var(--c-line); }
#payment ul.payment_methods li { margin-bottom: .8rem; }
#payment ul.payment_methods li label { font-size: 1.5rem; font-weight: 600; }
#payment div.payment_box { background: var(--c-cream); padding: 1.2rem 1.6rem; font-size: 1.3rem; margin-top: .8rem; }
#payment div.payment_box p:last-child { margin: 0; }
#payment .place-order { padding: 0; margin: 0; }
#place_order { width: 100%; min-height: 5.2rem; font-size: 1.6rem; }
.woocommerce-terms-and-conditions-wrapper { font-size: 1.3rem; margin-bottom: 1.6rem; }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { display: block; }
form.checkout_coupon { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.4rem; padding: 2rem; border: .1rem solid var(--c-line); }
form.checkout_coupon .form-row { margin: 0; }
form.checkout_coupon .form-row-first { flex: 1; width: auto; }

/* Order received */
.woocommerce-order { max-width: 80rem; margin: 0 auto; }
.woocommerce-thankyou-order-received { font-family: var(--font-display); font-size: 3.2rem; color: var(--c-text); text-align: center; margin-bottom: 3.2rem; }
ul.woocommerce-order-overview { list-style: none; margin: 0 0 3.2rem; padding: 2.4rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.6rem; background: var(--c-cream); }
ul.woocommerce-order-overview li { font-size: 1.2rem; letter-spacing: .1rem; text-transform: uppercase; border: 0 !important; margin: 0 !important; float: none !important; }
ul.woocommerce-order-overview li strong { display: block; font-size: 1.6rem; text-transform: none; letter-spacing: .04rem; color: var(--c-text); margin-top: .4rem; }
.woocommerce-customer-details address { font-style: normal; border: .1rem solid var(--c-line); padding: 2rem; }

/* Account */
.woocommerce-account .woocommerce { display: grid; gap: 3.2rem; }
@media (min-width: 990px) { .woocommerce-account.logged-in .woocommerce { grid-template-columns: 24rem 1fr; gap: 6.4rem; } }
.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { float: none !important; width: auto !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: .1rem solid var(--c-line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 1.2rem 0; border-bottom: .1rem solid var(--c-line); text-decoration: none; color: var(--c-text-75); }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { color: var(--c-text); padding-left: .8rem; transition: padding .2s; }
.woocommerce-account .u-columns.col2-set { display: grid; gap: 4rem; }
@media (min-width: 750px) { .woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { float: none; width: auto; }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .track_order { border: .1rem solid var(--c-line); padding: 3.2rem; margin: 0; }
.woocommerce-form-login .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.6rem; }
.woocommerce-LostPassword { font-size: 1.4rem; }
.track_order .form-row-first, .track_order .form-row-last { width: 100% !important; float: none !important; }
.woocommerce-account .addresses .title h3 { font-size: 1.8rem; }
.woocommerce-account .addresses address { font-style: normal; }
.woocommerce-orders-table .button { min-height: 3.6rem; font-size: 1.3rem; padding: .4rem 1.4rem; min-width: 0; }

/* Store notice */
.woocommerce-store-notice, p.demo_store { position: fixed; bottom: 0; left: 0; right: 0; margin: 0; padding: 1.2rem; background: var(--c-dark); color: #f4ece2; text-align: center; z-index: 99; font-size: 1.4rem; }
.woocommerce-store-notice a { color: #fff; }

/* Elementor editor niceties */
.elementor-editor-active .hero__slide { transition: none; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
