/* ==========================================================================
   Amore Liquors — Main Stylesheet
   Design system on top of theme.json. Loaded after WP global styles.
   ========================================================================== */

/* ---------- Reset & base ---------- */

*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	/* Guard against any element wider than the screen forcing the layout wider
	   than the viewport (which renders as a "zoomed-in" page on phones). `clip`
	   is used instead of `hidden` so it never breaks the sticky header. */
	overflow-x: clip;
	max-width: 100%;
}

body {
	background: var(--wp--preset--color--black);
	color: var(--wp--preset--color--pearl);
	margin: 0;
	min-height: 100vh;
	font-feature-settings: "ss01", "cv11", "kern";
	overflow-x: hidden;
}

img, picture, video { max-width: 100%; height: auto; display: block; }

a { color: var(--wp--preset--color--gold); transition: color 200ms ease; }
a:hover, a:focus { color: var(--wp--preset--color--gold-light); }

::selection { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--black); }

/* Visually-hidden utility */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}

/* ---------- Eyebrow + ornament block styles ---------- */

.is-style-amore-eyebrow {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 600 !important;
	letter-spacing: 0.24em !important;
	text-transform: uppercase !important;
	color: var(--wp--preset--color--gold) !important;
}

.is-style-amore-italic-display em {
	font-style: italic;
	color: var(--wp--preset--color--gold-light);
}

.amore-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
	margin: 0 0 1rem;
}

/* ---------- Separator styles ---------- */

.is-style-amore-gold-line { border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--wp--preset--color--gold-dark) 30%, var(--wp--preset--color--gold) 50%, var(--wp--preset--color--gold-dark) 70%, transparent); opacity: 0.8; }

.is-style-amore-ornament {
	border: 0;
	height: auto;
	background: transparent;
	position: relative;
	text-align: center;
	margin: 3rem auto;
}
.is-style-amore-ornament::before {
	content: "✦";
	color: var(--wp--preset--color--gold);
	font-size: 1.5rem;
	letter-spacing: 1.5rem;
}

/* ---------- Button styles ---------- */

.wp-block-button .wp-block-button__link {
	transition: all 350ms cubic-bezier(0.4, 0, 0.2, 1);
}

.is-style-amore-outline-gold .wp-block-button__link {
	background: transparent !important;
	color: var(--wp--preset--color--ivory) !important;
	border: 1px solid var(--wp--preset--color--gold) !important;
}
.is-style-amore-outline-gold .wp-block-button__link:hover {
	background: rgba(201,169,97,0.1) !important;
	color: var(--wp--preset--color--gold-light) !important;
	border-color: var(--wp--preset--color--gold-light) !important;
}

.is-style-amore-ghost .wp-block-button__link {
	background: transparent !important;
	color: var(--wp--preset--color--gold) !important;
	border: 1px solid transparent !important;
	padding: 0.6rem 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--gold) !important;
	border-radius: 0 !important;
}

.is-style-amore-luxe .wp-block-button__link {
	background: linear-gradient(135deg, var(--wp--preset--color--gold-dark), var(--wp--preset--color--gold), var(--wp--preset--color--gold-light)) !important;
	background-size: 200% 100% !important;
	color: var(--wp--preset--color--black) !important;
	border: 0 !important;
	transition: background-position 600ms ease !important;
}
.is-style-amore-luxe .wp-block-button__link:hover { background-position: 100% 0 !important; }

/* ---------- Image styles ---------- */

.is-style-amore-cinematic img {
	filter: contrast(1.02) saturate(0.92);
	transition: filter 600ms ease, transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
}
.is-style-amore-cinematic:hover img {
	filter: contrast(1.06) saturate(1);
	transform: scale(1.02);
}
.is-style-amore-cinematic { overflow: hidden; position: relative; }
.is-style-amore-cinematic::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(5,5,5,0.55) 100%);
	pointer-events: none;
}

.is-style-amore-frame-gold {
	padding: 0.5rem;
	background: var(--wp--preset--color--gold-dark);
	background: linear-gradient(135deg, var(--wp--preset--color--gold-dark), var(--wp--preset--color--gold), var(--wp--preset--color--gold-dark));
}

/* ---------- Group styles ---------- */

.is-style-amore-glass {
	background: rgba(20,20,20,0.55);
	backdrop-filter: blur(20px) saturate(1.2);
	-webkit-backdrop-filter: blur(20px) saturate(1.2);
	border: 1px solid rgba(201,169,97,0.18);
}

.is-style-amore-bordered {
	border: 1px solid var(--wp--preset--color--graphite);
	transition: border-color 400ms ease, transform 400ms ease;
}
.is-style-amore-bordered:hover {
	border-color: var(--wp--preset--color--gold-dark);
	transform: translateY(-2px);
}

/* ---------- Header ---------- */

.amore-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(5,5,5,0.92);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border-bottom: 1px solid rgba(201,169,97,0.12);
}

/* Topbar */
.amore-topbar {
	padding: 0;
	border-bottom: 1px solid rgba(201,169,97,0.08);
}
.amore-topbar__inner {
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
	padding: 0.15rem var(--wp--preset--spacing--50);
	display: flex;
	gap: 1.5rem;
	align-items: center;
	justify-content: space-between;
	font-size: 0.66rem;
	line-height: 1.25;
	color: var(--wp--preset--color--mist);
	letter-spacing: 0.04em;
}
.amore-topbar__notice {
	margin: 0;
	flex: 1 1 auto;
	min-width: 0;
}
.amore-topbar__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 1.25rem;
	flex-shrink: 0;
}
.amore-topbar__links li { margin: 0; }
.amore-topbar a { color: inherit; text-decoration: none; transition: color 200ms; }
.amore-topbar a:hover { color: var(--wp--preset--color--gold); }

@media (max-width: 720px) {
	.amore-topbar__links { display: none; }
	.amore-topbar__notice { font-size: 0.68rem; text-align: center; flex: 1; }
	.amore-topbar__inner { justify-content: center; }
}

/* Nav row */
.amore-nav { padding: 0; }

/* .wp-block-group selector wins against wp-block-group default rules */
.wp-block-group.amore-nav__inner,
.amore-nav__inner {
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
	padding: 0.2rem var(--wp--preset--spacing--50);
	display: grid !important;
	grid-template-columns: minmax(44px, 1fr) auto minmax(44px, 1fr);
	align-items: center;
	gap: 0.75rem;
}

/* Grid items always sit in their lane */
.amore-nav__inner > .amore-nav__left  { justify-self: start; }
.amore-nav__inner > .amore-nav__brand { justify-self: center; }
.amore-nav__inner > .amore-nav__right,
.amore-nav__inner > .wp-block-amore-header-icons { justify-self: end; }

@media (max-width: 540px) {
	.amore-nav__inner {
		padding: 0.7rem 1rem;
		gap: 0.4rem;
	}
}

/* ---------- Primary nav (dynamic block, not core navigation) ---------- */

.amore-primary-nav {
	border-top: 1px solid rgba(201,169,97,0.08);
	padding: 0;
}

.amore-primary-nav--empty {
	text-align: center;
	padding: 0.75rem;
	background: rgba(201,169,97,0.06);
	border-bottom: 1px solid rgba(201,169,97,0.18);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.amore-primary-nav--empty a { color: var(--wp--preset--color--gold); text-decoration: none; }

.amore-primary-nav__list {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: var(--wp--style--global--wide-size);
	display: flex;
	justify-content: center;
	gap: 2.5rem;
	align-items: center;
}

.amore-primary-nav__item { position: relative; }
.amore-primary-nav__item--top > .amore-primary-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.4rem 0;
	color: var(--wp--preset--color--pearl);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	transition: color 200ms ease;
	position: relative;
}
.amore-primary-nav__item--top > .amore-primary-nav__link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--wp--preset--color--gold);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
}
.amore-primary-nav__item--top > .amore-primary-nav__link:hover,
.amore-primary-nav__item--top.is-current > .amore-primary-nav__link,
.amore-primary-nav__item--top:hover > .amore-primary-nav__link,
.amore-primary-nav__item--top:focus-within > .amore-primary-nav__link {
	color: var(--wp--preset--color--gold);
}
.amore-primary-nav__item--top > .amore-primary-nav__link:hover::after,
.amore-primary-nav__item--top:hover > .amore-primary-nav__link::after,
.amore-primary-nav__item--top:focus-within > .amore-primary-nav__link::after,
.amore-primary-nav__item--top.is-current > .amore-primary-nav__link::after {
	transform: scaleX(1);
}

.amore-primary-nav__chev {
	transition: transform 200ms ease;
}
.amore-primary-nav__item:hover > .amore-primary-nav__link > .amore-primary-nav__chev,
.amore-primary-nav__item:focus-within > .amore-primary-nav__link > .amore-primary-nav__chev {
	transform: rotate(180deg);
}

/* Submenu — mega flyout on hover */
.amore-primary-nav__submenu {
	list-style: none;
	margin: 0;
	padding: 1.25rem;
	min-width: 240px;
	background: rgba(10,10,10,0.98);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(201,169,97,0.18);
	box-shadow: 0 16px 48px rgba(0,0,0,0.55);
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(10px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 300ms ease, transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
	z-index: 50;
}

.amore-primary-nav__item--has-children:hover > .amore-primary-nav__submenu,
.amore-primary-nav__item--has-children:focus-within > .amore-primary-nav__submenu {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.amore-primary-nav__submenu .amore-primary-nav__link {
	display: block;
	padding: 0.6rem 0.85rem;
	color: var(--wp--preset--color--mist);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: none;
	white-space: nowrap;
	transition: color 200ms ease, padding-left 200ms ease;
}
.amore-primary-nav__submenu .amore-primary-nav__link:hover {
	color: var(--wp--preset--color--gold-light);
	padding-left: 1.1rem;
}

.amore-primary-nav__submenu--depth-1 {
	min-width: 220px;
}

/* Mobile: the desktop nav is replaced by the #amore-mobile-menu drawer
   (rendered in the footer, driven by the header hamburger). */
@media (max-width: 900px) {
	.amore-primary-nav { display: none; }
}

.amore-nav__left  { justify-self: start; display: flex; align-items: center; min-width: 0; }
.amore-nav__right { justify-self: end;   display: flex; align-items: center; gap: 0.25rem; flex-wrap: nowrap; min-width: 0; }

/* Brand wordmark — stacked (mark above small "Liquors · Tampa") */
.amore-nav__brand {
	justify-self: center;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.05rem;
	text-decoration: none;
	color: var(--wp--preset--color--ivory);
	line-height: 1;
	padding: 0.1rem 0.5rem;
	transition: color 200ms ease;
	white-space: nowrap;
}
.amore-nav__brand:hover { color: var(--wp--preset--color--gold-light); }

/* Uploaded custom logo from Customizer — sized to fit header height.
   The Customizer controls max-height (desktop + mobile). max-width:70vw is a
   safety that only ever binds for an absurdly wide logo (the 44px side grid
   columns keep 70vw clear of the screen edge), so it never fights the height
   slider for a normal logo; html{overflow-x:clip} covers anything beyond that. */
.amore-nav__brand img,
.amore-nav__brand .custom-logo {
	display: block;
	max-height: 58px;
	max-width: 70vw;
	width: auto;
	height: auto;
}

.amore-nav__brand-mark {
	font-family: var(--wp--preset--font-family--accent);
	font-size: clamp(1.05rem, 0.9rem + 0.4vw, 1.3rem);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: inherit;
	line-height: 1;
}
.amore-nav__brand-sub {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.5rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
	line-height: 1;
}

/* Keep the logo centred on phones. The header is a 3-column grid
   (side · brand · side); the logo only stays centred while both side tracks can
   hold their content — and the right side (search + cart ≈ 2×38px) is the
   widest. This cap reserves ~6.75rem per side (icons + grid gap + padding) so
   the centre column can't grow wide enough to squeeze the icons off-balance.
   Height is still controlled by the Customizer's mobile logo slider. */
@media (max-width: 768px) {
	.amore-nav__brand img,
	.amore-nav__brand .custom-logo { max-width: calc(100vw - 13.5rem); }
}
@media (max-width: 480px) {
	.amore-nav__brand { padding: 0.05rem 0.25rem; }
}

/* Hide secondary icons (wishlist, account) on tablets and below — only
   search + cart need to be reachable from the header on small screens. */
.amore-icon-btn--hide-sm { display: inline-flex; }
@media (max-width: 768px) {
	.amore-icon-btn--hide-sm { display: none !important; }
}

/* Icon buttons — locked-down sizing.
   These rules win specificity wars against WooCommerce, WC Blocks, and
   anything else that tries to add margin/padding/border/decoration to
   generic <button> or <a> elements inside the header. Do not relax. */
.amore-header .amore-nav__right .amore-icon-btn,
.amore-header .amore-icon-btn {
	flex: 0 0 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	min-width: 38px;
	min-height: 38px;
	max-width: 38px;
	max-height: 38px;
	padding: 0;
	margin: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--wp--preset--color--pearl);
	cursor: pointer;
	text-decoration: none;
	position: relative;
	vertical-align: middle;
	box-sizing: border-box;
	line-height: 1;
	font-size: inherit;
	box-shadow: none;
	overflow: visible;
	transition: color 200ms ease, background 200ms ease;
}
.amore-header .amore-icon-btn:hover,
.amore-header .amore-icon-btn:focus-visible {
	color: var(--wp--preset--color--gold);
	background: transparent;
	text-decoration: none;
}
.amore-header .amore-icon-btn svg {
	display: block;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	pointer-events: none;
}

/* Cart count badge — selector specificity beats anything WC could inject.
   Hide when empty so the badge doesn't show a stale "0". */
.amore-header .amore-icon-btn--cart .amore-cart-count {
	position: absolute;
	top: 4px;
	right: 4px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--black);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	box-sizing: border-box;
	pointer-events: none;
	transform: translate(25%, -25%);
}

.amore-header .amore-icon-btn--cart .amore-cart-count[data-count="0"] {
	display: none;
}

.amore-nav__toggle {
	width: 32px;
	height: 32px;
	background: transparent;
	border: 0;
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	padding: 0;
	cursor: pointer;
}
.amore-nav__toggle span {
	display: block;
	height: 2px;
	width: 24px;
	background: var(--wp--preset--color--ivory);
	transform-origin: center;
	transition: transform 300ms cubic-bezier(0.16,1,0.3,1), opacity 200ms;
}

/* Morph into an X while the mobile menu is open */
body.is-menu-open .amore-nav__toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.is-menu-open .amore-nav__toggle span:nth-child(2) { opacity: 0; }
body.is-menu-open .amore-nav__toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Lock background scroll while an overlay surface is open */
body.is-menu-open,
body.is-search-open,
body.is-cart-open { overflow: hidden; }

/* Primary nav */
.amore-primary-nav, .wp-block-navigation.amore-primary-nav {
	padding: 0.5rem 0 0;
	border-top: 1px solid rgba(201,169,97,0.08);
}
.amore-primary-nav .wp-block-navigation__container {
	gap: 2.5rem;
	justify-content: center;
}
.amore-primary-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--pearl);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
}
.amore-primary-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--gold); }

@media (max-width: 900px) {
	.amore-nav__toggle { display: inline-flex; }
	.amore-primary-nav { display: none; }
}

/* ---------- Search overlay ---------- */

.amore-search-overlay {
	position: fixed;
	inset: 0;
	background: rgba(5,5,5,0.96);
	backdrop-filter: blur(20px);
	z-index: 1000;
	opacity: 0;
	pointer-events: none;
	transition: opacity 400ms ease;
	display: flex;
	flex-direction: column;
	align-items: center;
	/* Top-aligned (not centred) and the whole overlay scrolls when results are
	   tall. Centring + an internal-scroll results box let flexbox shrink the
	   results down to a thin sliver, so we avoid both here. */
	justify-content: flex-start;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: clamp(4.5rem, 12vh, 8rem) 2rem 3rem;
}
.amore-search-overlay.is-open { opacity: 1; pointer-events: auto; }
.amore-search-overlay__close {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ivory);
	cursor: pointer;
}
.amore-search-overlay__form {
	width: 100%;
	max-width: 720px;
	flex: 0 0 auto;
	display: flex;
	gap: 1rem;
	border-bottom: 1px solid var(--wp--preset--color--gold);
	padding-bottom: 0.75rem;
}
.amore-search-overlay__form input {
	flex: 1;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ivory);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 4vw, 2.5rem);
	padding: 0.5rem 0;
	outline: none;
}
.amore-search-overlay__submit {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--gold);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.24em;
	text-transform: uppercase;
	cursor: pointer;
}
/* Results render at their natural height and never shrink — the overlay itself
   scrolls (above) if the list is taller than the screen. flex-shrink:0 is the
   key: without it, flexbox squashed this box down to a sliver. */
.amore-search-overlay__results {
	width: 100%;
	max-width: 720px;
	margin-top: 2rem;
	flex: 0 0 auto;
}

/* Result groups (Categories / Products / Journal) */
.amore-predictive-group { width: 100%; }
.amore-predictive-group + .amore-predictive-group { margin-top: 1.75rem; }
.amore-predictive-group > h6 {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--stone);
}
.amore-predictive-loading { color: var(--wp--preset--color--mist); padding: 1rem 0; margin: 0; }

.amore-predictive-result {
	display: flex;
	gap: 1rem;
	align-items: center;
	padding: 0.75rem 0;
	border-bottom: 1px solid rgba(201,169,97,0.1);
	text-decoration: none;
	color: var(--wp--preset--color--pearl);
	transition: color 200ms, padding-left 200ms;
}
.amore-predictive-result:hover { color: var(--wp--preset--color--gold); padding-left: 0.5rem; }
.amore-predictive-result img { width: 56px; height: 70px; object-fit: cover; flex-shrink: 0; }
.amore-predictive-result__body { flex: 1; }
.amore-predictive-result__title { font-size: var(--wp--preset--font-size--md); margin: 0; }
.amore-predictive-result__price { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--gold); margin: 0.25rem 0 0; }

/* Category + Journal rows */
.amore-predictive-cat,
.amore-predictive-post {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.6rem 0;
	border-bottom: 1px solid rgba(201,169,97,0.1);
	text-decoration: none;
	color: var(--wp--preset--color--pearl);
	transition: color 200ms, padding-left 200ms;
}
.amore-predictive-cat:hover,
.amore-predictive-post:hover { color: var(--wp--preset--color--gold); padding-left: 0.5rem; }
.amore-predictive-cat span,
.amore-predictive-post span { color: var(--wp--preset--color--stone); flex-shrink: 0; }

/* ---------- Cart drawer ---------- */

.amore-cart-drawer {
	position: fixed;
	inset: 0;
	z-index: 1100;
	visibility: hidden;
	pointer-events: none;
}
.amore-cart-drawer.is-open { visibility: visible; pointer-events: auto; }

.amore-cart-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(5,5,5,0.78);
	opacity: 0;
	transition: opacity 400ms ease;
}
.amore-cart-drawer.is-open .amore-cart-drawer__overlay { opacity: 1; }

.amore-cart-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	width: min(440px, 100%);
	height: 100%;
	background: var(--wp--preset--color--obsidian);
	border-left: 1px solid rgba(201,169,97,0.18);
	transform: translateX(100%);
	transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.amore-cart-drawer.is-open .amore-cart-drawer__panel { transform: translateX(0); }

.amore-cart-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem 1.5rem;
	border-bottom: 1px solid rgba(201,169,97,0.12);
}
.amore-cart-drawer__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--xl);
	color: var(--wp--preset--color--ivory);
	font-weight: 400;
}
.amore-cart-drawer__close {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--pearl);
	cursor: pointer;
}

.amore-cart-drawer__body { flex: 1; overflow-y: auto; padding: 1.5rem; }
.amore-cart-drawer__footer {
	padding: 1rem 1.5rem 1.5rem;
	border-top: 1px solid rgba(201,169,97,0.12);
}
.amore-cart-drawer__note {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--stone);
	margin: 0;
}

/* ---------- Sections ---------- */

.amore-section__header { text-align: center; max-width: 720px; margin: 0 auto; }

.amore-cat-card {
	position: relative;
	overflow: hidden;
	transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
}
.amore-cat-card:hover { transform: translateY(-4px); }
.amore-cat-card .wp-block-cover__image-background { transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1); }
.amore-cat-card:hover .wp-block-cover__image-background { transform: scale(1.08); }

/* Category showcase block */
.amore-cat-showcase__title { font-size: var(--wp--preset--font-size--3xl); margin: 0.5rem 0 0; }
.amore-cat-showcase__track { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; margin-top: 3.5rem; }
.amore-cat-showcase__track .amore-cat-card {
	display: block;
	text-decoration: none;
	color: inherit;
	background: var(--wp--preset--color--obsidian);
	border: 1px solid rgba(201,169,97,0.1);
	transition: border-color 300ms, transform 400ms;
}
.amore-cat-showcase__track .amore-cat-card:hover { border-color: var(--wp--preset--color--gold-dark); }
.amore-cat-card__image { position: relative; aspect-ratio: 4/5; overflow: hidden; }
.amore-cat-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s ease; }
.amore-cat-card:hover .amore-cat-card__image img { transform: scale(1.06); }
.amore-cat-card__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(5,5,5,0.85)); }
.amore-cat-card__meta { padding: 1.25rem; position: relative; }
.amore-cat-card__index { font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.24em; color: var(--wp--preset--color--gold); }
.amore-cat-card__name  { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--xl); margin: 0.4rem 0 0; font-weight: 400; }
.amore-cat-card__count { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--stone); display: block; margin-top: 0.25rem; }

/* Featured products slider block */
.amore-products-slider__header { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 3rem; }
.amore-products-slider__title { font-size: var(--wp--preset--font-size--3xl); margin: 0.5rem 0 0; }
.amore-products-slider__nav { display: flex; gap: 0.5rem; }
.amore-products-slider__nav button {
	width: 48px; height: 48px;
	border: 1px solid var(--wp--preset--color--gold-dark);
	background: transparent;
	color: var(--wp--preset--color--gold);
	cursor: pointer;
	transition: all 300ms;
}
.amore-products-slider__nav button:hover { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--black); }
.amore-products-slider__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(280px, 1fr);
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 1rem;
}
.amore-products-slider__track::-webkit-scrollbar { display: none; }

/* Product card */
.amore-product-card { display: flex; flex-direction: column; gap: 0.75rem; }
.amore-product-card__media { position: relative; aspect-ratio: 4/5; overflow: hidden; display: block; }
.amore-product-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1); }
.amore-product-card:hover .amore-product-card__media img { transform: scale(1.05); }
.amore-product-card__body { display: flex; flex-direction: column; gap: 0.4rem; }
.amore-product-card__cat { font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.18em; text-transform: uppercase; color: var(--wp--preset--color--stone); margin: 0; }
.amore-product-card__cat a { color: inherit; text-decoration: none; }
.amore-product-card__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--lg); font-weight: 400; margin: 0; }
.amore-product-card__title a { color: var(--wp--preset--color--ivory); text-decoration: none; }
.amore-product-card__title a:hover { color: var(--wp--preset--color--gold); }
.amore-product-card__price { color: var(--wp--preset--color--gold); font-size: var(--wp--preset--font-size--md); }
.amore-product-card__price del { color: var(--wp--preset--color--stone); margin-right: 0.5rem; }

/* Badges */
.amore-badge {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	padding: 0.35rem 0.75rem;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	z-index: 2;
}
.amore-badge--sale { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--black); }
.amore-badge--oos  { background: var(--wp--preset--color--graphite); color: var(--wp--preset--color--mist); top: 0.75rem; right: 0.75rem; left: auto; }

/* Promo banner block */
.amore-promo {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: var(--amore-promo-height, 420px);
	overflow: hidden;
	color: var(--wp--preset--color--ivory);
}
.amore-promo__media { position: absolute; inset: 0; z-index: -1; }
.amore-promo__media img { width: 100%; height: 100%; object-fit: cover; }
.amore-promo__overlay { position: absolute; inset: 0; background: rgba(5,5,5, var(--amore-overlay, 0.7)); }
.amore-promo__inner { padding: 4rem 2rem; max-width: 720px; }
.amore-promo__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--3xl); margin: 0.75rem 0 0; }
.amore-promo__subtitle { color: var(--wp--preset--color--mist); margin: 1rem 0 2rem; }

/* Countdown */
.amore-promo__countdown { display: flex; gap: 1.5rem; justify-content: center; margin: 1.5rem 0; color: var(--wp--preset--color--gold); font-family: var(--wp--preset--font-family--mono); }

/* Delivery banner block */
.amore-delivery-banner {
	position: relative;
	overflow: hidden;
	padding: 5rem 1.5rem;
	text-align: center;
}
.amore-delivery-banner__media { position: absolute; inset: 0; z-index: -1; }
.amore-delivery-banner__media img { width: 100%; height: 100%; object-fit: cover; opacity: 0.4; }
.amore-delivery-banner__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,5,5,0.6), rgba(5,5,5,0.9)); }
.amore-delivery-banner__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--3xl); margin: 0.75rem 0 1rem; }
.amore-delivery-banner__copy { color: var(--wp--preset--color--mist); max-width: 540px; margin: 0 auto 2rem; }

.amore-zip-check {
	display: flex;
	gap: 0;
	max-width: 420px;
	margin: 0 auto;
	border: 1px solid var(--wp--preset--color--gold-dark);
}
.amore-zip-check input {
	flex: 1;
	background: rgba(5,5,5,0.6);
	border: 0;
	color: var(--wp--preset--color--ivory);
	padding: 1rem 1.25rem;
	font-size: var(--wp--preset--font-size--md);
	outline: none;
}

/* Testimonials block */
.amore-testimonials-block__title { font-size: var(--wp--preset--font-size--3xl); text-align: center; margin: 0.5rem 0 0; }
.amore-testimonials-block__track {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2rem;
	margin-top: 4rem;
}
.amore-testimonial {
	background: var(--wp--preset--color--obsidian);
	border: 1px solid rgba(201,169,97,0.1);
	padding: 2rem;
	transition: border-color 400ms;
	margin: 0;
}
.amore-testimonial:hover { border-color: var(--wp--preset--color--gold-dark); }
.amore-testimonial__stars { color: var(--wp--preset--color--gold); font-size: 1.1rem; letter-spacing: 0.2em; margin-bottom: 1.5rem; }
.amore-testimonial__quote {
	margin: 0 0 1.5rem;
	padding: 0;
	border: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--md);
	font-style: italic;
	line-height: 1.5;
	color: var(--wp--preset--color--ivory);
}
.amore-testimonial__author { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--mist); letter-spacing: 0.08em; }
.amore-testimonial__author strong { color: var(--wp--preset--color--gold); font-weight: 600; }

/* Premium CTA block */
.amore-cta {
	padding: clamp(4rem, 8vw, 8rem) 1.5rem;
	text-align: center;
}
.amore-cta--dark  { background: var(--wp--preset--color--obsidian); }
.amore-cta--gold  { background: linear-gradient(135deg, var(--wp--preset--color--gold-dark), var(--wp--preset--color--gold-light)); color: var(--wp--preset--color--black); }
.amore-cta--gold .amore-eyebrow { color: var(--wp--preset--color--black); }
.amore-cta--gold .amore-cta__subtitle { color: rgba(5,5,5,0.75); }
.amore-cta--glass { background: rgba(20,20,20,0.55); backdrop-filter: blur(20px); border-top: 1px solid rgba(201,169,97,0.18); border-bottom: 1px solid rgba(201,169,97,0.18); }
.amore-cta__inner { max-width: 720px; margin: 0 auto; }
.amore-cta__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--3xl); margin: 0.75rem 0 1rem; line-height: 1.1; }
.amore-cta__subtitle { color: var(--wp--preset--color--mist); margin: 0 0 2.5rem; font-size: var(--wp--preset--font-size--md); line-height: 1.55; }
.amore-cta__ctas { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* Age notice block (inline) */
.amore-age-notice {
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	background: var(--wp--preset--color--charcoal);
	border: 1px solid rgba(201,169,97,0.2);
	padding: 2rem;
	max-width: 720px;
	margin: 2rem auto;
}
.amore-age-notice__icon { flex-shrink: 0; }
.amore-age-notice__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--lg); margin: 0; color: var(--wp--preset--color--ivory); }
.amore-age-notice__copy  { color: var(--wp--preset--color--mist); margin: 0.5rem 0 1rem; font-size: var(--wp--preset--font-size--sm); }
.amore-age-notice__link  { color: var(--wp--preset--color--gold); text-decoration: none; font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.18em; text-transform: uppercase; }

/* Empty block placeholder */
.amore-empty-block {
	padding: 3rem;
	text-align: center;
	color: var(--wp--preset--color--stone);
	border: 1px dashed var(--wp--preset--color--graphite);
}

/* ---------- Breadcrumb ---------- */

.amore-breadcrumb {
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--mist);
	padding: 1rem 0;
}
.amore-breadcrumb a { color: inherit; text-decoration: none; }
.amore-breadcrumb a:hover { color: var(--wp--preset--color--gold); }
.amore-breadcrumb__sep { margin: 0 0.5rem; color: var(--wp--preset--color--ash); }

/* ---------- Forms (newsletter) ---------- */

.amore-newsletter {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.amore-newsletter__row {
	display: flex;
	align-items: stretch;
	gap: 0;
	border: 1px solid var(--wp--preset--color--gold-dark);
	transition: border-color 300ms;
	min-width: 0;
}
.amore-newsletter__row:focus-within { border-color: var(--wp--preset--color--gold); }

.amore-newsletter__row input {
	flex: 1 1 auto;
	min-width: 0;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ivory);
	padding: 0.85rem 1rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	outline: none;
}
.amore-newsletter__row input::placeholder {
	color: var(--wp--preset--color--stone);
}

.amore-newsletter__row button {
	flex-shrink: 0;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--black);
	border: 0;
	padding: 0 1.1rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	transition: background 200ms ease;
	white-space: nowrap;
}
.amore-newsletter__row button:hover { background: var(--wp--preset--color--gold-light); }

.amore-newsletter__notice {
	display: block;
	width: 100%;
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--mist);
	margin: 0.75rem 0 0;
	line-height: 1.55;
}

/* Compact variant for narrow footer columns — hide button label, keep arrow */
@media (max-width: 360px) {
	.amore-newsletter__btn-label { display: none; }
	.amore-newsletter__row button { padding: 0 0.9rem; }
}

/* Hero variant: larger, centered, more padding */
.amore-newsletter--hero {
	max-width: 520px;
	margin: 2rem auto 0;
}
.amore-newsletter--hero .amore-newsletter__row input  { padding: 1.15rem 1.4rem; font-size: var(--wp--preset--font-size--base); }
.amore-newsletter--hero .amore-newsletter__row button { padding: 0 1.6rem; font-size: var(--wp--preset--font-size--xs); }

/* ---------- Footer ---------- */

.amore-footer__brand h3 { margin: 0 0 1rem; }
.amore-footer__menu { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.65rem; }
.amore-footer__menu a { color: var(--wp--preset--color--mist); text-decoration: none; transition: color 200ms; }
.amore-footer__menu a:hover { color: var(--wp--preset--color--gold); }

.amore-footer__legal { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.5rem; flex-wrap: wrap; justify-content: flex-end; }
.amore-footer__legal a { color: var(--wp--preset--color--mist); text-decoration: none; }
.amore-footer__legal a:hover { color: var(--wp--preset--color--gold); }

/* ---------- Brand marquee row ---------- */

.amore-brands { overflow: hidden; }

.amore-marquee {
	display: flex;
	gap: 4rem;
	overflow: hidden;
	white-space: nowrap;
	mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}

.amore-marquee__track {
	display: inline-flex;
	gap: 4rem;
	flex-shrink: 0;
	animation: amore-marquee 42s linear infinite;
	will-change: transform;
}

.amore-marquee:hover .amore-marquee__track {
	animation-play-state: paused;
}

.amore-brand-mark {
	font-family: var(--wp--preset--font-family--accent);
	font-size: clamp(1.1rem, 1rem + 0.5vw, 1.4rem);
	letter-spacing: 0.24em;
	color: var(--wp--preset--color--mist);
	flex-shrink: 0;
	padding: 0.5rem 0;
	transition: color 300ms ease;
}
.amore-brand-mark:hover { color: var(--wp--preset--color--gold); }

@keyframes amore-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(calc(-100% - 4rem)); }
}

@media (prefers-reduced-motion: reduce) {
	.amore-marquee__track { animation: none; }
	.amore-marquee {
		overflow-x: auto;
		scrollbar-width: thin;
	}
}

/* ---------- Section rhythm ---------- */

.amore-categories,
.amore-bestsellers,
.amore-feature,
.amore-brands,
.amore-delivery,
.amore-testimonials,
.amore-social {
	padding-top: var(--wp--preset--spacing--90);
	padding-bottom: var(--wp--preset--spacing--90);
}

@media (max-width: 720px) {
	.amore-categories,
	.amore-bestsellers,
	.amore-feature,
	.amore-brands,
	.amore-delivery,
	.amore-testimonials,
	.amore-social {
		padding-top: var(--wp--preset--spacing--80);
		padding-bottom: var(--wp--preset--spacing--80);
	}
}

/* ---------- Hero scroll-hint fade-on-scroll target ---------- */

.amore-hero__scroll {
	transition: opacity 400ms ease;
	will-change: opacity;
}

body.is-scrolled .amore-hero__scroll {
	opacity: 0;
	pointer-events: none;
}

/* ---------- Newsletter prominence ---------- */

.amore-newsletter-block .amore-newsletter {
	border-width: 2px;
	box-shadow: 0 0 60px rgba(201,169,97,0.12);
}

.amore-newsletter-block .amore-newsletter:focus-within {
	box-shadow: 0 0 80px rgba(201,169,97,0.22);
}

/* ---------- Product card focus parity (keyboard nav) ---------- */

.amore-product-card a:focus-visible,
.amore-cat-card:focus-visible,
.amore-icon-btn:focus-visible,
.amore-btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 3px;
}

/* ---------- Payment-methods row (footer) ---------- */

.amore-footer__payments {
	border-top: 1px solid rgba(201,169,97,0.1);
}
.amore-payments {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}
.amore-payments__label {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
}
.amore-payments__row {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.85rem;
}
.amore-payments__row li {
	margin: 0;
	display: inline-flex;
}
.amore-payments__row img {
	width: 46px;
	height: 30px;
	object-fit: contain;
	background: #FFFFFF;
	border: 1px solid #1F1F1F;
	border-radius: 4px;
	padding: 4px;
	transition: transform 200ms ease, border-color 200ms ease;
	box-sizing: border-box;
}
.amore-payments__row li:hover img {
	transform: translateY(-1px);
	border-color: var(--wp--preset--color--gold);
}

/* Hours list shortcode */
.amore-hours-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; font-size: var(--wp--preset--font-size--sm); }
.amore-hours-list li { display: flex; justify-content: space-between; gap: 1rem; }
.amore-hours-list strong { color: var(--wp--preset--color--ivory); }
.amore-hours-list span { color: var(--wp--preset--color--mist); }

/* ---------- Post / page cards ---------- */

.amore-post-card { display: flex; flex-direction: column; gap: 0.75rem; }
.amore-post-card .wp-block-post-title a { color: var(--wp--preset--color--ivory); text-decoration: none; }
.amore-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--gold); }

.amore-page-title { letter-spacing: -0.01em; }
.amore-archive-title { letter-spacing: -0.01em; }

/* ---------- Responsive: hide topbar on mobile ---------- */

@media (max-width: 720px) {
	.amore-topbar__links { display: none; }
	.amore-topbar__notice { font-size: 0.7rem; text-align: center; }
	.amore-nav__center { justify-self: center; }
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* ==========================================================================
   Mobile menu drawer (#amore-mobile-menu)
   ========================================================================== */

.amore-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 1200;
	visibility: hidden;
	pointer-events: none;
}
.amore-mobile-menu.is-open { visibility: visible; pointer-events: auto; }

.amore-mobile-menu__overlay {
	position: absolute;
	inset: 0;
	background: rgba(5,5,5,0.72);
	opacity: 0;
	transition: opacity 360ms ease;
}
.amore-mobile-menu.is-open .amore-mobile-menu__overlay { opacity: 1; }

.amore-mobile-menu__panel {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	height: 100dvh;
	width: min(86vw, 360px);
	background: var(--wp--preset--color--obsidian);
	border-right: 1px solid rgba(201,169,97,0.18);
	box-shadow: 0 0 60px rgba(0,0,0,0.6);
	transform: translateX(-100%);
	transition: transform 460ms cubic-bezier(0.16,1,0.3,1);
	display: flex;
	flex-direction: column;
	padding: max(1.25rem, env(safe-area-inset-top)) 1.25rem calc(1.25rem + env(safe-area-inset-bottom));
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
.amore-mobile-menu.is-open .amore-mobile-menu__panel { transform: translateX(0); }

.amore-mobile-menu__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 1rem;
	border-bottom: 1px solid rgba(201,169,97,0.12);
}
.amore-mobile-menu__brand {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 1.1rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ivory);
}
.amore-mobile-menu__close {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--pearl);
	cursor: pointer;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-right: -0.5rem;
}
.amore-mobile-menu__close:hover { color: var(--wp--preset--color--gold); }

.amore-mobile-menu__search {
	display: flex;
	align-items: center;
	border: 1px solid rgba(201,169,97,0.28);
	margin: 1rem 0 0.25rem;
}
.amore-mobile-menu__search input {
	flex: 1 1 auto;
	min-width: 0;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ivory);
	padding: 0.75rem 0.9rem;
	font-size: var(--wp--preset--font-size--sm);
	outline: none;
}
.amore-mobile-menu__search input::placeholder { color: var(--wp--preset--color--stone); }
.amore-mobile-menu__search button {
	flex: 0 0 auto;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--gold);
	padding: 0 0.9rem;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
}

.amore-mobile-menu__list {
	list-style: none;
	margin: 0.5rem 0 0;
	padding: 0;
	flex: 1 0 auto;
}
.amore-mobile-menu__item > a {
	display: block;
	padding: 0.9rem 0;
	color: var(--wp--preset--color--ivory);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 400;
	border-bottom: 1px solid rgba(201,169,97,0.08);
	transition: color 200ms ease, padding-left 200ms ease;
}
.amore-mobile-menu__item > a:hover { color: var(--wp--preset--color--gold); padding-left: 0.35rem; }

.amore-mobile-menu__sub {
	list-style: none;
	margin: 0;
	padding: 0.25rem 0 0.75rem 0.85rem;
}
.amore-mobile-menu__sub a {
	display: block;
	padding: 0.5rem 0;
	color: var(--wp--preset--color--mist);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--sm);
	letter-spacing: 0.02em;
}
.amore-mobile-menu__sub a:hover { color: var(--wp--preset--color--gold-light); }

.amore-mobile-menu__quick {
	display: flex;
	gap: 0.75rem;
	margin-top: 1.25rem;
}
.amore-mobile-menu__quick-link {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	position: relative;
	background: transparent;
	border: 1px solid rgba(201,169,97,0.28);
	color: var(--wp--preset--color--pearl);
	padding: 0.8rem 0.5rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: border-color 200ms ease, color 200ms ease;
}
.amore-mobile-menu__quick-link:hover { border-color: var(--wp--preset--color--gold); color: var(--wp--preset--color--gold); }
.amore-mobile-menu__quick-link .amore-cart-count {
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--black);
	font-size: 0.62rem;
	font-weight: 700;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.amore-mobile-menu__quick-link .amore-cart-count[data-count="0"] { display: none; }

.amore-mobile-menu__foot {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(201,169,97,0.12);
	text-align: center;
}
.amore-mobile-menu__phone {
	display: inline-block;
	color: var(--wp--preset--color--gold);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--lg);
	letter-spacing: 0.04em;
}
.amore-mobile-menu__age {
	margin: 0.5rem 0 0;
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--stone);
	line-height: 1.5;
}

/* Never let the drawer intercept clicks on desktop */
@media (min-width: 901px) {
	.amore-mobile-menu { display: none; }
}

/* ==========================================================================
   Toasts — add-to-cart feedback
   ========================================================================== */

.amore-toasts {
	position: fixed;
	z-index: 1300;
	right: clamp(1rem, 2vw, 1.5rem);
	bottom: calc(clamp(1rem, 2vw, 1.5rem) + env(safe-area-inset-bottom));
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	pointer-events: none;
	max-width: min(360px, calc(100vw - 2rem));
}
.amore-toast {
	pointer-events: auto;
	display: flex;
	align-items: center;
	gap: 0.7rem;
	background: rgba(15,15,15,0.97);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(201,169,97,0.4);
	border-left: 3px solid var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ivory);
	padding: 0.85rem 1rem;
	font-size: var(--wp--preset--font-size--sm);
	box-shadow: 0 16px 44px rgba(0,0,0,0.5);
	cursor: pointer;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 320ms ease, transform 420ms cubic-bezier(0.16,1,0.3,1);
}
.amore-toast.is-visible { opacity: 1; transform: translateY(0); }
.amore-toast__icon { flex: 0 0 auto; display: inline-flex; color: var(--wp--preset--color--gold); }
.amore-toast__msg { flex: 1 1 auto; line-height: 1.4; }
.amore-toast--error { border-left-color: #e0726a; }
.amore-toast--error .amore-toast__icon { color: #e0726a; }

@media (max-width: 600px) {
	.amore-toasts { left: 1rem; right: 1rem; max-width: none; }
}

/* Add-to-cart loop button states */
.add_to_cart_button.loading { opacity: 0.55; pointer-events: none; cursor: progress; }
.add_to_cart_button.added { animation: amore-added-flash 650ms ease; }
@keyframes amore-added-flash {
	0%   { box-shadow: 0 0 0 0 rgba(201,169,97,0.55); }
	100% { box-shadow: 0 0 0 9px rgba(201,169,97,0); }
}

/* ==========================================================================
   Shop layout — filters sidebar + results
   ========================================================================== */

.amore-shop__layout { align-items: flex-start; }
.amore-shop__filters { flex: 0 0 auto; }

.amore-shop__filters-inner {
	border: 1px solid rgba(201,169,97,0.14);
	background: rgba(20,20,20,0.4);
	padding: 1.5rem 1.35rem;
	position: sticky;
	top: 110px;
}
.amore-shop__filters-title {
	margin: 0 0 0.85rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid rgba(201,169,97,0.14);
}

/* Product categories list */
.amore-shop__filters .wp-block-categories {
	list-style: none;
	margin: 0;
	padding: 0;
}
.amore-shop__filters .wp-block-categories li {
	margin: 0;
	padding: 0.4rem 0;
}
.amore-shop__filters .wp-block-categories a {
	color: var(--wp--preset--color--mist);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--sm);
	letter-spacing: 0.02em;
	transition: color 200ms ease, padding-left 200ms ease;
}
.amore-shop__filters .wp-block-categories a:hover { color: var(--wp--preset--color--gold); padding-left: 0.3rem; }
.amore-shop__filters .wp-block-categories ul,
.amore-shop__filters .wp-block-categories .children {
	list-style: none;
	margin: 0.25rem 0 0;
	padding-left: 0.85rem;
	border-left: 1px solid rgba(201,169,97,0.12);
}

/* WooCommerce filter blocks — spacing + readable text on dark */
.amore-shop__filters .wp-block-woocommerce-filter-wrapper { margin-bottom: 1.35rem; }
.amore-shop__filters .wc-block-components-price-slider__range-text,
.amore-shop__filters .wc-block-components-checkbox__label,
.amore-shop__filters .wc-block-components-product-price { color: var(--wp--preset--color--mist); }

/* Sorting / results count */
.amore-shop__results .woocommerce-result-count,
.amore-shop__results .wp-block-woocommerce-product-results-count { color: var(--wp--preset--color--mist); }
.amore-shop__results select,
.amore-shop__filters select {
	background: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--ivory);
	border: 1px solid rgba(201,169,97,0.25);
	padding: 0.5rem 0.75rem;
	max-width: 100%;
}

/* Product grid columns — driven by CSS variables so the Customizer sets the
   default and the on-page layout switcher overrides per visitor. Defaults:
   desktop var(--amore-cols)=3 · phones & small tablets var(--amore-cols-sm)=2
   (the classic 2×2 grid). The 781px boundary matches the point at which the
   sidebar filters un-stick and stack full-width. */
.amore-shop__grid .wp-block-post-template.is-layout-grid {
	grid-template-columns: repeat(var(--amore-cols, 3), minmax(0, 1fr)) !important;
}
@media (max-width: 781px) {
	.amore-shop__filters-inner { position: static; }
	.amore-shop__grid .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(var(--amore-cols-sm, 2), minmax(0, 1fr)) !important;
	}

	/* The search results page is a simple constrained layout (no full-bleed
	   breakouts), so clipping it guarantees no horizontal scroll on phones even
	   if a browser ignores the root-level overflow-x:clip. */
	.amore-search { overflow-x: clip; }
}

/* Search results page — make sure the core search form and long titles can
   never push the layout wider than the viewport. */
.amore-search .wp-block-search,
.amore-search .wp-block-search__inside-wrapper { max-width: 100%; }
.amore-search .wp-block-search__input { min-width: 0; }
.amore-search .wp-block-query-title,
.amore-search .wp-block-post-title { overflow-wrap: anywhere; }

/* On-page product-column switcher (archive + category templates) */
.amore-shop__view {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.85rem;
}
.amore-shop__view-label {
	font-size: 0.68rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--mist);
	margin-right: 0.3rem;
}
.amore-shop__view-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	background: transparent;
	border: 1px solid rgba(201, 169, 97, 0.28);
	color: var(--wp--preset--color--mist);
	cursor: pointer;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.amore-shop__view-btn:hover {
	color: var(--wp--preset--color--gold);
	border-color: rgba(201, 169, 97, 0.6);
}
.amore-shop__view-btn[aria-pressed="true"] {
	color: var(--wp--preset--color--obsidian);
	background: var(--wp--preset--color--gold);
	border-color: var(--wp--preset--color--gold);
}
.amore-shop__view-btn svg { display: block; }
/* Show only device-appropriate options. The 781px boundary matches both the
   grid's --amore-cols-sm switch and the JS mobile matchMedia, so the visible
   buttons always control the variable the grid is actually reading: 1/2-col
   below 781px, 2/3/4-col above it. */
.amore-shop__view-btn[data-cols="1"] { display: none; }
@media (max-width: 781px) {
	.amore-shop__view-btn[data-cols="1"] { display: inline-flex; }
	.amore-shop__view-btn[data-cols="3"],
	.amore-shop__view-btn[data-cols="4"] { display: none; }
}

/* Shop filters: collapsible on mobile.
   The toggle is injected by initShopFilters() in main.js. On desktop the
   sidebar shows normally and the toggle is hidden; on phones/small tablets the
   filters collapse behind the toggle so products aren't pushed below a long
   list of categories. */
.amore-shop__filter-toggle { display: none; }

@media (max-width: 781px) {
	/* Let the filters column shrink to full width and sit as a compact bar. */
	.amore-shop__filters { flex-basis: 100% !important; width: 100%; }

	.amore-shop__filter-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.55rem;
		width: 100%;
		padding: 0.8rem 1rem;
		background: transparent;
		border: 1px solid rgba(201,169,97,0.32);
		color: var(--wp--preset--color--ivory);
		font-size: 0.72rem;
		letter-spacing: 0.2em;
		text-transform: uppercase;
		cursor: pointer;
		transition: border-color 200ms ease, color 200ms ease;
	}
	.amore-shop__filter-toggle:hover { border-color: var(--wp--preset--color--gold); color: var(--wp--preset--color--gold); }
	.amore-shop__filter-toggle svg { flex-shrink: 0; }

	/* Collapsed by default; revealed when the toggle adds .is-open. */
	.amore-shop__filters .amore-shop__filters-inner {
		display: none;
		margin-top: 1rem;
	}
	.amore-shop__filters.is-open .amore-shop__filters-inner { display: block; }
}

/* ---------- Print ---------- */

@media print {
	.amore-header, .amore-footer, .amore-cart-drawer, .amore-search-overlay, #amore-age-gate, #amore-mobile-menu, .amore-toasts { display: none !important; }
	body { background: white; color: black; }
}
