/* =============================================================================
   Astra Studio — Glass : component & layout styles
   Loaded after design-system.css. Mobile-first.
   ============================================================================= */

/* Accessibility: skip link + sr-only (Storefront ships .screen-reader-text,
   but we redefine the skip-link reveal to land on our floating bar). */
.skip-link.screen-reader-text {
	position: absolute;
	top: -100px;
	left: var(--space-sm);
	z-index: 1000;
	padding: var(--space-2xs) var(--space-sm);
	background: var(--cherry);
	color: #fff;
	border-radius: var(--r-sm);
	transition: top var(--dur) var(--ease);
}
.skip-link.screen-reader-text:focus {
	top: var(--space-2xs);
}

body {
	max-width: 100%;
	/* Storefront defaults to #fff — that shows as side gutters around
	   constrained `.col-full` pages. One continuous paper field instead. */
	background-color: var(--bg-paper) !important;
}
#page,
.site,
.site-content {
	background-color: transparent;
}

button,
input,
select,
textarea,
a {
	-webkit-tap-highlight-color: rgba(192, 30, 60, 0.18);
}

/* -----------------------------------------------------------------------------
   Announcement bar (slim glass strip, dismissible)
   -------------------------------------------------------------------------- */
:root { --as-announce-h: 0px; }
/* Height is set live from main.js to match the rendered strip. */
body.as-has-announce { --as-announce-h: 2.5rem; }

.as-announce {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	/* Sit above the fixed masthead so the strip + close control stay usable. */
	z-index: 130;
	background: var(--glass-bg);
	-webkit-backdrop-filter: var(--glass-blur);
	backdrop-filter: var(--glass-blur);
	border-bottom: 1px solid var(--border-warm);
	font-size: var(--fs-100);
	color: var(--text-ink);
}
.as-announce[hidden] { display: none !important; }
body.as-has-announce #page {
	/* Reserve the fixed strip so page content does not jump under it. */
	padding-top: var(--as-announce-h);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.as-announce { background: rgba(250, 246, 242, 0.94); }
}

.as-announce__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-sm);
	min-height: 2.45rem;
	padding-block: var(--space-3xs);
	padding-inline: 3rem;
}

.as-announce__text {
	margin: 0;
	max-width: none;
	text-align: center;
	letter-spacing: 0.01em;
}

.as-announce__close {
	position: absolute;
	right: var(--space-sm);
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: var(--text-muted);
	background: transparent;
	border: 0;
	border-radius: var(--r-sm);
	cursor: pointer;
	transition: color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.as-announce__close:hover,
.as-announce__close:focus-visible {
	color: var(--cherry-deep);
	background: var(--cherry-tint);
}
.as-announce__close svg { width: 16px; height: 16px; }

/* -----------------------------------------------------------------------------
   Floating glass header
   --------------------------------------------------------------------------
   Sticky (not fixed) so it keeps its box in flow → no content overlap and no
   layout shift. A small top gap makes it "float".
*/
.as-header {
	position: sticky;
	top: 0;
	z-index: 100;
	margin: 0;
	/* Reset Storefront's masthead defaults. */
	background: none;
	padding: 0;
	border: 0;
}
/* Storefront targets its masthead with an ID and otherwise restores a large
   vertical padding above the glass bar.  Match that specificity so the header
   starts immediately below the announcement instead of creating a phantom
   blank band on every inner page. */
#masthead.as-header {
	margin-bottom: 0;
	padding: 0;
}

/* Keep breadcrumbs airy but connected to the page they describe.  The parent
   theme's desktop spacing was designed for a traditional masthead and left an
   oversized void above product imagery once the header became compact. */
.storefront-breadcrumb {
	margin-bottom: var(--space-md);
	padding-block: var(--space-sm);
}

/* The actual frosted bar. .glass (from design-system) supplies the frost,
   border, radius, shadow and ::before specular highlight. */
.as-header__bar {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	/* col-full centers; cap the floating width and inset from the edges. */
	width: min(100% - 2 * var(--space-xs), 80rem);
	padding: var(--space-xs) var(--space-sm);
	border-radius: var(--r-lg);
	/* Smoothly animate the condense-on-scroll change. */
	transition:
		padding var(--dur) var(--ease),
		background-color var(--dur) var(--ease),
		box-shadow var(--dur) var(--ease);
}

/* Condensed state — JS toggles .is-scrolled on scroll-down.
   We only change padding + frost opacity (via the token) + shadow; the bar's
   height shrinks slightly but, being sticky, it never reflows page content. */
.as-header.is-scrolled .as-header__bar {
	padding-block: calc(var(--space-2xs) + 1px);
	--glass-bg: rgba(255, 255, 255, 0.82);
	box-shadow: 0 6px 20px rgba(80, 40, 30, 0.16);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.as-header.is-scrolled .as-header__bar { background: rgba(250, 246, 242, 0.97); }
}

/* Wordmark */
.as-brand {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	text-decoration: none;
	color: var(--text-ink);
	line-height: 1;
}
.as-brand__mark {
	font-family: var(--font-display);
	font-optical-sizing: auto;
	font-variation-settings: "opsz" 96;
	font-weight: 600;
	font-size: clamp(1.05rem, 0.95rem + 0.6vw, 1.4rem);
	letter-spacing: 0.14em;
	white-space: nowrap;
}
.as-brand:hover .as-brand__mark,
.as-brand:focus-visible .as-brand__mark { color: var(--cherry-deep); }

/* Desktop nav — hidden on mobile, revealed ≥ 900px */
.as-nav { display: none; }
.as-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(var(--space-sm), 2vw, var(--space-lg));
	margin: 0;
	padding: 0;
	list-style: none;
}
.as-nav__list a {
	position: relative;
	display: inline-block;
	padding: var(--space-2xs) 0;
	min-width: 44px;
	min-height: 44px;
	font-size: var(--fs-200);
	font-weight: 500;
	color: var(--text-ink);
	text-decoration: none;
	transition: color var(--dur) var(--ease);
}
/* Animated cherry underline */
.as-nav__list a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 100%;
	height: 2px;
	background: var(--cherry);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--dur) var(--ease);
}
.as-nav__list a:hover,
.as-nav__list a:focus-visible,
.as-nav__list .current-menu-item > a { color: var(--cherry-deep); }
.as-nav__list a:hover::after,
.as-nav__list a:focus-visible::after,
.as-nav__list .current-menu-item > a::after { transform: scaleX(1); }

/* Actions cluster (search / account / cart / burger) */
.as-actions {
	display: flex;
	align-items: center;
	gap: var(--space-3xs);
	margin-left: auto;   /* push to the right edge */
}

.as-iconbtn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: var(--text-ink);
	background: transparent;
	border: 0;
	border-radius: var(--r-sm);
	cursor: pointer;
	text-decoration: none;
	transition: color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.as-iconbtn:hover,
.as-iconbtn:focus-visible {
	color: var(--cherry-deep);
	background: var(--cherry-tint);
}

/* Live cart-count badge */
.as-cart__count {
	position: absolute;
	top: 4px;
	right: 4px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	background: var(--cherry);
	border-radius: 999px;
	box-shadow: 0 0 0 2px var(--bg-paper);
}
.as-cart__count.is-empty { display: none; }

/* Search popover */
.as-search-popover {
	position: absolute;
	top: calc(100% + var(--space-2xs));
	right: var(--space-sm);
	width: min(92vw, 360px);
	padding: var(--space-sm);
	border-radius: var(--r-md);
	z-index: 120;
}
.as-search-popover[hidden] { display: none; }
.as-search-popover form { margin: 0; display: flex; gap: var(--space-2xs); }
.as-search-popover input[type="search"],
.as-search-popover .search-field {
	flex: 1 1 auto;
	min-width: 0;
	padding: var(--space-2xs) var(--space-xs);
	font: inherit;
	color: var(--text-ink);
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid var(--glass-border);
	border-radius: var(--r-sm);
}
.as-product-search { display:flex; gap:var(--space-2xs); width:100%; }
.as-product-search .search-field { flex:1 1 auto; min-width:0; }
.as-search-empty { max-width:34rem; padding:clamp(1.5rem,4vw,3rem); border-radius:var(--r-lg); }
.as-search-empty h2 { margin-top:0; }
.as-search-empty p { color:var(--text-muted); }
.as-no-products {
	max-width:38rem;
	margin:clamp(2rem,5vw,5rem) auto;
	padding:clamp(1.5rem,4vw,3rem);
	border-radius:var(--r-lg);
	text-align:center;
}
.as-no-products h2 { margin:.2rem 0 .6rem; font-size:var(--fs-400); }
.as-no-products p:not(.as-eyebrow) { margin:0 0 var(--space-md); color:var(--text-muted); }

/* -----------------------------------------------------------------------------
   Mobile slide-in menu + overlay
   -------------------------------------------------------------------------- */
.as-mobile-overlay {
	position: fixed;
	inset: 0;
	z-index: 998;
	background: rgba(36, 31, 28, 0.45);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	opacity: 0;
	transition: opacity var(--dur) var(--ease);
}
.as-mobile-overlay[hidden] { display: none; }
.as-mobile-overlay.is-open { opacity: 1; }

.as-mobile {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 999;
	display: flex;
	flex-direction: column;
	width: min(86vw, 380px);
	height: 100vh;
	height: 100dvh;            /* honour mobile browser chrome */
	padding: var(--space-md);
	border-radius: var(--r-lg) 0 0 var(--r-lg);
	/* Off-canvas by default; .glass--dark supplies frost + light text. */
	transform: translateX(100%);
	transition: transform var(--dur) var(--ease);
	overflow-y: auto;
}
.as-mobile[hidden] { display: none; }
.as-mobile.is-open { transform: translateX(0); }

.as-mobile__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--space-lg);
}
.as-brand__mark--menu { color: var(--bg-paper); letter-spacing: 0.16em; }
.as-mobile .as-iconbtn { color: var(--bg-paper); }
.as-mobile .as-iconbtn:hover,
.as-mobile .as-iconbtn:focus-visible {
	color: #fff;
	background: rgba(255, 255, 255, 0.14);
}

.as-mobile__list {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}
.as-mobile__list a {
	display: block;
	padding: var(--space-2xs) 0;
	font-family: var(--font-display);
	font-optical-sizing: auto;
	font-variation-settings: "opsz" 120;
	font-size: clamp(1.75rem, 1.2rem + 3vw, 2.5rem);
	font-weight: 500;
	line-height: 1.1;
	color: var(--bg-paper);
	text-decoration: none;
	transition: color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.as-mobile__list a:hover,
.as-mobile__list a:focus-visible {
	color: var(--cherry);
	transform: translateX(6px);
}
.as-mobile__account {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	margin-top:auto;
	padding:var(--space-xs) var(--space-sm);
	border:1px solid rgba(255,255,255,.2);
	border-radius:var(--r-sm);
	color:var(--bg-paper);
	text-decoration:none;
	font-weight:600;
}
.as-mobile__account:hover,
.as-mobile__account:focus-visible { color:#fff; background:rgba(255,255,255,.12); }
.as-mobile__search { margin:var(--space-lg) 0 var(--space-sm); }
.as-mobile__search .as-product-search { display:flex; gap:var(--space-2xs); }
.as-mobile__search .search-field {
	min-width:0;
	flex:1 1 auto;
	min-height:44px;
	padding:var(--space-2xs) var(--space-sm);
	border:1px solid rgba(255,255,255,.25);
	border-radius:var(--r-sm);
	background:rgba(255,255,255,.12);
	color:var(--bg-paper);
	font:inherit;
}
.as-mobile__search .search-field::placeholder { color:rgba(250,246,242,.62); }
.as-mobile__search .btn-cherry { min-height:44px; padding-inline:var(--space-sm); }

/* The desktop action cluster has room for search and account. On a phone it
   competes with the wordmark; keep the two buying controls visible and move
   the account link into the deliberate full-screen menu. */
@media (max-width: 699px) {
	.as-header__bar { gap:var(--space-2xs); }
	.as-actions { gap:0; }
	.as-actions > .as-iconbtn:not(.as-cart):not(.as-burger) { display:none; }
}

/* Lock background scroll while the menu is open (class set by JS on <html>). */
.as-menu-open { overflow: hidden; }

/* -----------------------------------------------------------------------------
   Breakpoints
   -------------------------------------------------------------------------- */

/* ≥ 768px (tablet): a touch more breathing room. */
@media (min-width: 768px) {
	.as-header__bar { padding-inline: var(--space-md); gap: var(--space-md); }
	.as-iconbtn { width: 44px; height: 44px; }
}

/* ≥ 900px (desktop): show the inline nav, hide the hamburger. */
@media (min-width: 900px) {
	.as-nav { display: block; margin-inline: auto; }  /* center the nav */
	.as-burger { display: none; }
}

/* -----------------------------------------------------------------------------
   Reduced motion (header-specific niceties; global rules live in design-system)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.as-mobile { transition: none; }
	.as-mobile-overlay { transition: none; }
	.as-mobile__list a:hover,
	.as-mobile__list a:focus-visible { transform: none; }
	.as-nav__list a::after { transition: none; }
}

/* -----------------------------------------------------------------------------
   Collections — an editorial category index, not a boxed page template.
   The store's trails repeat information already present in the fixed navigation
   and made every route begin with an accidental, empty-looking band.
   -------------------------------------------------------------------------- */
.storefront-breadcrumb { display: none !important; }

.as-collections-page {
	padding-top: clamp(1.25rem, 2.2vw, 2rem);
	padding-bottom: clamp(4rem, 8vw, 8rem);
	background:
		radial-gradient(circle at 92% 8%, rgba(240, 190, 170, .24), transparent 28rem),
		radial-gradient(circle at 6% 46%, rgba(214, 174, 180, .15), transparent 25rem),
		var(--bg-paper);
}
.as-collections-intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.25rem;
	align-items: end;
	margin-bottom: clamp(1.8rem, 4.2vw, 4.1rem);
}
.as-collections-intro h1 {
	max-width: 8ch;
	margin: .25rem 0 0;
	font-size: clamp(3.15rem, 7.2vw, 7.25rem);
	line-height: .9;
	letter-spacing: -.065em;
}
.as-collections-intro__lede {
	max-width: 29rem;
	margin: 0 0 .2rem;
	font-size: clamp(1.03rem, 1.55vw, 1.25rem);
	line-height: 1.55;
	color: var(--text-muted);
}
.as-collections-page .as-collection-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(.9rem, 2vw, 1.55rem);
}
.as-collections-page .as-collection-card {
	position: relative;
	display: block;
	min-height: clamp(20rem, 37vw, 33rem);
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.52);
	border-radius: clamp(1.35rem, 2.8vw, 2.3rem);
	background: #d9d1cc;
	box-shadow: 0 14px 34px rgba(58, 38, 31, .10);
	color: #fff;
	text-decoration: none;
	transform: none;
	transition: box-shadow .32s var(--ease), border-color .32s var(--ease);
}
.as-collections-page .as-collection-card__media {
	position: absolute;
	inset: 0;
	display: block;
	min-height: 0;
	background: #d9d1cc;
}
.as-collections-page .as-collection-card__media::after {
	inset: 0;
	background: linear-gradient(180deg, rgba(20,15,13,.02) 38%, rgba(20,15,13,.16) 63%, rgba(20,15,13,.66) 100%);
}
.as-collections-page .as-collection-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform .7s var(--ease);
}
.as-collections-page .as-collection-card__body {
	position: absolute;
	left: clamp(.7rem, 1.7vw, 1.25rem);
	right: clamp(.7rem, 1.7vw, 1.25rem);
	bottom: clamp(.7rem, 1.7vw, 1.25rem);
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "count icon" "title icon";
	align-items: center;
	gap: .2rem .75rem;
	padding: clamp(.9rem, 1.65vw, 1.2rem);
	border: 1px solid rgba(255,255,255,.38);
	border-radius: clamp(1rem, 1.8vw, 1.35rem);
	background: rgba(37, 31, 28, .38);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 8px 20px rgba(17, 12, 10, .15);
	backdrop-filter: blur(14px) saturate(120%);
	-webkit-backdrop-filter: blur(14px) saturate(120%);
}
.as-collections-page .as-collection-card__count {
	grid-area: count;
	color: rgba(255,255,255,.75);
	font-size: .67rem;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.2;
	text-transform: uppercase;
}
.as-collections-page .as-collection-card__title {
	grid-area: title;
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 3.25vw, 3rem);
	font-weight: 500;
	line-height: .92;
	letter-spacing: -.045em;
	text-wrap: balance;
}
.as-collections-page .as-collection-card__link {
	grid-area: icon;
	display: grid;
	place-items: center;
	width: clamp(2.45rem, 4vw, 3.25rem);
	aspect-ratio: 1;
	border: 1px solid rgba(255,255,255,.44);
	border-radius: 50%;
	background: rgba(255,255,255,.12);
	color: #fff;
	font-family: var(--font-body);
	font-size: clamp(1.2rem, 1.6vw, 1.45rem);
	line-height: 1;
	transition: transform .32s var(--ease), background .32s var(--ease);
}
.as-collections-all { margin-top: clamp(2rem, 4vw, 3.5rem); text-align: center; }
.as-collections-all__link {
	display: inline-flex;
	gap: .75rem;
	align-items: center;
	padding: .85rem 1.1rem;
	border-bottom: 1px solid rgba(112, 30, 48, .28);
	color: var(--cherry-deep);
	font-size: .82rem;
	font-weight: 750;
	letter-spacing: .06em;
	text-decoration: none;
	text-transform: uppercase;
}
@media (hover: hover) and (pointer: fine) {
	.as-collections-page .as-collection-card:hover {
	border-color: rgba(255,255,255,.78);
	box-shadow: 0 22px 48px rgba(58,38,31,.18);
	transform: none;
	}
	.as-collections-page .as-collection-card:hover .as-collection-card__media img { transform: scale(1.045); }
	.as-collections-page .as-collection-card:hover .as-collection-card__link { transform: translate(2px, -2px); background: rgba(255,255,255,.22); }
}
@media (min-width: 700px) {
	.as-collections-intro { grid-template-columns: minmax(0, 1.35fr) minmax(16rem, .65fr); }
	.as-collections-page .as-collection-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.as-collections-page .as-collection-card { grid-column: span 6; }
	.as-collections-page .as-collection-card:nth-child(4n + 1),
	.as-collections-page .as-collection-card:nth-child(4n) { grid-column: span 7; }
	.as-collections-page .as-collection-card:nth-child(4n + 2),
	.as-collections-page .as-collection-card:nth-child(4n + 3) { grid-column: span 5; }
	.as-collections-page .as-collection-card:nth-child(even) { min-height: clamp(20rem, 31vw, 30rem); }
}
@media (max-width: 540px) {
	.as-collections-page { padding-top: 1.25rem; }
	.as-collections-intro { margin-bottom: 1.55rem; }
	.as-collections-intro h1 { font-size: clamp(3rem, 15vw, 4.4rem); }
	.as-collections-page .as-collection-grid { grid-template-columns: 1fr; gap: 1rem; }
	.as-collections-page .as-collection-card { min-height: 25rem; }
	.as-collections-page .as-collection-card:nth-child(even) { min-height: 22rem; }
}

/* =============================================================================
   Homepage (front-page.php) — Liquid-Glass editorial layout. Mobile-first.
   ============================================================================= */

/* Break a section out of Storefront's constrained #content .col-full so blobs
   and backgrounds run edge-to-edge. Inner `.container` re-constrains content. */
.as-fullbleed {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
}

/* Shared small-caps eyebrow label. */
.as-eyebrow {
	margin: 0 0 var(--space-2xs);
	font-family: var(--font-body);
	font-size: var(--fs-100);
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--cherry-deep);
}

/* Keep editorial breathing room without creating a second empty viewport
   between two adjacent shop sections. */
.as-section { padding-block: clamp(2.75rem, 2rem + 2vw, 4rem); }
.as-section__head { margin-bottom: var(--space-lg); }
.as-section__head h2 { margin: 0; }

/* Rounded "squircle" media frame (approximated with a large radius). */
.as-squircle {
	margin: 0;
	border-radius: clamp(2rem, 6vw, 4rem);
	overflow: hidden;
	box-shadow: var(--glass-shadow);
	aspect-ratio: 4 / 5;
	background: var(--bg-surface);
	transition: transform 0.45s var(--ease);
}
.as-squircle__img,
.as-squircle img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* -----------------------------------------------------------------------------
   1. Hero
   -------------------------------------------------------------------------- */
.as-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	min-height: clamp(34rem, 72svh, 48rem);
	padding-block: var(--space-lg);
	overflow: hidden;
}
.as-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(248, 243, 237, 0.96) 0%, rgba(248, 243, 237, 0.8) 32%, rgba(248, 243, 237, 0.12) 68%, rgba(248, 243, 237, 0.03) 100%);
}
.as-hero__campaign {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.as-hero__campaign img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.as-hero__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	align-items: center;
	width: 100%;
}
.as-hero__panel { max-width: 34rem; background: rgba(255, 251, 247, 0.72); }
.as-hero__title {
	margin: 0 0 var(--space-sm);
	font-size: var(--fs-600);
}
.as-hero__lede {
	margin: 0 0 var(--space-md);
	font-size: var(--fs-300);
	color: var(--text-muted);
	max-width: 38ch;
}
.as-hero__cta { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.as-hero__media { justify-self: center; width: 100%; max-width: 26rem; }

@media (max-width: 699px) {
	.as-hero { min-height: 39rem; align-items: flex-end; padding-bottom: var(--space-md); }
	.as-hero::after { background: linear-gradient(0deg, rgba(248, 243, 237, 0.98) 0%, rgba(248, 243, 237, 0.86) 45%, rgba(248, 243, 237, 0.08) 100%); }
	.as-hero__campaign img { object-position: 66% center; }
	.as-hero__panel { background: rgba(255, 251, 247, 0.78); }
}

/* -----------------------------------------------------------------------------
   Product grid + cards (Featured)
   -------------------------------------------------------------------------- */
.as-grid {
	display: grid;
	gap: var(--space-md);
	grid-template-columns: repeat(2, 1fr);
}

.as-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--r-md);
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
@media (hover: hover) and (pointer: fine) {
	.as-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 14px 36px rgba(80, 40, 30, 0.18);
	}
}
.as-card__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: var(--bg-surface);
}
.as-card__img,
.as-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--ease);
}
.as-card:hover .as-card__img { transform: scale(1.05); }
.as-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
	padding: var(--space-sm);
}
.as-card__title {
	margin: 0;
	font-size: var(--fs-300);
	font-weight: 500;
	line-height: 1.2;
}
.as-card__title a { color: var(--text-ink); text-decoration: none; }
.as-card__title a:hover { color: var(--cherry-deep); }
.as-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2xs);
	margin-top: auto;
}
.as-card__price { font-weight: 600; color: var(--text-ink); }
.as-card__price del { color: var(--text-muted); font-weight: 400; margin-right: 0.4em; }
.as-card__price ins { text-decoration: none; color: var(--cherry-deep); }
.as-card__add {
	display: inline-flex;
	align-items: center;
	padding: var(--space-3xs) var(--space-sm);
	min-height: 44px;
	font-size: var(--fs-100);
	font-weight: 600;
	color: var(--cherry-deep);
	background: var(--cherry-tint);
	border-radius: var(--r-sm);
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.as-card__add:hover,
.as-card__add:focus-visible { background: var(--cherry); color: #fff; }
@media (hover: hover) and (pointer: fine) {
	.as-card__add:hover { transform: translateY(-2px); }
}
.as-card__add.added { opacity: 0.6; }
.as-card .added_to_cart { display: none; }   /* hide WC's auto "View cart" link */

/* -----------------------------------------------------------------------------
   3. Collections tiles
   -------------------------------------------------------------------------- */
.as-grid--collections { grid-template-columns: 1fr; }
.as-tile {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--r-lg);
	text-decoration: none;
	aspect-ratio: 4 / 3;
	box-shadow: var(--glass-shadow);
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
@media (hover: hover) and (pointer: fine) {
	.as-tile:hover {
		transform: translateY(-4px);
		box-shadow: 0 14px 36px rgba(80, 40, 30, 0.18);
	}
}
.as-tile__media { position: absolute; inset: 0; }
.as-tile__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--ease);
}
.as-tile:hover .as-tile__img,
.as-tile:focus-visible .as-tile__img { transform: scale(1.07); }
.as-tile__overlay {
	position: absolute;
	left: var(--space-sm);
	right: var(--space-sm);
	bottom: var(--space-sm);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--r-md);
}
.as-tile__name {
	min-width: 0;
	font-family: var(--font-display);
	font-optical-sizing: auto;
	font-size: var(--fs-400);
	font-weight: 500;
	color: var(--bg-paper);
}
.as-tile__explore {
	display: grid;
	width: 2rem;
	height: 2rem;
	flex: 0 0 2rem;
	place-items: center;
	font-size: 0;
	font-weight: 600;
	color: var(--cherry);
	background: rgba(255,255,255,.14);
	border: 1px solid rgba(255,255,255,.22);
	border-radius: 50%;
	transform: translateX(0);
	transition: transform var(--dur) var(--ease);
}
.as-tile__explore::after { content: "→"; font-size: 1.2rem; line-height: 1; }
.as-tile:hover .as-tile__explore,
.as-tile:focus-visible .as-tile__explore { transform: translateX(4px); }

/* -----------------------------------------------------------------------------
   4. Brand story
   -------------------------------------------------------------------------- */
.as-story__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	align-items: center;
}
.as-story__panel { max-width: 38rem; }
.as-story__panel h2 { margin-top: 0; }
.as-story__media { max-width: 30rem; }

/* -----------------------------------------------------------------------------
   5. Values marquee
   -------------------------------------------------------------------------- */
.as-marquee {
	overflow: hidden;
	padding-block: var(--space-md);
	border-block: 1px solid var(--border-warm);
	background: var(--bg-surface);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.as-marquee__track { display: flex; width: max-content; }
.as-marquee__row {
	display: flex;
	align-items: center;
	gap: var(--space-md);
	padding-right: var(--space-md);
	white-space: nowrap;
	animation: as-marquee 28s linear infinite;
}
.as-marquee__item {
	font-family: var(--font-body);
	font-size: var(--fs-100);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--text-muted);
}
.as-marquee__dot { color: var(--cherry); }
@keyframes as-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-100%); }
}

/* -----------------------------------------------------------------------------
   Scroll-reveal hooks (observer + html.js class added in Prompt 8)
   Until JS runs, content is fully visible (no-JS safe).
   -------------------------------------------------------------------------- */
html.js [data-reveal],
html.js .reveal {
	/* Motion must never make store content appear missing while a section enters
	 * view. The previous opacity:0 state caused cards to look blank in real
	 * browsing and screenshots whenever the observer had not finished its delay.
	 * Keep the subtle rise, but leave essential content readable at all times. */
	opacity: 1;
	transform: translateY(26px);
	transition: transform 0.48s var(--ease);
	will-change: transform;
}
html.js [data-reveal].is-visible,
html.js .reveal.is-visible {
	opacity: 1;
	transform: none;
	will-change: auto;
}

/* -----------------------------------------------------------------------------
   Shop / product-category archive (WooCommerce)
   -------------------------------------------------------------------------- */

/* Break the archive out to the same edge-to-edge treatment as homepage
   sections, then re-constrain with .container-width spacing. */
.woocommerce ul.products,
.woocommerce-page ul.products {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Slim frosted sort/result bar. */
.as-shopbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	margin: 0 0 var(--space-lg);
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--r-md);
}
.as-shopbar__categories {
	display:flex;
	align-items:center;
	gap:var(--space-2xs);
	width:100%;
	overflow-x:auto;
	padding-bottom:2px;
	-ms-overflow-style:none;
	scrollbar-width:none;
}
.as-shopbar__categories::-webkit-scrollbar { display:none; }
.as-shopbar__category {
	display:inline-flex;
	align-items:center;
	min-height:36px;
	padding:.4rem .75rem;
	border:1px solid transparent;
	border-radius:999px;
	color:var(--text-muted);
	font-size:var(--fs-100);
	font-weight:600;
	line-height:1;
	text-decoration:none;
	white-space:nowrap;
	transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.as-shopbar__category:hover,
.as-shopbar__category:focus-visible { color:var(--cherry-deep); background:var(--cherry-tint); }
.as-shopbar__category.is-current { color:#fff; background:var(--cherry); border-color:var(--cherry); }

/* Performance: keep true backdrop blur on compact/interactive glass surfaces.
   Broader decorative panels keep the tokenized glass fill/shadow but skip the
   expensive page-sized blur. */
.as-newsletter__card.glass,
.as-story__panel.glass,
.as-shopbar.glass,
.as-cart-summary.glass,
.as-order-review.glass,
.as-order-overview.glass {
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	background: rgba(250, 246, 242, 0.9);
}
.as-shopbar__count {
	margin: 0;
	font-size: var(--fs-100);
	color: var(--text-muted);
}
.as-shopbar__sort {
	display: flex;
	align-items: center;
	gap: var(--space-2xs);
	margin: 0;
}
.as-shopbar__sort label {
	font-size: var(--fs-100);
	color: var(--text-muted);
	white-space: nowrap;
}
.as-shopbar__sort .orderby {
	font-family: var(--font-body);
	font-size: var(--fs-100);
	font-weight: 600;
	color: var(--text-ink);
	background: rgba(255, 255, 255, 0.6);
	border: 1px solid var(--glass-border);
	border-radius: var(--r-sm);
	padding: var(--space-3xs) var(--space-sm);
	min-height: 44px;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.as-shopbar__sort .orderby:hover,
.as-shopbar__sort .orderby:focus-visible {
	background: rgba(255, 255, 255, 0.85);
}

/* Responsive product grid: 2 / 3 / 4 columns.
   Storefront's woocommerce.css ships a float + percentage-width layout keyed
   off the `columns-N` class (e.g. `.columns-3 li.product{width:30.4%;float:left}`).
   That fights our CSS Grid, so it's reset here — grid-template-columns below
   is the only thing controlling column count/width now. */
.as-shop-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-md);
}
.as-shop-grid.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

/* Rounder "squircle" corners for the shop grid specifically. */
.as-shop-grid .as-card {
	border-radius: var(--r-lg);
}

/* The product link wraps media + title + rating + swatches; block so its
   children stack like the rest of the (flex, column) card. */
.as-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}
.as-card__link:hover,
.as-card__link:focus-visible {
	color: inherit;
}
.as-shop-grid .as-card__media {
	position: relative;
}

/* Sale badge — small cherry glass pill over the image.
   Extra specificity (vs. a plain .as-card__badge selector) is needed to beat
   Storefront's own `.onsale{position:relative;border:1px solid;...}` rule,
   which shares the same class-count specificity and would otherwise win. */
.as-card__media .as-card__badge {
	position: absolute;
	top: var(--space-xs);
	left: var(--space-xs);
	z-index: 1;
	display: inline-flex;
	align-items: center;
	padding: 0.2em 0.7em;
	font-size: var(--fs-100);
	font-weight: 600;
	color: #fff;
	background: var(--cherry);
	border: none;
	border-radius: var(--r-sm);
	box-shadow: 0 4px 14px rgba(192, 30, 60, 0.28);
}

/* Card title (WooCommerce's own <h2>, sized down from the global h2 scale). */
.as-shop-grid .as-card .woocommerce-loop-product__title {
	margin: var(--space-sm) 0 0;
	padding: 0 var(--space-sm);
	font-family: var(--font-display);
	font-size: var(--fs-300);
	font-weight: 500;
	line-height: var(--lh-snug);
	color: var(--text-ink);
}

/* Star rating (WooCommerce's .star-rating), when present. */
.as-shop-grid .as-card__link .star-rating {
	margin: var(--space-3xs) var(--space-sm) 0;
}

/* Colour swatches. */
.as-card__swatches {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3xs);
	margin: var(--space-3xs) 0 0;
	padding: 0 var(--space-sm);
}
.as-swatch {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 1px solid rgba(36, 31, 28, 0.18);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
}
.as-swatch--unknown {
	background: var(--border-warm);
}

/* Price + add-to-cart row. */
.as-shop-grid .as-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2xs) var(--space-sm);
	margin-top: auto;
	padding: var(--space-sm);
}
.as-shop-grid .as-card__meta .price {
	font-size: var(--fs-200);
	font-weight: 600;
	color: var(--text-ink);
}
.as-shop-grid .as-card__meta .price del {
	font-weight: 400;
	color: var(--text-muted);
	margin-right: 0.4em;
	opacity: 0.8;
}
.as-shop-grid .as-card__meta .price ins {
	text-decoration: none;
	color: var(--cherry-deep);
}

/* Glass "Додати в кошик" button — sized to sit in the meta row, strengthens
   on hover via the shared .btn-glass rules in design-system.css. Extra
   specificity re-asserts the .btn-glass background/color over WooCommerce's
   own `.button{...}` rules, which otherwise win the same-specificity race. */
.as-card__cta.btn-glass {
	flex-shrink: 0;
	padding: var(--space-3xs) var(--space-sm);
	min-height: 44px;
	font-size: var(--fs-100);
	background: var(--glass-bg);
	color: var(--text-ink);
	box-shadow: var(--glass-shadow);
}
.as-card__cta.btn-glass:hover,
.as-card__cta.btn-glass:focus-visible {
	background: rgba(255, 255, 255, 0.7);
	color: var(--cherry-deep);
}
.as-card__cta.added {
	opacity: 0.6;
}
.as-shop-grid .as-card .added_to_cart {
	display: none; /* hide WC's auto "View cart" link; the button communicates success via .added */
}

/* Zoom the real WooCommerce thumbnail on card hover (mirrors .as-card__img). */
.as-shop-grid .as-card:hover .as-card__media img {
	transform: scale(1.05);
}

/* -----------------------------------------------------------------------------
   Single product (WooCommerce)
   -------------------------------------------------------------------------- */

/* Storefront ships a float + percentage-width layout for `.images`/`.summary`
   (e.g. `.product .images{width:39%;float:left}`), same issue as the shop
   grid — reset it so our CSS Grid (below) is the only thing positioning
   the gallery and buy card. */
.as-product {
	display: grid;
	/* `1fr` keeps an automatic min-content floor. On a phone a long Woo
	 * control (the add-to-bag form) could widen the whole grid and clip its
	 * own button. A zero minimum keeps the card inside the viewport. */
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-lg);
	align-items: start;
	padding-block: var(--space-md) var(--space-lg);
}
.as-product > * { min-width: 0; }
.as-product .images,
.as-product .summary {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

/* WooCommerce/Storefront's `.product::before,::after { content:"";
   display:table; }` is a clearfix for the legacy float layout above. Once
   `.as-product` is a grid container those generated boxes become real
   (invisible) grid items — one before the gallery, one after the last
   section — which silently shifts every item into the wrong cell. Since the
   grid replaces the float layout entirely, the clearfix is dead weight here. */
.single-product div.as-product::before,
.single-product div.as-product::after,
.as-product::before,
.as-product::after {
	content: none !important;
	display: none !important;
}

/* Tabs / related / up-sells / pagination sit below the gallery+buy-card row
   and always run the full width, even once `.as-product` becomes 2 columns. */
.as-product > .woocommerce-tabs,
.as-product > .related.products,
.as-product > .upsells.products,
.as-product > .storefront-product-pagination {
	grid-column: 1 / -1;
}

/* -----------------------------------------------------------------------------
   Gallery
   -------------------------------------------------------------------------- */
.as-product__gallery .woocommerce-product-gallery__wrapper {
	margin: 0;
}
.as-product__gallery .woocommerce-product-gallery__image,
.as-product__gallery .woocommerce-product-gallery__image--placeholder {
	border-radius: var(--r-lg);
	overflow: hidden;
	background: var(--bg-surface);
	box-shadow: var(--glass-shadow);
}
.as-product__gallery .woocommerce-product-gallery__trigger {
	min-width: 44px;
	min-height: 44px;
}
.as-product__gallery .woocommerce-product-gallery__image img,
.as-product__gallery .woocommerce-product-gallery__image--placeholder img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: opacity var(--dur) var(--ease);
}

/* Thumbnail strip — FlexSlider generates `ol.flex-control-nav` at runtime. */
.as-product__gallery .flex-control-nav {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs);
	margin: var(--space-sm) 0 0;
	padding: 0;
	list-style: none;
}
.as-product__gallery .flex-control-nav li {
	width: clamp(3.5rem, 8vw, 4.5rem);
	aspect-ratio: 1;
}
.as-product__gallery .flex-control-nav img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--r-sm);
	cursor: pointer;
	opacity: 0.6;
	border: 2px solid transparent;
	transition: opacity var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.as-product__gallery .flex-control-nav img:hover,
.as-product__gallery .flex-control-nav img.flex-active {
	opacity: 1;
	border-color: var(--cherry);
}

/* -----------------------------------------------------------------------------
   Buy card
   -------------------------------------------------------------------------- */
.as-product__buy {
	padding: var(--space-lg);
	display: flex;
	flex-direction: column;
}
.as-product__buy .product_title {
	font-size: var(--fs-500);
	margin-bottom: var(--space-2xs);
}
.as-product__buy .price {
	font-size: var(--fs-400);
	font-weight: 600;
	color: var(--text-ink);
	margin-bottom: var(--space-sm);
}
.as-product__buy .price del {
	font-weight: 400;
	font-size: var(--fs-300);
	color: var(--text-muted);
	margin-right: 0.5em;
	opacity: 0.8;
}
.as-product__buy .price ins {
	text-decoration: none;
	color: var(--cherry-deep);
}
.as-product__buy .woocommerce-product-details__short-description {
	margin-bottom: var(--space-md);
	color: var(--text-muted);
}
.as-product__buy .woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0;
}

/* Trust line under the add-to-cart form. */
.as-product__trust {
	margin: var(--space-md) 0 0;
	font-size: var(--fs-100);
	color: var(--text-muted);
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs);
}

/* -----------------------------------------------------------------------------
   Variation swatches / pills
   -------------------------------------------------------------------------- */
.as-variations {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	margin-bottom: var(--space-sm);
}
.as-variation-group__label {
	display: block;
	font-size: var(--fs-100);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-muted);
	margin-bottom: var(--space-2xs);
}
.as-variation-group__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs);
}

/* The real <select> WooCommerce's variation JS reads — visually hidden,
   still focusable/functional for assistive tech and keyboard users. */
.as-variation-select {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Colour dot swatches. */
.as-swatch-btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 2px solid transparent;
	box-shadow: 0 0 0 1px rgba(36, 31, 28, 0.15), inset 0 0 0 1px rgba(255, 255, 255, 0.5);
	cursor: pointer;
	padding: 0;
	transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.as-swatch-btn--unknown {
	background: var(--border-warm);
}
.as-swatch-btn:hover {
	transform: translateY(-2px);
}
.as-swatch-btn.is-selected {
	border-color: var(--cherry);
	box-shadow: 0 0 0 1px var(--cherry), inset 0 0 0 1px rgba(255, 255, 255, 0.5);
}

/* Size / other attribute pills. */
.as-pill-btn {
	padding: var(--space-2xs) var(--space-sm);
	min-height: 44px;
	font-family: var(--font-body);
	font-size: var(--fs-100);
	font-weight: 600;
	color: var(--text-ink);
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	border-radius: var(--r-sm);
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.as-pill-btn:hover {
	background: rgba(255, 255, 255, 0.75);
}
.as-pill-btn.is-selected {
	border-color: var(--cherry);
	color: var(--cherry-deep);
	box-shadow: 0 0 0 1px var(--cherry);
}

.as-variations__reset {
	align-self: flex-start;
	font-size: var(--fs-100);
	color: var(--text-muted);
	text-decoration: underline;
	text-underline-offset: 0.2em;
	margin: 0;
}
.as-variations__reset:hover {
	color: var(--cherry-deep);
}

/* WooCommerce's own variation price/description/availability swap. */
.woocommerce-variation-description {
	color: var(--text-muted);
	margin-bottom: var(--space-sm);
}
.woocommerce-variation-price .price {
	margin-bottom: var(--space-sm);
}
.woocommerce-variation-availability .stock {
	font-size: var(--fs-100);
	color: var(--text-muted);
}
.woocommerce-variation-availability .stock.out-of-stock {
	color: var(--cherry-deep);
}

/* -----------------------------------------------------------------------------
   Quantity stepper + add-to-cart button
   -------------------------------------------------------------------------- */
.as-product__buy .quantity {
	display: inline-flex;
	align-items: stretch;
	gap: 0;
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	border-radius: var(--r-sm);
	overflow: hidden;
	margin-right: var(--space-sm);
	vertical-align: middle;
}
.as-product__buy .quantity .qty {
	width: 3em;
	border: 0;
	background: transparent;
	text-align: center;
	font-family: var(--font-body);
	font-size: var(--fs-200);
	color: var(--text-ink);
	-moz-appearance: textfield;
}
.as-product__buy .quantity .qty::-webkit-inner-spin-button,
.as-product__buy .quantity .qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.as-qty__btn {
	border: 0;
	background: transparent;
	width: 44px;
	min-height: 44px;
	font-size: var(--fs-300);
	line-height: 1;
	color: var(--text-ink);
	cursor: pointer;
	transition: background-color var(--dur) var(--ease);
}
.as-qty__btn:hover {
	background: rgba(255, 255, 255, 0.6);
}

/* Stack options → size → qty/CTA. A row flex on the whole form made size
   wrap beside/under the button on phones. */
.as-product__buy form.cart {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-sm);
	width: 100%;
	min-width: 0;
}
.as-product__buy .single_variation_wrap {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-sm);
	width: 100%;
	min-width: 0;
}
.as-product__buy .woocommerce-variation,
.as-product__buy .woocommerce-variation-price,
.as-product__buy .woocommerce-variation-description {
	width: 100%;
}
.as-product__buy .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-sm);
	width: 100%;
}

.as-product__buy .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-sm) var(--space-lg);
	min-height: 44px;
	font-family: var(--font-body);
	font-size: var(--fs-200);
	font-weight: 600;
	color: #fff;
	background-color: var(--cherry);
	border: 1px solid transparent;
	border-radius: var(--r-sm);
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
	box-shadow: 0 4px 14px rgba(192, 30, 60, 0.28);
}
.as-product__buy .single_add_to_cart_button:hover {
	background-color: var(--cherry-deep);
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(158, 21, 48, 0.34);
}
.as-product__buy .single_add_to_cart_button.disabled,
.as-product__buy .single_add_to_cart_button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	pointer-events: none;
	transform: none;
}

/* Size picker: size is carried with the cart line even though it is not a
   colour-variation axis in the imported catalogue. Sits with colour options,
   above qty / add-to-cart. */
.as-product-fit {
	margin: 0;
	padding: var(--space-sm) 0 0;
	border-top: 1px solid var(--border-warm);
	width: 100%;
}
.as-variations + .as-variations__reset + .as-product-fit,
.as-variations__reset + .as-product-fit {
	margin-top: 0;
}
.as-product-fit__label {
	display: block;
	margin-bottom: var(--space-2xs);
	font-size: var(--fs-100);
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--text-muted);
}
.as-product-fit__sizes { display:flex; flex-wrap:wrap; gap:var(--space-2xs); }
.as-product-fit__size-button {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:44px;
	min-height:40px;
	padding:var(--space-3xs) var(--space-sm);
	border:1px solid var(--glass-border);
	border-radius:var(--r-sm);
	background:rgba(255,255,255,.52);
	font-size:var(--fs-100);
	font-weight:600;
	color:var(--text-ink);
	cursor:pointer;
	transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.as-product-fit__size-button:hover { transform:translateY(-1px); border-color:rgba(158,21,48,.46); background:rgba(255,255,255,.82); }
.as-product-fit__size-button.is-selected { border-color:var(--cherry); background:var(--cherry); color:#fff; box-shadow:0 7px 16px rgba(158,21,48,.19); }
.as-product-fit__size-button:focus-visible { outline:3px solid rgba(158,21,48,.24); outline-offset:2px; }
.as-product-fit__help { margin:.55rem 0 0; color:var(--text-muted); font-size:.78rem; }
.as-product-fit.has-error .as-product-fit__sizes { padding:.3rem; margin:-.3rem; border-radius:calc(var(--r-sm) + .3rem); box-shadow:0 0 0 2px rgba(158,21,48,.25); }
.as-product-fit.has-error .as-product-fit__help { color:var(--cherry-deep); font-weight:600; }

/* -----------------------------------------------------------------------------
   Tabs — glass segmented control
   (`.glass` is added to `.woocommerce-tabs` via product-glass.js so it shares
   the same backdrop-filter + @supports fallback as the rest of the design system.)
   -------------------------------------------------------------------------- */
.woocommerce-tabs {
	margin-top: var(--space-xl);
	padding: var(--space-md);
}
/* Storefront ships `ul.tabs{width:30%;float:left}` + `.panel{width:65%;float:right}`
   (a two-column float layout for tabs) — reset both so the segmented nav
   sits above a full-width panel instead. */
.woocommerce-tabs ul.tabs,
.woocommerce-tabs .panel {
	width: auto !important;
	float: none !important;
	margin-right: 0 !important;
}
.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs);
	margin-bottom: var(--space-md);
	padding: var(--space-3xs);
	list-style: none;
	background: var(--bg-surface);
	border-radius: var(--r-sm);
	border-top: none;
	width: fit-content !important;
}
.woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	border-bottom: none !important;
	flex: 0 0 auto;
}
.woocommerce-tabs ul.tabs li::after {
	display: none !important;
}
.woocommerce-tabs ul.tabs li a {
	display: block;
	width: auto !important;
	padding: var(--space-2xs) var(--space-md) !important;
	min-height: 44px;
	font-size: var(--fs-100);
	font-weight: 600;
	color: var(--text-muted);
	text-decoration: none;
	white-space: nowrap;
	border-radius: var(--r-sm);
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.woocommerce-tabs ul.tabs li a:hover {
	color: var(--text-ink);
}
.woocommerce-tabs ul.tabs li.active a {
	background: var(--cherry);
	color: #fff;
}
.woocommerce-tabs .woocommerce-Tabs-panel {
	color: var(--text-muted);
}
.woocommerce-tabs .woocommerce-Tabs-panel h2 {
	font-size: var(--fs-400);
}
.woocommerce-tabs table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-100);
}
.woocommerce-tabs table.shop_attributes th,
.woocommerce-tabs table.shop_attributes td {
	padding: var(--space-2xs) var(--space-sm);
	border-bottom: 1px solid var(--border-warm);
	text-align: left;
}
.woocommerce-tabs table.shop_attributes th {
	width: 12rem;
	color: var(--text-ink);
	font-weight: 600;
}
.as-product-service-tab {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	margin-top: var(--space-sm);
	border: 1px solid var(--border-warm);
	border-radius: var(--r-md);
	background: var(--border-warm);
}
.as-product-service-tab > div {
	padding: clamp(1rem, 2vw, 1.4rem);
	background: rgba(255,255,255,.45);
}
.as-product-service-tab h2 {
	margin: 0 0 .45rem;
	font-family: var(--font-body) !important;
	font-size: var(--fs-200) !important;
	font-weight: 700;
	line-height: 1.2;
	color: var(--text-ink);
}
.as-product-service-tab p { margin: 0; font-size: var(--fs-100); line-height: 1.55; }
.as-product-service-tab__link {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .45rem .65rem;
	margin: var(--space-md) 0 0;
	color: var(--text-muted);
}
.as-product-service-tab__link a { color: var(--cherry-deep); font-weight: 700; text-decoration: none; }
.as-product-service-tab__link a:hover { text-decoration: underline; }

/* Reviews are a trust surface, not a leftover WordPress comment form. */
.woocommerce-Reviews .woocommerce-noreviews {
	display:flex;
	align-items:center;
	min-height:0;
	margin:0 0 var(--space-md) !important;
	padding:var(--space-sm) var(--space-md) !important;
	border:1px solid var(--border-warm) !important;
	border-left:3px solid var(--cherry) !important;
	border-radius:var(--r-sm);
	background:rgba(255,255,255,.58) !important;
	color:var(--text-muted) !important;
	font-family:var(--font-body) !important;
	font-size:var(--fs-100) !important;
	box-shadow:none !important;
}
.woocommerce-Reviews #review_form_wrapper {
	padding:clamp(1rem,3vw,1.5rem);
	border:1px solid var(--border-warm);
	border-radius:var(--r-md);
	background:rgba(255,255,255,.48);
}
.woocommerce-Reviews .comment-reply-title {
	display:block;
	margin:0 0 var(--space-sm);
	font-family:var(--font-display) !important;
	font-size:var(--fs-300);
	font-weight:600;
	line-height:var(--lh-snug);
	color:var(--text-ink);
}
.woocommerce-Reviews .comment-notes {
	margin:0 0 var(--space-md);
	font-family:var(--font-body) !important;
	font-size:var(--fs-100);
	line-height:var(--lh-body);
	color:var(--text-muted);
}
.woocommerce-Reviews .comment-form { display:grid; gap:var(--space-sm); }
.woocommerce-Reviews .comment-form > p { margin:0; }
.woocommerce-Reviews .comment-form label {
	display:block;
	margin-bottom:var(--space-3xs);
	font-family:var(--font-body) !important;
	font-size:var(--fs-100);
	font-weight:600;
	color:var(--text-ink);
}
.woocommerce-Reviews .comment-form input[type="text"],
.woocommerce-Reviews .comment-form input[type="email"],
.woocommerce-Reviews .comment-form textarea {
	box-sizing:border-box;
	width:100% !important;
	margin:0 !important;
	border:1px solid var(--border-warm) !important;
	border-radius:var(--r-sm) !important;
	background:rgba(255,255,255,.72) !important;
	color:var(--text-ink) !important;
	font-family:var(--font-body) !important;
	font-size:var(--fs-200) !important;
	line-height:var(--lh-body);
	box-shadow:none;
}
.woocommerce-Reviews .comment-form input[type="text"],
.woocommerce-Reviews .comment-form input[type="email"] { min-height:46px; padding:var(--space-2xs) var(--space-sm) !important; }
.woocommerce-Reviews .comment-form textarea { min-height:9rem; padding:var(--space-sm) !important; resize:vertical; }
.woocommerce-Reviews .comment-form input:focus,
.woocommerce-Reviews .comment-form textarea:focus { border-color:var(--cherry) !important; box-shadow:0 0 0 3px var(--cherry-tint) !important; outline:0; }
.woocommerce-Reviews .comment-form-rating { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2xs); }
.woocommerce-Reviews .comment-form-rating label { margin:0; }
.woocommerce-Reviews .stars { margin:0; }
.woocommerce-Reviews .stars a { color:var(--cherry-deep) !important; }
.woocommerce-Reviews .comment-form-cookies-consent { display:flex; align-items:flex-start; gap:var(--space-2xs); }
.woocommerce-Reviews .comment-form-cookies-consent input { flex:0 0 auto; margin-top:.3rem; }
.woocommerce-Reviews .comment-form-cookies-consent label { margin:0; font-weight:400; color:var(--text-muted); }
.woocommerce-Reviews .form-submit { margin-top:var(--space-2xs) !important; }
.woocommerce-Reviews .form-submit .submit {
	min-height:46px;
	padding:var(--space-2xs) var(--space-md) !important;
	border:0 !important;
	border-radius:var(--r-sm) !important;
	background:var(--cherry) !important;
	color:#fff !important;
	font-family:var(--font-body) !important;
	font-size:var(--fs-200) !important;
	font-weight:700;
	box-shadow:0 4px 14px rgba(192,30,60,.22);
	cursor:pointer;
}
.woocommerce-Reviews .form-submit .submit:hover { background:var(--cherry-deep) !important; }

/* -----------------------------------------------------------------------------
   Related / up-sell products — reuse the shop's .as-shop-grid card styling
   automatically (same loop-start.php + content-product.php templates).
   -------------------------------------------------------------------------- */
.related.products,
.upsells.products {
	margin-top: var(--space-2xl);
}
.related.products h2,
.upsells.products h2 {
	margin-bottom: var(--space-lg);
}

/* -----------------------------------------------------------------------------
   Mobile sticky add-to-bag bar
   -------------------------------------------------------------------------- */
.as-sticky-bar {
	position: fixed;
	left: var(--space-sm);
	right: var(--space-sm);
	/* Storefront's own `.storefront-handheld-footer-bar` (account/search/cart
	   icons) is ~69px tall and shows site-wide below 600px; sit above it
	   rather than overlap (it also has a much higher z-index: 9999). */
	bottom: calc(69px + var(--space-sm));
	z-index: 40;
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--r-md);
}

@media (min-width: 600px) {
	.as-sticky-bar {
		bottom: var(--space-sm);
	}
}
.as-sticky-bar[hidden] {
	display: none;
}
.as-sticky-bar__title {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--font-display);
	font-size: var(--fs-200);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.as-sticky-bar__price {
	flex-shrink: 0;
	font-weight: 600;
	color: var(--text-ink);
}
.as-sticky-bar__price del {
	color: var(--text-muted);
	font-weight: 400;
	margin-right: 0.3em;
}
.as-sticky-bar__price ins {
	text-decoration: none;
	color: var(--cherry-deep);
}
.as-sticky-bar__cta {
	flex-shrink: 0;
	padding: var(--space-2xs) var(--space-md);
	min-height: 44px;
	font-size: var(--fs-100);
}

/* -----------------------------------------------------------------------------
   Homepage breakpoints
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
	.as-grid--products { grid-template-columns: repeat(2, 1fr); }
	.as-grid--collections { grid-template-columns: repeat(3, 1fr); }
	.as-tile:first-child { grid-column: span 1; }

	.as-shop-grid { grid-template-columns: repeat(3, 1fr); }

	.as-footer__top { grid-template-columns: 1.1fr 1fr; }
	.as-footer__cols { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 767px) {
	.as-grid,
	.as-shop-grid {
		grid-template-columns: 1fr;
	}

	.as-hero {
		min-height: auto;
	}

	.as-hero__panel,
	.as-story__panel,
	.as-newsletter__card {
		max-width: 100%;
	}

	.as-tile__overlay {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 420px) {
	.as-header__bar {
		width: min(100% - var(--space-sm), 80rem);
		padding-inline: var(--space-xs);
	}

	.as-brand__mark {
		font-size: 1rem;
		letter-spacing: 0.1em;
	}

	.as-actions {
		gap: 0;
	}

	.glass--pad,
	.as-product__buy,
	.woocommerce-tabs,
	.as-newsletter__card {
		padding: var(--space-md);
	}

	.as-cart-table .coupon {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (min-width: 900px) {
	/* Hero becomes the editorial two-column split (panel left, media right). */
	.as-hero__grid { grid-template-columns: 1.05fr 0.95fr; gap: var(--space-xl); }
	.as-hero__media { justify-self: end; max-width: 32rem; }

	.as-grid--products { grid-template-columns: repeat(4, 1fr); }

	/* Brand story split: media left, glass text panel right. */
	.as-story__grid { grid-template-columns: 0.95fr 1.05fr; gap: var(--space-xl); }

	/* Cart / checkout get room to go side-by-side. */
	.as-cart-collaterals { grid-template-columns: 1fr; justify-items: end; }
	.as-cart-summary { width: 22rem; }
}

@media (min-width: 1024px) {
	.as-shop-grid { grid-template-columns: repeat(4, 1fr); }

	/* Single product: gallery left, buy card right; card floats/sticks while
	   scrolling the description/tabs/related sections below. */
	.as-product {
		grid-template-columns: 1.05fr 0.95fr;
		gap: var(--space-xl);
	}
	.as-product__buy {
		position: sticky;
		top: var(--space-lg);
	}

	/* Plenty of room on desktop — no need for the mobile add-to-bag bar. */
	.as-sticky-bar {
		display: none;
	}
}

/* -----------------------------------------------------------------------------
   Shared form controls — soft rounded inputs (cart coupon field, checkout
   billing/shipping/shipping-calculator fields all use WooCommerce's own
   `.input-text` class, so one rule set covers every field on both pages).
   -------------------------------------------------------------------------- */
.woocommerce ::placeholder {
	color: var(--text-muted);
	opacity: 0.8;
}
.woocommerce .input-text,
.woocommerce select,
.woocommerce textarea,
.woocommerce .select2-container .select2-selection--single {
	width: 100%;
	padding: var(--space-xs) var(--space-sm);
	min-height: 44px;
	font-family: var(--font-body);
	font-size: var(--fs-200);
	color: var(--text-ink);
	background: #fff;
	border: 1px solid var(--border-warm);
	border-radius: var(--r-sm);
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.woocommerce .select2-container .select2-selection--single {
	height: auto;
	padding-block: var(--space-xs);
}
.woocommerce .input-text:focus,
.woocommerce select:focus,
.woocommerce textarea:focus,
.woocommerce .select2-container--focus .select2-selection--single {
	outline: none;
	border-color: var(--cherry);
	box-shadow: 0 0 0 3px var(--cherry-tint);
}
.woocommerce textarea { min-height: 6rem; }
.woocommerce-breadcrumb a,
.showcoupon,
.as-footer a,
.as-card__title a,
.as-shop-grid .woocommerce-loop-product__title,
.as-cart-table .product-name a {
	display: inline-flex;
	align-items: center;
	min-width: 44px;
	min-height: 44px;
}
.woocommerce form .form-row label {
	font-size: var(--fs-100);
	font-weight: 600;
	color: var(--text-muted);
	margin-bottom: var(--space-3xs);
	display: block;
}
.woocommerce form .form-row .required {
	color: var(--cherry);
	text-decoration: none;
}

/* Generic WooCommerce buttons (coupon apply, update cart, calc shipping) —
   glass pill; the cherry CTAs (place order, proceed to checkout) opt in via
   their own selectors below so they stand out as the primary action. */
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2xs);
	padding: var(--space-xs) var(--space-md);
	min-height: 44px;
	font-family: var(--font-body);
	font-size: var(--fs-100);
	font-weight: 600;
	color: var(--text-ink);
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	border-radius: var(--r-sm);
	cursor: pointer;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover {
	background: rgba(255, 255, 255, 0.8);
	color: var(--cherry-deep);
}
@media (hover: hover) and (pointer: fine) {
	.woocommerce .button:hover,
	.woocommerce button.button:hover,
	.woocommerce input.button:hover,
	.woocommerce a.button:hover {
		transform: translateY(-2px);
		box-shadow: 0 10px 26px rgba(80, 40, 30, 0.14);
	}
}

/* Cherry primary actions. */
/* Higher specificity than the generic `.woocommerce a.button` rule above
   (which these elements also match) so the cherry treatment always wins. */
.woocommerce a.button.checkout-button,
.woocommerce button#place_order,
.as-cart-drawer .as-cart-drawer__buttons a.checkout {
	background-color: var(--cherry);
	color: #fff;
	border-color: transparent;
	box-shadow: 0 4px 14px rgba(192, 30, 60, 0.28);
}
.woocommerce a.button.checkout-button:hover,
.woocommerce button#place_order:hover,
.as-cart-drawer .as-cart-drawer__buttons a.checkout:hover {
	background-color: var(--cherry-deep);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(158, 21, 48, 0.34);
}

/* Notices (empty cart, "added to cart", coupon applied, errors, etc.) — a
   soft rounded card with a cherry accent instead of WooCommerce's default
   blue/green/red boxes. One treatment for all three types (success/info/
   error) so the brand accent stays consistent; only the icon glyph differs. */
/* Storefront loads a more-specific blue `.woocommerce-info` declaration for
   the coupon prompt.  Scope this rule through `body` and explicitly reset the
   inherited foreground so every WooCommerce notice stays in Astra's neutral
   glass palette. */
body .woocommerce-message,
body .woocommerce-error,
body .woocommerce-info {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	margin: 0 0 var(--space-md);
	padding: var(--space-sm) var(--space-md);
	padding-left: 3em;
	background: rgba(250, 246, 242, 0.94) !important;
	border: 1px solid rgba(192, 30, 60, 0.22) !important;
	border-left: 4px solid var(--cherry) !important;
	border-top: 1px solid rgba(192, 30, 60, 0.22) !important;
	border-radius: var(--r-md);
	box-shadow: var(--glass-shadow);
	color: var(--text-ink) !important;
	font-size: var(--fs-100);
	list-style: none;
}
body .woocommerce-info a,
body .woocommerce-message a,
body .woocommerce-error a {
	color: var(--cherry-deep) !important;
	font-weight: 600;
}
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
	color: var(--cherry) !important;
}
.woocommerce-message .button,
.woocommerce-error .button,
.woocommerce-info .button {
	float: none;
	flex-shrink: 0;
	margin-left: auto;
	padding: var(--space-3xs) var(--space-sm);
	font-size: var(--fs-100);
}
.woocommerce-error {
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2xs);
}
.woocommerce-error li {
	list-style: none !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
}

/* Inline notice shown above the single-product buy form after our AJAX
   add-to-cart submit (assets/js/product-glass.js) — same card, just scoped
   so it doesn't inherit the buy card's own glass background twice. */
.as-product__notices {
	margin-bottom: var(--space-md);
}
.as-product__buy .single_add_to_cart_button.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* -----------------------------------------------------------------------------
   Mini-cart drawer — editorial sidebar composition
   Woo/Storefront float the thumbnail (`ul.cart_list li img { float:right;
   width:32px }`) which collapses the title into a purple ribbon. Every rule
   below is scoped through `body .as-cart-drawer` and uses !important where
   those parent styles would otherwise win.
   -------------------------------------------------------------------------- */
.as-cart-overlay {
	position: fixed;
	inset: 0;
	background: rgba(36, 31, 28, 0.42);
	z-index: 240;
	opacity: 0;
	transition: opacity var(--dur) var(--ease);
}
.as-cart-overlay.is-open { opacity: 1; }
.as-cart-overlay[hidden] { display: none; }

body .as-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 250;
	width: min(24.5rem, 100vw);
	display: flex;
	flex-direction: column;
	border-radius: 0;
	border-left: 1px solid rgba(255, 255, 255, 0.55);
	background: rgba(250, 246, 242, 0.94);
	box-shadow: -18px 0 48px rgba(45, 30, 24, 0.16);
	transform: translateX(100%);
	transition: transform var(--dur) var(--ease);
	overflow: hidden;
	color: var(--text-ink);
}
body .as-cart-drawer.is-open { transform: translateX(0); }
body .as-cart-drawer[hidden] { display: none; }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	body .as-cart-drawer {
		background: rgba(250, 246, 242, 0.82);
		-webkit-backdrop-filter: blur(22px) saturate(140%);
		backdrop-filter: blur(22px) saturate(140%);
	}
}

/* Neutralize Storefront/Woo purple link color inside the drawer. */
body .as-cart-drawer a {
	color: var(--text-ink);
	text-decoration: none;
}
body .as-cart-drawer a:hover,
body .as-cart-drawer a:focus-visible {
	color: var(--cherry-deep);
}

body .as-cart-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: max(1.15rem, env(safe-area-inset-top, 0px)) 1.25rem 1rem;
	border-bottom: 1px solid rgba(203, 184, 171, 0.45);
	flex-shrink: 0;
}
body .as-cart-drawer__heading { min-width: 0; }
body .as-cart-drawer__eyebrow {
	margin: 0 0 .15rem;
	color: var(--text-muted);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
body .as-cart-drawer__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(1.65rem, 3vw, 2rem);
	font-weight: 500;
	line-height: 1.1;
	color: var(--text-ink);
}
body .as-cart-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid rgba(115, 91, 79, 0.2) !important;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.82) !important;
	color: var(--text-ink) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
body .as-cart-drawer__close:hover,
body .as-cart-drawer__close:focus,
body .as-cart-drawer__close:focus-visible {
	background: #fff !important;
	border-color: rgba(158, 21, 48, 0.3) !important;
	color: var(--cherry-deep) !important;
	outline: none;
	box-shadow: 0 0 0 3px rgba(158, 21, 48, 0.14);
	transform: translateY(-1px);
}
body .as-cart-drawer__close svg { width: 1rem; height: 1rem; display: block; }

body .as-cart-drawer__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	padding: 0;
}
body .as-cart-drawer__body > .widget_shopping_cart_content {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

body .as-cart-drawer__list,
body .as-cart-drawer ul.woocommerce-mini-cart {
	list-style: none !important;
	margin: 0 !important;
	padding: 1rem 1.15rem !important;
	display: flex !important;
	flex-direction: column;
	gap: .85rem;
	flex: 1 1 auto;
	overflow-y: auto;
	min-height: 0;
	width: 100% !important;
	float: none !important;
}
body .as-cart-drawer__list li::before,
body .as-cart-drawer__list li::after,
body .as-cart-drawer ul.woocommerce-mini-cart li::before,
body .as-cart-drawer ul.woocommerce-mini-cart li::after {
	content: none !important;
	display: none !important;
}

body .as-cart-drawer__item,
body .as-cart-drawer .woocommerce-mini-cart-item {
	position: relative !important;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	gap: .9rem !important;
	margin: 0 !important;
	padding: .9rem 2.4rem .9rem .9rem !important;
	border: 1px solid rgba(203, 184, 171, 0.42) !important;
	border-radius: 1rem !important;
	background: rgba(255, 255, 255, 0.72) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
	float: none !important;
	width: auto !important;
	max-width: none !important;
	clear: none !important;
}
body .as-cart-drawer__thumb {
	display: block !important;
	flex: 0 0 5.25rem !important;
	width: 5.25rem !important;
	max-width: 5.25rem !important;
	height: 6.5rem !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	border-radius: .75rem;
	background: var(--bg-surface);
	box-shadow: 0 6px 14px rgba(45, 30, 24, 0.1);
	text-decoration: none !important;
	float: none !important;
}
body .as-cart-drawer__thumb img,
body .as-cart-drawer .as-cart-drawer__item img,
body .as-cart-drawer .woocommerce-mini-cart-item img {
	display: block !important;
	float: none !important;
	clear: none !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	object-fit: cover !important;
}
body .as-cart-drawer__info {
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: column !important;
	gap: .35rem !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
body .as-cart-drawer__name,
body .as-cart-drawer .as-cart-drawer__name {
	display: block !important;
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--text-ink) !important;
	font-family: var(--font-display) !important;
	font-size: 1.05rem !important;
	font-weight: 500 !important;
	line-height: 1.35 !important;
	letter-spacing: normal !important;
	text-decoration: none !important;
	text-wrap: pretty;
}
body .as-cart-drawer__name:hover,
body .as-cart-drawer__name:focus-visible {
	color: var(--cherry-deep) !important;
}

body .as-cart-drawer__item .variation,
body .as-cart-drawer__item .as-cart-item-meta,
body .as-cart-drawer__item .wc-item-meta,
body .as-cart-drawer__item dl {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: baseline !important;
	gap: .15rem .4rem !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	color: var(--text-muted) !important;
	font-size: .78rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	float: none !important;
}
body .as-cart-drawer__item .variation dt,
body .as-cart-drawer__item .variation dd,
body .as-cart-drawer__item .as-cart-item-meta dt,
body .as-cart-drawer__item .as-cart-item-meta dd,
body .as-cart-drawer__item .wc-item-meta li,
body .as-cart-drawer__item dl dt,
body .as-cart-drawer__item dl dd {
	display: inline !important;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
body .as-cart-drawer__item .variation dt::after,
body .as-cart-drawer__item .as-cart-item-meta dt::after,
body .as-cart-drawer__item dl dt::after {
	content: " · " !important;
	font-weight: 400 !important;
	color: rgba(115, 91, 79, 0.5) !important;
}
body .as-cart-drawer__item .variation dd p,
body .as-cart-drawer__item .as-cart-item-meta dd p,
body .as-cart-drawer__item .wc-item-meta p,
body .as-cart-drawer__item dl dd p {
	display: inline !important;
	margin: 0 !important;
}

body .as-cart-drawer__meta-row {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	gap: .75rem !important;
	margin-top: .2rem !important;
	width: 100% !important;
}
body .as-cart-drawer__item .quantity {
	display: inline !important;
	float: none !important;
	margin: 0 !important;
	color: var(--text-muted) !important;
	font-size: .8rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
}
body .as-cart-drawer__line-total {
	color: var(--text-ink) !important;
	font-size: .95rem !important;
	font-weight: 650 !important;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

body .as-cart-drawer__remove,
body .as-cart-drawer .as-cart-drawer__item a.remove,
body .as-cart-drawer .woocommerce-mini-cart-item a.remove {
	position: absolute !important;
	top: .55rem !important;
	right: .55rem !important;
	left: auto !important;
	z-index: 2;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 1.85rem !important;
	height: 1.85rem !important;
	min-width: 1.85rem !important;
	min-height: 1.85rem !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba(115, 91, 79, 0.16) !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, 0.92) !important;
	color: var(--text-muted) !important;
	font-family: inherit !important;
	font-size: 1.15rem !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	overflow: visible !important;
	opacity: 1 !important;
	box-shadow: 0 3px 10px rgba(45, 30, 24, 0.08);
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
/* Kill Storefront Font Awesome × (text-indent + ::before) and Woo red pill. */
body .as-cart-drawer__remove::before,
body .as-cart-drawer__remove::after,
body .as-cart-drawer .as-cart-drawer__item a.remove::before,
body .as-cart-drawer .as-cart-drawer__item a.remove::after,
body .as-cart-drawer .woocommerce-mini-cart-item a.remove::before,
body .as-cart-drawer .woocommerce-mini-cart-item a.remove::after {
	content: none !important;
	display: none !important;
}
body .as-cart-drawer__remove:hover,
body .as-cart-drawer .as-cart-drawer__item a.remove:hover,
body .as-cart-drawer .woocommerce-mini-cart-item a.remove:hover {
	background: #fff !important;
	border-color: rgba(158, 21, 48, 0.28) !important;
	color: var(--cherry-deep) !important;
	transform: scale(1.04);
}

/* Soften Woo's jQuery.blockUI flash while the remove AJAX runs. */
body .as-cart-drawer .woocommerce-mini-cart-item {
	transition: opacity .28s var(--ease), transform .28s var(--ease), filter .28s var(--ease);
}
body .as-cart-drawer .woocommerce-mini-cart-item.blockUI,
body .as-cart-drawer .woocommerce-mini-cart-item.processing,
body .as-cart-drawer .blockUI.blockOverlay {
	border-radius: 1rem !important;
	background: rgba(250, 246, 242, 0.55) !important;
	opacity: 1 !important;
	cursor: wait !important;
}
body .as-cart-drawer .woocommerce-mini-cart-item:has(.blockUI),
body .as-cart-drawer .woocommerce-mini-cart-item.block {
	opacity: 0.45;
	transform: scale(0.985);
	filter: grayscale(0.15);
}
body .as-cart-drawer .blockUI.blockMsg {
	display: none !important;
}

body .as-cart-drawer__footer {
	flex-shrink: 0;
	margin-top: auto;
	padding: 1rem 1.15rem max(1.15rem, env(safe-area-inset-bottom, 0px));
	border-top: 1px solid rgba(203, 184, 171, 0.48);
	background: linear-gradient(180deg, rgba(255, 252, 249, 0.45), rgba(255, 255, 255, 0.78));
}
body .as-cart-drawer__total,
body .as-cart-drawer .woocommerce-mini-cart__total {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	gap: 1rem !important;
	margin: 0 0 1rem !important;
	padding: 0 !important;
	border: 0 !important;
	color: var(--text-ink) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
}
body .as-cart-drawer__total strong {
	font-weight: 600 !important;
	color: var(--text-muted) !important;
	font-size: .78rem !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	font-family: inherit !important;
}
body .as-cart-drawer__total .amount,
body .as-cart-drawer__total .woocommerce-Price-amount {
	font-family: var(--font-display) !important;
	font-size: 1.4rem !important;
	font-weight: 500 !important;
	font-variant-numeric: tabular-nums;
	color: var(--text-ink) !important;
}

body .as-cart-drawer__buttons,
body .as-cart-drawer .woocommerce-mini-cart__buttons {
	display: flex !important;
	flex-direction: column !important;
	gap: .55rem !important;
	margin: 0 !important;
	padding: 0 !important;
}
body .as-cart-drawer__buttons .button,
body .as-cart-drawer__btn,
body .as-cart-drawer .woocommerce-mini-cart__buttons .button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 2.95rem !important;
	margin: 0 !important;
	padding: .75rem 1rem !important;
	border-radius: .85rem !important;
	font-size: .95rem !important;
	font-weight: 650 !important;
	line-height: 1.15 !important;
	text-align: center !important;
	text-decoration: none !important;
	box-shadow: none !important;
}
body .as-cart-drawer__buttons .button::after,
body .as-cart-drawer__btn::after {
	content: none !important;
	display: none !important;
}
body .as-cart-drawer__btn--ghost,
body .as-cart-drawer__buttons .button.wc-forward:not(.checkout) {
	border: 1px solid rgba(115, 91, 79, 0.18) !important;
	background: rgba(255, 255, 255, 0.88) !important;
	color: var(--text-ink) !important;
}
body .as-cart-drawer__btn--ghost:hover,
body .as-cart-drawer__buttons .button.wc-forward:not(.checkout):hover {
	background: #fff !important;
	color: var(--cherry-deep) !important;
	border-color: rgba(158, 21, 48, 0.24) !important;
}
body .as-cart-drawer__btn--primary,
body .as-cart-drawer__buttons a.checkout,
body .as-cart-drawer .as-cart-drawer__buttons a.checkout {
	border: 1px solid transparent !important;
	background: var(--cherry) !important;
	color: #fff !important;
	box-shadow: 0 8px 18px rgba(158, 21, 48, 0.22) !important;
}
body .as-cart-drawer__btn--primary:hover,
body .as-cart-drawer__buttons a.checkout:hover {
	background: var(--cherry-deep) !important;
	color: #fff !important;
}

body .as-cart-drawer__empty {
	margin: auto;
	padding: 2.5rem 1.5rem;
	color: var(--text-muted);
	text-align: center;
	font-size: .95rem;
	line-height: 1.5;
}

@media (max-width: 540px) {
	body .as-cart-drawer {
		right: 0;
		width: 100vw;
		border-left: 0;
		border-radius: 0;
	}
}

/* -----------------------------------------------------------------------------
   Cart page — same density as checkout: slim hero, items | sticky summary
   -------------------------------------------------------------------------- */
.as-cart-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-lg);
}
.as-cart-table th {
	text-align: left;
	font-size: var(--fs-100);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--text-muted);
	padding-bottom: var(--space-sm);
	border-bottom: 1px solid var(--border-warm);
}
.as-cart-table td {
	padding: var(--space-sm) var(--space-xs);
	border-bottom: 1px solid var(--border-warm);
	vertical-align: middle;
}
.as-cart-collaterals {
	display: grid;
	gap: var(--space-lg);
}
.as-cart-summary {
	padding: var(--space-lg);
}
.as-cart-summary h2 { font-size: var(--fs-400); }
.as-cart-summary table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-md);
}
.as-cart-summary th,
.as-cart-summary td {
	padding: var(--space-2xs) 0;
	text-align: left;
}
.as-cart-summary td { text-align: right; }
.as-cart-summary tr:not(:last-child) th,
.as-cart-summary tr:not(:last-child) td {
	border-bottom: 1px solid var(--border-warm);
}
.as-cart-summary .order-total th,
.as-cart-summary .order-total td {
	font-size: var(--fs-300);
	font-weight: 700;
	color: var(--text-ink);
	padding-top: var(--space-sm);
}
.as-cart-summary .wc-proceed-to-checkout a {
	display: flex;
	width: 100%;
}

.woocommerce-cart .as-cart-screen {
	max-width: 72rem;
	padding-top: clamp(4.75rem, 6.5vw, 5.75rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.as-cart-screen__hero {
	margin: 0 0 1.15rem;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.as-cart-screen__hero .as-eyebrow { margin-bottom: .2rem; }
.as-cart-screen__hero h1 {
	margin: 0;
	font-size: clamp(1.85rem, 3.4vw, 2.55rem);
	font-weight: 500;
	line-height: 1.1;
}
.as-cart-screen__lede {
	max-width: 28rem;
	margin: .4rem 0 0;
	color: var(--text-muted);
	font-size: .92rem;
	line-height: 1.45;
}
.as-cart-screen__content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 20.5rem;
	gap: clamp(1rem, 2.4vw, 1.65rem);
	align-items: start;
	width: 100%;
}
.as-cart-screen__content > .woocommerce > .woocommerce-notices-wrapper,
.as-cart-screen__content > .woocommerce > .woocommerce-info,
.as-cart-screen__content > .woocommerce > .woocommerce-message,
.as-cart-screen__content > .woocommerce > .woocommerce-error,
.as-cart-screen__content > .woocommerce > .cart-empty,
.as-cart-screen__content > .woocommerce > .return-to-shop,
.as-cart-screen__content > .woocommerce > .as-cart-empty-state {
	grid-column: 1 / -1;
	grid-row: auto;
}
/* Page editor often appends blocks after [woocommerce_cart]. */
.as-cart-screen__content > .woocommerce ~ * {
	display: none !important;
}

.woocommerce-cart .as-cart-page {
	margin: 0;
	padding: clamp(.85rem, 1.6vw, 1.15rem) clamp(.9rem, 1.8vw, 1.25rem);
	border: 1px solid rgba(255, 255, 255, .76);
	border-radius: 1.15rem;
	background: rgba(255, 255, 255, .55);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .88), 0 10px 24px rgba(66, 42, 33, .055);
}
.woocommerce-cart .as-cart-table {
	margin: 0;
	table-layout: fixed;
	border-collapse: separate;
	border-spacing: 0;
}
.woocommerce-cart .as-cart-table th {
	padding: .15rem .65rem .7rem;
	font-size: .68rem;
	letter-spacing: .1em;
	border-bottom: 1px solid rgba(203, 184, 171, .55);
	vertical-align: bottom;
}
.woocommerce-cart .as-cart-table th.product-thumbnail { width: 5.4rem; }
.woocommerce-cart .as-cart-table th.product-name { text-align: left; }
.woocommerce-cart .as-cart-table th.product-quantity { width: 8.75rem; text-align: center; }
.woocommerce-cart .as-cart-table th.product-subtotal { width: 6.5rem; text-align: right; }
.woocommerce-cart table.cart.as-cart-table td {
	padding: .85rem .65rem !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(203, 184, 171, .4) !important;
	vertical-align: middle;
	background: transparent !important;
}
.woocommerce-cart table.cart.as-cart-table tr:last-child td {
	border-bottom: 0 !important;
}

.woocommerce-cart .as-cart-item__media {
	position: relative;
	display: inline-block;
	line-height: 0;
}
.woocommerce-cart .as-cart-item__media .product-remove {
	position: static;
	display: contents;
	margin: 0;
	padding: 0;
	border: 0;
	width: auto;
	font-size: inherit;
	line-height: inherit;
}
.woocommerce-cart .as-cart-item__thumb {
	display: block;
	line-height: 0;
}
.woocommerce-cart .as-cart-table .product-thumbnail img {
	display: block;
	width: 4.35rem;
	height: 5.1rem;
	margin: 0;
	object-fit: cover;
	border-radius: .75rem;
	box-shadow: 0 6px 14px rgba(45, 30, 24, .1);
}
.woocommerce-cart .as-cart-item__remove,
.woocommerce-cart a.remove.as-cart-item__remove {
	position: absolute !important;
	top: -.4rem !important;
	left: -.4rem !important;
	right: auto !important;
	z-index: 2;
	float: none !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 1.7rem !important;
	height: 1.7rem !important;
	min-width: 1.7rem !important;
	min-height: 1.7rem !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba(255, 255, 255, .78);
	border-radius: 50%;
	background: rgba(255, 252, 249, .94);
	box-shadow: 0 3px 10px rgba(45, 30, 24, .14);
	color: var(--text-ink) !important;
	font-family: inherit !important;
	font-size: 1.05rem !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	text-align: center;
	opacity: 1 !important;
}
.woocommerce-cart .as-cart-item__remove::before,
.woocommerce-cart .as-cart-item__remove::after,
.woocommerce-cart a.remove.as-cart-item__remove::before,
.woocommerce-cart a.remove.as-cart-item__remove::after {
	content: none !important;
	display: none !important;
}
.woocommerce-cart .as-cart-item__remove:hover,
.woocommerce-cart a.remove.as-cart-item__remove:hover {
	background: #fff;
	border-color: rgba(158, 21, 48, .28);
	color: var(--cherry-deep) !important;
}

.woocommerce-cart .as-cart-table .product-name a {
	min-height: 0;
	font-family: var(--font-display);
	font-size: clamp(1.05rem, 1.7vw, 1.28rem);
	line-height: 1.2;
	font-weight: 500;
	color: var(--text-ink);
	text-decoration: none;
}
.woocommerce-cart .as-cart-table .product-name a:hover { color: var(--cherry-deep); }
.woocommerce-cart .as-cart-item__unit {
	display: block;
	margin-top: .35rem;
	color: var(--text-muted);
	font-size: .82rem;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}
.woocommerce-cart .as-cart-table .product-name .variation,
.woocommerce-cart .as-cart-table .product-name .wc-item-meta,
.woocommerce-cart .as-cart-table .product-name .as-cart-item-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .3rem .5rem;
	margin: .4rem 0 0;
	padding: 0;
	color: var(--text-muted);
	font-size: .8rem;
	line-height: 1.35;
}
.woocommerce-cart .as-cart-table .product-name .variation dt,
.woocommerce-cart .as-cart-table .product-name .variation dd,
.woocommerce-cart .as-cart-table .product-name .wc-item-meta li {
	display: inline;
	float: none;
	margin: 0;
	padding: 0;
}
.woocommerce-cart .as-cart-table .product-name .variation dt::after,
.woocommerce-cart .as-cart-table .product-name .as-cart-item-meta dt::after {
	content: " · ";
	font-weight: 400;
	color: rgba(115, 91, 79, .55);
}
.woocommerce-cart .as-cart-table .product-name .variation dd p,
.woocommerce-cart .as-cart-table .product-name .as-cart-item-meta dd p {
	display: inline;
	margin: 0;
}

.woocommerce-cart .as-cart-table .product-quantity { text-align: center; }
.woocommerce-cart .as-cart-table .product-subtotal {
	text-align: right;
	font-weight: 650;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.woocommerce-cart .as-cart-table .quantity {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.55rem;
	padding: .1rem;
	border: 1px solid rgba(203, 184, 171, .72);
	border-radius: 999px;
	background: rgba(255, 255, 255, .78);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}
.woocommerce-cart .as-cart-table .quantity .qty {
	width: 2.1rem;
	min-height: 2.15rem;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	font-weight: 600;
	text-align: center;
}
.woocommerce-cart .as-cart-table .quantity .as-qty__btn {
	box-sizing: border-box;
	flex: 0 0 2.05rem;
	width: 2.05rem;
	min-width: 2.05rem;
	min-height: 2.05rem;
	padding: 0 !important;
	border-radius: 50%;
	font-size: 1.1rem;
}
.woocommerce-cart .as-cart-table .quantity .as-qty__btn:hover {
	background: var(--cherry-tint);
	color: var(--cherry-deep);
}

.woocommerce-cart table.cart.as-cart-table td.actions {
	padding: .95rem .2rem .1rem !important;
	border: 0 !important;
	background: transparent !important;
}
.woocommerce-cart .as-cart-coupon,
.woocommerce-cart .as-cart-table .coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin: 0;
	padding: 0;
	border: 0;
}
.woocommerce-cart .as-cart-table .coupon .input-text {
	flex: 1 1 10rem;
	min-height: 2.55rem;
	max-width: 14rem;
	margin: 0;
	padding: .5rem .85rem;
	border: 1px solid rgba(190, 168, 155, .65);
	border-radius: .75rem;
	background: rgba(255, 255, 255, .78);
}
.woocommerce-cart .as-cart-table .coupon .button {
	min-height: 2.55rem;
	margin: 0;
	padding: .5rem .95rem;
	border: 1px solid rgba(115, 91, 79, .18);
	border-radius: .75rem;
	background: rgba(255, 255, 255, .7);
	color: var(--text-ink);
	font-weight: 600;
	box-shadow: none;
}
.woocommerce-cart .as-cart-table .coupon .button:hover {
	background: rgba(255, 255, 255, .92);
	color: var(--cherry-deep);
}
.woocommerce-cart .as-cart-table [name="update_cart"] { display: none !important; }

.woocommerce-cart .as-cart-collaterals {
	grid-template-columns: 1fr;
	margin: 0;
	position: sticky;
	top: calc(var(--as-announce-h, 0px) + 4.6rem);
}
.woocommerce-cart .as-cart-summary {
	float: none !important;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: clamp(1.05rem, 2vw, 1.4rem);
	border: 1px solid rgba(255, 255, 255, .76);
	border-radius: 1.15rem;
	background: linear-gradient(145deg, rgba(255, 255, 255, .78), rgba(248, 238, 232, .7));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 12px 28px rgba(66, 42, 33, .07);
}
.woocommerce-cart .as-cart-summary h2 {
	margin: 0 0 .85rem;
	font-family: var(--font-display);
	font-size: clamp(1.45rem, 2.2vw, 1.85rem);
	font-weight: 500;
	line-height: 1.15;
}
.woocommerce-cart .as-cart-summary table { margin: 0 0 .95rem; }
.woocommerce-cart .as-cart-summary th,
.woocommerce-cart .as-cart-summary td { padding: .65rem 0; }
.woocommerce-cart .as-cart-summary .shipping td {
	color: var(--text-muted);
	font-size: .84rem;
	line-height: 1.45;
}
.woocommerce-cart .as-cart-summary .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-cart .as-cart-summary .woocommerce-shipping-methods li {
	margin: 0 0 .35rem;
}
.woocommerce-cart .as-cart-summary .woocommerce-shipping-methods label {
	display: inline-flex;
	align-items: flex-start;
	gap: .4rem;
	color: var(--text-ink);
	font-size: .86rem;
	line-height: 1.35;
	cursor: pointer;
}
.woocommerce-cart .as-cart-summary .shipping-calculator-button,
.woocommerce-cart .as-cart-summary .woocommerce-shipping-calculator {
	display: none !important;
}
.woocommerce-cart .as-cart-summary .order-total th,
.woocommerce-cart .as-cart-summary .order-total td {
	padding-top: .85rem;
	font-size: 1.1rem;
}
.woocommerce-cart .as-cart-summary .wc-proceed-to-checkout { margin: 0; }
.woocommerce-cart .as-cart-summary .wc-proceed-to-checkout a {
	justify-content: center;
	min-height: 2.95rem;
	border-radius: .85rem;
	background: var(--cherry);
	color: #fff;
	box-shadow: 0 8px 16px rgba(158, 21, 48, .18);
}
.woocommerce-cart .as-cart-summary .wc-proceed-to-checkout a:hover {
	background: var(--cherry-deep);
	transform: translateY(-1px);
}

.as-cart-empty-state {
	max-width: 36rem;
	margin: 0 auto;
	padding: clamp(1.75rem, 5vw, 3.25rem) clamp(1.1rem, 3.5vw, 2.4rem);
	border: 1px solid rgba(255, 255, 255, .78);
	border-radius: 1.25rem;
	background: linear-gradient(145deg, rgba(255, 255, 255, .78), rgba(247, 235, 228, .66));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 14px 34px rgba(66, 42, 33, .07);
	text-align: center;
}
.as-cart-empty-state__icon {
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	margin: 0 auto .85rem;
	border: 1px solid rgba(158, 21, 48, .2);
	border-radius: 50%;
	color: var(--cherry);
	font-family: var(--font-display);
	font-size: 1.75rem;
}
.as-cart-empty-state h2 {
	margin: .15rem 0 .55rem;
	font-size: clamp(1.7rem, 3.2vw, 2.35rem);
}
.as-cart-empty-state > p:not(.as-eyebrow) {
	margin: 0 auto 1.2rem;
	color: var(--text-muted);
}
.as-cart-empty-state .return-to-shop { margin: 0; }
.as-cart-empty-state .button {
	min-height: 2.85rem;
	padding-inline: 1.2rem;
	border-radius: .8rem;
	background: var(--cherry);
	color: #fff;
}

@media (max-width: 900px) {
	.as-cart-screen__content > .woocommerce {
		grid-template-columns: 1fr;
	}
	.woocommerce-cart .as-cart-collaterals {
		position: static;
		order: -1;
	}
}

@media (max-width: 760px) {
	.woocommerce-cart .as-cart-screen { padding-top: 5.5rem; }
	.woocommerce-cart .as-cart-page { padding: .75rem; }
	.woocommerce-cart .as-cart-table,
	.woocommerce-cart .as-cart-table tbody,
	.woocommerce-cart .as-cart-table tr,
	.woocommerce-cart .as-cart-table td { display: block; width: 100%; }
	.woocommerce-cart .as-cart-table thead { display: none; }
	.woocommerce-cart .as-cart-table .woocommerce-cart-form__cart-item {
		display: grid;
		grid-template-columns: 4.8rem minmax(0, 1fr);
		column-gap: .85rem;
		row-gap: .5rem;
		align-items: start;
		padding: .95rem .15rem 1.05rem;
		border-bottom: 1px solid var(--border-warm);
	}
	.woocommerce-cart table.cart.as-cart-table td { padding: 0 !important; border: 0 !important; }
	.woocommerce-cart table.cart.as-cart-table td::before {
		content: none !important;
		display: none !important;
	}
	.woocommerce-cart .as-cart-table .product-thumbnail { grid-column: 1; grid-row: 1 / span 3; }
	.woocommerce-cart .as-cart-table .product-thumbnail img { width: 4.8rem; height: 5.6rem; }
	.woocommerce-cart .as-cart-table .product-name { grid-column: 2; }
	.woocommerce-cart .as-cart-table .product-quantity,
	.woocommerce-cart .as-cart-table .product-subtotal {
		display: inline-flex;
		width: auto;
		align-items: center;
		gap: .4rem;
		margin: 0;
		text-align: left;
	}
	.woocommerce-cart .as-cart-table .product-quantity { grid-column: 2; }
	.woocommerce-cart .as-cart-table .product-subtotal {
		grid-column: 2;
		justify-content: flex-start;
		font-size: 1.02rem;
	}
	.woocommerce-cart .as-cart-table .product-subtotal::before {
		content: "Разом";
		display: inline !important;
		color: var(--text-muted);
		font-size: .72rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: .06em;
	}
	.woocommerce-cart table.cart.as-cart-table td.actions { padding: .9rem .1rem .15rem !important; }
	.woocommerce-cart .as-cart-table .coupon {
		display: grid;
		grid-template-columns: 1fr auto;
		max-width: none;
	}
	.woocommerce-cart .as-cart-table .coupon .input-text { max-width: none; }
}

/* -----------------------------------------------------------------------------
   Checkout — single composition: contacts | order + payment
   -------------------------------------------------------------------------- */
.woocommerce-checkout .as-checkout-screen {
	max-width: 72rem;
	padding-top: clamp(4.75rem, 6.5vw, 5.75rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.as-checkout-screen__hero {
	margin: 0 0 1.15rem;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.as-checkout-screen__hero .as-eyebrow { margin-bottom: .2rem; }
.as-checkout-screen__hero h1 {
	margin: 0;
	font-size: clamp(1.85rem, 3.4vw, 2.55rem);
	font-weight: 500;
	line-height: 1.1;
}
.as-checkout-screen__lede {
	max-width: 28rem;
	margin: .4rem 0 0;
	color: var(--text-muted);
	font-size: .92rem;
	line-height: 1.45;
}
.as-checkout-screen__content > .woocommerce { width: 100%; }
/* Page editor often appends policy blocks after [woocommerce_checkout] —
   hide them so the checkout stays the one job of this screen. */
.as-checkout-screen__content > .woocommerce ~ * {
	display: none !important;
}

/* Compact coupon — no notice banner. */
.woocommerce-checkout .as-checkout-coupon-toggle {
	margin: 0 0 .85rem;
}
.woocommerce-checkout .as-checkout-coupon-toggle__text {
	margin: 0;
	color: var(--text-muted);
	font-size: .86rem;
}
.woocommerce-checkout .as-checkout-coupon-toggle .showcoupon {
	display: inline;
	min-width: 0;
	min-height: 0;
	margin-left: .35rem;
	color: var(--cherry-deep);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .12em;
}
.woocommerce-checkout .as-checkout-coupon {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: .5rem;
	align-items: stretch;
	margin: 0 0 1rem;
	padding: .75rem;
	border: 1px solid rgba(203, 184, 171, 0.45);
	border-radius: .85rem;
	background: rgba(255, 255, 255, 0.55);
}
.woocommerce-checkout .as-checkout-coupon .form-row {
	margin: 0 !important;
	width: auto !important;
	float: none !important;
}
.woocommerce-checkout .as-checkout-coupon .form-row-first { grid-column: 1; }
.woocommerce-checkout .as-checkout-coupon .form-row-last { grid-column: 2; }
.woocommerce-checkout .as-checkout-coupon .clear { display: none; }

/* Layout: form left, sticky sidebar right. */
.woocommerce-checkout form.as-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(18.5rem, 22.5rem);
	column-gap: clamp(1.1rem, 2.8vw, 2rem);
	row-gap: 1rem;
	align-items: start;
}
.woocommerce-checkout .as-checkout #customer_details {
	float: none !important;
	width: 100% !important;
	grid-column: 1;
	grid-row: 1;
	margin: 0;
	padding: 1.1rem 1.15rem 1.2rem;
	border: 1px solid rgba(203, 184, 171, 0.4);
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.62);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}
.woocommerce-checkout .as-checkout .col2-set {
	display: flex !important;
	flex-direction: column;
	float: none !important;
	width: 100% !important;
	gap: 0;
}
.woocommerce-checkout .as-checkout #customer_details .col-1,
.woocommerce-checkout .as-checkout #customer_details .col-2 {
	float: none !important;
	width: 100% !important;
	margin: 0;
}
.woocommerce-checkout .as-checkout h3 {
	margin: 0 0 .75rem;
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--text-ink);
}
.woocommerce-checkout .as-checkout .form-row {
	margin: 0 0 .65rem;
	padding: 0;
	width: 100%;
	float: none;
}
.woocommerce-checkout .as-checkout .form-row-first,
.woocommerce-checkout .as-checkout .form-row-last {
	display: block;
	width: 100%;
	float: none;
	margin-right: 0;
}
@media (min-width: 640px) {
	.woocommerce-checkout .as-checkout .woocommerce-billing-fields__field-wrapper,
	.woocommerce-checkout .as-checkout .woocommerce-shipping-fields__field-wrapper {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: .65rem;
	}
	.woocommerce-checkout .as-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide,
	.woocommerce-checkout .as-checkout .woocommerce-shipping-fields__field-wrapper .form-row-wide {
		grid-column: 1 / -1;
	}
}
.woocommerce-checkout .as-checkout label {
	display: block;
	margin: 0 0 .28rem;
	color: var(--text-muted);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .01em;
}
.woocommerce-checkout .as-checkout .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: .4rem;
	margin: 0;
	color: var(--text-ink);
	font-size: .9rem;
	font-weight: 500;
}
.woocommerce-checkout .as-checkout input.input-text,
.woocommerce-checkout .as-checkout select,
.woocommerce-checkout .as-checkout textarea,
.woocommerce-checkout .as-checkout .select2-container .select2-selection--single {
	min-height: 2.55rem;
	padding: .5rem .7rem;
	border-radius: .65rem;
	border-color: rgba(190, 168, 155, 0.7);
	background: #fff;
}
.woocommerce-checkout .as-checkout textarea { min-height: 4.75rem; }

.woocommerce-checkout .as-checkout__sidebar {
	grid-column: 2;
	grid-row: 1;
	position: sticky;
	top: calc(var(--as-announce-h, 0px) + 4.6rem);
	display: flex;
	flex-direction: column;
	gap: .85rem;
	margin: 0;
	padding: 1.05rem 1.1rem 1.15rem;
	border: 1px solid rgba(203, 184, 171, 0.42);
	border-radius: 1rem;
	background: rgba(255, 252, 249, 0.88);
	box-shadow: 0 12px 28px rgba(66, 42, 33, 0.07);
}
.woocommerce-checkout .as-checkout #order_review_heading {
	float: none !important;
	width: auto !important;
	margin: 0;
}
.woocommerce-checkout .as-checkout #order_review {
	float: none !important;
	width: 100% !important;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	position: static;
}
.woocommerce-checkout .as-checkout-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}
.woocommerce-checkout .as-checkout-table th,
.woocommerce-checkout .as-checkout-table td {
	padding: .55rem 0;
	border-bottom: 1px solid rgba(203, 184, 171, 0.35);
	font-size: .86rem;
	vertical-align: top;
}
.woocommerce-checkout .as-checkout-table thead th {
	padding-top: 0;
	color: var(--text-muted);
	font-size: .72rem;
	font-weight: 650;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.woocommerce-checkout .as-checkout-table .product-name {
	padding-right: .75rem;
	color: var(--text-ink);
	text-align: left;
}
.woocommerce-checkout .as-checkout-table .product-total,
.woocommerce-checkout .as-checkout-table tfoot td {
	text-align: right;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.woocommerce-checkout .as-checkout-table .product-quantity { color: var(--text-muted); font-weight: 600; }
.woocommerce-checkout .as-checkout-table .cart-subtotal th,
.woocommerce-checkout .as-checkout-table .woocommerce-shipping-totals th,
.woocommerce-checkout .as-checkout-table tfoot th {
	text-align: left;
	font-weight: 500;
	color: var(--text-muted);
}
.woocommerce-checkout .as-checkout-table .order-total th,
.woocommerce-checkout .as-checkout-table .order-total td {
	padding-top: .7rem;
	border-bottom: 0;
	color: var(--text-ink);
	font-size: 1.05rem;
	font-weight: 650;
}
.woocommerce-checkout .as-checkout-table .variation,
.woocommerce-checkout .as-checkout-table .as-cart-item-meta {
	display: block;
	margin-top: .2rem;
	color: var(--text-muted);
	font-size: .78rem;
}

/* Payment — explicit block, cherry radios (kill Storefront purple). */
.woocommerce-checkout .as-checkout-payment,
.woocommerce-checkout #payment.woocommerce-checkout-payment {
	margin: 0;
	padding: .85rem 0 0;
	border-top: 1px solid rgba(203, 184, 171, 0.4);
	background: transparent !important;
	border-radius: 0 !important;
}
.woocommerce-checkout .as-checkout-payment__title {
	margin: 0 0 .65rem;
	font-family: var(--font-display);
	font-size: 1.2rem;
	font-weight: 500;
}
.woocommerce-checkout .as-checkout-payment__methods,
.woocommerce-checkout ul.wc_payment_methods {
	list-style: none;
	margin: 0 0 .85rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .45rem;
}
.woocommerce-checkout .as-checkout-payment__method,
.woocommerce-checkout ul.payment_methods > li {
	margin: 0;
	padding: .7rem .75rem;
	border: 1px solid rgba(203, 184, 171, 0.45);
	border-radius: .75rem;
	background: rgba(255, 255, 255, 0.78);
	list-style: none;
}
.woocommerce-checkout .as-checkout-payment__method:has(input:checked),
.woocommerce-checkout ul.payment_methods > li:has(input:checked) {
	border-color: rgba(158, 21, 48, 0.35);
	background: rgba(255, 255, 255, 0.95);
	box-shadow: 0 0 0 1px rgba(158, 21, 48, 0.12);
}
.woocommerce-checkout .as-checkout-payment__label {
	display: flex;
	align-items: center;
	gap: .55rem;
	margin: 0;
	color: var(--text-ink) !important;
	font-size: .92rem;
	font-weight: 600;
	cursor: pointer;
}
.woocommerce-checkout .as-checkout-payment input.input-radio,
.woocommerce-checkout #payment input.input-radio {
	appearance: none;
	-webkit-appearance: none;
	width: 1.05rem;
	height: 1.05rem;
	margin: 0;
	flex: 0 0 auto;
	border: 1.5px solid rgba(115, 91, 79, 0.45);
	border-radius: 999px;
	background: #fff;
	accent-color: var(--cherry);
	box-shadow: none;
}
.woocommerce-checkout .as-checkout-payment input.input-radio:checked,
.woocommerce-checkout #payment input.input-radio:checked {
	border-color: var(--cherry);
	background: radial-gradient(circle at center, var(--cherry) 0 38%, #fff 42% 100%);
}
.woocommerce-checkout .as-checkout-payment__box,
.woocommerce-checkout .payment_box {
	margin: .55rem 0 0;
	padding: .55rem .65rem;
	border: 0;
	border-radius: .55rem;
	background: rgba(250, 246, 242, 0.9);
	color: var(--text-muted) !important;
	font-size: .8rem;
	line-height: 1.4;
}
.woocommerce-checkout .as-checkout-payment a,
.woocommerce-checkout #payment a {
	color: var(--cherry-deep) !important;
}
/* Mono plugin hides its classic radio (`.payment_method_monocheckout{display:none}`)
   in favor of an express button. Show it inside our Оплата list instead. */
.woocommerce-checkout .as-checkout-payment__methods > .payment_method_monocheckout,
.woocommerce-checkout #payment ul.payment_methods > .payment_method_monocheckout {
	display: block !important;
}
.woocommerce-checkout .as-checkout-place-order {
	margin: 0;
	padding: 0;
	width: 100%;
	float: none;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin: 0 0 .7rem;
	font-size: .78rem;
	line-height: 1.4;
	color: var(--text-muted);
}
.woocommerce-checkout .as-checkout #place_order {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 2.95rem;
	height: auto;
	margin: 0;
	padding: .75rem 1rem !important;
	border: 0 !important;
	border-radius: .8rem;
	background: var(--cherry) !important;
	color: #fff !important;
	box-shadow: 0 8px 18px rgba(158, 21, 48, 0.22);
	font-size: .98rem;
	font-weight: 650;
	line-height: 1.15;
	white-space: normal;
}
.woocommerce-checkout .as-checkout #place_order:hover {
	background: var(--cherry-deep) !important;
	color: #fff !important;
}

@media (max-width: 900px) {
	.woocommerce-checkout .as-checkout-screen { padding-top: 5.5rem; }
	.woocommerce-checkout form.as-checkout {
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}
	.woocommerce-checkout .as-checkout #customer_details { order: 1; }
	.woocommerce-checkout .as-checkout__sidebar {
		order: 2;
		position: static;
		width: 100%;
	}
}
@media (max-width: 540px) {
	.woocommerce-checkout .as-checkout #customer_details,
	.woocommerce-checkout .as-checkout__sidebar {
		padding: .95rem .9rem 1rem;
		border-radius: .85rem;
	}
	.woocommerce-checkout .as-checkout-coupon {
		grid-template-columns: 1fr;
	}
	.woocommerce-checkout .as-checkout-coupon .form-row-last .button {
		width: 100%;
	}
}

@media (min-width:960px) {
	.woocommerce-cart .as-cart-screen__content > .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 20.5rem;
		gap: clamp(1rem, 2.5vw, 1.75rem);
		align-items: start;
	}
	.as-cart-screen__content > .woocommerce > .woocommerce-notices-wrapper,
	.as-cart-screen__content > .woocommerce > .woocommerce-info,
	.as-cart-screen__content > .woocommerce > .woocommerce-message,
	.as-cart-screen__content > .woocommerce > .woocommerce-error {
		grid-column: 1 / -1;
		grid-row: 1;
	}
	.woocommerce-cart .as-cart-page {
		float: none !important;
		width: 100% !important;
		grid-column: 1;
		grid-row: 2;
	}
	.woocommerce-cart .as-cart-collaterals {
		float: none !important;
		width: 100% !important;
		grid-column: 2;
		grid-row: 2;
		margin: 0;
	}
	.woocommerce-cart .as-cart-summary {
		position: sticky;
		top: calc(var(--as-announce-h, 0px) + 4.6rem);
	}
}

.cross-sells { margin-bottom: var(--space-lg); }
.cross-sells h2 { margin-bottom: var(--space-md); }

/* Order-received (thank-you) page overview card. */
.as-order-overview {
	list-style: none;
	margin: var(--space-lg) 0 0;
	padding: var(--space-lg);
	display: grid;
	gap: var(--space-2xs) var(--space-lg);
	grid-template-columns: 1fr 1fr;
	background: var(--bg-surface);
	border-radius: var(--r-md);
}
.as-order-overview li { font-size: var(--fs-100); color: var(--text-muted); }
.as-order-overview li strong { display: block; font-size: var(--fs-200); color: var(--text-ink); }

.woocommerce-terms-and-conditions-wrapper { margin-bottom: var(--space-sm); }

/* -----------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
/* #colophon.as-footer (id + class) beats Storefront's own `.site-footer`
   rule — including its Customizer "footer background colour" inline style,
   which is enqueued on a separate `storefront-style` handle that happens to
   load after ours, so same-specificity source order can't be relied on. */
#colophon.as-footer {
	position: relative;
	background: var(--text-ink);
	color: var(--bg-paper);
	margin-top: var(--space-2xl);
}

/* The "faint glass top edge": a slim strip straddling the boundary between
   page content and footer, blurring whatever scrolls behind it. This is the
   only frosted part of the footer — the footer body itself is a solid warm
   dark, not translucent. */
.as-footer::before {
	content: "";
	position: absolute;
	top: -28px;
	left: 0;
	right: 0;
	height: 56px;
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.06) 100%);
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	pointer-events: none;
	z-index: 1;
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.as-footer::before {
		background: linear-gradient(180deg, rgba(36, 31, 28, 0) 0%, rgba(36, 31, 28, 0.9) 100%);
	}
}

.as-footer .col-full { position: relative; z-index: 2; padding-block: var(--space-xl); }

.as-footer__top {
	display: grid;
	gap: var(--space-xl);
	grid-template-columns: 1fr;
	padding-bottom: var(--space-xl);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.as-footer__wordmark {
	font-family: var(--font-display);
	font-size: var(--fs-400);
	letter-spacing: 0.04em;
	color: var(--bg-paper);
}
.as-footer__tagline {
	color: rgba(250, 246, 242, 0.7);
	max-width: 28ch;
	margin: var(--space-2xs) 0 var(--space-md);
}

.as-footer__cols {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-lg);
}
/* #colophon: beats Storefront's `.site-footer h1,h2,h3,h4,h5,h6{color:...}`. */
#colophon .as-footer__heading {
	font-family: var(--font-body);
	font-size: var(--fs-100);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: rgba(250, 246, 242, 0.55);
	margin: 0 0 var(--space-sm);
}
.as-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
}
/* #colophon prefix: beats Storefront's own `.site-footer a:not(.button)...`
   link-colour rule, which otherwise wins the specificity tie (see the
   #colophon.as-footer background note above). */
#colophon .as-footer__list a {
	color: rgba(250, 246, 242, 0.85);
	text-decoration: none;
}
#colophon .as-footer__list a:hover { color: #fff; }

.as-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	padding-top: var(--space-lg);
}
.as-footer__payments {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs);
	list-style: none;
	margin: 0;
	padding: 0;
}
.as-footer__payments li {
	padding: var(--space-3xs) var(--space-sm);
	font-size: var(--fs-100);
	font-weight: 600;
	color: rgba(250, 246, 242, 0.75);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--r-sm);
}
.as-footer__copy {
	margin: 0;
	font-size: var(--fs-100);
	color: rgba(250, 246, 242, 0.55);
}

/* -----------------------------------------------------------------------------
   Redesign pass: editorial pages and critical layout repairs
   -------------------------------------------------------------------------- */

/* Regular WordPress pages must never fall back to Storefront's blog-sized
   content frame. These are the store's service pages, not a post archive.
   Full-bleed out of `#content > .col-full` so the paper field reaches the
   viewport edges — no white side stripes, no sharp boxed corners. */
.as-page {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding: clamp(2.5rem, 6vw, 6.5rem) 0 clamp(3.5rem, 7vw, 7rem);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background:
		radial-gradient(ellipse 70% 42% at 88% 8%, rgba(236, 169, 181, .2), transparent 58%),
		radial-gradient(ellipse 50% 38% at 10% 48%, rgba(214, 174, 180, .12), transparent 55%),
		var(--bg-paper);
}
.as-page-hero {
	max-width: 42rem;
	margin-bottom: clamp(2rem, 5vw, 4.5rem);
}
.as-page-hero--compact { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.as-page h1 { margin: 0.25rem 0 1rem; font-size: clamp(2.7rem, 6vw, 5.5rem); line-height: 0.98; }
.as-page-hero__lede { max-width: 34rem; margin: 0; font-size: clamp(1.05rem, 1.7vw, 1.35rem); color: var(--text-muted); }

/* Service / legal / about / contact: keep the full-bleed paper field, but
   pull reading width in — full 72rem felt stretched after edge-to-edge fix. */
.as-delivery-page .container,
.as-returns-page .container,
.as-privacy-page .container,
.as-terms-page .container,
.as-contact-page .container {
	width: min(100% - 2 * var(--space-md), 52rem);
}
.as-about-page .container {
	width: min(100% - 2 * var(--space-md), 64rem);
}
.as-delivery-page .as-page-hero,
.as-returns-page .as-page-hero,
.as-privacy-page .as-page-hero,
.as-terms-page .as-page-hero,
.as-contact-page .as-page-hero {
	max-width: 36rem;
}

.as-collection-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.9rem, 2.2vw, 1.75rem);
}
.as-collection-card {
	display: flex;
	min-height: 22rem;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--glass-border);
	border-radius: var(--r-lg);
	background: rgba(255,255,255,.48);
	box-shadow: var(--glass-shadow);
	color: var(--text-ink);
	text-decoration: none;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.as-collection-card__media { position: relative; display: block; flex: 1; overflow: hidden; min-height: 15rem; background: var(--bg-surface); }
.as-collection-card__media::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(36,31,28,.24)); pointer-events: none; }
.as-collection-card__media img { width:100%; height:100%; object-fit:cover; transition: transform .7s var(--ease); }
.as-collection-card__body { display:grid; grid-template-columns:1fr auto; align-items:end; gap:.35rem 1rem; padding:1rem 1.1rem 1.15rem; }
.as-collection-card__count { grid-column:1/-1; color:var(--text-muted); font-size:var(--fs-100); }
.as-collection-card__title { font-family:var(--font-display); font-size:clamp(1.45rem,3vw,2rem); font-weight:500; line-height:1.05; }
.as-collection-card__link { color:var(--cherry-deep); font-size:var(--fs-100); font-weight:700; white-space:nowrap; }
@media (hover:hover) and (pointer:fine) { .as-collection-card:hover { transform:translateY(-5px); box-shadow:0 18px 45px rgba(80,40,30,.18); } .as-collection-card:hover img { transform:scale(1.05); } }

.as-about-hero { display:grid; grid-template-columns:1fr; gap:1.5rem; align-items:center; }
.as-about-hero__copy { padding:clamp(1.5rem,4vw,4rem) 0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.as-about-hero__copy h1 { max-width:9ch; }
.as-about-hero__copy > p:not(.as-eyebrow) { max-width:37rem; margin-bottom:1.75rem; color:var(--text-muted); }
.as-about-hero__image { min-height:22rem; margin:0; overflow:hidden; border-radius:var(--r-lg); background:var(--bg-surface); }
.as-about-hero__image img { display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; }
.as-values { display:grid; grid-template-columns:1fr; gap:1px; margin-top:clamp(2.5rem,6vw,6rem); background:var(--border-warm); border:1px solid var(--border-warm); border-radius:var(--r-md); overflow:hidden; }
.as-values > div { padding:1.5rem; background:var(--bg-paper); }
.as-values span { color:var(--cherry); font-size:var(--fs-100); font-weight:700; letter-spacing:.12em; }
.as-values h2 { margin:.55rem 0 .55rem; font-size:var(--fs-300); }
.as-values p { margin:0; color:var(--text-muted); }

.as-service-grid { display:grid; grid-template-columns:1fr; gap:1rem; }
.as-service-card { min-height:13rem; padding:clamp(1.35rem,3vw,2.25rem); border-radius:var(--r-md); }
.as-service-card h2 { margin:0 0 .75rem; font-size:var(--fs-300); }
.as-service-card p { margin:0; color:var(--text-muted); }

/* ---------- Delivery / returns / privacy / terms service pages ----------
   Continuous warm field — no white tile grids, no sharp card squares.
*/
.as-delivery-page,
.as-returns-page,
.as-privacy-page,
.as-terms-page {
	position: relative;
	isolation: isolate;
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-bottom: clamp(3.5rem, 8vw, 7rem);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background:
		radial-gradient(ellipse 70% 45% at 88% 6%, rgba(236, 169, 181, .22), transparent 55%),
		radial-gradient(ellipse 55% 40% at 8% 42%, rgba(214, 174, 180, .14), transparent 50%),
		radial-gradient(ellipse 60% 35% at 70% 88%, rgba(232, 196, 168, .16), transparent 52%),
		linear-gradient(180deg, #faf6f2 0%, #f6efe8 48%, #faf6f2 100%);
}
.as-delivery-page .glass,
.as-returns-page .glass,
.as-privacy-page .glass,
.as-terms-page .glass {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	overflow: visible;
}
.as-delivery-page .glass::before,
.as-returns-page .glass::before,
.as-privacy-page .glass::before,
.as-terms-page .glass::before {
	display: none;
}
.as-privacy-updated,
.as-terms-updated {
	margin: 1rem 0 0;
	color: var(--text-muted);
	font-size: var(--fs-100);
	letter-spacing: .02em;
}

/* Facts — open rhythm, soft rules instead of a squared board */
.as-delivery-facts,
.as-returns-facts,
.as-privacy-facts,
.as-terms-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2rem) clamp(1.5rem, 3.5vw, 2.75rem);
	margin-bottom: clamp(2.75rem, 6vw, 5rem);
	padding: clamp(1.35rem, 3vw, 2rem) 0;
	border: 0;
	border-block: 1px solid rgba(133, 93, 78, .14);
	border-radius: 0;
	background: transparent;
	overflow: visible;
}
.as-delivery-facts__item,
.as-returns-facts__item,
.as-privacy-facts__item,
.as-terms-facts__item {
	padding: 0;
	background: transparent;
}
.as-delivery-facts__item strong,
.as-returns-facts__item strong,
.as-privacy-facts__item strong,
.as-terms-facts__item strong,
.as-delivery-facts__item h3,
.as-returns-facts__item h3,
.as-privacy-facts__item h3,
.as-terms-facts__item h3 {
	display: block;
	margin: 0 0 .4rem;
	color: var(--cherry-deep);
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2.3vw, 1.55rem);
	font-weight: 600;
	letter-spacing: -.02em;
	line-height: 1.15;
}
.as-delivery-facts__item p,
.as-returns-facts__item p,
.as-privacy-facts__item p,
.as-terms-facts__item p {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-100);
	line-height: 1.55;
}

.as-delivery-block,
.as-returns-block,
.as-privacy-block,
.as-terms-block {
	margin-bottom: clamp(2.75rem, 6.5vw, 5.25rem);
}
.as-delivery-block__head,
.as-returns-block__head,
.as-privacy-block__head,
.as-terms-block__head {
	max-width: 40rem;
	margin-bottom: clamp(1.35rem, 3vw, 2.15rem);
}
.as-delivery-block__head h2,
.as-returns-block__head h2,
.as-privacy-block__head h2,
.as-terms-block__head h2 {
	margin: .2rem 0 .75rem;
	font-size: clamp(1.85rem, 3.8vw, 3rem);
	line-height: 1.05;
	letter-spacing: -.03em;
}
.as-delivery-block__head > p:not(.as-eyebrow),
.as-returns-block__head > p:not(.as-eyebrow),
.as-privacy-block__head > p:not(.as-eyebrow),
.as-terms-block__head > p:not(.as-eyebrow) {
	margin: 0;
	color: var(--text-muted);
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	line-height: 1.6;
}

/* Content columns — air between items, hairline top accents */
.as-delivery-methods,
.as-returns-conditions,
.as-privacy-data,
.as-terms-general,
.as-delivery-payment,
.as-returns-money,
.as-privacy-purposes,
.as-privacy-partners,
.as-terms-order,
.as-terms-rules {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.5rem, 3.5vw, 2.5rem);
}
.as-delivery-method,
.as-returns-condition,
.as-privacy-datacard,
.as-terms-generalcard,
.as-delivery-paycard,
.as-returns-moneycard,
.as-privacy-purposecard,
.as-privacy-partner,
.as-terms-ordercard,
.as-terms-rulecard {
	padding: clamp(1.1rem, 2.2vw, 1.35rem) 0 0;
	border: 0;
	border-top: 1px solid rgba(133, 93, 78, .16);
	border-radius: 0;
	background: transparent;
}
.as-delivery-method__num,
.as-returns-condition__num,
.as-privacy-datacard__num,
.as-terms-generalcard__num {
	display: block;
	margin-bottom: .55rem;
	color: var(--cherry);
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .14em;
}
.as-delivery-method h3,
.as-returns-condition h3,
.as-privacy-datacard h3,
.as-terms-generalcard h3,
.as-delivery-paycard h3,
.as-returns-moneycard h3,
.as-privacy-purposecard h3,
.as-privacy-partner h3,
.as-terms-ordercard h3,
.as-terms-rulecard h3 {
	margin: 0 0 .55rem;
	font-family: var(--font-display);
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	font-weight: 550;
	letter-spacing: -.02em;
	line-height: 1.1;
}
.as-delivery-paycard h3,
.as-returns-moneycard h3,
.as-privacy-purposecard h3,
.as-privacy-partner h3,
.as-terms-ordercard h3,
.as-terms-rulecard h3 {
	font-size: clamp(1.4rem, 2.5vw, 1.85rem);
}
.as-delivery-method p,
.as-returns-condition p,
.as-privacy-datacard p,
.as-terms-generalcard p,
.as-delivery-paycard p,
.as-returns-moneycard p,
.as-privacy-purposecard p,
.as-privacy-partner p,
.as-terms-ordercard p,
.as-terms-rulecard p {
	margin: 0;
	color: var(--text-muted);
	line-height: 1.55;
}
.as-delivery-paybrands {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 1.15rem 0 0;
	padding: 0;
	list-style: none;
}
.as-delivery-paybrands li {
	padding: .4rem .75rem;
	border: 1px solid rgba(133, 93, 78, .18);
	border-radius: 999px;
	background: transparent;
	color: var(--text-muted);
	font-size: .72rem;
	font-weight: 650;
	letter-spacing: .04em;
}
.as-returns-not,
.as-privacy-security {
	margin: 0;
	padding: clamp(1.1rem, 2.5vw, 1.5rem) 0 0;
	border: 0;
	border-top: 1px solid rgba(133, 93, 78, .16);
	border-radius: 0;
	background: transparent;
	color: var(--text-muted);
	line-height: 1.6;
}
.as-privacy-security p { margin: 0; max-width: 48rem; }
.as-returns-not li {
	margin: 0 0 .75rem;
	padding-left: .15rem;
}
.as-returns-not li:last-child { margin-bottom: 0; }
.as-terms-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .45rem .65rem;
	margin: 1.15rem 0 0;
	color: var(--text-muted);
	font-size: var(--fs-100);
}
.as-terms-links a {
	color: var(--cherry-deep);
	font-weight: 650;
	text-decoration: none;
}
.as-terms-links a:hover { text-decoration: underline; }

/* Steps / rights — open numbered columns, no tile board */
.as-delivery-steps,
.as-returns-steps,
.as-privacy-rights,
.as-terms-use {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.35rem, 3vw, 2rem);
	margin: 0;
	padding: clamp(1.1rem, 2.5vw, 1.5rem) 0 0;
	border: 0;
	border-top: 1px solid rgba(133, 93, 78, .16);
	border-radius: 0;
	background: transparent;
	overflow: visible;
	list-style: none;
	counter-reset: none;
}
.as-delivery-step,
.as-returns-step,
.as-privacy-right,
.as-terms-useitem {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: .9rem;
	align-items: start;
	padding: 0;
	background: transparent;
}
.as-delivery-step__num,
.as-returns-step__num,
.as-privacy-right__num,
.as-terms-useitem__num {
	color: var(--cherry);
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .12em;
	line-height: 1.6;
}
.as-delivery-step h3,
.as-returns-step h3,
.as-privacy-right h3,
.as-terms-useitem h3 {
	margin: 0 0 .35rem;
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2vw, 1.45rem);
	font-weight: 550;
	letter-spacing: -.02em;
	line-height: 1.15;
}
.as-delivery-step p,
.as-returns-step p,
.as-privacy-right p,
.as-terms-useitem p {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-100);
	line-height: 1.55;
}

/* FAQ — stacked rules, no white boxes */
.as-delivery-faq,
.as-returns-faq,
.as-privacy-faq,
.as-terms-faq {
	display: grid;
	gap: 0;
	border-top: 1px solid rgba(133, 93, 78, .16);
}
.as-delivery-faq__item,
.as-returns-faq__item,
.as-privacy-faq__item,
.as-terms-faq__item {
	overflow: visible;
	border: 0;
	border-bottom: 1px solid rgba(133, 93, 78, .16);
	border-radius: 0;
	background: transparent;
}
.as-delivery-faq__item summary,
.as-returns-faq__item summary,
.as-privacy-faq__item summary,
.as-terms-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3.1rem;
	padding: 1.05rem 0;
	cursor: pointer;
	font-weight: 650;
	line-height: 1.35;
	list-style: none;
}
.as-delivery-faq__item summary::-webkit-details-marker,
.as-returns-faq__item summary::-webkit-details-marker,
.as-privacy-faq__item summary::-webkit-details-marker,
.as-terms-faq__item summary::-webkit-details-marker { display: none; }
.as-delivery-faq__item summary::after,
.as-returns-faq__item summary::after,
.as-privacy-faq__item summary::after,
.as-terms-faq__item summary::after {
	content: "+";
	flex-shrink: 0;
	color: var(--cherry);
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1;
}
.as-delivery-faq__item[open] summary::after,
.as-returns-faq__item[open] summary::after,
.as-privacy-faq__item[open] summary::after,
.as-terms-faq__item[open] summary::after { content: "–"; }
.as-delivery-faq__item p,
.as-returns-faq__item p,
.as-privacy-faq__item p,
.as-terms-faq__item p {
	margin: 0;
	padding: 0 0 1.15rem;
	color: var(--text-muted);
	font-size: var(--fs-100);
	line-height: 1.6;
}
.as-delivery-faq__note,
.as-returns-faq__note,
.as-privacy-faq__note {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .45rem .65rem;
	margin: 1.15rem 0 0;
	color: var(--text-muted);
	font-size: var(--fs-100);
}
.as-delivery-faq__note a,
.as-returns-faq__note a,
.as-privacy-faq__note a {
	color: var(--cherry-deep);
	font-weight: 650;
	text-decoration: none;
}
.as-delivery-faq__note a:hover,
.as-returns-faq__note a:hover,
.as-privacy-faq__note a:hover { text-decoration: underline; }

/* Closing — soft wash, not a floating white slab */
.as-delivery-closing,
.as-returns-closing,
.as-privacy-closing,
.as-terms-closing {
	padding: clamp(2rem, 4.5vw, 3.25rem) 0;
	border: 0;
	border-block: 1px solid rgba(133, 93, 78, .14);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	text-align: center;
}
.as-delivery-closing h2,
.as-returns-closing h2,
.as-privacy-closing h2,
.as-terms-closing h2 {
	max-width: 18ch;
	margin: .35rem auto 1.35rem;
	font-size: clamp(1.85rem, 4vw, 3.1rem);
	line-height: 1.05;
	letter-spacing: -.035em;
	text-wrap: balance;
}
.as-delivery-closing__actions,
.as-returns-closing__actions,
.as-privacy-closing__actions,
.as-terms-closing__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem;
}
.as-delivery-closing__ghost,
.as-returns-closing__ghost,
.as-privacy-closing__ghost,
.as-terms-closing__ghost {
	display: inline-flex;
	align-items: center;
	min-height: 2.85rem;
	padding: .7rem 1.15rem;
	border: 1px solid rgba(133, 93, 78, .22);
	border-radius: var(--r-sm);
	background: transparent;
	color: var(--text-ink);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-decoration: none;
	text-transform: uppercase;
}
@media (hover:hover) and (pointer:fine) {
	.as-delivery-closing__ghost:hover,
	.as-returns-closing__ghost:hover,
	.as-privacy-closing__ghost:hover,
	.as-terms-closing__ghost:hover {
		border-color: rgba(192, 30, 60, .4);
		color: var(--cherry-deep);
	}
	.as-delivery-faq__item summary:hover,
	.as-returns-faq__item summary:hover,
	.as-privacy-faq__item summary:hover,
	.as-terms-faq__item summary:hover {
		color: var(--cherry-deep);
	}
}
.as-delivery-faq__item summary:focus-visible,
.as-returns-faq__item summary:focus-visible,
.as-privacy-faq__item summary:focus-visible,
.as-terms-faq__item summary:focus-visible,
.as-delivery-closing__ghost:focus-visible,
.as-returns-closing__ghost:focus-visible,
.as-privacy-closing__ghost:focus-visible,
.as-terms-closing__ghost:focus-visible {
	outline: 2px solid var(--cherry);
	outline-offset: 3px;
}
@media (min-width: 700px) {
	.as-delivery-facts,
	.as-returns-facts,
	.as-privacy-facts,
	.as-terms-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.as-delivery-methods,
	.as-returns-conditions,
	.as-privacy-data,
	.as-privacy-purposes,
	.as-privacy-partners,
	.as-terms-general,
	.as-terms-order,
	.as-terms-rules { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.as-delivery-payment { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.as-returns-money { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.as-delivery-steps,
	.as-returns-steps,
	.as-privacy-rights,
	.as-terms-use { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
	.as-delivery-steps,
	.as-returns-steps,
	.as-privacy-rights,
	.as-terms-use { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.as-delivery-step,
	.as-returns-step,
	.as-privacy-right,
	.as-terms-useitem { grid-template-columns: 1fr; gap: .55rem; min-height: 100%; }
}
@media (max-width: 540px) {
	.as-delivery-facts,
	.as-returns-facts,
	.as-privacy-facts,
	.as-terms-facts { grid-template-columns: 1fr; }
	.as-delivery-closing__actions,
	.as-returns-closing__actions,
	.as-privacy-closing__actions,
	.as-terms-closing__actions { flex-direction: column; align-items: stretch; }
	.as-delivery-closing__ghost,
	.as-returns-closing__ghost,
	.as-privacy-closing__ghost,
	.as-terms-closing__ghost,
	.as-delivery-closing .btn-cherry,
	.as-returns-closing .btn-cherry,
	.as-privacy-closing .btn-cherry,
	.as-terms-closing .btn-cherry { justify-content: center; width: 100%; }
}

.as-contact-layout { display:grid; gap:clamp(1.25rem,4vw,3.5rem); align-items:start; }
.as-contact-context { padding:clamp(1rem,2vw,2rem) 0; }
.as-contact-context h2 { max-width:14ch; margin-bottom:1rem; }
.as-contact-context > p:not(.as-eyebrow) { color:var(--text-muted); }
.as-contact-context__note { max-width:32rem; margin-top:var(--space-lg) !important; padding-top:var(--space-sm); border-top:1px solid var(--border-warm); font-size:var(--fs-100); }
.as-contact-form { padding:clamp(1.25rem,3vw,2.25rem); border-radius:var(--r-lg); }
.as-contact-form h2 { margin-bottom:.5rem; font-size:var(--fs-400); }
.as-contact-form > p { color:var(--text-muted); }
.as-contact-form form { display:grid; gap:var(--space-sm); }
.as-contact-form form > p { margin:0; }
.as-contact-form label { display:block; margin-bottom:var(--space-3xs); font-size:var(--fs-100); font-weight:600; color:var(--text-ink); }
.as-contact-form input:not([type="hidden"]), .as-contact-form textarea { box-sizing:border-box; width:100%; border:1px solid var(--border-warm); border-radius:var(--r-sm); background:rgba(255,255,255,.72); color:var(--text-ink); font:inherit; }
.as-contact-form input:not([type="hidden"]) { min-height:46px; padding:var(--space-2xs) var(--space-sm); }
.as-contact-form textarea { min-height:9rem; padding:var(--space-sm); resize:vertical; }
.as-contact-form input:focus, .as-contact-form textarea:focus { border-color:var(--cherry); box-shadow:0 0 0 3px var(--cherry-tint); outline:0; }
.as-contact-form .btn-cherry { justify-self:start; }
.as-contact-form__notice { margin:0 0 var(--space-sm) !important; padding:var(--space-sm); border-radius:var(--r-sm); font-size:var(--fs-100); }
.as-contact-form__notice.is-success { background:rgba(54,124,87,.12); color:#1f5f3c; }
.as-contact-form__notice.is-error { background:var(--cherry-tint); color:var(--cherry-deep); }
.as-contact-form__trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.as-content-page { max-width:72rem; }
.as-content-card { max-width:52rem; padding:clamp(1.35rem,4vw,3rem); border-radius:var(--r-lg); }

/* -----------------------------------------------------------------------------
   My Account — slim hero + guest card / authed 2-col (matches cart/checkout)
   -------------------------------------------------------------------------- */
.woocommerce-account .as-account-screen {
	max-width: 72rem;
	padding-top: clamp(4.75rem, 6.5vw, 5.75rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.woocommerce-account .as-account-screen--guest {
	max-width: 42rem;
}
.as-account-screen__hero {
	margin: 0 0 1.15rem;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.as-account-screen__hero .as-eyebrow { margin-bottom: .2rem; }
.as-account-screen__hero h1 {
	margin: 0;
	font-size: clamp(1.85rem, 3.4vw, 2.55rem);
	font-weight: 500;
	line-height: 1.1;
}
.as-account-screen__lede {
	max-width: 28rem;
	margin: .4rem 0 0;
	color: var(--text-muted);
	font-size: .92rem;
	line-height: 1.45;
}
.as-account-screen__content > .woocommerce { width: 100%; }
.as-account-screen__content > .woocommerce ~ * {
	display: none !important;
}

/* Guest: centered login card */
.as-account-screen--guest .as-account-auth {
	display: flex;
	justify-content: center;
	width: 100%;
}
.as-account-screen--guest .as-account-auth--login-only {
	max-width: 24.5rem;
	margin: 0 auto;
}
.as-account-auth.col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	float: none !important;
	width: 100% !important;
}
.as-account-auth .u-column1,
.as-account-auth .u-column2,
.as-account-auth .col-1,
.as-account-auth .col-2 {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}
.as-account-card {
	width: 100%;
	margin: 0;
	padding: 1.15rem 1.2rem 1.25rem;
	border: 1px solid rgba(203, 184, 171, 0.4);
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.62);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}
.as-account-card--narrow {
	max-width: 24.5rem;
	margin: 0 auto;
}
.as-account-card h2 {
	margin: 0 0 .35rem;
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--text-ink);
}
.as-account-card__lede,
.as-account-card__note {
	margin: 0 0 1rem;
	color: var(--text-muted);
	font-size: .9rem;
	line-height: 1.45;
}
.as-account-card__note { margin-top: -.35rem; }

.as-account-form .form-row {
	margin: 0 0 .65rem;
	padding: 0;
	width: 100%;
	float: none;
}
.as-account-form label {
	display: block;
	margin: 0 0 .28rem;
	color: var(--text-muted);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .01em;
}
.as-account-form .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: .4rem;
	margin: 0;
	color: var(--text-ink);
	font-size: .9rem;
	font-weight: 500;
}
.as-account-form input.input-text,
.as-account-form input[type="text"],
.as-account-form input[type="email"],
.as-account-form input[type="password"],
.as-account-form select,
.as-account-form textarea {
	min-height: 2.55rem;
	width: 100%;
	padding: .5rem .7rem;
	border-radius: .65rem;
	border: 1px solid rgba(190, 168, 155, 0.7);
	background: #fff;
	box-shadow: none;
}
.as-account-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .65rem 1rem;
	margin-top: .85rem !important;
}
.as-account-form .button,
.as-account-form button[type="submit"],
.woocommerce-account .as-account .button,
.woocommerce-account .woocommerce-Button {
	width: auto;
	min-height: 2.55rem;
	padding: .65rem 1.25rem !important;
	border: 0 !important;
	border-radius: .65rem !important;
	background: var(--cherry) !important;
	box-shadow: 0 10px 20px rgba(165, 23, 54, .2);
	color: #fff !important;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
.as-account-form .button:hover,
.as-account-form button[type="submit"]:hover,
.woocommerce-account .as-account .button:hover,
.woocommerce-account .woocommerce-Button:hover {
	background: var(--cherry-deep) !important;
	transform: translateY(-1px);
}
.woocommerce-account .woocommerce-LostPassword {
	margin: .65rem 0 0;
}
.woocommerce-account .woocommerce-LostPassword a {
	color: var(--cherry-deep);
	font-size: .9rem;
	font-weight: 600;
	text-underline-offset: .12em;
}

/* Authed: nav | content */
.as-account {
	display: grid;
	grid-template-columns: minmax(12rem, 14.5rem) minmax(0, 1fr);
	gap: clamp(1rem, 2.4vw, 1.65rem);
	align-items: start;
}
/* Kill Storefront float/width so grid columns actually size the nav. */
.as-account .woocommerce-MyAccount-navigation,
.as-account .as-account__nav,
.as-account .woocommerce-MyAccount-content,
.as-account .as-account__content {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	clear: none !important;
}
.as-account__nav {
	padding: .85rem .9rem;
	border: 1px solid rgba(203, 184, 171, 0.4);
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.55);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}
.as-account__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .15rem;
	width: 100%;
}
.as-account__menu li { margin: 0; width: 100%; }
.as-account__menu a {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: .55rem .65rem;
	border-radius: .55rem;
	color: var(--text-ink);
	font-size: .92rem;
	font-weight: 500;
	text-decoration: none;
	line-height: 1.3;
	white-space: nowrap;
}
/* Storefront Font Awesome icons squeeze the label into a 1-char column. */
.as-account__menu a::before {
	content: none !important;
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 0 !important;
}
.as-account__menu a:hover,
.as-account__menu a:focus-visible {
	color: var(--cherry-deep);
	background: var(--cherry-tint);
}
.as-account__menu .is-active a,
.as-account__menu a[aria-current="page"] {
	color: #fff;
	background: var(--cherry);
}
.as-account__content {
	margin: 0;
	padding: 1.1rem 1.15rem 1.25rem;
	border: 1px solid rgba(203, 184, 171, 0.4);
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.62);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
	min-width: 0;
}
.as-account-dashboard__hello {
	margin: 0 0 .65rem;
	font-size: 1.05rem;
	line-height: 1.45;
	color: var(--text-ink);
}
.as-account-dashboard__lede {
	margin: 0;
	color: var(--text-muted);
	font-size: .95rem;
	line-height: 1.55;
}
.as-account-dashboard a,
.as-account__content a {
	color: var(--cherry-deep);
	font-weight: 600;
}
.as-account-panel__lede {
	margin: 0 0 1rem;
	color: var(--text-muted);
	font-size: .92rem;
	line-height: 1.45;
}
.as-account-fieldset {
	margin: 1rem 0 0;
	padding: 1rem 0 0;
	border: 0;
	border-top: 1px solid rgba(203, 184, 171, 0.45);
}
.as-account-fieldset legend {
	padding: 0;
	margin: 0 0 .65rem;
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--text-ink);
}
.as-account-form .form-row-first,
.as-account-form .form-row-last {
	float: none;
	width: 100%;
}
@media (min-width: 640px) {
	.as-account-form .woocommerce-form-row--first,
	.as-account-form .woocommerce-form-row--last,
	.as-account-form .form-row-first,
	.as-account-form .form-row-last {
		display: inline-block;
		width: calc(50% - .35rem);
		vertical-align: top;
	}
	.as-account-form .woocommerce-form-row--first,
	.as-account-form .form-row-first { margin-right: .7rem; }
}

.as-account-addresses {
	display: grid;
	grid-template-columns: 1fr;
	gap: .85rem;
}
@media (min-width: 720px) {
	.as-account-addresses.col2-set {
		grid-template-columns: 1fr 1fr;
	}
	.as-account-addresses .u-column1,
	.as-account-addresses .u-column2,
	.as-account-addresses .col-1,
	.as-account-addresses .col-2 {
		float: none !important;
		width: 100% !important;
	}
}
.as-account-address {
	margin: 0;
	padding: .9rem 1rem;
	border: 1px solid rgba(203, 184, 171, 0.4);
	border-radius: .85rem;
	background: rgba(255, 255, 255, 0.45);
}
.as-account-address .title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .75rem;
	margin: 0 0 .55rem;
}
.as-account-address .title h2 {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
}
.as-account-address address {
	margin: 0;
	font-style: normal;
	color: var(--text-muted);
	line-height: 1.5;
	font-size: .92rem;
}

.as-account-orders {
	width: 100%;
	margin: 0;
	border-collapse: separate;
	border-spacing: 0;
}
.as-account-orders th {
	padding: .15rem .55rem .7rem;
	font-size: .68rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-bottom: 1px solid rgba(203, 184, 171, .55);
	text-align: left;
	color: var(--text-muted);
}
.as-account-orders td,
.as-account-orders th.woocommerce-orders-table__cell {
	padding: .75rem .55rem !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(203, 184, 171, .4) !important;
	background: transparent !important;
	vertical-align: middle;
	font-size: .92rem;
}
.woocommerce-account .woocommerce-pagination {
	margin: 1rem 0 0;
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
}

@media (max-width: 720px) {
	.woocommerce-account .as-account-screen { padding-top: 5.5rem; }
	.as-account {
		grid-template-columns: 1fr;
	}
	.as-account__nav {
		padding: .65rem .7rem;
	}
	.as-account__menu {
		flex-direction: row;
		flex-wrap: wrap;
		gap: .25rem;
	}
	.as-account__menu a {
		padding: .45rem .6rem;
		font-size: .86rem;
	}
	.as-account-auth.col2-set {
		grid-template-columns: 1fr;
	}
}

.as-not-found {
	display:grid;
	min-height:min(42rem, calc(100svh - 8rem));
	place-items:center;
	padding:clamp(2.5rem,8vw,7rem) 0;
	background:radial-gradient(circle at 72% 10%, rgba(236,169,181,.2), transparent 23rem), var(--bg-paper);
}
.as-not-found__card {
	max-width:50rem;
	padding:clamp(1.75rem,6vw,5rem);
	border-radius:var(--r-lg);
	text-align:center;
}
.as-not-found h1 { margin:.2rem 0 1rem; font-size:clamp(3rem,7vw,6.5rem); line-height:.94; }
.as-not-found__card > p:not(.as-eyebrow) { max-width:34rem; margin:0 auto; color:var(--text-muted); }
.as-not-found__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-sm); margin-top:var(--space-lg); }
.as-not-found__search { display:flex; gap:var(--space-2xs); max-width:32rem; margin:var(--space-lg) auto 0; }
.as-not-found__search input { min-width:0; flex:1; min-height:44px; padding:var(--space-xs) var(--space-sm); border:1px solid var(--glass-border); border-radius:var(--r-sm); background:rgba(255,255,255,.65); font:inherit; }
@media (max-width:540px) { .as-not-found__search { flex-direction:column; } }

/* The FlexSlider navigation inherited absolute positioning from Storefront,
   putting thumbnails at the far viewport edges. It belongs below the image. */
.as-product__gallery .flex-control-nav {
	position: static !important;
	width: auto !important;
	max-width: 100%;
	clear: both;
}
.as-product__gallery .flex-control-nav li { float:none !important; margin:0 !important; }
.as-product__gallery .woocommerce-product-gallery { width:100% !important; }
.as-product__gallery .woocommerce-product-gallery__wrapper { min-height:0 !important; }
.as-product__gallery .woocommerce-product-gallery__trigger { top:var(--space-sm) !important; right:var(--space-sm) !important; }
.as-product { gap:var(--space-md); padding-top:0; }
.as-product__buy { min-height:0; align-self:start; }
.woocommerce-tabs { margin-top:var(--space-sm); }

/* Storefront reserves roughly 150 px below an archive title. A collection
   page needs a clear entry point, not a decorative empty screen. */
.storefront-full-width-content .woocommerce-products-header,
.woocommerce-products-header {
	padding: 0 0 1.5rem !important;
	text-align: left !important;
}
.woocommerce-products-header .page-title { margin: 0 !important; font-size:clamp(2.6rem,5vw,4.5rem); }
.storefront-breadcrumb { padding-block:var(--space-xs); margin-bottom:var(--space-sm); }

/* Storefront's breadcrumb glyphs depend on its Font Awesome webfont. The
   font can miss the first paint and leaves little square placeholders beside
   the most important navigation trail. Use text separators that are always
   available instead. */
.woocommerce-breadcrumb a:first-of-type::before { content:none !important; display:none !important; }
.woocommerce-breadcrumb .breadcrumb-separator {
	display:inline !important;
	float:none !important;
	margin:0 .52rem !important;
	width:auto !important;
	font-family:var(--font-body) !important;
	font-size:1rem !important;
	font-weight:400 !important;
	line-height:inherit !important;
	color:var(--text-muted) !important;
}
.woocommerce-breadcrumb .breadcrumb-separator::after { content:none !important; display:none !important; }

/* A footer is navigation and reassurance, not a second landing page. */
#colophon.as-footer { margin-top:clamp(2rem,3vw,3rem); }
.as-footer .col-full { padding-block:clamp(2rem,5vw,4rem); }
.as-footer__top { gap:clamp(1.75rem,4vw,3.5rem); padding-bottom:clamp(1.5rem,4vw,2.5rem); }
.as-footer__brand { max-width:26rem; }
.as-footer__bottom { padding-top:1.35rem; }

/* -----------------------------------------------------------------------------
   Homepage refinement — explicit geometry wins over Storefront's global
   helpers. These rules intentionally live last: the parent theme loads a
   second stylesheet after the child and was erasing `.container` spacing.
   -------------------------------------------------------------------------- */
.as-home .container {
	box-sizing: border-box;
	width: min(calc(100% - clamp(2rem, 7vw, 8rem)), 80rem);
	max-width: 80rem;
	margin-inline: auto;
}

/* The header must always have a deliberate inset; never rely on Storefront's
   `.col-full` sizing, which varied with browser zoom. */
#masthead.as-header { padding: clamp(.45rem, 1vw, .85rem) 0; }
#masthead.as-header .as-header__bar {
	box-sizing: border-box;
	width: min(calc(100% - clamp(1.25rem, 4vw, 4rem)), 80rem);
	margin-inline: auto;
	min-height: 3.75rem;
	padding: .45rem clamp(.85rem, 1.6vw, 1.3rem);
	border-radius: 1.35rem;
}

/* Hero: the text starts on a consistent editorial column rather than at the
   viewport edge. */
.as-home .as-hero { min-height: clamp(36rem, 70svh, 52rem); padding-block: clamp(1.5rem, 4vw, 4rem); }
.as-home .as-hero__grid { grid-template-columns: minmax(0, 1fr); }
.as-home .as-hero__panel {
	box-sizing: border-box;
	max-width: min(34rem, 100%);
	padding: clamp(1.5rem, 3.3vw, 3.5rem);
	border-radius: clamp(1.5rem, 3vw, 2.5rem);
	background: rgba(255, 251, 247, .84);
}
.as-home .as-hero__title { max-width: 9ch; line-height: .96; letter-spacing: -.045em; }
.as-home .as-hero__lede { max-width: 31ch; line-height: 1.55; }

/* A restrained product rail feels lighter and more premium than four heavy
   frosted boxes. */
.as-home .as-grid--products { gap: clamp(1rem, 2vw, 1.5rem); }
.as-home .as-card { border-radius: 1.35rem; background: rgba(255,255,255,.62); }
.as-home .as-card__body { padding: .9rem .95rem 1rem; }
.as-home .as-card__title { font-size: clamp(1.05rem, 1.4vw, 1.3rem); }
.as-home .as-card__add { min-height: 2.5rem; padding-inline: .8rem; }

/* Category cards are image-led. The former oversized glass plaque squeezed
   titles into arbitrary fragments at several zoom levels. */
.as-home .as-collections { padding-top: clamp(3.5rem, 7vw, 7rem); }
.as-home .as-grid--collections { gap: clamp(1rem, 2.6vw, 2rem); }
.as-home .as-tile {
	aspect-ratio: 4 / 5;
	border-radius: clamp(1.35rem, 2.5vw, 2rem);
	background: var(--bg-surface);
	box-shadow: 0 14px 34px rgba(63, 37, 30, .10);
}
.as-home .as-tile::after {
	content: "";
	position: absolute;
	inset: 35% 0 0;
	background: linear-gradient(180deg, transparent, rgba(20, 16, 14, .7));
	pointer-events: none;
}
.as-home .as-tile__overlay {
	z-index: 1;
	left: clamp(.85rem, 1.6vw, 1.25rem);
	right: clamp(.85rem, 1.6vw, 1.25rem);
	bottom: clamp(.85rem, 1.6vw, 1.25rem);
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: .75rem;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	backdrop-filter: none;
}
.as-home .as-tile__name {
	max-width: 10ch;
	font-size: clamp(1.5rem, 2.2vw, 2.45rem);
	line-height: 1.02;
	letter-spacing: -.035em;
	text-wrap: balance;
}
.as-home .as-tile__explore {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: auto;
	flex: 0 0 auto;
	padding: .65rem .8rem;
	border: 1px solid rgba(255,255,255,.6);
	border-radius: 999px;
	background: rgba(255,255,255,.14);
	color: #fff;
	font-size: .72rem;
	font-weight: 650;
	letter-spacing: .08em;
	text-transform: uppercase;
	backdrop-filter: blur(10px);
}
.as-home .as-tile__explore::after { content: none; }
.as-home .as-tile:hover .as-tile__explore,
.as-home .as-tile:focus-visible .as-tile__explore { transform: none; background: rgba(255,255,255,.28); }

/* The story now closes the editorial thread, then the compact promise row
   gives shoppers the information they need before the footer. */
.as-home .as-story { padding-block: clamp(3.5rem, 8vw, 7rem); }
.as-home .as-story__media { max-width: 34rem; }
.as-home .as-story__panel { max-width: 36rem; }
.as-promises { border-top: 1px solid var(--border-warm); background: rgba(255,255,255,.36); }
.as-promises__intro { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.as-promises__intro h2 { margin: 0; max-width: 16ch; }
.as-promises__grid { display: grid; gap: 1px; background: var(--border-warm); border: 1px solid var(--border-warm); border-radius: 1.5rem; overflow: hidden; }
.as-promise { min-height: 14rem; padding: clamp(1.25rem, 2.5vw, 2rem); background: rgba(255,253,250,.9); }
.as-promise__number { display: block; margin-bottom: 2.75rem; color: var(--cherry); font-size: .78rem; font-weight: 700; letter-spacing: .14em; }
.as-promise h3 { margin: 0 0 .6rem; font-family: var(--font-display); font-size: clamp(1.35rem, 2vw, 1.85rem); font-weight: 500; line-height: 1.1; }
.as-promise p { max-width: 31ch; margin: 0; color: var(--text-muted); line-height: 1.55; }

/* The marquee is useful information, not a cropped decorative distraction. */
.as-home .as-marquee { padding-block: .85rem; -webkit-mask-image: none; mask-image: none; }
.as-home .as-marquee__row { animation-duration: 42s; }

@media (min-width: 700px) {
	.as-home .as-grid--collections { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.as-promises__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
	.as-home .as-grid--collections { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.as-home .as-hero__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 699px) {
	#masthead.as-header { padding-top: .35rem; }
	#masthead.as-header .as-header__bar { min-height: 3.35rem; padding-inline: .75rem; border-radius: 1.1rem; }
	.as-home .container { width: min(calc(100% - 2rem), 80rem); }
	.as-home .as-hero { min-height: 42rem; align-items: flex-end; padding-block: 1rem; }
	.as-home .as-hero__panel { padding: 1.35rem; border-radius: 1.35rem; }
	.as-home .as-hero__title { font-size: clamp(3rem, 14vw, 4.4rem); }
	.as-home .as-hero__cta { display: grid; grid-template-columns: 1fr; }
	.as-home .as-hero__cta a { justify-content: center; }
	.as-home .as-grid--collections { grid-template-columns: 1fr; }
	.as-home .as-tile { aspect-ratio: 5 / 4; }
	.as-home .as-tile__name { max-width: 13ch; font-size: clamp(1.75rem, 8vw, 2.45rem); }
	.as-home .as-tile__overlay { align-items: flex-end; flex-direction: row; }
}

/* -----------------------------------------------------------------------------
   Homepage navigation states + category-safe labels
   The opening state belongs to the campaign image; it is deliberately not a
   white card. Once the visitor leaves the hero it resolves into a solid glass
   object. Neither state changes height, avoiding scroll/CLS jumps.
   -------------------------------------------------------------------------- */
body.home #masthead.as-header {
	position: absolute;
	top: var(--as-announce-h);
	left: 0;
	width: 100%;
	z-index: 110;
	pointer-events: none;
}
body.home #masthead.as-header .as-header__bar { pointer-events: auto; }
body.home #masthead.as-header.is-scrolled {
	position: fixed;
	animation: as-header-settle .28s var(--ease) both;
}
body.home #masthead.as-header .as-header__bar {
	--glass-bg: rgba(31, 26, 23, .28);
	border-color: rgba(255,255,255,.22);
	box-shadow: 0 12px 34px rgba(24, 17, 13, .14);
	backdrop-filter: blur(8px) saturate(115%);
	-webkit-backdrop-filter: blur(8px) saturate(115%);
	color: #fff;
	transition: background-color .34s var(--ease), border-color .34s var(--ease), box-shadow .34s var(--ease), color .34s var(--ease), backdrop-filter .34s var(--ease);
}
body.home #masthead.as-header .as-brand,
body.home #masthead.as-header .as-nav__list a,
body.home #masthead.as-header .as-iconbtn { color: #fff; }
body.home #masthead.as-header .as-nav__list a:hover,
body.home #masthead.as-header .as-nav__list a:focus-visible,
body.home #masthead.as-header .as-brand:hover,
body.home #masthead.as-header .as-brand:focus-visible { color: #ffe5e9; }
body.home #masthead.as-header.is-scrolled .as-header__bar {
	--glass-bg: rgba(255, 252, 248, .92);
	padding-block: .45rem;
	border-color: rgba(106, 72, 60, .12);
	box-shadow: 0 12px 30px rgba(64, 42, 34, .14);
	backdrop-filter: blur(18px) saturate(130%);
	-webkit-backdrop-filter: blur(18px) saturate(130%);
	color: var(--text-ink);
}
body.home #masthead.as-header.is-scrolled .as-brand,
body.home #masthead.as-header.is-scrolled .as-nav__list a,
body.home #masthead.as-header.is-scrolled .as-iconbtn { color: var(--text-ink); }
body.home #masthead.as-header.is-scrolled .as-nav__list a:hover,
body.home #masthead.as-header.is-scrolled .as-nav__list a:focus-visible,
body.home #masthead.as-header.is-scrolled .as-brand:hover,
body.home #masthead.as-header.is-scrolled .as-brand:focus-visible { color: var(--cherry-deep); }
@keyframes as-header-settle {
	from { opacity: .72; transform: translateY(-.35rem); }
	to { opacity: 1; transform: translateY(0); }
}

/* A single dedicated label zone keeps type centred vertically and clear of
   the CTA at all widths. The old baseline-aligned layout was why descenders
   and long names appeared cut off in the supplied screenshot. */
.as-home .as-tile__overlay {
	align-items: center;
	justify-content: flex-start;
	min-height: 5.45rem;
	padding: .9rem 1rem;
	border-radius: 1.15rem;
	background: linear-gradient(100deg, rgba(18,15,14,.72), rgba(18,15,14,.38));
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
.as-home .as-tile__name {
	display: block;
	max-width: 100%;
	padding: .08em 0 .14em;
	font-size: clamp(1.35rem, 1.75vw, 2.05rem);
	line-height: 1.12;
	letter-spacing: -.028em;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
}
.as-home .as-tile__explore {
	display: none;
}
@media (max-width: 699px) {
	body.home #masthead.as-header .as-header__bar {
		--glass-bg: rgba(31, 26, 23, .38);
		backdrop-filter: blur(7px) saturate(115%);
		-webkit-backdrop-filter: blur(7px) saturate(115%);
	}
	.as-home .as-tile__overlay { min-height: 5rem; padding: .78rem .85rem; }
	.as-home .as-tile__name { max-width: 100%; font-size: clamp(1.35rem, 7vw, 1.85rem); }
}
@media (prefers-reduced-motion: reduce) {
	body.home #masthead.as-header.is-scrolled { animation: none; }
}

/* Final homepage header direction: the opening state is navigation over the
   campaign, not a second oversized card. Only the post-hero state gains the
   compact glass surface. */
body.home #masthead.as-header {
	height: 4.25rem;
	padding: 0;
}
body.home #masthead.as-header .as-header__bar {
	width: min(calc(100% - clamp(1.5rem, 5vw, 5rem)), 80rem);
	height: 4.25rem;
	min-height: 0;
	margin: 0 auto;
	padding: .5rem 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	color: var(--text-ink);
	transition: background-color .38s var(--ease), border-color .38s var(--ease), box-shadow .38s var(--ease), color .28s var(--ease), border-radius .38s var(--ease), padding .38s var(--ease);
}
body.home #masthead.as-header .as-brand,
body.home #masthead.as-header .as-nav__list a { color: var(--text-ink); }
body.home #masthead.as-header .as-actions .as-iconbtn { color: var(--text-ink); }
body.home #masthead.as-header .as-nav__list a:hover,
body.home #masthead.as-header .as-nav__list a:focus-visible,
body.home #masthead.as-header .as-brand:hover,
body.home #masthead.as-header .as-brand:focus-visible { color: var(--cherry-deep); }
body.home #masthead.as-header.is-scrolled .as-header__bar {
	box-sizing: border-box;
	height: 3.55rem;
	margin-top: .35rem;
	padding: .35rem 1rem;
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 1.05rem;
	background: rgba(38,30,29,.88);
	box-shadow: 0 12px 30px rgba(36,24,23,.24);
	backdrop-filter: blur(18px) saturate(125%);
	-webkit-backdrop-filter: blur(18px) saturate(125%);
	color: #fff;
}
body.home #masthead.as-header.is-scrolled .as-brand,
body.home #masthead.as-header.is-scrolled .as-nav__list a,
body.home #masthead.as-header.is-scrolled .as-actions .as-iconbtn { color: #fff; }
body.home #masthead.as-header.is-scrolled .as-nav__list a:hover,
body.home #masthead.as-header.is-scrolled .as-nav__list a:focus-visible,
body.home #masthead.as-header.is-scrolled .as-brand:hover,
body.home #masthead.as-header.is-scrolled .as-brand:focus-visible { color: #ffdce2; }

/* Collection cards: editorial image plus an honest label below it. Text no
   longer competes with a photograph, a gradient, and a glass panel at once. */
.as-home .as-tile {
	display: flex;
	flex-direction: column;
	aspect-ratio: auto;
	overflow: hidden;
	border: 1px solid rgba(89,61,50,.1);
	border-radius: 1.35rem;
	background: #fffdfa;
	box-shadow: 0 12px 28px rgba(63,37,30,.09);
}
.as-home .as-tile::after { display: none; }
.as-home .as-tile__media {
	position: relative;
	inset: auto;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--bg-surface);
}
.as-home .as-tile__img { display: block; }
.as-home .as-tile__overlay {
	position: static;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	min-height: 5.2rem;
	margin: 0;
	padding: 1.05rem 1.15rem;
	border: 0;
	border-radius: 0;
	background: #fffdfa;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}
.as-home .as-tile__name {
	max-width: 100%;
	padding: 0;
	font-size: clamp(1.35rem, 1.8vw, 1.9rem);
	line-height: 1.1;
	color: var(--text-ink);
	white-space: normal;
}
.as-home .as-tile:hover,
.as-home .as-tile:focus-visible { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(63,37,30,.14); }
@media (max-width: 699px) {
	body.home #masthead.as-header { height: 3.8rem; }
	body.home #masthead.as-header .as-header__bar { height: 3.8rem; width: calc(100% - 1.5rem); }
	body.home #masthead.as-header.is-scrolled .as-header__bar { height: 3.25rem; margin-top: .25rem; padding-inline: .75rem; }
	.as-home .as-tile__overlay { min-height: 4.6rem; padding: .9rem 1rem; }
}

/* The header wrapper must never become a second surface. Only the navigation
   card itself may change opacity/colour; everything around it stays fully
   transparent so the page continues behind it. */
body.home #masthead.as-header,
body.home #masthead.as-header.is-scrolled {
	background: transparent !important;
	/* Storefront adds a pale separator to `.site-header`. It made a second,
	   unwanted strip directly below the one intended navigation card. */
	border: 0 !important;
	box-shadow: none !important;
}
body.home #masthead.as-header::before,
body.home #masthead.as-header::after {
	display: none !important;
	content: none !important;
}
body.home #masthead.as-header .as-header__bar {
	box-sizing: border-box;
	/* One compact geometry in both header states. The transition changes the
	   glass colour, not the size or placement of the navigation. */
	width: min(calc(100% - 1.5rem), 80rem);
	height: 3.55rem;
	margin-top: .75rem;
	padding-inline: .75rem;
	border: 1px solid rgba(91,61,51,.12);
	border-radius: 1.05rem;
	background: rgba(248,243,237,.16);
	box-shadow: 0 6px 18px rgba(64,42,34,.05);
	backdrop-filter: blur(8px) saturate(115%);
	-webkit-backdrop-filter: blur(8px) saturate(115%);
}
body.home #masthead.as-header.is-scrolled .as-header__bar {
	margin-top: .75rem;
	background: rgba(248, 243, 237, .94);
	border-color: rgba(106,72,60,.12);
	box-shadow: 0 10px 28px rgba(64,42,34,.13);
	color: var(--text-ink);
	backdrop-filter: blur(8px) saturate(115%);
	-webkit-backdrop-filter: blur(8px) saturate(115%);
}
body.home #masthead.as-header.is-scrolled .as-brand,
body.home #masthead.as-header.is-scrolled .as-nav__list a,
body.home #masthead.as-header.is-scrolled .as-actions .as-iconbtn { color: var(--text-ink); }
body.home #masthead.as-header.is-scrolled .as-nav__list a:hover,
body.home #masthead.as-header.is-scrolled .as-nav__list a:focus-visible,
body.home #masthead.as-header.is-scrolled .as-brand:hover,
body.home #masthead.as-header.is-scrolled .as-brand:focus-visible { color: var(--cherry-deep); }

/* The campaign panel needs breathing room beneath the floating navigation,
   rather than starting underneath the card on first paint. */
@media (min-width: 700px) {
	.as-home .as-hero {
		align-items: flex-start;
		padding-top: clamp(7.25rem, 10vw, 9.5rem);
		padding-bottom: clamp(2rem, 4vw, 4rem);
	}
}
@media (max-width: 699px) {
	.as-home .as-hero { padding-top: 5.75rem; }
}

/* Supplied brand artwork: the horizontal wordmark stays crisp on desktop,
   while the compact mark keeps the mobile header balanced. */
.as-brand__logo {
	display: block;
	width: auto;
	max-width: 100%;
	object-fit: contain;
}
.as-brand__logo--desktop { height: 1.7rem; }
.as-brand__logo--mobile { display: none; height: 2rem; }
@media (max-width: 699px) {
	.as-brand__logo--desktop { display: none; }
	.as-brand__logo--mobile { display: block; }
}

/* A small editorial interlude gives the product-led page a fashion rhythm.
   It uses the shop's own campaign imagery and every tile remains a direct,
   accessible route into the catalogue. */
.as-home .as-style-edit {
	padding-top: clamp(3.5rem, 7vw, 6.5rem);
	padding-bottom: clamp(3.5rem, 7vw, 6.5rem);
	background: linear-gradient(135deg, rgba(250,247,243,.98), rgba(246,237,232,.75));
}
.as-style-edit__head {
	display: grid;
	gap: 1.25rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.75rem);
}
.as-style-edit__head h2 { margin: 0; max-width: 13ch; }
.as-style-edit__head > p {
	max-width: 31rem;
	margin: 0;
	color: var(--text-muted);
	line-height: 1.55;
}
.as-style-edit__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(.9rem, 2vw, 1.5rem);
}
.as-style-edit__look {
	position: relative;
	display: block;
	min-height: clamp(24rem, 49vw, 39rem);
	overflow: hidden;
	border-radius: clamp(1.35rem, 3vw, 2rem);
	background: var(--bg-surface);
	box-shadow: 0 14px 32px rgba(63,37,30,.11);
	color: #fff;
	isolation: isolate;
}
.as-style-edit__look::after {
	content: "";
	position: absolute;
	inset: 45% 0 0;
	z-index: 0;
	background: linear-gradient(0deg, rgba(20,15,14,.72), rgba(20,15,14,0));
	pointer-events: none;
}
.as-style-edit__look img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .65s var(--ease);
}
.as-style-edit__look:first-child img { object-position: center 32%; }
.as-style-edit__look:last-child img { object-position: center 38%; }
.as-style-edit__caption {
	position: absolute;
	left: clamp(1rem, 2.5vw, 1.75rem);
	right: clamp(1rem, 2.5vw, 1.75rem);
	bottom: clamp(1rem, 2.5vw, 1.65rem);
	z-index: 1;
	display: grid;
	gap: .35rem;
}
.as-style-edit__kicker {
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	opacity: .84;
}
.as-style-edit__name {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .75rem;
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 3.2vw, 3.15rem);
	line-height: .98;
	letter-spacing: -.035em;
}
.as-style-edit__name span { font-family: var(--font-body); font-size: .62em; font-weight: 400; }
.as-style-edit__look:hover img,
.as-style-edit__look:focus-visible img { transform: scale(1.035); }
.as-style-edit__look:focus-visible { outline: 3px solid var(--cherry); outline-offset: 4px; }
.as-style-edit__action { display: flex; justify-content: center; margin-top: clamp(1.5rem, 3vw, 2.75rem); }
@media (min-width: 700px) {
	.as-style-edit__head { grid-template-columns: minmax(0, 1fr) minmax(16rem, .7fr); align-items: end; }
}
@media (max-width: 540px) {
	.as-style-edit__grid { grid-template-columns: 1fr; }
	.as-style-edit__look { min-height: 29rem; }
}

/* --------------------------------------------------------------------------
   Catalogue archive — a compact browse interface, not a Storefront template.
   Storefront's clearfix pseudo-elements were becoming CSS-grid items, which
   visibly displaced the first product into the second column.
   -------------------------------------------------------------------------- */
.woocommerce ul.products.as-shop-grid::before,
.woocommerce ul.products.as-shop-grid::after,
.woocommerce-page ul.products.as-shop-grid::before,
.woocommerce-page ul.products.as-shop-grid::after {
	content: none !important;
	display: none !important;
}
body:not(.home) #masthead.as-header {
	position: sticky !important;
	top: var(--as-announce-h);
	z-index: 120;
	padding: .6rem 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
body:not(.home) #masthead.as-header .as-header__bar {
	box-sizing: border-box;
	width: min(calc(100% - 1.5rem), 80rem);
	min-height: 3.55rem;
	margin: 0 auto;
	padding-inline: .9rem;
	border: 1px solid rgba(106,72,60,.1);
	border-radius: 1.05rem;
	background: rgba(250,246,242,.86);
	box-shadow: 0 5px 18px rgba(64,42,34,.06);
	backdrop-filter: blur(8px) saturate(115%);
	-webkit-backdrop-filter: blur(8px) saturate(115%);
	transition: background-color .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
}
body:not(.home) #masthead.as-header.is-scrolled .as-header__bar {
	background: rgba(248,243,237,.96);
	border-color: rgba(106,72,60,.14);
	box-shadow: 0 10px 26px rgba(64,42,34,.13);
}
body.woocommerce .storefront-breadcrumb {
	margin: 0 !important;
	padding: 1rem 0 .35rem !important;
}
body.woocommerce .storefront-breadcrumb .col-full,
body.woocommerce .site-content > .col-full {
	width: min(calc(100% - 3rem), 80rem);
	max-width: none;
	margin-inline: auto;
	padding: 0 !important;
}
body.woocommerce .content-area {
	width: 100%;
	float: none;
	margin: 0;
}
body.woocommerce .woocommerce-products-header {
	padding: clamp(1.35rem, 3vw, 2.4rem) 0 1.25rem !important;
}
body.woocommerce .woocommerce-products-header .page-title {
	font-size: clamp(3rem, 5.2vw, 4.75rem);
	line-height: .96;
}
body.woocommerce .as-shopbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"categories categories"
		"count sort";
	gap: .85rem 1rem;
	margin: 0 0 clamp(1.25rem, 2vw, 1.75rem);
	padding: 1rem 1.15rem;
	border: 1px solid rgba(106,72,60,.09);
	border-radius: 1.35rem;
	background: rgba(250,246,242,.86);
	box-shadow: 0 10px 26px rgba(64,42,34,.055);
}
body.woocommerce .as-shopbar__categories {
	grid-area: categories;
	width: auto;
	gap: .35rem;
	padding: 0;
}
body.woocommerce .as-shopbar__category {
	min-height: 2.35rem;
	padding: .42rem .78rem;
	font-size: .84rem;
}
body.woocommerce .as-shopbar__count { grid-area: count; align-self: center; }
body.woocommerce .as-shopbar__sort { grid-area: sort; }
body.woocommerce .as-shopbar__sort .orderby {
	min-height: 2.65rem;
	padding: .35rem 2.15rem .35rem .85rem;
	border-radius: .85rem;
	background-color: rgba(255,255,255,.72);
}
body.woocommerce ul.products.as-shop-grid { gap: clamp(1rem, 2vw, 1.5rem); }
body.woocommerce .as-shop-grid.products li.product { margin: 0 !important; }
@media (max-width: 699px) {
	body:not(.home) #masthead.as-header { padding: .45rem 0 !important; }
	body:not(.home) #masthead.as-header .as-header__bar { width: calc(100% - 1rem); min-height: 3.3rem; padding-inline: .7rem; }
	body.woocommerce .storefront-breadcrumb { padding-top: .6rem !important; }
	body.woocommerce .storefront-breadcrumb .col-full,
	body.woocommerce .site-content > .col-full { width: min(calc(100% - 2rem), 80rem); }
	body.woocommerce .woocommerce-products-header { padding: 1.25rem 0 1rem !important; }
	body.woocommerce .as-shopbar { grid-template-columns: 1fr; grid-template-areas: "categories" "count" "sort"; padding: .85rem; }
	body.woocommerce .as-shopbar__categories { overflow-x: auto; flex-wrap: nowrap; }
	body.woocommerce .as-shopbar__sort { width: 100%; }
	body.woocommerce .as-shopbar__sort .orderby { width: 100%; }
}

/* Storefront wraps the whole site in an overflow-x:hidden container. That
   container becomes the sticky scroll context in Chromium, so a CSS sticky
   header scrolls away with the catalogue. On shop archives use a fixed bar
   and reserve exactly the same space in the breadcrumb below it. */
body.woocommerce { --as-catalog-header-space: 5rem; }
body.woocommerce #masthead.as-header {
	position: fixed !important;
	left: 0;
	right: 0;
	width: 100%;
}
body.woocommerce .storefront-breadcrumb {
	padding-top: calc(var(--as-catalog-header-space) + .6rem) !important;
}
@media (max-width: 699px) {
	body.woocommerce { --as-catalog-header-space: 4.2rem; }
	body.woocommerce .storefront-breadcrumb {
		padding-top: calc(var(--as-catalog-header-space) + .35rem) !important;
	}
}

/* Keep the homepage navigation in one layout mode. Previously it changed from
   `absolute` to `fixed` at the scroll threshold; that is a browser re-layout,
   not an animatable transition, and was the source of the perceived flicker.
   It now stays fixed from first paint and only the glass treatment changes. */
body.home #masthead.as-header,
body.home #masthead.as-header.is-scrolled {
	position: fixed;
	animation: none;
}

/* Catalogue navigation: a quiet editorial rail, rather than a large generic
   filter card. Category choice remains instantly tappable; hierarchy comes
   from type, a single active underline, and a separate sort control. */
body.woocommerce .as-shopbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"categories categories"
		"count sort";
	gap: .85rem 1.25rem;
	margin-bottom: clamp(1.35rem, 2.5vw, 2rem);
	padding: 0 0 1.1rem;
	border: 0;
	border-bottom: 1px solid rgba(106,72,60,.16);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
body.woocommerce .as-shopbar__categories {
	gap: clamp(.85rem, 2.3vw, 2rem);
	border-bottom: 1px solid rgba(106,72,60,.09);
}
body.woocommerce .as-shopbar__category {
	position: relative;
	min-height: 3.1rem;
	padding: .8rem 0 .7rem;
	border: 0;
	border-radius: 0;
	background: transparent !important;
	color: var(--text-muted);
	font-family: var(--font-display);
	font-size: clamp(1rem, 1.45vw, 1.25rem);
	font-weight: 400;
	letter-spacing: -.015em;
	transition: color .2s var(--ease);
}
body.woocommerce .as-shopbar__category::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 2px;
	border-radius: 999px;
	background: var(--cherry);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .22s var(--ease);
}
body.woocommerce .as-shopbar__category:hover,
body.woocommerce .as-shopbar__category:focus-visible,
body.woocommerce .as-shopbar__category.is-current {
	color: var(--cherry-deep);
}
body.woocommerce .as-shopbar__category:hover::after,
body.woocommerce .as-shopbar__category:focus-visible::after,
body.woocommerce .as-shopbar__category.is-current::after { transform: scaleX(1); }
body.woocommerce .as-shopbar__count {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--text-muted);
}
body.woocommerce .as-shopbar__sort .orderby {
	min-height: 2.45rem;
	padding: .3rem 2rem .3rem .75rem;
	border-color: rgba(106,72,60,.12);
	border-radius: 999px;
	background-color: rgba(250,246,242,.9);
	font-size: .8rem;
	box-shadow: 0 4px 13px rgba(64,42,34,.045);
}
@media (max-width: 699px) {
	body.woocommerce .as-shopbar { grid-template-areas: "categories" "count" "sort"; padding-bottom: 1rem; }
	body.woocommerce .as-shopbar__categories { gap: 1.1rem; }
	body.woocommerce .as-shopbar__category { min-height: 2.85rem; font-size: 1rem; }
}

/* The category selector is a single, light glass dock. It feels tactile like
   iOS segmented controls without turning each category into a heavy card. */
body.woocommerce .as-shopbar {
	gap: .8rem 1rem;
	padding-bottom: 1rem;
	border-bottom-color: rgba(106,72,60,.12);
}
body.woocommerce .as-shopbar__categories {
	gap: .18rem;
	padding: .3rem;
	border: 1px solid rgba(255,255,255,.72);
	border-radius: 1.05rem;
	background: rgba(250,246,242,.54);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 8px 22px rgba(64,42,34,.045);
	backdrop-filter: blur(12px) saturate(120%);
	-webkit-backdrop-filter: blur(12px) saturate(120%);
}
body.woocommerce .as-shopbar__category {
	min-height: 2.7rem;
	padding: .55rem .82rem;
	border: 1px solid transparent;
	border-radius: .8rem;
	font-family: var(--font-body);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: 0;
}
body.woocommerce .as-shopbar__category::after { display: none; }
body.woocommerce .as-shopbar__category:hover,
body.woocommerce .as-shopbar__category:focus-visible {
	border-color: rgba(130,41,62,.15);
	background: rgba(255,255,255,.44) !important;
	color: var(--cherry-deep);
}
body.woocommerce .as-shopbar__category.is-current {
	border-color: rgba(255,255,255,.24);
	background: linear-gradient(135deg, rgba(151,31,59,.98), rgba(124,25,48,.94)) !important;
	box-shadow: 0 5px 12px rgba(112,23,45,.2), inset 0 1px 0 rgba(255,255,255,.25);
	color: #fff;
}
body.woocommerce .as-shopbar__sort { position: relative; }
body.woocommerce .as-shopbar__sort::after {
	content: "⌄";
	position: absolute;
	top: 50%;
	right: .82rem;
	pointer-events: none;
	transform: translateY(-58%);
	color: var(--cherry-deep);
	font-size: 1.15rem;
	line-height: 1;
}
body.woocommerce .as-shopbar__sort .orderby {
	appearance: none;
	-webkit-appearance: none;
	min-width: 15.5rem;
	padding-right: 2.3rem;
	border-color: rgba(106,72,60,.14);
	background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(246,237,232,.84));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 5px 14px rgba(64,42,34,.055);
}
body.woocommerce .as-shopbar__sort .orderby:focus-visible {
	border-color: var(--cherry);
	outline: 3px solid rgba(151,31,59,.16);
	outline-offset: 2px;
}

/* Match the catalogue's glass dock: the top navigation is the same material,
   simply scaled to the page grid rather than a separate opaque component. */
body.woocommerce #masthead.as-header .as-header__bar,
body.woocommerce #masthead.as-header.is-scrolled .as-header__bar {
	/* Use the viewport here: Storefront's nested `.col-full` otherwise removes
	 * another padding layer and leaves the masthead visibly narrower. */
	width: min(calc(100vw - 3rem), 80rem);
	max-width: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	border-color: rgba(255,255,255,.72);
	background: rgba(250,246,242,.54);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 8px 22px rgba(64,42,34,.045);
	backdrop-filter: blur(12px) saturate(120%);
	-webkit-backdrop-filter: blur(12px) saturate(120%);
}
body.woocommerce #masthead.as-header.is-scrolled .as-header__bar {
	box-shadow: inset 0 1px 0 rgba(255,255,255,.84), 0 10px 26px rgba(64,42,34,.1);
}

/* Remove redundant breadcrumbs from the retail flow. The fixed nav reserves
   its own space through #content, so the catalogue starts cleanly below it. */
body.woocommerce .storefront-breadcrumb { display: none; }
body.woocommerce #content { padding-top: var(--as-catalog-header-space); }
.as-catalog-banner {
	position: relative;
	height: clamp(6.5rem, 13vw, 10rem);
	margin: 0 0 clamp(1rem, 2vw, 1.5rem);
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.7);
	border-radius: clamp(1.15rem, 2.5vw, 1.7rem);
	background: #d8c5b1;
	box-shadow: 0 12px 28px rgba(64,42,34,.09);
}
.as-catalog-banner::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(54,31,24,.12), transparent 36%, rgba(54,31,24,.05));
	pointer-events: none;
}
.as-catalog-banner img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 53%;
}

/* Essential content never needs to enter from the side while the user is
   scrolling. Eliminating this reveal transform removes a second source of
   compositor jitter on image-heavy archive pages. */
html.js [data-reveal],
html.js .reveal {
	transform: none;
	transition: none;
}
@media (max-width: 699px) {
	body.woocommerce .as-shopbar__categories { overflow-x: auto; }
	body.woocommerce .as-shopbar__category { min-height: 2.55rem; padding-inline: .72rem; }
	body.woocommerce .as-shopbar__sort .orderby { min-width: 0; }
	body.woocommerce #masthead.as-header .as-header__bar,
	body.woocommerce #masthead.as-header.is-scrolled .as-header__bar { width: min(calc(100vw - 2rem), 80rem); }
	.as-catalog-banner { height: 6.4rem; border-radius: 1.05rem; }
}

/* --------------------------------------------------------------------------
   Canonical site header
   --------------------------------------------------------------------------
   One navigation surface for every template. Earlier page-specific experiments
   remain above for individual content layouts, but this final component layer
   owns the header's geometry and material everywhere. This prevents a new
   archive, page or checkout template from silently reverting to Storefront's
   different masthead.
   -------------------------------------------------------------------------- */
:root { --as-header-space: 5rem; }
#masthead.as-header,
#masthead.as-header.is-scrolled {
	position: fixed !important;
	/* Sit under the announcement strip when it is visible. */
	top: var(--as-announce-h);
	left: 0;
	right: 0;
	width: 100%;
	z-index: 120;
	margin: 0 !important;
	padding: .6rem 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	animation: none !important;
}
#masthead.as-header .as-header__bar,
#masthead.as-header.is-scrolled .as-header__bar {
	box-sizing: border-box;
	width: min(calc(100vw - 3rem), 80rem) !important;
	max-width: none !important;
	height: 3.55rem;
	min-height: 3.55rem;
	margin: 0 auto !important;
	padding-block: 0;
	padding-inline: .9rem;
	border: 1px solid rgba(255,255,255,.72);
	border-radius: 1.05rem;
	background: rgba(250,246,242,.54);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 8px 22px rgba(64,42,34,.045);
	backdrop-filter: blur(12px) saturate(120%);
	-webkit-backdrop-filter: blur(12px) saturate(120%);
	transition: background-color .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
}
#masthead.as-header.is-scrolled .as-header__bar {
	box-shadow: inset 0 1px 0 rgba(255,255,255,.84), 0 10px 26px rgba(64,42,34,.1);
}

/* Match the specificity of the legacy inner-page rule above. Account pages
   do not carry the broad `.woocommerce` body class, so this is what keeps
   their header in the canonical system too. */
body:not(.home) #masthead.as-header,
body:not(.home) #masthead.as-header.is-scrolled {
	position: fixed !important;
	padding: .6rem 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
body:not(.home) #masthead.as-header .as-header__bar,
body:not(.home) #masthead.as-header.is-scrolled .as-header__bar {
	height: 3.55rem;
	min-height: 3.55rem;
	padding-block: 0;
	border-color: rgba(255,255,255,.72) !important;
	background: rgba(250,246,242,.54) !important;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 8px 22px rgba(64,42,34,.045) !important;
	backdrop-filter: blur(12px) saturate(120%) !important;
	-webkit-backdrop-filter: blur(12px) saturate(120%) !important;
}
body:not(.home) #masthead.as-header.is-scrolled .as-header__bar {
	box-shadow: inset 0 1px 0 rgba(255,255,255,.84), 0 10px 26px rgba(64,42,34,.1) !important;
}

/* Home carried the earliest experimental header selectors, which are more
   specific than a neutral ID selector. Include it explicitly so there is no
   remaining visual fork between the campaign and all inner pages. */
body.home #masthead.as-header .as-header__bar,
body.home #masthead.as-header.is-scrolled .as-header__bar {
	height: 3.55rem;
	min-height: 3.55rem;
	padding-block: 0;
	border-color: rgba(255,255,255,.72) !important;
	background: rgba(250,246,242,.54) !important;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 8px 22px rgba(64,42,34,.045) !important;
	backdrop-filter: blur(12px) saturate(120%) !important;
	-webkit-backdrop-filter: blur(12px) saturate(120%) !important;
}
body.home #masthead.as-header.is-scrolled .as-header__bar {
	box-shadow: inset 0 1px 0 rgba(255,255,255,.84), 0 10px 26px rgba(64,42,34,.1) !important;
}
#masthead.as-header .as-brand,
#masthead.as-header .as-nav__list a,
#masthead.as-header .as-actions .as-iconbtn { color: var(--text-ink); }
#masthead.as-header .as-nav__list a:hover,
#masthead.as-header .as-nav__list a:focus-visible,
#masthead.as-header .as-brand:hover,
#masthead.as-header .as-brand:focus-visible { color: var(--cherry-deep); }

/* Inner pages reserve the fixed component once. The homepage deliberately
   keeps its campaign behind the header, so its hero remains edge-to-edge. */
body:not(.home) #content { padding-top: var(--as-header-space); }
body.woocommerce { --as-catalog-header-space: var(--as-header-space); }
@media (max-width: 699px) {
	:root { --as-header-space: 4.2rem; }
	#masthead.as-header,
	#masthead.as-header.is-scrolled { padding: .45rem 0 !important; }
	#masthead.as-header .as-header__bar,
	#masthead.as-header.is-scrolled .as-header__bar {
		width: min(calc(100vw - 2rem), 80rem) !important;
		min-height: 3.3rem;
		padding-inline: .7rem;
	}
}

@media (min-width: 700px) {
	.as-collection-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.as-collection-card { min-height:28rem; }
	.as-about-hero { grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr); }
	.as-values { grid-template-columns:repeat(3,1fr); }
	.as-service-grid { grid-template-columns:repeat(3,1fr); }
	.as-contact-layout { grid-template-columns:minmax(0,.78fr) minmax(22rem,1.22fr); }
	/* Footer rules live later than the original breakpoint block above, so the
	   desktop layout must be declared here as well. Without this, the brand and
	   links stacked vertically and made the footer needlessly almost a screen
	   tall. */
	.as-footer__top { grid-template-columns:minmax(13rem,.72fr) minmax(0,1.28fr); }
	.as-footer__cols { grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.5rem,3vw,3rem); }
}
@media (min-width: 960px) {
	.as-product { grid-template-columns:minmax(0,1.06fr) minmax(21rem,.94fr); gap:clamp(1.5rem,4vw,4.5rem); }
	.as-product__buy { position:sticky; top:6.5rem; }
}
@media (max-width: 540px) {
	.as-page { padding-top:2.25rem; }
	.as-collection-grid { grid-template-columns:1fr; }
	.as-collection-card { min-height:26rem; }
	.as-product { gap: var(--space-md); padding-block: var(--space-sm) var(--space-md); }
	.as-product__buy { padding: var(--space-sm) var(--space-md) !important; }
	.single-product .as-product__buy { padding: 1rem 1.05rem !important; }
	/* Tall 4/5 gallery felt stretched on phones; keep portrait without dominating. */
	.as-product__gallery .woocommerce-product-gallery__image img,
	.as-product__gallery .woocommerce-product-gallery__image--placeholder img {
		aspect-ratio: 3 / 4;
	}
	/* Keep quantity and purchase action within the actual card width. */
	.as-product__buy form.cart,
	.as-product__buy .single_variation_wrap,
	.as-product__buy .woocommerce-variation-add-to-cart { width:100%; min-width:0; }
	.as-product__buy .woocommerce-variation-add-to-cart { align-items:stretch; }
	.as-product__buy .quantity { margin-right:0; flex: 0 0 auto; }
	.as-product__buy .single_add_to_cart_button { flex:1 1 10rem; min-width:0; padding-inline:var(--space-sm); }
	.as-product__gallery .flex-control-nav { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.2rem; }
	.as-product-service-tab { grid-template-columns:1fr; }
	/* The coupon prompt is a sentence, not a two-column control. Storefront's
	   flex treatment squeezed its link into a narrow vertical strip on phones. */
	body .woocommerce-form-coupon-toggle .woocommerce-info { display:block; }
	body .woocommerce-form-coupon-toggle .woocommerce-info .showcoupon { display:inline; margin-left:.25rem; }
	/* All catalogue categories must be discoverable without an invisible
	   horizontal swipe. On a phone they simply wrap into a compact second row. */
	.as-shopbar__categories { flex-wrap:wrap; overflow:visible; }
}

/* -----------------------------------------------------------------------------
   Reduced motion — stop marquee + reveal + hover motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.as-marquee__row { animation: none; }
	html.js [data-reveal],
	html.js .reveal { opacity: 1; transform: none; transition: none; }
	.as-hero__panel,
	.as-hero__media .as-squircle,
	.as-hero__media img { transform: none !important; }
	.as-card:hover { transform: none; }
	.as-card:hover .as-card__img,
	.as-tile:hover .as-tile__img { transform: none; }

	/* Single product: kill the gallery crossfade, swatch lift, and button lift. */
	.as-product__gallery .woocommerce-product-gallery__image img,
	.as-product__gallery .woocommerce-product-gallery__image--placeholder img,
	.as-swatch-btn,
	.as-product__buy .single_add_to_cart_button {
		transition: none;
	}
	.as-swatch-btn:hover,
	.as-product__buy .single_add_to_cart_button:hover,
	.woocommerce .button:hover,
	.woocommerce button.button:hover,
	.woocommerce input.button:hover,
	.woocommerce a.button:hover {
		transform: none;
	}

	/* Cart drawer: no slide, snap open/closed instead. */
	.as-cart-drawer,
	.as-cart-overlay {
		transition: none;
	}
	.woocommerce a.checkout-button:hover,
	.woocommerce #place_order:hover {
		transform: none;
	}
}

/* Collections needs a compact lead-in beneath the fixed header. This lives
   after the shared page rules so the generic page padding cannot reintroduce
   a blank band above the collection index. */
.as-page.as-collections-page { padding-top: clamp(1.25rem, 2.2vw, 2rem) !important; }

/* Contact — same continuous paper field as other service pages. */
.as-page.as-contact-page {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* About — a complete brand story built from the Astra Studio editorial voice. */
.as-page.as-about-page {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-top: clamp(1.35rem, 2.7vw, 2.75rem) !important;
	padding-bottom: clamp(4.5rem, 9vw, 9rem);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background:
		radial-gradient(ellipse 70% 42% at 92% 11%, rgba(236, 177, 167, .25), transparent 58%),
		radial-gradient(ellipse 55% 40% at 5% 58%, rgba(200, 164, 172, .16), transparent 55%),
		var(--bg-paper);
}
.as-about-page .as-about-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1.25rem, 3.8vw, 4rem);
	align-items: stretch;
}
.as-about-page .as-about-hero__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	min-height: clamp(26rem, 45vw, 39rem);
	padding: clamp(1.5rem, 4.2vw, 4rem) 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}
.as-about-page .as-about-hero h1 {
	max-width: 9ch;
	margin: .5rem 0 1.3rem;
	font-size: clamp(3rem, 6.35vw, 6.5rem);
	line-height: .9;
	letter-spacing: -.065em;
}
.as-about-page .as-about-hero h1 em { color: var(--cherry-deep); font-style: italic; font-weight: 400; }
.as-about-page .as-about-hero__lede { max-width: 34rem; margin: 0 0 1.8rem; font-size: clamp(1.03rem, 1.55vw, 1.28rem); line-height: 1.55; color: var(--text-muted); }
.as-about-page .as-about-hero__image {
	position: relative;
	min-height: clamp(26rem, 45vw, 39rem);
	margin: 0;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.58);
	border-radius: clamp(1.45rem, 3vw, 2.35rem);
	background: #c9beb8;
	box-shadow: 0 16px 40px rgba(74,44,34,.1);
}
.as-about-page .as-about-hero__image img { display: block; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center; }
.as-about-page .as-about-hero__image::after { content:""; position:absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(25,18,15,.55)); pointer-events:none; }
.as-about-page .as-about-hero__image figcaption { position:absolute; z-index:1; left:1.15rem; bottom:1rem; color:rgba(255,255,255,.85); font-size:.7rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.as-about-story { margin-top: clamp(4rem, 9vw, 9rem); }
.as-about-story__layout { display:grid; grid-template-columns: minmax(0,1fr); gap:1.5rem; margin-top:.7rem; }
.as-about-story h2,
.as-about-editorial h2,
.as-about-closing h2 { margin:0; font-size:clamp(2.7rem,5.6vw,5.8rem); line-height:.92; letter-spacing:-.06em; }
.as-about-story__text { max-width:36rem; }
.as-about-story__text p { margin:0 0 1rem; color:var(--text-muted); font-size:clamp(1rem,1.45vw,1.2rem); line-height:1.63; }
.as-about-story__text p:last-child { margin-bottom:0; }
.as-about-editorial { display:grid; grid-template-columns:1fr; gap:clamp(1.25rem,4vw,4rem); align-items:center; margin-top:clamp(3.5rem,8vw,8rem); }
.as-about-editorial__image { min-height:clamp(25rem,42vw,36rem); margin:0; overflow:hidden; border-radius:clamp(1.4rem,3vw,2.25rem); background:#c5bbb5; }
.as-about-editorial__image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.as-about-editorial__copy { padding:clamp(1rem,3vw,2.5rem); }
.as-about-editorial__copy h2 { margin:.5rem 0 1.25rem; }
.as-about-editorial__copy > p:not(.as-eyebrow) { max-width:33rem; margin:0; color:var(--text-muted); font-size:clamp(1rem,1.45vw,1.18rem); line-height:1.6; }
.as-about-page .as-values { margin-top:clamp(3.5rem,8vw,8rem); border-radius:clamp(1.3rem,2.5vw,2rem); background:rgba(133,93,78,.18); border-color:rgba(255,255,255,.55); }
.as-about-page .as-values > div { padding:clamp(1.35rem,2.6vw,2.25rem); background:rgba(252,248,244,.66); }
.as-about-page .as-values h2 { margin:.6rem 0; font-family:var(--font-display); font-size:clamp(1.45rem,2.4vw,2rem); line-height:1; letter-spacing:-.035em; }
.as-about-page .as-values p { line-height:1.55; }
.as-about-closing {
	margin-top:clamp(3.5rem,8vw,8rem);
	padding:clamp(2rem,6vw,5.5rem) clamp(1.35rem,7vw,8rem);
	border:1px solid rgba(255,255,255,.62);
	border-radius:clamp(1.5rem,3.5vw,2.65rem);
	background:linear-gradient(120deg, rgba(93,28,43,.93), rgba(130,57,66,.88));
	box-shadow:0 20px 44px rgba(81,28,38,.16);
	color:#fff;
	text-align:center;
}
.as-about-closing .as-eyebrow { color:rgba(255,235,232,.82); }
.as-about-closing h2 { margin:.55rem auto 1.25rem; max-width:13ch; color:#fff !important; }
.as-about-closing > p:not(.as-eyebrow) { max-width:37rem; margin:0 auto 1.8rem; color:rgba(255,255,255,.8); font-size:clamp(1rem,1.35vw,1.15rem); line-height:1.58; }
.as-about-closing__link { display:inline-flex; align-items:center; gap:.75rem; padding:.9rem 1.15rem; border-radius:999px; background:#fff8f3; color:var(--cherry-deep); font-size:.76rem; font-weight:750; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
@media (min-width: 800px) {
	.as-about-page .as-about-hero { grid-template-columns:minmax(0,1.04fr) minmax(20rem,.96fr); }
	.as-about-story__layout { grid-template-columns:minmax(0,1.1fr) minmax(19rem,.9fr); gap:clamp(2rem,8vw,10rem); }
	.as-about-editorial { grid-template-columns:minmax(18rem,.87fr) minmax(0,1.13fr); }
	.as-about-editorial__copy { padding-left:clamp(1rem,4vw,4rem); }
}
@media (max-width: 540px) {
	.as-page.as-about-page { padding-top:1rem !important; }
	.as-about-page .as-about-hero__copy,
	.as-about-page .as-about-hero__image { min-height:25rem; }
	.as-about-page .as-about-hero__copy { padding:1.5rem 0; }
	.as-about-page .as-about-hero h1 { font-size:clamp(2.9rem,14vw,4.5rem); }
	.as-about-editorial__copy { padding:0 .35rem; }
}

/* -----------------------------------------------------------------------------
   Product detail — stable gallery, intentional image viewer and compact tabs.
   -------------------------------------------------------------------------- */
.single-product .as-product__gallery .woocommerce-product-gallery__image,
.single-product .as-product__gallery .woocommerce-product-gallery__image img {
	transform: none !important;
	will-change: auto;
}
.single-product .as-product__gallery .woocommerce-product-gallery__image img {
	transition: opacity .2s var(--ease) !important;
}
.single-product .as-product__gallery .woocommerce-product-gallery__trigger {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	min-width: 3rem;
	min-height: 3rem;
	border: 1px solid rgba(255,255,255,.66);
	border-radius: 50%;
	background: rgba(253,249,245,.76);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 7px 18px rgba(45,30,24,.12);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	text-decoration: none;
}
.single-product .as-product__gallery .woocommerce-product-gallery__trigger img { display: none; }
.single-product .as-product__gallery .woocommerce-product-gallery__trigger::before { content: "⌕"; color: var(--text-ink); font-family: var(--font-display); font-size: 1.8rem; line-height: 1; }
.single-product .as-product__buy {
	padding: clamp(1.5rem, 3vw, 2.45rem) !important;
	border-color: rgba(255,255,255,.68);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.86), 0 15px 34px rgba(66,42,33,.09);
}
@media (min-width: 960px) {
	.single-product .as-product__buy { position: static !important; top: auto !important; }
}
.single-product .woocommerce-tabs {
	margin-top: clamp(1.25rem, 3vw, 2.5rem) !important;
	padding: clamp(1rem, 2.2vw, 1.45rem) !important;
	border: 1px solid rgba(255,255,255,.7);
	border-radius: clamp(1.25rem, 2.5vw, 1.8rem);
	background: rgba(255,255,255,.52);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.86), 0 12px 30px rgba(66,42,33,.065);
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
	margin: 0 !important;
	padding: clamp(.4rem, 1.4vw, .85rem) 0 .1rem !important;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel > :last-child { margin-bottom: 0; }
.single-product .woocommerce-tabs ul.tabs {
	max-width: 100%;
	overflow-x: auto;
	flex-wrap: nowrap;
	padding: .28rem;
	background: rgba(236,229,222,.76);
	scrollbar-width: none;
}
.single-product .woocommerce-tabs ul.tabs::-webkit-scrollbar { display:none; }
.single-product .woocommerce-tabs ul.tabs li a { min-height: 2.65rem; padding: .62rem .95rem !important; }
.single-product .as-product-service-tab { margin-top: .2rem; border-radius: 1rem; }
.single-product .as-product-service-tab > div { background: rgba(255,255,255,.58); }

/* Full-screen gallery: PhotoSwipe stays fully native and keyboard-accessible,
   but gets the brand material instead of the plugin's bare black chrome. */
.pswp__bg { background: radial-gradient(circle at 50% 10%, #49352f 0%, #211a18 54%, #120e0d 100%) !important; opacity: .98 !important; }
.pswp__top-bar { height: 5rem; padding: 1rem 1.25rem; background: linear-gradient(180deg, rgba(20,15,13,.46), transparent) !important; }
.pswp__top-bar::before { content: "ASTRA STUDIO"; display:inline-flex; align-items:center; height:2.6rem; padding:0 .9rem; border:1px solid rgba(255,255,255,.2); border-radius:999px; background:rgba(255,249,245,.11); color:rgba(255,255,255,.93); font-family:var(--font-display); font-size:.82rem; letter-spacing:.13em; }
.pswp__counter { top: 1.65rem; left: 11.2rem; color: rgba(255,255,255,.68); font-family:var(--font-body); font-size:.72rem; letter-spacing:.1em; }
.pswp__button { width:2.65rem; height:2.65rem; margin-top:.15rem; border:1px solid rgba(255,255,255,.2); border-radius:50%; background-color:rgba(255,249,245,.11) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.18); }
.pswp__button--arrow--left,
.pswp__button--arrow--right { width:3.2rem; height:3.2rem; border-radius:50%; background-color:rgba(255,249,245,.12) !important; }
.pswp__button--arrow--left { left:1.2rem; }
.pswp__button--arrow--right { right:1.2rem; }
.pswp__img { border-radius: 1.05rem; box-shadow: 0 22px 70px rgba(0,0,0,.42); }
.pswp__caption__center { max-width:30rem; padding: .65rem .9rem; border-radius:.75rem; background:rgba(255,249,245,.1); color:rgba(255,255,255,.82); }

/* Editorial product reviews: a read-only section above related products. */
.single-product .as-product-reviews {
	grid-column:1 / -1;
	margin-top:clamp(2rem,4.5vw,4rem);
	padding:clamp(1.2rem,2.6vw,2rem);
	border:1px solid rgba(255,255,255,.72);
	border-radius:clamp(1.3rem,2.6vw,1.9rem);
	background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(247,239,233,.52));
	box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 14px 34px rgba(66,42,33,.07);
	backdrop-filter:blur(18px);
	-webkit-backdrop-filter:blur(18px);
}
.as-product-reviews__intro { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; padding:0 .15rem 1.2rem; }
.as-product-reviews__intro h2 { margin:.25rem 0 0; font-size:clamp(2rem,4vw,3.25rem); }
.as-product-reviews__intro > p { max-width:27rem; margin:0; color:var(--text-muted); line-height:1.55; }
.as-product-reviews__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.as-product-review-card,
.as-product-reviews__empty { border:1px solid rgba(203,184,171,.58); border-radius:1.05rem; background:rgba(255,255,255,.58); box-shadow:inset 0 1px 0 rgba(255,255,255,.82); }
.as-product-review-card { padding:clamp(1rem,2vw,1.35rem); }
.as-product-review-card__meta { display:flex; justify-content:space-between; gap:.75rem; align-items:start; margin-bottom:.8rem; }
.as-product-review-card__meta strong { display:block; color:var(--text-ink); font-size:.94rem; }
.as-product-review-card__meta time { display:block; margin-top:.16rem; color:var(--text-muted); font-size:.78rem; }
.as-product-review-card__rating { flex:0 0 auto; color:var(--cherry); font-size:.94rem; letter-spacing:.08em; white-space:nowrap; }
.as-product-review-card__body { color:var(--text-muted); line-height:1.62; }
.as-product-review-card__body p { margin:0; }
.as-product-review-card__body p + p { margin-top:.7rem; }
.as-product-reviews__empty { padding:clamp(1.1rem,2.4vw,1.5rem); }
.as-product-reviews__empty strong { color:var(--text-ink); }
.as-product-reviews__empty p { max-width:40rem; margin:.4rem 0 0; color:var(--text-muted); }
@media (max-width:680px) {
	.as-product-reviews__intro { display:block; padding-bottom:1rem; }
	.as-product-reviews__intro > p { margin-top:.6rem; }
	.as-product-reviews__grid { grid-template-columns:1fr; }
}
.single-product .related.products,
.single-product .upsells.products { margin-top:clamp(2.25rem,5vw,4.5rem); }

.as-product__gallery { position:relative; }
.as-gallery-open {
	position:absolute;
	top:1rem;
	right:1rem;
	z-index:4;
	display:inline-flex;
	align-items:center;
	gap:.45rem;
	min-height:2.8rem;
	padding:.55rem .82rem;
	border:1px solid rgba(255,255,255,.64);
	border-radius:999px;
	background:rgba(253,249,245,.78);
	box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 7px 18px rgba(45,30,24,.12);
	backdrop-filter:blur(12px) saturate(115%);
	-webkit-backdrop-filter:blur(12px) saturate(115%);
	color:var(--text-ink);
	font-family:var(--font-body);
	font-size:.7rem;
	font-weight:750;
	letter-spacing:.045em;
	text-transform:uppercase;
	cursor:pointer;
}
.as-gallery-open span { font-family:var(--font-display); font-size:1.35rem; line-height:0; }
.as-gallery-modal[hidden] { display:none !important; }
.as-gallery-modal {
	position:fixed;
	z-index:10050;
	inset:0;
	display:grid;
	place-items:stretch;
	padding:0;
	pointer-events:auto;
}
.as-gallery-modal__backdrop {
	position:absolute;
	inset:0;
	z-index:0;
	background:rgba(14,10,9,.92);
	backdrop-filter:blur(18px) saturate(115%);
	-webkit-backdrop-filter:blur(18px) saturate(115%);
	cursor:zoom-out;
}
.as-gallery-modal__dialog {
	position:relative;
	z-index:1;
	display:grid;
	grid-template-rows:auto minmax(0,1fr);
	width:100%;
	height:100%;
	min-height:100dvh;
	overflow:hidden;
	border:0;
	border-radius:0;
	background:transparent;
	color:#fff;
	outline:none;
	pointer-events:none;
}
.as-gallery-modal__header,
.as-gallery-modal__close,
.as-gallery-modal__nav,
.as-gallery-modal__figure {
	pointer-events:auto;
}
.as-gallery-modal__header {
	display:grid;
	grid-template-columns:auto minmax(0,1fr) auto auto;
	align-items:center;
	gap:.75rem;
	padding:1rem clamp(1rem,3vw,2rem);
	background:linear-gradient(180deg, rgba(14,10,9,.55), transparent);
}
.as-gallery-modal__brand {
	padding:.4rem .75rem;
	border:1px solid rgba(255,255,255,.22);
	border-radius:999px;
	background:rgba(255,249,245,.08);
	color:#fff;
	font-family:var(--font-display);
	font-size:.72rem;
	letter-spacing:.12em;
	white-space:nowrap;
}
.as-gallery-modal__title {
	overflow:hidden;
	color:rgba(255,255,255,.78);
	font-size:.82rem;
	font-weight:600;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.as-gallery-modal__count {
	color:rgba(255,255,255,.55);
	font-size:.75rem;
	letter-spacing:.08em;
	white-space:nowrap;
	font-variant-numeric:tabular-nums;
}
.as-gallery-modal__close,
.as-gallery-modal__nav {
	display:inline-grid;
	place-items:center;
	flex-shrink:0;
	padding:0;
	border:1px solid rgba(255,255,255,.24);
	border-radius:50%;
	background:rgba(255,249,245,.14);
	color:#fff;
	cursor:pointer;
	appearance:none;
	-webkit-appearance:none;
	box-sizing:border-box;
	transition:background .18s ease, border-color .18s ease, transform .18s ease;
}
.as-gallery-modal__close {
	width:2.75rem;
	height:2.75rem;
	min-width:2.75rem;
	min-height:2.75rem;
}
.as-gallery-modal__stage {
	position:relative;
	display:grid;
	place-items:center;
	min-height:0;
	padding:0 clamp(4.5rem,8vw,6.5rem) clamp(1.25rem,3vh,2.5rem);
	pointer-events:none;
}
.as-gallery-modal.is-zoomed .as-gallery-modal__nav { opacity:.35; pointer-events:none; }
.as-gallery-modal__figure {
	display:grid;
	place-items:center;
	width:100%;
	height:100%;
	min-width:0;
	min-height:0;
	margin:0;
	overflow:hidden;
	cursor:zoom-in;
	-webkit-overflow-scrolling:touch;
	overscroll-behavior:contain;
}
.as-gallery-modal__figure.is-zoomed {
	display:block;
	overflow:auto;
	cursor:grab;
	place-items:unset;
}
.as-gallery-modal__figure.is-zoomed.is-panning { cursor:grabbing; }
.as-gallery-modal__figure img {
	display:block;
	width:auto;
	height:auto;
	max-width:min(100%, 92vw);
	max-height:calc(100dvh - 7rem);
	object-fit:contain;
	border-radius:.35rem;
	box-shadow:0 24px 64px rgba(0,0,0,.45);
	user-select:none;
	-webkit-user-drag:none;
}
.as-gallery-modal__figure.is-zoomed img {
	max-width:none;
	max-height:none;
	border-radius:0;
	margin:0;
}
.as-gallery-modal__nav {
	position:absolute;
	top:50%;
	z-index:2;
	width:3.25rem;
	height:3.25rem;
	min-width:3.25rem;
	min-height:3.25rem;
	transform:translateY(-50%);
	pointer-events:auto;
}
.as-gallery-modal__nav--prev { left:clamp(.75rem,2vw,1.5rem); }
.as-gallery-modal__nav--next { right:clamp(.75rem,2vw,1.5rem); }
.as-gallery-modal__nav[hidden] { display:none !important; }
.as-gallery-modal__nav:disabled { opacity:.3; cursor:default; }
html.as-gallery-opened,
body.as-gallery-opened { overflow:hidden; }
@media (hover:hover) and (pointer:fine) {
	.as-gallery-open:hover { background:rgba(255,255,255,.92); transform:translateY(-1px); }
	.as-gallery-modal__close:hover,
	.as-gallery-modal__nav:hover:not(:disabled) {
		background:rgba(255,249,245,.22);
		border-color:rgba(255,255,255,.4);
	}
}
@media (max-width:540px) {
	.as-gallery-open { top:.7rem; right:.7rem; min-height:2.55rem; padding:.5rem .65rem; }
	.as-gallery-open:not(:focus-visible) { font-size:0; gap:0; width:2.55rem; justify-content:center; }
	.as-gallery-open:not(:focus-visible) span { font-size:1.4rem; }
	.as-gallery-modal__header { grid-template-columns:minmax(0,1fr) auto auto; gap:.55rem; padding:.85rem .9rem; }
	.as-gallery-modal__brand { display:none; }
	.as-gallery-modal__stage { padding:0 3.4rem 1rem; }
	.as-gallery-modal__close,
	.as-gallery-modal__nav {
		width:2.75rem;
		height:2.75rem;
		min-width:2.75rem;
		min-height:2.75rem;
	}
	.as-gallery-modal__nav--prev { left:.45rem; }
	.as-gallery-modal__nav--next { right:.45rem; }
}
