/* Aathirai Ethnics — brand tokens and custom styles. */

:root {
	/* From the lotus logo: deep forest green for identity moments only. */
	--ae-green-deep: #1d5c38;
	--ae-green-mid: #2e7d4f;
	/* Client-approved soft mint tones (shades 2-3 of palette, lightened to stay gentle). */
	--ae-pista: #d9f4e3;
	--ae-pista-soft: #ecfaf1;
	--ae-cream: #fdfffd;
	/* Palette shade 1 for section stripes; shade 2 for the menu bar. */
	--ae-mint: #e0fbe8;
	--ae-mint-nav: #c3f8d3;
	--ae-hero-mint: var(--ae-mint);

	--ae-color-bg: var(--ae-cream);
	--ae-color-text: #21301f;
	--ae-color-muted: #64705f;
	--ae-color-accent: var(--ae-green-deep);
	--ae-color-border: #cdebd9;

	--ae-font-heading: Georgia, "Times New Roman", serif;
	--ae-font-body: "Helvetica Neue", Arial, sans-serif;

	/* Where stacking cards pin. main.js raises this when the header is sticky. */
	--ae-stack-top: 1rem;

	--ae-radius: 14px;
	--ae-shadow: 0 8px 24px rgba(29, 92, 56, 0.10);
	--ae-space-sm: 0.75rem;
	--ae-space-md: 1.5rem;
	--ae-space-lg: 3rem;
}

body {
	background: var(--ae-color-bg);
	color: var(--ae-color-text);
}

/* ---------- Header / branding ---------- */
.site-header,
.site-header .col-full,
.site-header .site-branding {
	background: #fff;
}

.storefront-primary-navigation {
	background: var(--ae-mint-nav);
}

.site-header {
	border-bottom: 1px solid var(--ae-color-border);
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: 0 2px 12px rgba(29, 92, 56, 0.05);
}

/* Storefront reserves 4.2em below the header, which reads as a dead band on a
   phone. The front page opens with the look ticker and hero, both of which
   bring their own spacing. These mirror Storefront's own selectors so they
   match on specificity and win on order. */
.home.blog .site-header,
.home.page .site-header,
.home.post-type-archive-product .site-header {
	margin-bottom: 0;
}

/* Beat Storefront + WooCommerce (float:left, 230px logo cap) so the
   mark is a full-width banner, not a tile in the left column. */
.woocommerce-active .site-header .site-branding,
.site-header .site-branding {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	text-align: center;
}

.site-header .site-search {
	float: none;
	width: 100%;
	max-width: 420px;
	margin: 0.6rem auto 0;
}

.ae-brand-wrap {
	margin: 0;
	padding: 0;
}

/* ---------- Card nav (parked) ----------
   Expanding card header, after React Bits <CardNav />. Kept so it can replace
   the Storefront header again later. Currently unused: the original centered
   logo + left hamburger is back on mobile.

.ae-card-nav-wrap {
	display: none;
}

@media (max-width: 768px) {
	.ae-card-nav-wrap {
		display: block;
		position: sticky;
		top: 0.55rem;
		z-index: 200;
		padding: 0 4% 0.55rem;
	}

	.site-header {
		display: none !important;
	}
}

   ---------- end parked card nav show/hide ---------- */

.ae-card-nav-wrap { display: none; }

.ae-card-nav {
	max-width: 800px;
	margin: 0 auto;
	height: 60px;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ae-color-border);
	border-radius: 0.75rem;
	box-shadow: 0 8px 24px rgba(29, 92, 56, 0.12);
	transition: height 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.ae-card-nav__top {
	position: relative;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.45rem 0.7rem 0.45rem 0.9rem;
	z-index: 2;
}

.ae-card-nav__burger {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ae-green-deep);
	cursor: pointer;
}

.ae-card-nav__line {
	width: 22px;
	height: 2px;
	background: currentColor;
	transition: transform 0.25s ease;
	transform-origin: 50% 50%;
}

.ae-card-nav.is-open .ae-card-nav__line:first-child {
	transform: translateY(4px) rotate(45deg);
}

.ae-card-nav.is-open .ae-card-nav__line:last-child {
	transform: translateY(-4px) rotate(-45deg);
}

.ae-card-nav__logo {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	line-height: 0;
}

.ae-card-nav__logo img {
	height: 44px;
	width: auto;
}

.ae-card-nav__cta {
	display: none;
	align-items: center;
	height: 100%;
	padding: 0 1rem;
	border-radius: 0.45rem;
	background: var(--ae-green-deep);
	color: #fff !important;
	font-size: 0.85rem;
	font-weight: 600;
	text-decoration: none;
}

.ae-card-nav__content {
	display: flex;
	align-items: stretch;
	gap: 8px;
	padding: 0 0.5rem 0.5rem;
}

.ae-nav-card {
	flex: 1 1 0;
	min-width: 0;
	min-height: 140px;
	display: flex;
	flex-direction: column;
	padding: 12px 14px;
	border-radius: 0.55rem;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.ae-card-nav.is-open .ae-nav-card {
	opacity: 1;
	transform: none;
}

.ae-card-nav.is-open .ae-nav-card:nth-child(2) { transition-delay: 0.08s; }
.ae-card-nav.is-open .ae-nav-card:nth-child(3) { transition-delay: 0.16s; }

.ae-nav-card__label {
	font-family: var(--ae-font-heading);
	font-size: 1.15rem;
	letter-spacing: 0.02em;
	margin-bottom: 0.4rem;
}

.ae-nav-card__links {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ae-nav-card__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: inherit !important;
	text-decoration: none;
	font-size: 0.92rem;
	opacity: 0.92;
}

.ae-nav-card__link:hover { opacity: 1; }

.ae-nav-card__link .ae-icon { flex: none; }

@media (max-width: 768px) {
	.ae-card-nav__logo {
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		order: 0;
	}

	.ae-card-nav__burger { order: 0; }

	.ae-card-nav__top { justify-content: space-between; }

	.ae-card-nav__content {
		flex-direction: column;
		align-items: stretch;
	}

	.ae-nav-card {
		height: auto;
		min-height: auto;
		flex: 1 1 auto;
		padding: 12px 14px;
	}

	.ae-nav-card__label { font-size: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
	.ae-card-nav,
	.ae-nav-card,
	.ae-card-nav__line {
		transition-duration: 0.01ms;
	}
}

.ae-brand {
	display: block;
	width: 100%;
	line-height: 0;
}

.woocommerce-active .site-header .site-branding img.ae-brand__img,
.site-header .ae-brand__img {
	display: block;
	width: 100%;
	max-width: none;
	height: 6.5rem;
	object-fit: contain;
	object-position: center;
}

/* ---------- Header nav bar ----------
   Five links and a tool cluster on one row. The bar is white rather than the
   old mint wash so the dropdown panels read as part of the header instead of
   floating over a coloured strip. */
.storefront-primary-navigation {
	background: #fff;
	border-top: 1px solid var(--ae-color-border);
}

.ae-nav {
	position: relative;
}

.ae-nav__bar {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 3.1rem;
}

.ae-nav__menu {
	flex: 1 1 auto;
	min-width: 0;
}

.ae-nav__list {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ae-nav__item {
	position: relative;
	margin: 0;
}

.ae-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0.95rem 0.8rem;
	font-family: var(--ae-font-heading);
	font-size: 0.97rem;
	letter-spacing: 0.015em;
	color: var(--ae-green-deep);
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.ae-nav__link::after {
	content: "";
	position: absolute;
	left: 0.8rem;
	right: 0.8rem;
	bottom: 0.55rem;
	height: 2px;
	border-radius: 2px;
	background: var(--ae-green-mid);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s ease;
}

.ae-nav__item:hover > .ae-nav__link::after,
.ae-nav__item.is-open > .ae-nav__link::after,
.ae-nav__link:focus-visible::after,
.ae-nav__item.is-current > .ae-nav__link::after {
	transform: scaleX(1);
}

.ae-nav__item--has-panel > .ae-nav__link {
	padding-right: 0.25rem;
}

.ae-nav__disclosure {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.35rem 0.5rem 0.35rem 0.15rem;
	border: 0;
	background: none;
	color: var(--ae-green-deep);
	cursor: pointer;
	line-height: 0;
}

.ae-nav__disclosure .ae-icon {
	transition: transform 0.22s ease;
}

.ae-nav__item:hover .ae-nav__disclosure .ae-icon,
.ae-nav__item.is-open .ae-nav__disclosure .ae-icon {
	transform: rotate(180deg);
}

/* ---------- Department dropdown ---------- */
.ae-nav__panel {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 60;
	padding: 0.5rem;
	background: #fff;
	border: 1px solid var(--ae-color-border);
	border-radius: 0 0 var(--ae-radius) var(--ae-radius);
	box-shadow: 0 20px 38px -20px rgba(29, 92, 56, 0.4);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}

.ae-nav__item:hover > .ae-nav__panel,
.ae-nav__item.is-open > .ae-nav__panel,
.ae-nav__item:focus-within > .ae-nav__panel {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.ae-nav__sub {
	display: grid;
	grid-template-columns: repeat(2, minmax(11.5rem, 1fr));
	gap: 0.1rem 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ae-nav__sub > li {
	margin: 0;
}

.ae-nav__sublink {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	padding: 0.55rem 0.7rem;
	border-radius: 9px;
	font-size: 0.9rem;
	color: var(--ae-color-text);
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.ae-nav__sublink:hover,
.ae-nav__sublink:focus-visible {
	background: var(--ae-pista-soft);
	color: var(--ae-green-deep);
}

.ae-nav__count {
	flex: none;
	min-width: 1.4rem;
	padding: 0.1rem 0.35rem;
	border-radius: 999px;
	background: var(--ae-pista);
	color: var(--ae-green-deep);
	font-size: 0.7rem;
	text-align: center;
}

.ae-nav__sublink--all {
	grid-column: 1 / -1;
	margin-top: 0.2rem;
	border-top: 1px solid var(--ae-color-border);
	border-radius: 0 0 9px 9px;
	padding-top: 0.65rem;
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
}

/* ---------- Search, account, cart ---------- */
.ae-nav__tools {
	display: flex;
	align-items: center;
	gap: 0.15rem;
	flex: none;
	margin-left: auto;
}

.ae-nav__tool {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.55rem 0.6rem;
	border: 0;
	border-radius: 999px;
	background: none;
	color: var(--ae-green-deep);
	font-size: 0.86rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.ae-nav__tool:hover,
.ae-nav__tool:focus-visible {
	background: var(--ae-pista-soft);
}

.ae-nav__cart-count {
	min-width: 1.15rem;
	padding: 0 0.3rem;
	border-radius: 999px;
	background: var(--ae-green-deep);
	color: #fff;
	font-size: 0.7rem;
	line-height: 1.15rem;
	text-align: center;
}

.ae-nav__cart-count.is-empty {
	background: var(--ae-pista);
	color: var(--ae-green-deep);
}

.ae-nav__search {
	padding: 0 0 0.9rem;
}

.ae-nav__search-form {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	max-width: 34rem;
	margin: 0 auto;
	padding: 0.35rem 0.35rem 0.35rem 0.85rem;
	background: var(--ae-pista-soft);
	border: 1px solid var(--ae-color-border);
	border-radius: 999px;
	color: var(--ae-green-deep);
}

.ae-nav__search-form input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding: 0.35rem 0;
	border: 0;
	background: none;
	box-shadow: none;
	font-size: 0.92rem;
}

.ae-nav__search-form input[type="search"]:focus {
	outline: none;
	box-shadow: none;
}

.ae-nav__search-submit {
	flex: none;
	padding: 0.5rem 1.1rem;
	border: 0;
	border-radius: 999px;
	background: var(--ae-green-deep);
	color: #fff;
	font-size: 0.85rem;
	cursor: pointer;
}

.ae-nav__burger {
	display: none;
	flex: none;
	padding: 0.6rem 0.5rem;
	border: 0;
	background: none;
	cursor: pointer;
}

.ae-nav__burger-box {
	position: relative;
	display: block;
	width: 22px;
	height: 2px;
}

.ae-nav__burger-line,
.ae-nav__burger-line::before,
.ae-nav__burger-line::after {
	position: absolute;
	left: 0;
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: var(--ae-green-deep);
	transition: transform 0.28s ease, background-color 0.2s ease;
}

.ae-nav__burger-line::before,
.ae-nav__burger-line::after {
	content: "";
}

.ae-nav__burger-line::before { top: -7px; }
.ae-nav__burger-line::after { top: 7px; }

.ae-nav.is-open .ae-nav__burger-line {
	background: transparent;
}

.ae-nav.is-open .ae-nav__burger-line::before {
	transform: translateY(7px) rotate(45deg);
}

.ae-nav.is-open .ae-nav__burger-line::after {
	transform: translateY(-7px) rotate(-45deg);
}

@media (prefers-reduced-motion: reduce) {
	.ae-nav__panel,
	.ae-nav__link::after,
	.ae-nav__disclosure .ae-icon,
	.ae-nav__burger-line,
	.ae-nav__burger-line::before,
	.ae-nav__burger-line::after {
		transition: none;
	}
}

/* Slim announcement bar above the header (messages rotate via JS) */
.ae-announce {
	position: relative;
	background: var(--ae-green-deep);
	color: #fff;
	text-align: center;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	padding: 0.5rem 1rem;
	min-height: 2.1em;
}

.ae-announce__msg {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
	opacity: 0;
	transform: translateY(5px);
	transition: opacity 0.35s ease, transform 0.35s ease;
}

.ae-announce__msg.is-active {
	opacity: 1;
	transform: none;
	/* Wait for the outgoing message to clear so the two never overlap and
	   turn into unreadable double text on a narrow bar. */
	transition-delay: 0.35s;
}

/* Storefront sets overflow-x:hidden here, which makes #page a scroll container
   and stops position:sticky tracking the window scroll. `clip` contains the
   same overflow without creating one. */
#page.site {
	overflow-x: clip;
}

/* ---------- Lotus mark ---------- */
.ae-lotus {
	display: inline-flex;
	align-items: center;
	flex: none;
	line-height: 0;
	color: var(--ae-green-mid);
}

/* ---------- Buttons ---------- */
.ae-btn {
	display: inline-block;
	padding: 0.85rem 2.2rem;
	border-radius: 999px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.ae-btn--primary {
	background: var(--ae-green-deep);
	color: #fff !important;
	box-shadow: var(--ae-shadow);
}

.ae-btn--primary:hover {
	background: var(--ae-green-mid);
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(29, 92, 56, 0.22);
}

/* ---------- Hero ---------- */
.ae-hero {
	background: var(--ae-hero-mint);
	text-align: center;
	padding: var(--ae-space-md);
	overflow-x: clip;
	overflow-y: visible;
}

.ae-hero__head {
	display: grid;
	justify-items: center;
	gap: 0.45rem;
	margin-bottom: 0.85rem;
}

.ae-hero__lotus {
	color: var(--ae-green-mid);
	flex: none;
}

.ae-hero__title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: clamp(1.35rem, 3vw, 1.9rem);
	letter-spacing: 0;
	text-transform: none;
	margin: 0;
	max-width: 100%;
}

.ae-hero__label {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
}

.ae-hero__tagline {
	color: var(--ae-color-muted);
	font-size: 1.05rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.5;
	max-width: 28rem;
	margin: 0 auto 1.4rem;
}

.ae-hero__inner {
	margin-top: var(--ae-space-md);
}

.ae-hero__actions {
	margin-top: 0;
}

/* ---------- Hero depth carousel ---------- */
.ae-depth {
	/* Rail geometry, read back by depthCarousel() in assets/js/main.js. */
	--ae-depth-w: 300;
	--ae-depth-h: 380;
	--ae-depth-z: 200;
	--ae-depth-spread: 82;
	--ae-depth-tilt: 20;
	--ae-depth-visible: 4;
	--ae-depth-falloff: 0.2;
	--ae-depth-blur: 5;
	/* Slack left either side of the fan when working out the fit scale. */
	--ae-depth-pad: 72;

	position: relative;
	width: 100%;
	/* JS sets the real height from the scaled card; this covers first paint. */
	min-height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	perspective: 1400px;
	perspective-origin: 50% 50%;
	/* Horizontal drags belong to the carousel, vertical ones to the page. */
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
	cursor: grab;
	outline: none;
}

.ae-depth:active {
	cursor: grabbing;
}

.ae-depth:focus-visible {
	outline: 2px solid var(--ae-green);
	outline-offset: 4px;
	border-radius: var(--ae-radius);
}

.ae-depth__stage {
	position: absolute;
	inset: 0;
	transform-style: preserve-3d;
}

.ae-depth__card {
	position: absolute;
	top: 50%;
	left: 50%;
	width: calc(var(--ae-depth-w) * 1px);
	height: calc(var(--ae-depth-h) * 1px);
	transform: translate(-50%, -50%);
	transform-origin: center center;
	overflow: hidden;
	border-radius: var(--ae-radius);
	background: var(--ae-pista);
	text-decoration: none;
	box-shadow: 0 30px 60px -20px rgba(8, 38, 21, 0.45), 0 8px 20px -10px rgba(8, 38, 21, 0.35);
	will-change: transform, opacity, filter;
}

.ae-depth__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* Per-photo crop point, set inline from ae_category_focus(). */
	object-position: var(--ae-focus, top center);
	display: block;
	pointer-events: none;
	-webkit-user-drag: none;
}

/* Multiplied over each card so it darkens into the brand green as it recedes. */
.ae-depth__tint {
	position: absolute;
	inset: 0;
	opacity: 0;
	background: var(--ae-green-deep);
	mix-blend-mode: multiply;
	pointer-events: none;
}

.ae-depth__label {
	position: absolute;
	inset: auto 0 0 0;
	padding: 2.4rem 1rem 1rem;
	background: linear-gradient(to top, rgba(8, 38, 21, 0.82), rgba(8, 38, 21, 0));
	color: #fff;
	font-family: var(--ae-font-heading);
	font-size: 1.05rem;
	letter-spacing: 0.04em;
	pointer-events: none;
}

.ae-depth__arrow {
	position: absolute;
	top: 50%;
	z-index: 3000;
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 1px solid var(--ae-color-border);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.86);
	backdrop-filter: blur(8px);
	color: var(--ae-green-deep);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.ae-depth__arrow:hover {
	background: #fff;
	border-color: var(--ae-green);
}

.ae-depth__arrow:active {
	transform: translateY(-50%) scale(0.94);
}

.ae-depth__arrow--prev { left: 12px; }
.ae-depth__arrow--next { right: 12px; }

.ae-depth__dots {
	position: absolute;
	bottom: 6px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3000;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.7);
	backdrop-filter: blur(6px);
}

/* The button stays a comfortable tap target; ::before draws the small dot, so
   the theme's 44px minimum for buttons does not inflate the visible pill. */
.ae-depth__dot {
	flex: none;
	display: grid;
	place-items: center;
	width: 22px;
	height: 26px;
	min-height: 0;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
}

.ae-depth__dot::before {
	content: '';
	display: block;
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: rgba(29, 92, 56, 0.32);
	transition: width 0.25s ease, background 0.25s ease;
}

.ae-depth__dot.is-active::before {
	width: 18px;
	background: var(--ae-green);
}

@media (prefers-reduced-motion: reduce) {
	.ae-depth__card { will-change: auto; }
	.ae-depth__arrow,
	.ae-depth__dot { transition: none; }
}

/* ---------- Hero photo strip ----------
   PARKED with the flat strip markup in front-page.php, replaced by the depth
   carousel above. driftHeroStrip() in assets/js/main.js is still live but
   no-ops without `.ae-hero__strip`.

.ae-hero__strip {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 1.5rem;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ae-hero__strip::-webkit-scrollbar { display: none; }

.ae-hero__track {
	display: flex;
	gap: 1rem;
	width: max-content;
	margin: 0 auto;
	padding: 0 var(--ae-space-md);
}

.ae-hero__card {
	position: relative;
	display: block;
	scroll-snap-align: center;
	width: 260px;
	height: 340px;
	flex: none;
	border-radius: var(--ae-radius);
	overflow: hidden;
	background: var(--ae-pista);
	border: 1px solid var(--ae-color-border);
	text-decoration: none;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ae-hero__card:hover {
	transform: translateY(-6px);
	box-shadow: var(--ae-shadow);
}

.ae-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
	transition: transform 0.6s ease;
}

.ae-hero__card:hover .ae-hero__img {
	transform: scale(1.06);
}

.ae-hero__card-label {
	position: absolute;
	inset: auto 0 0 0;
	padding: 2.2rem 0.9rem 0.85rem;
	background: linear-gradient(to top, rgba(8, 38, 21, 0.78), rgba(8, 38, 21, 0));
	color: #fff;
	font-weight: 600;
	font-size: 0.92rem;
	letter-spacing: 0.04em;
}

   ---------- end parked hero strip ---------- */

/* ---------- Sections ---------- */
.ae-section {
	max-width: 1180px;
	margin: 0 auto;
	padding: var(--ae-space-lg) var(--ae-space-md);
}

.ae-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: var(--ae-space-md);
}

.ae-section__head h2 {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	margin: 0;
}

.ae-edit .ae-section__head {
	justify-content: center;
}

.ae-link-more {
	color: var(--ae-green-mid);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.ae-link-more:hover { text-decoration: underline; }

/* Product rows: compact stacked rails, no full-bleed pista wash. */
.ae-section--products .ae-section__head h2 {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	width: auto;
}

.ae-section--products .ae-section__head h2::after {
	content: "";
	width: 2.4rem;
	height: 3px;
	background: var(--ae-green-deep);
	border-radius: 2px;
}

.ae-section--products {
	position: relative;
	padding-top: var(--ae-space-md);
	padding-bottom: var(--ae-space-md);
	border-bottom: 1px solid var(--ae-color-border);
}

.ae-section--alt::before {
	background: var(--ae-pista);
}

/* Full-bleed pale mint behind a max-width section without breaking sticky. */
.ae-mint {
	background-color: var(--ae-mint);
}

.ae-section.ae-mint {
	position: relative;
}

.ae-section.ae-mint::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	background: var(--ae-mint);
	z-index: -1;
	pointer-events: none;
}

.ae-empty-note {
	background: #fff;
	border: 1px dashed var(--ae-color-border);
	border-radius: var(--ae-radius);
	padding: var(--ae-space-md);
	text-align: center;
	color: var(--ae-color-muted);
}

/* ---------- Home category product rails ----------
   One row per collection. The department is a muted suffix on the title,
   not its own heading, so the page does not split into Unstitched / Ready
   to Wear blocks. */
.ae-section__head--row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
}

.ae-section__head--row h2 {
	margin: 0;
}

.ae-section__in {
	margin-left: 0.45rem;
	font-family: var(--ae-font-body);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--ae-color-muted);
}

.ae-section__in::before {
	content: "·";
	margin-right: 0.4rem;
}

.ae-section__all {
	flex: none;
	padding-bottom: 0.2rem;
	font-size: 0.84rem;
	font-weight: 600;
	color: var(--ae-green-mid);
	text-decoration: none;
	white-space: nowrap;
}

.ae-section__all:hover {
	text-decoration: underline;
}

.ae-row {
	margin-inline: calc(-1 * var(--ae-space-md));
}

.ae-row__rail {
	display: flex;
	gap: 0.75rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 0 var(--ae-space-md) 0.35rem;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ae-row__rail::-webkit-scrollbar { display: none; }

.ae-row__card {
	flex: none;
	width: min(48vw, 230px);
	scroll-snap-align: start;
	text-decoration: none;
	color: inherit;
	text-align: left;
}

.ae-row__media {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--ae-radius);
	background: var(--ae-pista);
}

.ae-row__img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: top center;
	transition: transform 0.45s ease;
}

.ae-row__card:hover .ae-row__img {
	transform: scale(1.04);
}

.ae-row__quick {
	position: absolute;
	right: 0.55rem;
	bottom: 0.55rem;
	padding: 0.28rem 0.65rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--ae-green-deep);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.ae-row__card:hover .ae-row__quick {
	opacity: 1;
}

.ae-row__img--empty {
	background: linear-gradient(180deg, var(--ae-pista-soft), var(--ae-pista));
}

.ae-row__flags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	margin-top: 0.5rem;
}

.ae-row__flags:empty {
	display: none;
}

.ae-row__badge {
	display: inline-block;
	padding: 0.18rem 0.5rem;
	border-radius: 999px;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ae-row__badge--sale {
	background: var(--ae-green-deep);
	color: #fff;
}

.ae-row__badge--stock,
.ae-row__badge--oos {
	background: #f3eee8;
	color: #8a3d1c;
}

.ae-row__card--oos .ae-row__img {
	opacity: 0.72;
}

.ae-row__name {
	display: block;
	margin-top: 0.45rem;
	font-family: var(--ae-font-heading);
	font-size: 1rem;
	line-height: 1.25;
	color: var(--ae-green-deep);
}

.ae-row__brand {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ae-color-muted);
}

.ae-row__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem;
	margin-top: 0.3rem;
	font-size: 0.82rem;
	line-height: 1.3;
}

.ae-row__was {
	color: var(--ae-color-muted);
	text-decoration: line-through;
	font-weight: 400;
}

.ae-row__now {
	color: var(--ae-green-deep);
	font-weight: 700;
}

@media (max-width: 768px) {
	.ae-row__quick {
		opacity: 1;
	}
}

.ae-row__name--ghost,
.ae-row__price--ghost {
	height: 0.7rem;
	margin-top: 0.5rem;
	border-radius: 4px;
	background: var(--ae-pista);
}

.ae-row__price--ghost {
	width: 42%;
	height: 0.55rem;
	margin-top: 0.35rem;
}

.ae-row .ae-rail__dots { margin-top: 0.65rem; }

@media (min-width: 769px) {
	.ae-row {
		margin-inline: 0;
	}

	.ae-row__rail {
		padding-inline: 0;
		gap: 1rem;
	}

	.ae-row__card {
		width: 240px;
	}
}

/* ---------- The Edit: Customizer look tiles ----------
   Desktop grid. On phones `.ae-stack` pins each card under the header so the
   next one slides up over it. */
.ae-cat-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1rem;
}

.ae-cat-card {
	--ae-i: 0;
	display: block;
	text-decoration: none;
}

.ae-cat-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	border-radius: var(--ae-radius);
	background: var(--ae-pista) center / cover no-repeat;
	background-position: var(--ae-focus, center 25%);
	border: 1px solid var(--ae-color-border);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ae-cat-card:hover .ae-cat-card__media {
	transform: translateY(-5px);
	box-shadow: var(--ae-shadow);
}

.ae-cat-card__lotus {
	position: absolute;
	inset: 0;
	justify-content: center;
}

.ae-cat-card__overlay {
	position: absolute;
	inset: auto 0 0 0;
	display: grid;
	gap: 0.1rem;
	padding: 2.6rem 0.9rem 0.9rem;
	background: linear-gradient(to top, rgba(8, 38, 21, 0.85), rgba(8, 38, 21, 0));
}

.ae-cat-card__label {
	font-family: var(--ae-font-heading);
	font-size: 1.05rem;
	color: #fff;
	letter-spacing: 0.03em;
}

.ae-cat-card__cta {
	font-size: 0.76rem;
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: 0.04em;
	line-height: 1.35;
	/* Tiles are narrow in the 5-up grid; keep a long blurb from covering the photo. */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}

@media (max-width: 1024px) and (min-width: 769px) {
	.ae-cat-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Category circles ----------
   One flat grid of every collection, in department order. The department is
   a quiet caption under the label rather than a heading over a sub-grid: the
   client wanted the two levels readable, not segregated. */
.ae-circles {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1.4rem 0.8rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ae-circle {
	display: grid;
	justify-items: center;
	gap: 0.28rem;
	text-decoration: none;
	text-align: center;
}

.ae-circle__ring {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	max-width: 118px;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 50%;
	background: var(--ae-pista);
	border: 2px solid var(--ae-color-border);
	transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.ae-circle:hover .ae-circle__ring,
.ae-circle:focus-visible .ae-circle__ring {
	transform: translateY(-4px);
	border-color: var(--ae-green);
	box-shadow: var(--ae-shadow);
}

.ae-circle__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* The source photos are full-length shots; bias the crop to the garment. */
	object-position: var(--ae-focus, center 22%);
	transition: transform 0.4s ease;
}

.ae-circle:hover .ae-circle__img {
	transform: scale(1.07);
}

.ae-circle__lotus {
	color: var(--ae-green);
}

.ae-circle__label {
	font-family: var(--ae-font-heading);
	font-size: 0.95rem;
	color: var(--ae-green-deep);
	line-height: 1.25;
}

/* Department as a whisper, not a heading. Same colour as body muted text so
   Cotton sets and Non feeding maxis still sit in one grid. */
.ae-circle__parent {
	max-width: 7.5rem;
	font-size: 0.68rem;
	letter-spacing: 0.04em;
	color: var(--ae-color-muted);
	line-height: 1.2;
}

.ae-circle__count {
	font-size: 0.72rem;
	letter-spacing: 0.03em;
	color: var(--ae-color-muted);
}

.ae-circle--all .ae-circle__ring {
	border-style: dashed;
}

@media (max-width: 1024px) and (min-width: 769px) {
	.ae-circles { grid-template-columns: repeat(4, 1fr); }
}

/* ---------- Photo deck (shuffleable stack of looks) ---------- */
.ae-deck-section__inner {
	display: grid;
	justify-items: center;
	gap: 1rem;
	text-align: center;
}

.ae-deck-section__title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: clamp(1.35rem, 3vw, 1.9rem);
	margin: 0;
}

.ae-deck-section__eyebrow {
	display: block;
	font-size: 0.72rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ae-green);
	margin-bottom: 0.5rem;
}

.ae-deck-section__copy {
	max-width: 40rem;
}

.ae-deck-section__copy p {
	color: var(--ae-color-muted);
	margin: 0.5rem auto 0;
	max-width: 42ch;
}

.ae-deck-section__stage {
	display: grid;
	justify-items: center;
	gap: 1.1rem;
	width: 100%;
}

.ae-deck {
	position: relative;
	/* Degrees of fan per card behind the front one. */
	--ae-fan: 4deg;
	width: min(100%, 400px);
	aspect-ratio: 3 / 4;
	perspective: 600px;
	touch-action: pan-y;
}

.ae-deck__rotor {
	position: absolute;
	inset: 0;
	transform: translate3d(var(--ae-dx, 0), var(--ae-dy, 0), 0)
		rotateX(var(--ae-rx, 0deg)) rotateY(var(--ae-ry, 0deg));
	/* Overshoot easing stands in for the spring the React original uses. */
	transition: transform 0.45s cubic-bezier(0.22, 1.4, 0.4, 1);
	pointer-events: none;
}

.ae-deck__rotor.is-dragging {
	transition: none;
}

/* Only the front card takes input, so the fanned edges behind it are not
   accidental drag targets. */
.ae-deck__rotor.is-front {
	pointer-events: auto;
	cursor: grab;
}

.ae-deck__rotor.is-front.is-dragging {
	cursor: grabbing;
}

.ae-deck__card {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 1rem;
	background: var(--ae-pista);
	box-shadow: 0 14px 34px rgba(8, 38, 21, 0.18);
	transform-origin: 90% 90%;
	transform: rotate(calc(var(--ae-depth, 0) * var(--ae-fan, 4deg))) scale(var(--ae-scale, 1));
	transition: transform 0.45s cubic-bezier(0.22, 1.4, 0.4, 1);
}

.ae-deck__img,
.ae-deck__media {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ae-focus, center 25%);
	user-select: none;
	-webkit-user-drag: none;
	pointer-events: none;
}

.ae-deck__caption {
	position: absolute;
	inset: auto 0 0 0;
	padding: 2.4rem 1rem 1rem;
	font-family: var(--ae-font-heading);
	font-size: 1.05rem;
	color: #fff;
	letter-spacing: 0.03em;
	background: linear-gradient(to top, rgba(8, 38, 21, 0.85), rgba(8, 38, 21, 0));
	pointer-events: none;
}

.ae-deck__next {
	border: 1px solid var(--ae-color-border);
	background: #fff;
	color: var(--ae-green-deep);
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	padding: 0.55rem 1.2rem;
	border-radius: 999px;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.ae-deck__next:hover {
	border-color: var(--ae-green);
	color: var(--ae-green);
}

@media (prefers-reduced-motion: reduce) {
	.ae-deck__rotor,
	.ae-deck__card {
		transition-duration: 0.01ms;
	}
}

/* ---------- Brand promises ---------- */
.ae-promises {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.2rem;
	text-align: center;
}

.ae-promise {
	background: #fff;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	padding: 1.2rem 1rem;
	display: grid;
	gap: 0.3rem;
}

.ae-promise strong { color: var(--ae-green-deep); }
.ae-promise span { color: var(--ae-color-muted); font-size: 0.9rem; }

@media (max-width: 720px) {
	.ae-promises { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Scroll reveal ---------- */
.ae-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.ae-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.ae-reveal { opacity: 1; transform: none; transition: none; }
}

/* ---------- WooCommerce: product cards on pista, buttons in deep green ---------- */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin: 0 0 1.5rem !important;
	padding: 0;
	list-style: none;
	clear: both;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none !important;
	content: none !important;
}

.woocommerce ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
	display: flex;
	flex-direction: column;
	width: auto !important;
	max-width: none !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0;
	background: #fff;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: var(--ae-shadow);
}

.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	position: relative;
	text-decoration: none;
	color: inherit;
}

.woocommerce ul.products li.product img {
	display: block;
	width: 100%;
	margin: 0;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: top center;
	border-radius: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--ae-font-heading);
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.35;
	color: var(--ae-green-deep);
	margin: 0;
	padding: 0.65rem 0.75rem 0.35rem;
	text-align: center;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}

.woocommerce ul.products li.product .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0.2rem 0.45rem;
	margin: 0;
	padding: 0 0.75rem 0.65rem;
	font-family: var(--ae-font-body);
	font-size: 0.88rem;
	line-height: 1;
	color: var(--ae-color-text);
	text-align: center;
}

.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price ins {
	display: inline-flex;
	align-items: baseline;
	line-height: 1;
	vertical-align: baseline;
}

.woocommerce ul.products li.product .price del {
	opacity: 0.55;
	font-size: 0.82rem;
	text-decoration: line-through;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
	font-weight: 700;
	font-size: 0.88rem;
	color: var(--ae-green-deep);
}

.woocommerce ul.products li.product .price .woocommerce-Price-amount {
	display: inline-flex;
	align-items: baseline;
	line-height: 1;
}

.woocommerce ul.products li.product .price bdi {
	display: inline;
	line-height: 1;
	unicode-bidi: isolate;
}

.woocommerce ul.products li.product .price .woocommerce-Price-currencySymbol {
	display: inline;
	vertical-align: baseline;
	line-height: 1;
	font-size: 1em;
	font-weight: inherit;
}

.woocommerce ul.products li.product .price .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.woocommerce ul.products li.product .button {
	display: block;
	align-self: stretch;
	width: 100%;
	max-width: none;
	margin: auto 0 0;
	padding: 0.62rem 0.75rem;
	border: 0;
	border-top: 1px solid var(--ae-color-border);
	border-radius: 0;
	background: var(--ae-green-deep);
	color: #fff;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
	transition: background-color 0.22s ease;
}

.woocommerce ul.products li.product .button:hover {
	background: var(--ae-green-mid);
	color: #fff;
	transform: none;
}

/* Shop toolbar */
.ae-shop-page .storefront-sorting {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem 1rem;
	margin: 0 0 1rem;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--ae-color-border);
}

.ae-shop-page .woocommerce-ordering {
	float: none;
	margin: 0;
}

.ae-shop-page .woocommerce-ordering select.orderby {
	min-width: 10rem;
	border: 1px solid var(--ae-color-border);
	border-radius: 999px;
	padding: 0.48rem 2rem 0.48rem 0.9rem;
	background: #fff;
	color: var(--ae-color-text);
	font-size: 0.85rem;
	line-height: 1.3;
}

.ae-shop-page .woocommerce-result-count {
	float: none;
	margin: 0;
	font-size: 0.82rem;
	color: var(--ae-color-muted);
}

.ae-shop-page .woocommerce-pagination {
	margin: 1.25rem 0 0;
	text-align: center;
}

.ae-shop-page .woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0;
}

.ae-shop-page .woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	height: 2.25rem;
	padding: 0 0.55rem;
	border: 1px solid var(--ae-color-border);
	border-radius: 999px;
	background: #fff;
	color: var(--ae-green-deep);
	font-size: 0.85rem;
	font-weight: 600;
	text-decoration: none;
}

.ae-shop-page .woocommerce-pagination .page-numbers.current {
	background: var(--ae-green-deep);
	border-color: var(--ae-green-deep);
	color: #fff;
}

/* Bottom toolbar: keep pagination only */
.ae-shop-page ul.products ~ .storefront-sorting .woocommerce-ordering,
.ae-shop-page ul.products ~ .storefront-sorting .woocommerce-result-count {
	display: none;
}

.ae-shop-page .woocommerce-products-header {
	margin-bottom: 0.5rem;
	text-align: center;
}

.ae-shop-page .woocommerce-products-header__title {
	font-family: var(--ae-font-heading);
	font-size: 1.5rem;
	font-weight: 500;
	color: var(--ae-green-deep);
	margin: 0.35rem 0 0.15rem;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background-color: var(--ae-green-deep);
	color: #fff;
	border-radius: 999px;
	transition: background-color 0.25s ease, transform 0.25s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background-color: var(--ae-green-mid);
	color: #fff;
	transform: translateY(-1px);
}

.woocommerce span.onsale {
	background-color: var(--ae-green-mid);
	border-radius: 999px;
}

.woocommerce-info,
.woocommerce-message {
	border-top-color: var(--ae-green-deep);
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--ae-color-text);
}

.woocommerce ul.products li.product .price ins {
	color: var(--ae-green-deep);
	text-decoration: none;
	font-weight: 700;
}

/* ---------- About / brand story ---------- */
.ae-intro { max-width: 720px; text-align: center; }

.ae-intro__lotus {
	color: var(--ae-green-mid);
	margin-bottom: 0.4rem;
}

.ae-intro h2 {
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	margin-bottom: 1rem;
}

.ae-intro p {
	color: var(--ae-color-text);
	font-size: 1.05rem;
	line-height: 1.8;
	margin-bottom: 1rem;
}

.ae-intro__promise {
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep) !important;
	font-size: 1.05rem;
	font-style: italic;
}

.ae-intro__sign {
	color: var(--ae-color-text) !important;
	margin-top: 1.2rem;
}

.ae-intro__sign strong {
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: 1.15rem;
	letter-spacing: 0.06em;
}

/* ---------- Footer contact (Leheriya-style) ---------- */
.ae-footer-contact {
	max-width: 1180px;
	margin: 0 auto;
	padding: var(--ae-space-lg) var(--ae-space-md);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	border-top: 1px solid var(--ae-color-border);
}

.ae-footer-contact__col h3 {
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: 1.05rem;
	margin-bottom: 0.4rem;
}

/* ---------- Footer credit ---------- */
.site-info {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	text-align: center;
	font-size: 0.82rem;
	color: var(--ae-color-muted);
}

.ae-credit__by a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--ae-green-mid);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.ae-credit__by a:hover {
	color: var(--ae-green);
	border-bottom-color: currentColor;
}

.ae-credit__by svg {
	flex: none;
}

.ae-footer-contact__col p {
	color: var(--ae-color-muted);
	font-size: 0.9rem;
	line-height: 1.7;
	margin: 0;
}

.ae-footer-contact__col a {
	color: var(--ae-green-mid);
	text-decoration: none;
}

.ae-footer-contact__col a:hover {
	color: var(--ae-green-deep);
	text-decoration: underline;
}

@media (max-width: 720px) {
	.ae-footer-contact { grid-template-columns: 1fr; gap: 1rem; }
	.ae-trust { justify-content: flex-start; }
}

/* ----------
   PARKED: text category ribbon, replaced by the .ae-ticker photo loop.
   Restore with the markup in front-page.php.

.ae-ribbon {
	display: flex;
	justify-content: center;
	gap: 0.4rem;
	flex-wrap: nowrap;
	overflow-x: auto;
	background: var(--ae-green-deep);
	padding: 0.55rem 1rem;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ae-ribbon::-webkit-scrollbar { display: none; }

.ae-ribbon__item {
	display: inline-flex;
	align-items: center;
	color: #eaf6ee;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-decoration: none;
	white-space: nowrap;
	padding: 0.3rem 0.9rem;
	border-radius: 999px;
	transition: background-color 0.25s ease, color 0.25s ease;
}

.ae-ribbon__item:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
}

@media (min-width: 769px) {
	.ae-ribbon { display: none; }
}

   ---------- end parked ribbon ---------- */

/* ---------- Look ticker ----------
   Infinite photo loop, after React Bits LogoLoop. Two identical groups sit
   on one track; the animation shifts it by half so the seam never shows. */
.ae-ticker {
	/* Opens the page directly under the logo, so the spacing stays tight and
	   the photos are the first thing on screen. */
	padding: 0.85rem 0 0.15rem;
	overflow: hidden;
	background: var(--ae-cream);
	scroll-margin-top: 5rem;
}

.ae-ticker__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	max-width: 1180px;
	margin: 0 auto 0.7rem;
	padding: 0 var(--ae-space-md);
}

.ae-ticker__title {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: clamp(1.35rem, 3vw, 1.9rem);
	margin: 0;
}

.ae-ticker__lotus {
	color: var(--ae-green-mid);
	flex: none;
}

.ae-ticker__mask {
	overflow: hidden;
	mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
	-webkit-mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
}

.ae-ticker__track {
	display: flex;
	width: max-content;
	animation: ae-ticker 42s linear infinite;
	will-change: transform;
}

.ae-ticker__group {
	display: flex;
	gap: 0.75rem;
	padding-right: 0.75rem;
}

.ae-ticker.is-paused .ae-ticker__track,
.ae-ticker__mask:hover .ae-ticker__track {
	animation-play-state: paused;
}

.ae-ticker__card {
	position: relative;
	flex: none;
	width: min(38vw, 200px);
	aspect-ratio: 3 / 4;
	overflow: hidden;
	border-radius: var(--ae-radius);
	background: var(--ae-pista);
	pointer-events: none;
	box-shadow: 0 8px 22px rgba(8, 38, 21, 0.12);
}

.ae-ticker__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ae-focus, top center);
	display: block;
	transition: transform 0.5s ease;
}

.ae-ticker__card:hover .ae-ticker__img {
	transform: scale(1.06);
}

.ae-ticker__meta {
	position: absolute;
	inset: auto 0 0 0;
	display: grid;
	gap: 0.1rem;
	padding: 2rem 0.7rem 0.7rem;
	background: linear-gradient(to top, rgba(8, 38, 21, 0.82), rgba(8, 38, 21, 0));
	color: #fff;
	pointer-events: none;
}

.ae-ticker__label {
	font-family: var(--ae-font-heading);
	font-size: 0.88rem;
	letter-spacing: 0.03em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ae-ticker__price {
	font-size: 0.72rem;
	opacity: 0.9;
}

@keyframes ae-ticker {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (min-width: 769px) {
	.ae-ticker { padding: 1.15rem 0 0.25rem; }

	.ae-ticker__card {
		width: 220px;
	}

	.ae-ticker__group {
		gap: 1rem;
		padding-right: 1rem;
	}

	.ae-ticker__track {
		animation-duration: 48s;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ae-ticker__track { animation: none; }
	.ae-ticker__group + .ae-ticker__group { display: none; }
	.ae-ticker__mask {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
}

/* ---------- Offer band ---------- */
.ae-offer {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: linear-gradient(135deg, var(--ae-green-deep), var(--ae-green-mid));
	color: #fff;
	text-align: center;
	padding: var(--ae-space-lg) var(--ae-space-md);
}

.ae-offer__eyebrow {
	display: inline-block;
	font-size: 0.78rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	opacity: 0.85;
	margin-bottom: 0.5rem;
}

.ae-offer__title {
	font-family: var(--ae-font-heading);
	color: #fff;
	font-size: clamp(1.6rem, 4vw, 2.4rem);
	margin: 0 0 0.6rem;
}

.ae-offer__code {
	font-size: 1.02rem;
	margin-bottom: 1.4rem;
	opacity: 0.95;
}

.ae-offer__code strong {
	background: rgba(255, 255, 255, 0.16);
	border: 1px dashed rgba(255, 255, 255, 0.55);
	border-radius: 8px;
	padding: 0.2rem 0.8rem;
	letter-spacing: 0.12em;
	cursor: pointer;
}

/* ---------- Offer countdown ----------
   After React Bits <Counter />. Each column is a strip of 0–9; JS sets
   --ae-digit and the strip rolls to that row. */
.ae-counter {
	display: flex;
	justify-content: center;
	gap: 0.7rem;
	margin: 1.1rem 0 1.3rem;
}

.ae-counter__unit {
	display: grid;
	justify-items: center;
	gap: 0.35rem;
}

.ae-counter__pair {
	display: flex;
	gap: 4px;
	padding: 0.35rem 0.4rem;
	border-radius: 8px;
	background: rgba(8, 38, 21, 0.35);
}

.ae-counter__digit {
	position: relative;
	width: 1ch;
	height: 1em;
	overflow: hidden;
	font-family: var(--ae-font-heading);
	font-size: clamp(1.8rem, 6vw, 3.4rem);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	color: #fff;
}

.ae-counter__strip {
	display: flex;
	flex-direction: column;
	transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
	transform: translateY(calc(var(--ae-digit, 0) * -1em));
}

.ae-counter__num {
	height: 1em;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ae-counter__caption {
	font-size: 0.68rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.8;
}

@media (prefers-reduced-motion: reduce) {
	.ae-counter__strip { transition-duration: 0.01ms; }
}

.ae-btn--light {
	background: #fff;
	color: var(--ae-green-deep) !important;
}

.ae-btn--light:hover {
	background: var(--ae-pista);
	transform: translateY(-2px);
}

/* ---------- FAQ accordion ---------- */
.ae-faq { max-width: 760px; }

.ae-faq__item {
	background: #fff;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	margin-bottom: 0.8rem;
	overflow: hidden;
}

.ae-faq__item summary {
	cursor: pointer;
	padding: 1rem 1.2rem;
	font-weight: 600;
	color: var(--ae-color-text);
	list-style: none;
	position: relative;
	transition: color 0.2s ease;
}

.ae-faq__item summary::-webkit-details-marker { display: none; }

.ae-faq__item summary::after {
	content: "+";
	position: absolute;
	right: 1.2rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--ae-green-mid);
	font-size: 1.2rem;
	transition: transform 0.25s ease;
}

.ae-faq__item[open] summary { color: var(--ae-green-deep); }

.ae-faq__item[open] summary::after {
	content: "−";
}

.ae-faq__item p {
	padding: 0 1.2rem 1rem;
	margin: 0;
	color: var(--ae-color-muted);
	line-height: 1.6;
}

/* ---------- Scrolling brand strip ---------- */
.ae-marquee {
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: var(--ae-green-deep);
	border: none;
	padding: 0.6rem 0;
	user-select: none;
}

.ae-marquee__track {
	display: flex;
	align-items: center;
	gap: 1.4rem;
	width: max-content;
	animation: ae-marquee 26s linear infinite;
}

.ae-marquee__item {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
}

/* A plain dot rather than the lotus — the mark's detail is lost below ~16px. */
.ae-marquee__dot {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.45);
	flex: none;
}

/* The track holds two identical passes, so shifting by half loops seamlessly. */
@keyframes ae-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.ae-marquee__track { animation: none; }
}

/* ---------- Star ratings ---------- */
.ae-stars {
	display: inline-flex;
	gap: 1px;
	color: #d8e4da;
	line-height: 0;
}

.ae-stars__star.is-on { color: #e8b23a; }

/* ---------- Customer reviews ---------- */
.ae-reviews {
	position: relative;
	text-align: center;
}

.ae-reviews__head { margin-bottom: var(--ae-space-md); }

.ae-reviews__eyebrow {
	display: block;
	font-size: 0.72rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--ae-green-mid);
	margin-bottom: 0.4rem;
}

.ae-reviews__head h2 {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	margin: 0 0 0.6rem;
}

.ae-reviews__head h2::after {
	content: "";
	width: 2.4rem;
	height: 3px;
	background: var(--ae-green-deep);
	border-radius: 2px;
}

.ae-reviews__score {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--ae-color-border);
	border-radius: 999px;
	padding: 0.4rem 1rem;
}

.ae-reviews__score strong {
	font-family: var(--ae-font-heading);
	font-size: 1.3rem;
	color: var(--ae-green-deep);
	line-height: 1;
}

.ae-reviews__count {
	font-size: 0.82rem;
	color: var(--ae-color-muted);
}

.ae-reviews__rail {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	text-align: left;
}

.ae-review {
	background: #fff;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	padding: 1.2rem;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ae-review:hover {
	transform: translateY(-4px);
	box-shadow: var(--ae-shadow);
}

.ae-review__text {
	margin: 0;
	color: var(--ae-color-text);
	line-height: 1.65;
	font-size: 0.95rem;
}

.ae-review__meta {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-top: auto;
	padding-top: 0.6rem;
	border-top: 1px dashed var(--ae-color-border);
}

.ae-review__avatar {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	border-radius: 50%;
	background: var(--ae-pista);
	color: var(--ae-green-deep);
	font-family: var(--ae-font-heading);
	font-size: 1rem;
	text-transform: uppercase;
}

.ae-review__author {
	display: block;
	font-size: 0.88rem;
	color: var(--ae-color-text);
}

.ae-review__product {
	display: block;
	font-size: 0.78rem;
	color: var(--ae-color-muted);
	text-decoration: none;
}

a.ae-review__product:hover { color: var(--ae-green-mid); text-decoration: underline; }

/* Dot indicators for any swipeable rail; JS fills these in and hides them
   when everything already fits on screen. */
.ae-rail__dots {
	display: none;
	justify-content: center;
	gap: 0.4rem;
	margin-top: 1rem;
}

.ae-rail__dots.is-active { display: flex; }

.ae-rail__dot {
	position: relative;
	width: 7px;
	height: 7px;
	padding: 0;
	min-height: 0;
	border: none;
	border-radius: 50%;
	background: var(--ae-color-border);
	transition: width 0.25s ease, background-color 0.25s ease;
}

/* Keep the dot small but the tap area finger-sized. */
.ae-rail__dot::after {
	content: "";
	position: absolute;
	inset: -14px -8px;
}

.ae-rail__dot.is-on {
	width: 20px;
	border-radius: 999px;
	background: var(--ae-green-mid);
}

/* ---------- Social icons ---------- */
.ae-social {
	display: flex;
	gap: 0.5rem;
	list-style: none;
	margin: 0.8rem 0 0;
	padding: 0;
}

.ae-social li { margin: 0; }

.ae-social__link {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--ae-pista);
	color: var(--ae-green-deep);
	transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}

.ae-social__link:hover {
	transform: translateY(-3px);
	background: var(--ae-green-deep);
	color: #fff;
}

.ae-social__link--whatsapp:hover { background: #25d366; }

.ae-social--lg {
	justify-content: center;
	margin-top: 1.2rem;
}

.ae-social--lg .ae-social__link {
	width: 46px;
	height: 46px;
	background: #fff;
	border: 1px solid var(--ae-color-border);
}

/* ---------- Social / Instagram band ---------- */
.ae-social-band {
	background: var(--ae-cream);
	padding: var(--ae-space-lg) var(--ae-space-md);
	text-align: center;
}

.ae-social-band__inner {
	max-width: 1080px;
	margin: 0 auto;
}

.ae-social-band__eyebrow {
	display: block;
	font-size: 0.72rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--ae-green-mid);
	margin-bottom: 0.4rem;
}

.ae-social-band h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: clamp(1.35rem, 3vw, 1.9rem);
	margin: 0 0 1rem;
}

.ae-social-band h2 .ae-icon--instagram-color {
	flex: none;
	border-radius: 6px;
}

.ae-social-band p {
	color: var(--ae-color-muted);
	line-height: 1.7;
	max-width: 46rem;
	margin: 0 auto;
}

/* ---------- Masonry lookbook grid (parked) ----------
   Replaced by .ae-reels, a uniform 2-up grid sized for Instagram videos.
   masonry() in assets/js/main.js no-ops without [data-ae-masonry].

.ae-masonry {
	position: relative;
	width: 100%;
	margin: var(--ae-space-md) 0 0;
}

.ae-masonry__item {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	border-radius: 10px;
	overflow: hidden;
	text-decoration: none;
	opacity: 0;
	filter: blur(10px);
	will-change: transform, opacity, filter;
	transition: opacity 0.7s ease, filter 0.7s ease;
}

.ae-masonry__item.is-in {
	opacity: 1;
	filter: blur(0);
}

.ae-masonry__img {
	position: absolute;
	inset: 0;
	background: var(--ae-pista) center / cover no-repeat;
	border-radius: 10px;
	box-shadow: 0 10px 40px -12px rgba(8, 38, 21, 0.35);
	transition: transform 0.4s ease;
}

.ae-masonry__item:hover .ae-masonry__img,
.ae-masonry__item:focus-visible .ae-masonry__img {
	transform: scale(1.05);
}

.ae-masonry__label {
	position: absolute;
	inset: auto 0 0 0;
	padding: 1.8rem 0.75rem 0.7rem;
	background: linear-gradient(to top, rgba(8, 38, 21, 0.8), rgba(8, 38, 21, 0));
	color: #fff;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
	text-align: left;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	.ae-masonry__item {
		filter: none;
		transition-duration: 0.01ms;
	}
}

   ---------- end parked masonry ---------- */

/* ---------- Instagram reels grid ----------
   Two portrait tiles on a phone, three from tablet up. 9×16 matches Reels
   so a live video drops in without cropping the frame. */
.ae-reels {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.55rem;
	list-style: none;
	margin: var(--ae-space-md) 0 0;
	padding: 0;
}

.ae-reels__link {
	position: relative;
	display: block;
	aspect-ratio: 9 / 16;
	overflow: hidden;
	border-radius: 12px;
	background: var(--ae-pista);
	text-decoration: none;
}

.ae-reels__media {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 20%;
	display: block;
	transition: transform 0.4s ease;
}

.ae-reels__link:hover .ae-reels__media,
.ae-reels__link:focus-visible .ae-reels__media {
	transform: scale(1.04);
}

.ae-reels__label {
	position: absolute;
	inset: auto 0 0 0;
	padding: 1.8rem 0.7rem 0.65rem;
	background: linear-gradient(to top, rgba(8, 38, 21, 0.82), rgba(8, 38, 21, 0));
	color: #fff;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-align: left;
	pointer-events: none;
}

@media (min-width: 700px) {
	.ae-reels { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
}

.ae-social-band__cta {
	display: flex;
	justify-content: center;
	gap: 0.8rem;
	flex-wrap: wrap;
	margin-top: 1.2rem;
}

/* The light button needs an edge here — the band behind it is nearly white. */
.ae-social-band__cta .ae-btn--light {
	border: 1px solid var(--ae-green-deep);
}

.ae-btn--wa {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: #25d366;
	color: #08301a !important;
}

.ae-btn--wa:hover {
	background: #1fbe5a;
	transform: translateY(-2px);
}

/* ---------- Floating WhatsApp button ---------- */
:root { --ae-dock: 0px; }

.ae-wa {
	position: fixed;
	right: 1rem;
	bottom: calc(var(--ae-dock) + env(safe-area-inset-bottom) + 1rem);
	z-index: 999;
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	height: 56px;
	padding: 0 1rem;
	border-radius: 999px;
	background: #25d366;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 10px 26px rgba(11, 92, 48, 0.32);
	opacity: 0;
	transform: translateY(14px) scale(0.9);
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease, bottom 0.3s ease, background-color 0.25s ease;
}

.ae-wa.is-visible {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}

.ae-wa:hover { background: #1fbe5a; color: #fff; }

.ae-wa.is-visible:hover,
.ae-wa.is-visible:focus-visible {
	transform: scale(1.1);
}

.ae-wa__icon {
	display: grid;
	place-items: center;
	line-height: 0;
}

/* Collapsed to a circle by default; the label slides open on hover/focus. */
.ae-wa__label {
	max-width: 0;
	overflow: hidden;
	white-space: nowrap;
	font-size: 0.9rem;
	font-weight: 600;
	opacity: 0;
	transition: max-width 0.3s ease, opacity 0.3s ease;
}

.ae-wa:hover .ae-wa__label,
.ae-wa:focus-visible .ae-wa__label {
	max-width: 9rem;
	opacity: 1;
}

/* Soft outward pulse so the button is noticed without shouting. */
.ae-wa__pulse {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: #25d366;
	opacity: 0.55;
	animation: ae-wa-pulse 2.6s ease-out infinite;
	z-index: -1;
}

@keyframes ae-wa-pulse {
	0% { transform: scale(1); opacity: 0.5; }
	70% { transform: scale(1.45); opacity: 0; }
	100% { transform: scale(1.45); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.ae-wa__pulse { animation: none; }
	.ae-wa { transition: opacity 0.2s ease; }
}

/* ---------- Product badges ---------- */
.woocommerce span.onsale.ae-badge--sale {
	background: var(--ae-pista-soft);
	color: var(--ae-green-deep);
	border: 1px solid var(--ae-color-border);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	min-height: 0;
	min-width: 0;
	padding: 0.24rem 0.6rem;
	line-height: 1.25;
	box-shadow: none;
}

.woocommerce ul.products li.product .onsale {
	position: static;
	display: inline-block;
	align-self: center;
	width: auto;
	margin: 0 auto 0.4rem;
	padding: 0.24rem 0.65rem;
	z-index: 1;
}

.ae-badge--stock {
	position: absolute;
	top: 0.8rem;
	left: 0.8rem;
	z-index: 2;
	background: #fff;
	border: 1px solid var(--ae-color-border);
	border-radius: 999px;
	padding: 0.25rem 0.6rem;
	font-size: 0.7rem;
	font-weight: 700;
	color: #a4451f;
}

.woocommerce ul.products li.product { position: relative; }

/* ---------- Product page WhatsApp link ---------- */
.ae-product-wa {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0.4rem 0 1rem;
	padding: 0.7rem 1.1rem;
	border: 1px solid #25d366;
	border-radius: 999px;
	color: #12703c;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	transition: background-color 0.25s ease, color 0.25s ease;
}

.ae-product-wa:hover {
	background: #25d366;
	color: #fff;
}

/* ---------- Sticky buy bar (single product) ---------- */
.ae-buybar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: calc(var(--ae-dock) + env(safe-area-inset-bottom));
	z-index: 998;
	display: flex;
	align-items: center;
	gap: 0.8rem;
	padding: 0.6rem 1rem;
	background: rgba(253, 255, 253, 0.97);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--ae-color-border);
	box-shadow: 0 -6px 20px rgba(29, 92, 56, 0.1);
	transform: translateY(110%);
	transition: transform 0.3s ease;
}

.ae-buybar.is-visible { transform: none; }

.ae-buybar__info {
	display: grid;
	min-width: 0;
	flex: 1;
}

.ae-buybar__title {
	font-size: 0.85rem;
	color: var(--ae-color-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ae-buybar__price {
	font-weight: 700;
	color: var(--ae-green-deep);
}

.ae-buybar__price del { opacity: 0.6; font-weight: 400; }

.woocommerce .ae-buybar__btn,
.ae-buybar__btn {
	flex: 0 0 auto;
	border-radius: 999px;
	padding: 0.75rem 1.6rem;
	white-space: nowrap;
}

/* When the buy bar is showing, lift the WhatsApp bubble clear of it. */
body.ae-buybar-open .ae-wa {
	bottom: calc(var(--ae-dock) + env(safe-area-inset-bottom) + 5.2rem);
}

/* ==========================================================================
   Desktop header: keep the seven-item menu on one row and stop the branding
   block from eating a third of the viewport.
   ========================================================================== */
@media (min-width: 769px) {
	.site-header {
		padding-top: 0;
		padding-bottom: 0;
	}

	.woocommerce-active .site-header .site-branding,
	.site-header .site-branding {
		float: none;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 0;
	}

	.woocommerce-active .site-header .site-branding img.ae-brand__img,
	.site-header .ae-brand__img {
		width: 100%;
		max-width: none;
		height: 11rem;
	}

	.ae-nav__link {
		padding: 1.05rem 0.62rem;
		font-size: 0.92rem;
	}

}

@media (min-width: 769px) {
	.woocommerce-account .woocommerce-form-login,
	.woocommerce-account .woocommerce-form-register {
		max-width: 28rem;
	}

	/* Keep the last department's panel inside the viewport. */
	.ae-nav__item:nth-last-child(-n + 2) .ae-nav__panel {
		left: auto;
		right: 0;
	}
}

/* ==========================================================================
   Mobile-first refinements (80% of customers are on phones)
   ========================================================================== */
@media (max-width: 768px) {

	/* Compact header: smaller logo, tighter spacing */
	.ae-announce {
		font-size: 0.72rem;
		padding: 0.4rem 0.8rem;
		letter-spacing: 0.04em;
	}

	.site-header {
		padding-top: 0;
		padding-bottom: 0.5rem;
	}

	.site-header .col-full {
		margin-bottom: 0;
	}

	.site-header .site-branding {
		margin-bottom: 0;
		padding: 0;
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
	}

	.site-header {
		position: relative;
	}

	.storefront-primary-navigation {
		margin-bottom: 0;
	}

	/* Burger left, tools right; the links drop into a sheet below the bar. */
	.ae-nav__bar {
		justify-content: space-between;
		gap: 0;
		min-height: 3.25rem;
		padding: 0.2rem 0.85rem;
	}

	.ae-nav__burger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
	}

	.ae-nav__tools {
		gap: 0.1rem;
		margin-left: 0;
	}

	.ae-nav__tool {
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		justify-content: center;
		gap: 0;
	}

	.ae-nav__tool .ae-icon {
		display: block;
		flex: none;
	}

	.ae-nav__tool--cart {
		position: relative;
	}

	.ae-nav__cart-count {
		position: absolute;
		top: 0.15rem;
		right: 0.05rem;
		min-width: 0.95rem;
		padding: 0 0.18rem;
		font-size: 0.62rem;
		line-height: 1rem;
		pointer-events: none;
	}

	.ae-nav__menu {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 70;
		background: #fff;
		border-top: 1px solid var(--ae-color-border);
		box-shadow: 0 16px 28px -16px rgba(29, 92, 56, 0.25);
		max-height: 0;
		overflow: hidden auto;
		visibility: hidden;
		transition: max-height 0.28s ease, visibility 0.28s;
	}

	.ae-nav.is-open .ae-nav__menu {
		max-height: min(70vh, 32rem);
		visibility: visible;
	}

	.ae-nav__list {
		display: block;
	}

	.ae-nav__item {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		border-bottom: 1px solid #eef3ef;
	}

	.ae-nav__item:last-child {
		border-bottom: none;
	}

	.ae-nav__link {
		flex: 1 1 auto;
		padding: 0.95rem 1.2rem;
		font-size: 1rem;
	}

	.ae-nav__link::after {
		display: none;
	}

	.ae-nav__item.is-current > .ae-nav__link {
		background: #f7faf8;
		box-shadow: inset 3px 0 0 var(--ae-green-deep);
	}

	.ae-nav__disclosure {
		flex: none;
		padding: 1rem 1.2rem;
	}

	/* Accordion rather than an overlay: an overlay panel inside a sheet that
	   is itself clipped cannot escape its own scroll container. */
	.ae-nav__panel {
		position: static;
		flex: 0 0 100%;
		order: 3;
		padding: 0;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: var(--ae-pista-soft);
		max-height: 0;
		overflow: hidden;
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: max-height 0.28s ease;
	}

	.ae-nav__item:hover > .ae-nav__panel,
	.ae-nav__item:focus-within > .ae-nav__panel {
		max-height: 0;
	}

	.ae-nav__item.is-open > .ae-nav__panel {
		max-height: 30rem;
	}

	.ae-nav__sub {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 0.35rem 0.6rem 0.6rem;
	}

	.ae-nav__sublink {
		padding: 0.7rem 0.9rem;
	}

	.ae-nav__tool-label {
		display: none;
	}

	.ae-nav__search {
		padding: 0 0 0.75rem;
	}

	.ae-announce {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	/* Break New Arrivals and New Collections out of Storefront's padded
	   .col-full so the photos sit edge-to-edge on a phone. Headings and the
	   CTA keep their own side padding. */
	.ae-ticker,
	.ae-hero {
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}

	.ae-ticker {
		padding: 0.85rem 0 0.35rem;
	}

	.ae-ticker__mask {
		mask-image: none;
		-webkit-mask-image: none;
	}

	.ae-hero {
		padding: var(--ae-space-md) 0 var(--ae-space-lg);
		overflow: visible;
	}

	.ae-hero__title span {
		white-space: nowrap;
	}

	.ae-hero__intro { padding: 0 var(--ae-space-md); }

	.ae-hero__tagline {
		padding: 0 var(--ae-space-md);
	}

	.ae-hero__actions {
		padding: 0 var(--ae-space-md);
	}

	.ae-hero__trust { margin-top: 0.85rem; }

	.ae-hero__collection {
		margin-top: var(--ae-space-md);
		padding-top: var(--ae-space-sm);
	}

	.ae-hero__head {
		margin-bottom: 0.4rem;
		padding: 0 var(--ae-space-md);
	}

	/* `.ae-btn` goes full width below, so stack the pair instead of wrapping. */
	.ae-hero__actions {
		display: grid;
		gap: 0.4rem;
		justify-items: center;
	}

	.ae-hero__actions .ae-btn--primary {
		width: auto;
		max-width: none;
		display: inline-block;
		padding: 0.85rem 1.7rem;
	}

	/* Two full-width buttons compete and push the collection photos off the
	   first screen, so the secondary action drops to a quiet link here. */
	.ae-hero__actions .ae-btn--ghost {
		width: auto;
		padding: 0.6rem 0;
		background: none;
		box-shadow: none;
		font-size: 0.92rem;
		text-decoration: underline;
		text-underline-offset: 4px;
	}

	.ae-hero__actions .ae-btn--ghost:hover {
		background: none;
		transform: none;
	}

	/* Flatten the fan and break out of the content column so a 300px card
	   still fits on a 390px phone without shrinking below ~0.9. */
	.ae-depth {
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		--ae-depth-spread: 38;
		--ae-depth-z: 140;
		--ae-depth-tilt: 14;
		--ae-depth-visible: 2;
		--ae-depth-pad: 12;
		perspective: 1000px;
	}

	.ae-depth__arrow {
		width: 38px;
		height: 38px;
	}

	.ae-depth__arrow--prev { left: 4px; }
	.ae-depth__arrow--next { right: 4px; }

	/* Full-width, thumb-height CTA */
	.ae-btn {
		display: block;
		width: 100%;
		max-width: 420px;
		margin: 0 auto;
		text-align: center;
		padding: 1rem 1.5rem;
		font-size: 1rem;
	}

	/* Sections breathe less on small screens */
	.ae-section { padding: var(--ae-space-md) var(--ae-space-sm); }

	.ae-section__head {
		flex-wrap: wrap;
		padding: 0 0.25rem;
	}

	.ae-section__sub { font-size: 0.86rem; }

	/* The Edit: each card sticks under the header and the next slides up over
	   it, leaving a sliver of the card beneath visible. */
	.ae-stack {
		display: block;
		padding-bottom: 1.5rem;
	}

	.ae-stack .ae-cat-card {
		position: sticky;
		top: calc(var(--ae-stack-top) + var(--ae-i) * 0.55rem);
		z-index: calc(var(--ae-i) + 1);
		margin-bottom: 1rem;
	}

	.ae-stack .ae-cat-card:last-child { margin-bottom: 0; }

	.ae-stack .ae-cat-card__media {
		aspect-ratio: auto;
		height: min(70vh, 520px);
		box-shadow: 0 -10px 30px rgba(29, 92, 56, 0.16);
	}

	.ae-stack .ae-cat-card:hover .ae-cat-card__media { transform: none; }

	.ae-cat-card__overlay { padding: 3.5rem 1.1rem 1.2rem; }
	.ae-cat-card__label { font-size: 1.35rem; }
	.ae-cat-card__cta { font-size: 0.82rem; }

	/* Three circles per row keeps labels readable without truncating. */
	.ae-circles {
		grid-template-columns: repeat(3, 1fr);
		gap: 1.2rem 0.6rem;
	}

	.ae-circle__ring { max-width: 96px; }
	.ae-circle__label { font-size: 0.86rem; }
	.ae-circle__count { font-size: 0.68rem; }

	.ae-deck-section__inner {
		gap: 0.85rem;
	}

	/* Tighter fan so the deck still reads wide under the lookbook copy. */
	.ae-deck {
		--ae-fan: 2.6deg;
		width: min(88vw, 360px);
	}

	/* Product grid: 2 equal columns, aligned card footers */
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.75rem;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.82rem;
		padding: 0.55rem 0.65rem 0.3rem;
		min-height: 2.5em;
	}

	.woocommerce ul.products li.product .onsale {
		margin-bottom: 0.35rem;
		font-size: 0.62rem;
		padding: 0.22rem 0.55rem;
	}

	.woocommerce ul.products li.product .price {
		padding: 0 0.65rem 0.55rem;
		font-size: 0.82rem;
	}

	.woocommerce ul.products li.product .button {
		padding: 0.58rem 0.65rem;
		font-size: 0.76rem;
	}

	.ae-shop-page .content-area {
		padding-left: 0.85rem;
		padding-right: 0.85rem;
	}

	.ae-shop-page .storefront-sorting {
		flex-direction: column;
		align-items: stretch;
		gap: 0.5rem;
	}

	.ae-shop-page .woocommerce-ordering,
	.ae-shop-page .woocommerce-ordering select.orderby {
		width: 100%;
	}

	.ae-shop-page .woocommerce-result-count {
		text-align: center;
	}

	.ae-badge--stock {
		top: 0.5rem;
		left: 0.5rem;
	}

	.ae-row {
		margin-inline: calc(-1 * var(--ae-space-sm));
	}

	.ae-row__rail {
		padding-inline: var(--ae-space-sm);
	}

	.ae-ticker__head {
		padding: 0 var(--ae-space-sm);
	}

	.ae-offer { padding: var(--ae-space-md); }

	.ae-counter { gap: 0.45rem; }

	.ae-counter__pair { padding: 0.28rem 0.3rem; gap: 2px; }

	/* Promise cards: 2-up, tighter */
	.ae-promises { gap: 0.7rem; }
	.ae-promise { padding: 0.9rem 0.7rem; }
	.ae-promise strong { font-size: 0.9rem; }
	.ae-promise span { font-size: 0.78rem; }

	/* Reviews: swipe one card at a time, peeking the next */
	.ae-reviews__rail {
		display: flex;
		gap: 0.8rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding: 0 0.25rem 0.5rem;
		margin: 0 -0.25rem;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.ae-reviews__rail::-webkit-scrollbar { display: none; }

	/* Slightly under full width so the next card peeks and the row reads as swipeable. */
	.ae-review {
		flex: 0 0 86%;
		max-width: 330px;
		scroll-snap-align: center;
		padding: 1rem;
	}

	.ae-review:hover { transform: none; box-shadow: none; }

	.ae-social-band { padding: var(--ae-space-md) var(--ae-space-sm); }

	.ae-social-band__cta .ae-btn { width: 100%; }

	.ae-product-wa {
		display: flex;
		justify-content: center;
		width: 100%;
	}
}

/* Storefront pins its handheld footer bar below 768px — reserve room for the
   dock so the WhatsApp bubble and buy bar never sit on top of it. */
@media (max-width: 768px) {
	:root { --ae-dock: 5.6rem; }

	body {
		padding-bottom: calc(var(--ae-dock) + env(safe-area-inset-bottom));
	}

	/* Icon-only on a phone so the expanded "Chat with us" pill does not cover
	   the New Collections next-arrow. The aria-label still names the action. */
	.ae-wa {
		right: 0.8rem;
		width: 50px;
		height: 50px;
		padding: 0;
		justify-content: center;
	}

	.ae-wa__label {
		display: none;
	}

	.ae-buybar__btn { padding: 0.7rem 1.1rem; font-size: 0.9rem; }

	.storefront-handheld-footer-bar { display: none !important; }
}

/* ---------- Mobile dock ----------
   After React Bits <Dock />. A floating pill, not a full-width bar, so the
   page can still be seen around it. Magnification is pointer-driven in JS
   and skipped on coarse (touch) pointers. */
.ae-dock-outer {
	display: none;
}

@media (max-width: 768px) {
	.ae-dock-outer {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 1000;
		pointer-events: none;
		padding: 0 0.6rem calc(env(safe-area-inset-bottom) + 0.45rem);
	}
}

.ae-dock {
	pointer-events: auto;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 0.45rem;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto;
	padding: 0.4rem 0.5rem 0.45rem;
	border-radius: 1.1rem;
	background: rgba(253, 255, 253, 0.94);
	border: 1px solid var(--ae-color-border);
	box-shadow: 0 10px 32px rgba(8, 38, 21, 0.16);
	backdrop-filter: blur(12px);
}

.ae-dock__item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.15rem;
	width: 48px;
	height: 48px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 12px;
	background: var(--ae-pista-soft);
	color: var(--ae-green-deep);
	text-decoration: none;
	cursor: pointer;
	transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease;
}

.ae-dock__item:hover,
.ae-dock__item:focus-visible,
.ae-dock__item.is-current {
	background: var(--ae-pista);
	color: var(--ae-green-deep);
}

.ae-dock__icon {
	display: grid;
	place-items: center;
	line-height: 0;
}

.ae-dock__label {
	font-size: 0.58rem;
	letter-spacing: 0.02em;
	line-height: 1;
	color: var(--ae-color-muted);
}

.ae-dock__count {
	position: absolute;
	top: 4px;
	right: 4px;
	min-width: 1.05rem;
	height: 1.05rem;
	padding: 0 0.2rem;
	border-radius: 999px;
	background: var(--ae-green-deep);
	color: #fff;
	font-size: 0.62rem;
	font-weight: 700;
	line-height: 1.05rem;
	text-align: center;
}

.ae-dock__count.is-empty { display: none; }

.ae-dock-search {
	pointer-events: auto;
	margin: 0 auto 0.5rem;
	max-width: 420px;
	padding: 0.55rem;
	border-radius: 0.9rem;
	background: #fff;
	border: 1px solid var(--ae-color-border);
	box-shadow: 0 8px 24px rgba(8, 38, 21, 0.12);
}

.ae-dock-search__form {
	display: flex;
	gap: 0.4rem;
}

.ae-dock-search__form input[type="search"] {
	flex: 1;
	min-width: 0;
	margin: 0;
	border: 1px solid var(--ae-color-border);
	border-radius: 0.5rem;
	padding: 0.55rem 0.7rem;
}

.ae-dock-search__form button {
	flex: none;
	margin: 0;
	border-radius: 0.5rem;
	background: var(--ae-green-deep);
	color: #fff;
	padding: 0.55rem 0.9rem;
}

/* Storefront handheld footer bar: kept as a CSS fallback if the unhook fails. */
.storefront-handheld-footer-bar {
	background: var(--ae-cream);
	border-top: 1px solid var(--ae-color-border);
	box-shadow: 0 -4px 16px rgba(29, 92, 56, 0.08);
	padding-bottom: env(safe-area-inset-bottom);
}

.storefront-handheld-footer-bar ul li > a {
	color: var(--ae-green-deep);
}

.storefront-handheld-footer-bar ul li.cart .count {
	background: var(--ae-green-deep);
	color: #fff;
}

/* Comfortable tap targets and no accidental zoom on inputs */
button,
.button,
input[type="submit"] {
	min-height: 44px;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
select,
textarea {
	font-size: 16px;
}

html {
	-webkit-tap-highlight-color: transparent;
	scroll-behavior: smooth;
}

/* Storefront header/link accents */
.site-title a,
.storefront-handheld-footer-bar a:not(.button) {
	color: var(--ae-green-deep);
}

a { color: var(--ae-green-mid); }

/* ---------- Phone / WhatsApp login ---------- */
.ae-phone-login {
	background: var(--ae-pista-soft);
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	padding: 1.4rem 1.3rem 1.5rem;
	margin: 0 0 1.6rem;
}

.ae-phone-login h2 {
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: 1.35rem;
	margin: 0 0 0.4rem;
}

.ae-phone-login__lead {
	color: var(--ae-color-muted);
	margin: 0 0 1rem;
}

.ae-phone-login__field {
	display: grid;
	gap: 0.35rem;
	margin-bottom: 0.85rem;
	font-weight: 600;
	color: var(--ae-green-deep);
}

.ae-phone-login__field input {
	width: 100%;
	border: 1px solid var(--ae-color-border);
	border-radius: 10px;
	padding: 0.75rem 0.9rem;
	background: #fff;
}

.ae-phone-login .ae-btn {
	width: 100%;
	max-width: 22rem;
	text-align: center;
}

.ae-phone-login [hidden] {
	display: none !important;
}

.ae-phone-login__status {
	min-height: 1.2em;
	margin: 0 0 0.8rem;
	font-size: 0.92rem;
}

.ae-phone-login__status.is-error { color: #9b2c2c; }
.ae-phone-login__status.is-ok { color: var(--ae-green-deep); }

.ae-phone-login__field--optional span {
	font-weight: 500;
	color: var(--ae-color-muted);
}

.ae-phone-login__fallback {
	margin-top: 1.2rem;
	font-size: 0.9rem;
	color: var(--ae-color-muted);
}

.ae-phone-login__fallback summary {
	cursor: pointer;
	color: var(--ae-green-mid);
}

.ae-phone-login__fallback-slot {
	margin-top: 1rem;
}

/* ---------- Cart / account / checkout ----------
   Same tokens as the home page: Georgia titles, mint cards, pill buttons.
   Sidebar and breadcrumbs are already unhooked; these rules restyle the
   WooCommerce blocks and classic forms so they do not look like a blog. */
.ae-shop-page #secondary,
.woocommerce-cart #secondary,
.woocommerce-account #secondary,
.woocommerce-checkout #secondary {
	display: none;
}

.ae-shop-page .storefront-breadcrumb,
.woocommerce-cart .storefront-breadcrumb,
.woocommerce-account .storefront-breadcrumb,
.woocommerce-checkout .storefront-breadcrumb {
	display: none;
}

.ae-shop-page .content-area,
.woocommerce-cart .content-area,
.woocommerce-account .content-area,
.woocommerce-checkout .content-area {
	width: 100%;
	max-width: 68rem;
	margin: 0 auto;
	float: none;
	padding-bottom: 2.5rem;
}

.woocommerce-cart .site-main,
.woocommerce-account .site-main,
.woocommerce-checkout .site-main {
	padding-top: 0.4rem;
}

.woocommerce-cart .entry-header,
.woocommerce-account .entry-header,
.woocommerce-checkout .entry-header {
	display: grid;
	justify-items: center;
	width: 100%;
	float: none;
	margin: 0.4rem 0 1.6rem;
	padding: 0;
	border: 0;
	text-align: center;
}

.woocommerce-cart .hentry,
.woocommerce-account .hentry,
.woocommerce-checkout .hentry {
	float: none;
	width: 100%;
	margin: 0;
}

.woocommerce-cart .entry-title,
.woocommerce-account .entry-title,
.woocommerce-checkout .entry-title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	margin: 0;
	font-family: var(--ae-font-heading);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--ae-green-deep);
}

/* Empty cart */
.cart-empty.woocommerce-info {
	background: none;
	border: 0;
	padding: 0.4rem 0 1rem;
	color: var(--ae-color-muted);
	box-shadow: none;
}

.wc-empty-cart-message {
	text-align: center;
}

.wc-empty-cart-message::before,
.wc-empty-cart-message::after,
.cart-empty::before,
.with-empty-cart-icon::before,
.with-empty-cart-icon::after {
	display: none !important;
}

.wp-block-woocommerce-empty-cart-block {
	display: block;
	padding: 0;
	margin: 0;
	background: none;
	border: 0;
	border-radius: 0;
	overflow: visible;
}

/* Mint card — only the empty-bag message + CTA, not "New in store" below */
.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block > h2.wc-block-cart__empty-cart__title {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 1.75rem 1.2rem 0.35rem;
	margin: 0;
	background: var(--ae-pista-soft);
	border: 1px solid var(--ae-color-border);
	border-bottom: 0;
	border-radius: var(--ae-radius) var(--ae-radius) 0 0;
	font-family: var(--ae-font-heading);
	font-size: 1.35rem;
	font-weight: 500;
	color: var(--ae-green-deep);
}

.ae-empty-shop {
	margin: 0 0 1.5rem;
	padding: 0.35rem 1.2rem 1.5rem;
	background: var(--ae-pista-soft);
	border: 1px solid var(--ae-color-border);
	border-top: 0;
	border-radius: 0 0 var(--ae-radius) var(--ae-radius);
	text-align: center;
}

.ae-empty-shop a,
.ae-empty-shop .ae-btn {
	display: inline-block;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0.65rem 1.35rem;
	text-decoration: none !important;
	color: #fff !important;
	font-size: 0.9rem;
}

.wp-block-woocommerce-empty-cart-block > .wp-block-separator,
.wp-block-woocommerce-empty-cart-block hr {
	display: none;
}

.wp-block-woocommerce-empty-cart-block > p:not(:has(a)):not(.ae-empty-shop) {
	display: none;
}

/* Only the empty-cart CTA and the classic return-to-shop link should look like
   a pill button. Scope tightly: the empty-cart block also contains the "New in
   store" product grid, whose links must NOT inherit the button styling. */
.wp-block-woocommerce-empty-cart-block .ae-empty-shop a,
.wp-block-woocommerce-empty-cart-block a.wc-block-cart__browse-store-button,
.return-to-shop .button {
	display: inline-block;
	padding: 0.75rem 1.6rem;
	border: 0;
	border-radius: 999px;
	background: var(--ae-green-deep);
	color: #fff !important;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-decoration: none;
	box-shadow: var(--ae-shadow);
}

.wp-block-woocommerce-empty-cart-block .ae-empty-shop a:hover,
.wp-block-woocommerce-empty-cart-block a.wc-block-cart__browse-store-button:hover,
.return-to-shop .button:hover {
	background: var(--ae-green-mid);
}

.return-to-shop {
	text-align: center;
	margin: 0 0 2rem;
}

.woocommerce-cart h2.wp-block-heading:not(.wc-block-cart__empty-cart__title),
.woocommerce-cart .wp-block-heading:not(.wc-block-cart__empty-cart__title) {
	font-family: var(--ae-font-heading);
	font-size: 1.35rem;
	font-weight: 500;
	color: var(--ae-green-deep);
	text-align: center;
	margin: 0 0 1rem;
	background: none;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-product-new,
.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new {
	margin: 0 0 1.5rem;
	padding: 0;
	background: none;
}

.woocommerce-cart .wc-block-grid__products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
	row-gap: 0.9rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	width: 100%;
}

/* WooCommerce's has-*-columns rules force each product to width:25% and float
   left; inside our grid that shrinks the card to a sliver in a 4x-too-tall
   cell. Neutralise them so each product fills exactly one grid cell. */
.woocommerce-cart .wc-block-grid__product,
.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__product,
.woocommerce-cart .wc-block-grid.has-3-columns .wc-block-grid__product,
.woocommerce-cart .wc-block-grid.has-2-columns .wc-block-grid__product {
	width: auto !important;
	max-width: none !important;
	flex: none !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0 0 0.9rem !important;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	overflow: hidden;
	background: #fff;
	text-align: center;
	font-size: 0.875em;
}

.woocommerce-cart .wc-block-grid__product-link {
	display: block;
	text-decoration: none;
}

.woocommerce-cart .wc-block-grid__product-image {
	display: block;
	width: 100%;
	margin: 0 0 0.55rem;
}

.woocommerce-cart .wc-block-grid__product-image img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: top center;
	border-radius: 0;
}

.woocommerce-cart .wc-block-grid__product-onsale {
	position: absolute;
	top: 0.6rem;
	left: 0.6rem;
	right: auto;
	bottom: auto;
	z-index: 1;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0.15rem 0.6rem;
	border: 0;
	border-radius: 999px;
	background: var(--ae-green-deep);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.4;
}

.woocommerce-cart .wc-block-grid__product-title {
	font-family: var(--ae-font-heading);
	font-size: 0.95rem;
	color: var(--ae-green-deep);
	padding: 0 0.6rem 0.2rem;
	margin: 0;
}

.woocommerce-cart .wc-block-grid__product-price {
	display: block;
	padding: 0 0.6rem;
	margin: 0 0 0.55rem;
	color: var(--ae-color-text);
	font-size: 0.88rem;
}

.woocommerce-cart .wc-block-grid__product-price .wc-block-grid__product-price__regular {
	color: var(--ae-color-muted);
	margin-right: 0.35rem;
}

.woocommerce-cart .wc-block-grid__product-add-to-cart {
	padding: 0 0.6rem 0.15rem;
}

.woocommerce-cart .wc-block-grid__product-add-to-cart.wp-block-button {
	display: inline-block;
	width: auto;
}

.woocommerce-cart .wc-block-grid__product-add-to-cart a,
.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link {
	display: inline-block;
	width: auto;
	max-width: none;
	border: 0;
	border-radius: 999px;
	background: var(--ae-green-deep);
	color: #fff;
	padding: 0.45rem 1rem;
	font-size: 0.82rem;
	font-weight: 600;
	text-decoration: none;
}

@media (max-width: 768px) {
	.woocommerce-cart .wc-block-grid__products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.85rem !important;
		row-gap: 0.85rem !important;
	}

	.woocommerce-cart .wc-block-grid__product,
	.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__product {
		padding: 0 0 0.85rem !important;
	}

	.woocommerce-cart .wc-block-grid__product-title {
		padding: 0.4rem 0.75rem 0.25rem;
	}

	.woocommerce-cart .wc-block-grid__product-price {
		padding: 0 0.75rem;
		margin-bottom: 0.55rem;
	}

	.woocommerce-cart .wc-block-grid__product-add-to-cart {
		padding: 0 0.75rem 0.15rem;
	}

	.woocommerce-cart .wc-block-grid__product-add-to-cart.wp-block-button {
		width: auto !important;
	}

	.woocommerce-cart .wc-block-grid__product-add-to-cart a,
	.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link {
		display: inline-block !important;
		width: auto !important;
		max-width: none !important;
		padding: 0.45rem 0.9rem;
		font-size: 0.78rem;
	}

	.ae-empty-shop .ae-btn,
	.ae-empty-shop a {
		display: inline-block !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
	}
}

.woocommerce-cart ul.products li.product,
.woocommerce-cart li.wc-block-product {
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	overflow: hidden;
	background: #fff;
	padding-bottom: 0.8rem;
}

.woocommerce-cart ul.products li.product .woocommerce-loop-product__title,
.woocommerce-cart li.wc-block-product .wp-block-post-title {
	font-family: var(--ae-font-heading);
	font-size: 0.98rem;
	color: var(--ae-green-deep);
}

/* Filled cart (blocks) */
.wc-block-cart {
	margin-top: 0.4rem;
}

.wc-block-cart-items,
.wc-block-cart .wc-block-cart__main,
.wp-block-woocommerce-cart-items-block {
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	background: #fff;
	overflow: hidden;
}

.wc-block-cart-item__product-metadata,
.wc-block-components-product-metadata {
	display: none;
}

.wc-block-components-sidebar,
.wp-block-woocommerce-cart-order-summary-block,
.cart_totals {
	padding: 1.2rem 1.3rem 1.4rem;
	background: var(--ae-pista-soft);
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
}

.wc-block-components-totals-wrapper,
.cart_totals h2 {
	font-family: var(--ae-font-heading);
	color: var(--ae-green-deep);
	font-size: 1.15rem;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.woocommerce-cart .checkout-button,
.woocommerce-checkout #place_order {
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--ae-green-deep) !important;
	color: #fff !important;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-decoration: none !important;
	box-shadow: var(--ae-shadow);
}

.wc-block-cart__submit-button:hover,
.woocommerce-cart .checkout-button:hover,
.woocommerce-checkout #place_order:hover {
	background: var(--ae-green-mid) !important;
}

.woocommerce-cart .coupon p,
.woocommerce-cart .coupon label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

.woocommerce-cart table.shop_table {
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	overflow: hidden;
}

.woocommerce-cart table.shop_table th {
	background: var(--ae-pista-soft);
	color: var(--ae-green-deep);
	font-family: var(--ae-font-heading);
	font-weight: 500;
}

/* Filled cart — product rows */
.hentry .entry-content .wc-block-components-product-name,
.hentry .entry-content .wc-block-components-product-name:hover {
	text-decoration: none;
	color: var(--ae-green-deep);
	font-family: var(--ae-font-heading);
	font-weight: 500;
}

.wc-block-components-product-price {
	color: var(--ae-color-text);
	font-size: 0.92rem;
}

.wc-block-components-product-price__regular {
	color: var(--ae-color-muted);
}

.wc-block-components-product-price__value.is-discounted {
	color: var(--ae-green-deep);
	font-weight: 600;
}

.wc-block-components-sale-badge,
.wc-block-components-product-badge.wc-block-components-sale-badge {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: var(--ae-pista-soft);
	border: 1px solid var(--ae-color-border);
	color: var(--ae-green-deep);
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1.35;
}

.wc-block-cart-item__quantity {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 0.65rem;
}

.wc-block-components-quantity-selector {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--ae-color-border);
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}

.wc-block-components-quantity-selector__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	height: 2.25rem;
	border: 0;
	background: var(--ae-pista-soft);
	color: var(--ae-green-deep);
	font-size: 1rem;
	cursor: pointer;
}

.wc-block-components-quantity-selector__input {
	width: 2.5rem;
	min-height: 2.25rem;
	border: 0;
	border-left: 1px solid var(--ae-color-border);
	border-right: 1px solid var(--ae-color-border);
	background: #fff;
	text-align: center;
	font-weight: 600;
	color: var(--ae-color-text);
	-moz-appearance: textfield;
}

.wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
.wc-block-components-quantity-selector__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.wc-block-cart-item__remove-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--ae-color-muted);
	cursor: pointer;
}

.wc-block-cart-item__remove-link:hover,
.wc-block-cart-item__remove-link:focus-visible {
	background: var(--ae-pista-soft);
	color: var(--ae-green-deep);
}

.wc-block-cart__submit-container,
.wp-block-woocommerce-proceed-to-checkout-block {
	text-align: center;
}

.wc-block-cart__submit-button {
	display: inline-block;
	width: auto;
	max-width: 100%;
	padding: 0.62rem 1.35rem !important;
	text-align: center;
	font-size: 0.9rem;
	min-height: 0;
}

.wc-block-components-checkout-place-order-button {
	display: block;
	width: 100%;
	padding: 0.62rem 1.1rem !important;
	text-align: center;
	font-size: 0.9rem;
	min-height: 0;
}

.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar-layout .wc-block-components-sidebar {
	width: 100%;
}

/* Account + login */
.woocommerce-account .woocommerce {
	max-width: 44rem;
	margin: 0 auto;
}

.woocommerce-account.logged-in .woocommerce {
	max-width: 56rem;
}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account .u-columns {
	background: var(--ae-pista-soft);
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	padding: 1.4rem 1.35rem 1.6rem;
}

/* Login-only page (registration off): keep the card and its heading on one
   centred column so they line up instead of a full-width title over a narrow,
   left-hugging card. */
.woocommerce-account:not(.logged-in) .woocommerce {
	max-width: 26rem;
}

.woocommerce-account:not(.logged-in) #customer_login.u-columns {
	max-width: none;
}

.woocommerce-account .woocommerce > h2,
.woocommerce-account .woocommerce-form-login h2 {
	text-align: center;
}

.woocommerce-account .woocommerce-form-login .button {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.woocommerce-account .woocommerce-form-login .lost_password {
	text-align: center;
	margin-bottom: 0;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme {
	justify-content: center;
}

.woocommerce-account .woocommerce-form-login h2,
.woocommerce-account .woocommerce-form-register h2,
.woocommerce-account #customer_login h2,
.woocommerce-account .woocommerce > h2,
.woocommerce-account .u-column1 > h2,
.woocommerce-account .u-column2 > h2 {
	font-family: var(--ae-font-heading);
	font-size: 1.3rem;
	font-weight: 500;
	color: var(--ae-green-deep) !important;
	margin: 0 0 1rem;
}

.woocommerce-account .woocommerce-form-login input.input-text,
.woocommerce-account .woocommerce-form-register input.input-text,
.woocommerce-account .woocommerce-EditAccountForm input.input-text,
.woocommerce-account .woocommerce-address-fields input.input-text,
.woocommerce-checkout input.input-text,
.woocommerce-checkout select {
	border: 1px solid var(--ae-color-border);
	border-radius: 10px;
	padding: 0.75rem 0.9rem;
	background: #fff;
	box-shadow: none;
}

/* Password visibility toggle — Storefront paints the button grey and pins it
   to the top-right corner of the field. Keep the icon inside the input. */
.woocommerce .password-input {
	position: relative;
	display: block;
	width: 100%;
}

.woocommerce .password-input input.input-text,
.woocommerce .password-input input[type="password"],
.woocommerce .password-input input[type="text"] {
	width: 100%;
	padding-right: 2.75rem;
	box-sizing: border-box;
}

.woocommerce button.show-password-input {
	position: absolute;
	top: 50%;
	right: 0.55rem;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 999px;
	background: transparent !important;
	color: var(--ae-color-muted);
	box-shadow: none;
	line-height: 1;
	cursor: pointer;
}

.woocommerce button.show-password-input:hover,
.woocommerce button.show-password-input:focus {
	background: var(--ae-pista-soft) !important;
	color: var(--ae-green-deep);
	outline: none;
}

.woocommerce button.show-password-input::after {
	color: inherit;
	font-size: 1rem;
	line-height: 1;
}

.woocommerce button.show-password-input.display-password::after {
	color: var(--ae-green-deep);
	opacity: 0.9;
}

.woocommerce-account .woocommerce-form-login .button,
.woocommerce-account .woocommerce-form-register .button,
.woocommerce-account .woocommerce-EditAccountForm .button,
.woocommerce-account .woocommerce-address-fields .button {
	width: 100%;
	max-width: 22rem;
	border: 0;
	border-radius: 999px;
	background: var(--ae-green-deep);
	color: #fff;
	padding: 0.8rem 1.4rem;
	font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: 100%;
	margin: 0 0 1.5rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	margin: 0;
	border: 0;
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.5rem 1rem;
	border: 1px solid var(--ae-color-border);
	border-radius: 999px;
	background: #fff;
	color: var(--ae-green-deep);
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: none;
}

.ae-account-nav__icon {
	display: inline-flex;
	flex: none;
	line-height: 0;
}

.ae-account-nav__icon .ae-icon {
	display: block;
}

/* Storefront draws a Font Awesome icon before every account link. On our pill
   nav that icon sits on top of the label on phones, so drop it everywhere. */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
	display: none !important;
	content: none !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--ae-green-deep);
	border-color: var(--ae-green-deep);
	color: #fff;
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
}

/* Account notices (Orders email confirm, empty orders, etc.) */
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-error {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.65rem;
	margin: 0 0 0.85rem;
	padding: 0.85rem 1rem;
	background: var(--ae-pista-soft);
	border: 1px solid var(--ae-color-border);
	border-left: 4px solid var(--ae-green-deep);
	border-radius: var(--ae-radius);
	color: var(--ae-color-text);
	clear: both;
	list-style: none;
	font-size: 0.9rem;
	line-height: 1.45;
}

.woocommerce-account .woocommerce-info::before,
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-error::before {
	display: none !important;
	content: none !important;
}

.woocommerce-account .woocommerce-info .button,
.woocommerce-account .woocommerce-info a.button,
.woocommerce-account .woocommerce-info .woocommerce-Button,
.woocommerce-account .woocommerce-message .button,
.woocommerce-account .woocommerce-message a.button,
.woocommerce-account .woocommerce-error .button,
.woocommerce-account .woocommerce-error a.button {
	float: none;
	display: inline-block !important;
	align-self: flex-start;
	width: auto !important;
	max-width: none !important;
	margin: 0;
	padding: 0.45rem 0.95rem;
	border: 0 !important;
	border-left: 0 !important;
	border-radius: 999px;
	background: var(--ae-green-deep) !important;
	color: #fff !important;
	font-size: 0.82rem;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
	box-shadow: none;
	opacity: 1;
	line-height: 1.35;
	box-sizing: border-box;
	white-space: nowrap;
}

.woocommerce-account .woocommerce-info .button:hover,
.woocommerce-account .woocommerce-message .button:hover,
.woocommerce-account .woocommerce-error .button:hover {
	background: var(--ae-green-mid) !important;
	color: #fff !important;
	opacity: 1;
}

/* Dashboard: the shortcut cards double as navigation, so hide the duplicate
   pill nav and the admin-only "Edit" post link to keep the page uncluttered.
   Sub-pages (Orders, Addresses, …) keep the pill nav for switching. */
.ae-account-dashboard .woocommerce-MyAccount-navigation {
	display: none;
}

/* Sub-pages already highlight the active pill — drop the duplicate h1. */
.woocommerce-account:not(.ae-account-dashboard) .entry-header {
	display: none;
}

.woocommerce-account .post-edit-link,
.woocommerce-account .entry-footer,
.ae-shop-page .post-edit-link {
	display: none;
}

.ae-account-hello {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	margin: 0.4rem 0 1.4rem;
	font-family: var(--ae-font-heading);
	font-size: 1.5rem;
	color: var(--ae-green-deep);
}

.ae-account-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.85rem;
	margin: 0 0 1.5rem;
}

/* Storefront underlines every .entry-content link; these cards are tappable
   rows, not text links, so strip decoration from the whole card tree. */
.hentry .entry-content .ae-account-card,
.hentry .entry-content .ae-account-card:hover,
.hentry .entry-content .ae-account-card:focus-visible,
.hentry .entry-content .ae-account-card strong,
.hentry .entry-content .ae-account-card span,
.hentry .entry-content .ae-account-out a,
.hentry .entry-content .ae-account-out a:hover {
	text-decoration: none;
}

.ae-account-card {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 0.85rem;
	padding: 1rem 1rem 1rem 1.05rem;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease, background-color 0.22s ease;
}

.ae-account-card:hover,
.ae-account-card:focus-visible {
	border-color: var(--ae-green-mid);
	background: var(--ae-pista-soft);
	transform: translateY(-2px);
	box-shadow: var(--ae-shadow);
}

.ae-account-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	background: var(--ae-pista-soft);
	color: var(--ae-green-deep);
	line-height: 0;
}

.ae-account-card:hover .ae-account-card__icon,
.ae-account-card:focus-visible .ae-account-card__icon {
	background: #fff;
}

.ae-account-card__body {
	display: grid;
	gap: 0.12rem;
	min-width: 0;
	text-align: left;
}

.ae-account-card__body strong {
	font-family: var(--ae-font-heading);
	font-size: 1.05rem;
	font-weight: 500;
	color: var(--ae-green-deep);
}

.ae-account-card__body span {
	font-size: 0.8rem;
	color: var(--ae-color-muted);
	line-height: 1.35;
}

.ae-account-card__chev {
	display: inline-flex;
	flex: none;
	color: var(--ae-color-muted);
	line-height: 0;
	transform: rotate(-90deg);
	transition: transform 0.2s ease, color 0.2s ease;
}

.ae-account-card:hover .ae-account-card__chev,
.ae-account-card:focus-visible .ae-account-card__chev {
	color: var(--ae-green-deep);
	transform: rotate(-90deg) translateX(2px);
}

.ae-account-out {
	margin: 0;
	text-align: center;
	font-size: 0.88rem;
}

.ae-account-out a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.45rem 0.75rem;
	border-radius: 999px;
	color: var(--ae-color-muted);
	transition: color 0.2s ease, background-color 0.2s ease;
}

.ae-account-out a:hover,
.ae-account-out a:focus-visible {
	color: var(--ae-green-deep);
	background: var(--ae-pista-soft);
}

/* Sub-pages: forms and address blocks in the same mint card language. */
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-address-fields,
.woocommerce-account .u-columns.col2-set .u-column1,
.woocommerce-account .u-columns.col2-set .u-column2 {
	padding: 1.2rem 1.15rem 1.35rem;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	background: #fff;
}

.woocommerce-account .woocommerce-EditAccountForm fieldset,
.woocommerce-account .woocommerce-address-fields {
	margin: 0;
	padding: 0;
	border: 0;
}

.woocommerce-account .woocommerce-EditAccountForm legend,
.woocommerce-account .woocommerce-address-fields h3 {
	font-family: var(--ae-font-heading);
	font-size: 1.05rem;
	font-weight: 500;
	color: var(--ae-green-deep);
	margin: 0 0 0.85rem;
	padding: 0;
}

.hentry .entry-content .woocommerce-MyAccount-content > p a:not(.button) {
	text-decoration: none;
	border-bottom: 1px solid var(--ae-color-border);
}

.hentry .entry-content .woocommerce-MyAccount-content > p a:not(.button):hover {
	border-bottom-color: var(--ae-green-deep);
	color: var(--ae-green-deep);
}

.woocommerce-account table.shop_table {
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	overflow: hidden;
}

.woocommerce-account table.shop_table th {
	background: var(--ae-pista-soft);
	color: var(--ae-green-deep);
	font-family: var(--ae-font-heading);
	font-weight: 500;
}

.woocommerce-account .woocommerce-Address {
	padding: 1rem 1.05rem;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	background: #fff;
}

.woocommerce-account .woocommerce-Addresses {
	display: grid;
	gap: 0.85rem;
}

.woocommerce-account .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.35rem;
}

.woocommerce-account .woocommerce-Address-title h3 {
	margin: 0;
	font-family: var(--ae-font-heading);
	font-size: 1rem;
	font-weight: 500;
	color: var(--ae-green-deep);
}

.woocommerce-account .woocommerce-Address-title .edit {
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-account .woocommerce-Address address {
	margin: 0;
	font-style: normal;
	font-size: 0.88rem;
	line-height: 1.5;
	color: var(--ae-color-text);
}

.ae-account-empty {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0;
	padding: 1rem 1.05rem;
	border: 1px solid var(--ae-color-border);
	border-radius: var(--ae-radius);
	background: var(--ae-pista-soft);
	font-size: 0.95rem;
	color: var(--ae-color-text);
}

.ae-account-empty__cta {
	display: inline-block !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0.45rem 1rem !important;
	font-size: 0.82rem !important;
	text-decoration: none !important;
}

@media (max-width: 768px) {
	.ae-account-cards {
		grid-template-columns: 1fr;
		gap: 0.55rem;
	}

	.ae-account-card {
		padding: 0.9rem 0.95rem;
		gap: 0.75rem;
	}

	.ae-account-card__icon {
		width: 2.25rem;
		height: 2.25rem;
	}

	.ae-account-card__body strong {
		font-size: 1rem;
	}

	.ae-account-card__body span {
		font-size: 0.78rem;
	}

	.woocommerce-account .content-area,
	.woocommerce-cart .content-area {
		padding-left: 0.85rem;
		padding-right: 0.85rem;
	}

	.woocommerce-account .entry-header {
		margin: 0.35rem 0 1rem;
		padding: 0.55rem 0.25rem 0.45rem;
	}

	.woocommerce-cart .entry-title,
	.woocommerce-account .entry-title {
		font-size: 1.4rem;
		padding: 0.35rem 0 0.55rem;
	}

	/* Login page: breathing room between the page title and the mint card. */
	.woocommerce-account:not(.logged-in) .woocommerce {
		width: 100%;
		max-width: none;
		margin: 0 auto;
		padding: 0;
	}

	.woocommerce-account:not(.logged-in) .woocommerce > h2 {
		margin: 0.85rem 0 1rem;
		padding: 0.45rem 0 0.65rem;
	}

	.woocommerce-account:not(.logged-in) .woocommerce-form-login {
		width: 100%;
		max-width: none;
		padding: 1.35rem 1.1rem 1.5rem;
	}

	/* Sub-pages: two-column pill grid instead of a cramped horizontal scroller. */
	.woocommerce-account .woocommerce-MyAccount-navigation {
		margin-bottom: 1.1rem;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.5rem;
		justify-content: stretch;
		overflow: visible;
		padding-bottom: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li {
		display: flex;
		margin: 0;
		min-width: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
		display: inline-flex;
		flex: 1;
		width: 100%;
		box-sizing: border-box;
		padding: 0.58rem 0.55rem;
		font-size: 0.8rem;
		line-height: 1.25;
		text-align: center;
		white-space: normal;
		justify-content: center;
	}

	.woocommerce-account .woocommerce-info .button,
	.woocommerce-account .woocommerce-info a.button,
	.woocommerce-account .woocommerce-message .button,
	.woocommerce-account .woocommerce-error .button {
		display: inline-block !important;
		width: auto !important;
		align-self: flex-start;
	}

	.ae-account-empty {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		text-align: left;
	}

	.ae-account-empty__cta {
		display: inline-block !important;
		width: auto !important;
		max-width: none !important;
		flex: none;
	}

	.ae-empty-shop {
		margin-bottom: 1.25rem;
	}

	.woocommerce-cart h2.wp-block-heading:not(.wc-block-cart__empty-cart__title) {
		margin-top: 0;
		margin-bottom: 0.85rem;
	}

	/* Filled cart — mobile card layout */
	.wc-block-components-sidebar-layout {
		flex-direction: column;
		gap: 1rem;
	}

	.wc-block-cart-items {
		border: 0;
	}

	.wc-block-cart-items__header {
		display: none;
	}

	.wc-block-cart-items__row {
		display: grid;
		grid-template-columns: 4.5rem minmax(0, 1fr) auto;
		grid-template-areas:
			"image product total"
			"image qty qty";
		gap: 0.65rem 0.75rem;
		align-items: start;
		padding: 1rem 0.85rem;
		margin-bottom: 0.75rem;
		border: 1px solid var(--ae-color-border);
		border-radius: var(--ae-radius);
		background: #fff;
	}

	.wc-block-cart-items__row:last-child {
		margin-bottom: 0;
	}

	.wc-block-cart-item__image {
		grid-area: image;
		width: auto;
		padding: 0;
	}

	.wc-block-cart-item__image img {
		width: 4.5rem;
		height: 4.5rem;
		object-fit: cover;
		border-radius: 8px;
	}

	.wc-block-cart-item__product {
		grid-area: product;
		width: auto;
		padding: 0;
		min-width: 0;
	}

	.wc-block-cart-item__wrap {
		padding: 0;
	}

	.wc-block-cart-item__product .wc-block-components-product-name {
		font-size: 0.98rem;
		line-height: 1.35;
		margin-bottom: 0.35rem;
	}

	.wc-block-cart-item__prices {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.35rem 0.5rem;
	}

	.wc-block-cart-item__total {
		grid-area: total;
		width: auto;
		padding: 0;
		text-align: right;
		align-self: start;
	}

	.wc-block-cart-item__total-price-and-sale-badge-wrapper {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: 0.35rem;
	}

	.wc-block-cart-item__total .wc-block-components-product-price {
		font-family: var(--ae-font-heading);
		font-size: 1rem;
		font-weight: 600;
		color: var(--ae-green-deep);
	}

	.wc-block-cart-item__quantity {
		grid-area: qty;
		margin-top: 0;
		padding-top: 0.35rem;
		border-top: 1px solid var(--ae-color-border);
	}

	.wc-block-cart__sidebar {
		position: static;
		margin-top: 0.25rem;
	}

	.wc-block-cart__totals-title {
		display: none;
	}

	.wc-block-components-totals-wrapper {
		padding: 1rem 0.85rem;
		border-radius: var(--ae-radius);
	}

	.wc-block-components-totals-item {
		padding: 0.65rem 0;
		font-size: 0.92rem;
	}

	.wc-block-components-totals-item__label {
		color: var(--ae-color-text);
	}

	.wc-block-components-totals-item__value {
		font-weight: 600;
		color: var(--ae-green-deep);
	}

	.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
	.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
		font-family: var(--ae-font-heading);
		font-size: 1.05rem;
		font-weight: 600;
	}

	.wc-block-cart__submit-container {
		position: sticky;
		bottom: calc(var(--ae-dock, 0px) + 0.5rem);
		z-index: 2;
		padding-top: 0.75rem;
		background: linear-gradient(to top, var(--ae-pista-soft) 75%, transparent);
	}

	.wc-block-cart__submit-button {
		padding: 0.58rem 1rem !important;
		font-size: 0.88rem;
		min-height: 0;
	}
}

