/* ELITE GOODS 3D Experience — v1.2.0
   Every rule is scoped under body.eg3d (added by the plugin) so nothing applies when the plugin is off.
   Hidden-until-revealed states only apply under html.eg3d-js, which the script adds when motion is allowed:
   if JavaScript fails or the visitor prefers reduced motion, all content stays visible. */

.eg3d {
	--eg3d-gold: var(--eg-orange, #d6b878);
	--eg3d-gold-hi: #ecd7a3;
	--eg3d-ink: var(--eg-ink, #eef2fb);
	--eg3d-ease: cubic-bezier(.2, .7, .2, 1);
	/* navy-tinted shadows read as real depth on both the light and the dark sections */
	--eg3d-shadow-2: 0 2px 4px rgba(20, 35, 60, .06), 0 30px 54px -26px rgba(20, 35, 60, .42), 0 12px 22px -14px rgba(20, 35, 60, .22), 0 0 0 1px rgba(184, 150, 79, .28);
}

/* ---------- 1. Scroll reveal ---------- */
.eg3d-js .eg3d .eg3d-rv {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
}
.eg3d-js .eg3d .eg3d-rv.is-in {
	opacity: 1;
	transform: none;
	transition: opacity .8s var(--eg3d-ease), transform .9s var(--eg3d-ease);
	transition-delay: var(--eg3d-d, 0ms);
}
/* the tilt layer takes over transform once revealed */
.eg3d-js .eg3d .eg3d-rv.is-in.eg3d-tilt { transition-delay: 0ms; }

/* ---------- 2. Page-hero entrance (cover blocks at the top of every page) ---------- */
@keyframes eg3dRise {
	from { opacity: .01; transform: translate3d(0, 22px, 0); }
	to   { opacity: 1;   transform: none; }
}
/* Pure CSS so it plays on first paint and always ends fully visible, even if JavaScript never runs. */
@media (prefers-reduced-motion: no-preference) {
	.eg3d .entry-content > .wp-block-cover:first-child .wp-block-cover__inner-container > * {
		animation: eg3dRise .9s var(--eg3d-ease) both;
		animation-delay: 80ms;
	}
	.eg3d .entry-content > .wp-block-cover:first-child .wp-block-cover__inner-container > :nth-child(2) { animation-delay: 170ms; }
	.eg3d .entry-content > .wp-block-cover:first-child .wp-block-cover__inner-container > :nth-child(3) { animation-delay: 260ms; }
	.eg3d .entry-content > .wp-block-cover:first-child .wp-block-cover__inner-container > :nth-child(4) { animation-delay: 350ms; }
	.eg3d .entry-content > .wp-block-cover:first-child .wp-block-cover__inner-container > :nth-child(n+5) { animation-delay: 440ms; }
}

/* ---------- 3. Home hero: depth, light and the 3D monogram ---------- */
.eg3d-home .eg-home-hero {
	perspective: 1200px;
	overflow: hidden;
	isolation: isolate;
}
.eg3d-home .eg-home-hero .wp-block-cover__image-background {
	transform: translate3d(calc(var(--eg3d-px, 0) * -14px), calc(var(--eg3d-py, 0) * -10px + var(--eg3d-sy, 0px)), 0) scale(1.08);
	transition: transform .6s var(--eg3d-ease);
	will-change: transform;
}
.eg3d-home .eg-home-hero .wp-block-cover__inner-container {
	transform: translate3d(calc(var(--eg3d-px, 0) * 6px), calc(var(--eg3d-py, 0) * 4px), 0);
	transition: transform .6s var(--eg3d-ease);
}
.eg3d-home .eg-home-hero .wp-block-cover__inner-container { z-index: 2; }
.eg3d-home .eg-home-hero.eg3d-offscreen .eg3d-mono-rig,
.eg3d-home .eg-home-hero.eg3d-offscreen .eg3d-emblem,
.eg3d-home .eg-home-hero.eg3d-offscreen .eg3d-emblem-floor,
.eg3d-home .eg-home-hero.eg3d-offscreen .eg3d-emblem-glow { animation-play-state: paused; }

/* Composed emblem stage: soft gold glow, floating emblem, shadow on the "floor".
   Sized and placed like the design's own background (right 7%, min(30vw, 420px)),
   but lifted so it sits beside the headline instead of being cut off on shorter screens. */
.eg3d-emblem-wrap {
	position: absolute;
	z-index: 1;
	right: 7%;
	top: clamp(230px, 40%, 340px);
	width: min(30vw, 420px);
	aspect-ratio: 1;
	translate: 0 -50%;
	pointer-events: none;
	transform: translate3d(calc(var(--eg3d-px, 0) * -16px), calc(var(--eg3d-py, 0) * -10px + var(--eg3d-sy, 0px) * -0.45), 0);
	transition: transform .8s var(--eg3d-ease);
}
.eg3d-emblem {
	position: absolute;
	inset: 0;
	background: center / contain no-repeat;
	filter: drop-shadow(0 22px 26px rgba(20, 35, 60, .16));
	animation: eg3dFloat 7s ease-in-out infinite alternate;
}
.eg3d-emblem-glow {
	position: absolute;
	inset: -18%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(214, 184, 120, .30), rgba(214, 184, 120, .10) 55%, transparent 75%);
	animation: eg3dGlow 7s ease-in-out infinite alternate;
}
.eg3d-emblem-floor {
	position: absolute;
	left: 22%;
	right: 22%;
	bottom: -9%;
	height: 9%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(20, 35, 60, .30), transparent);
	filter: blur(4px);
	animation: eg3dFloor 7s ease-in-out infinite alternate;
}
@keyframes eg3dGlow  { from { opacity: .75; } to { opacity: 1; } }
@keyframes eg3dFloor { from { transform: scaleX(.86); opacity: .55; } to { transform: scaleX(1); opacity: .9; } }

/* 3D EG monogram — decorative, built from the brand logo, never clickable */
.eg3d-mono {
	display: none;
	position: absolute;
	z-index: 1;
	right: max(4vw, calc((100vw - 1160px) / 2 - 20px));
	top: 50%;
	width: 300px;
	height: 300px;
	margin-top: -150px;
	pointer-events: none;
	perspective: 900px;
}
@media (min-width: 1100px) {
	.eg3d-js .eg3d-home .eg3d-mono { display: block; }
}
.eg3d-mono-rig {
	position: relative;
	width: 100%;
	height: 100%;
	transform-style: preserve-3d;
	transform: rotateX(calc(12deg + var(--eg3d-py, 0) * -14deg)) rotateY(calc(-22deg + var(--eg3d-px, 0) * 22deg));
	transition: transform .7s var(--eg3d-ease);
	animation: eg3dFloat 7s ease-in-out infinite alternate;
}
@keyframes eg3dFloat {
	from { translate: 0 -8px; }
	to   { translate: 0 10px; }
}
.eg3d-mono-l {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
}
.eg3d-mono-l svg { width: 100%; height: 100%; overflow: visible; }
.eg3d-mono-l.l1 { transform: translateZ(-40px); opacity: .35; }
.eg3d-mono-l.l2 { transform: translateZ(0); }
.eg3d-mono-l.l3 { transform: translateZ(46px) scale(.8); }
.eg3d-mono-l.l4 { transform: translateZ(84px); }
.eg3d-mono-l.l1 svg, .eg3d-mono-l.l2 svg, .eg3d-mono-l.l3 svg {
	filter: drop-shadow(0 0 10px rgba(214, 184, 120, .28));
}
.eg3d-mono-eg {
	font-family: "Cormorant Garamond", "Times New Roman", serif;
	font-weight: 700;
	font-size: 92px;
	letter-spacing: .02em;
	line-height: 1;
	color: var(--eg3d-gold-hi);
	text-shadow: 0 0 22px rgba(214, 184, 120, .35), 0 18px 30px rgba(0, 0, 0, .55);
}
.eg3d-mono-shadow {
	position: absolute;
	left: 18%;
	right: 18%;
	bottom: -38px;
	height: 26px;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(0, 0, 0, .55), transparent);
	filter: blur(6px);
}

/* ---------- 4. Header ---------- */
.eg3d #masthead .ast-primary-header-bar {
	transition: box-shadow .45s var(--eg3d-ease), background-color .45s var(--eg3d-ease);
}
.eg3d-scrolled .eg3d #masthead .ast-primary-header-bar {
	box-shadow: 0 1px 0 rgba(184, 150, 79, .28), 0 14px 32px -18px rgba(20, 35, 60, .38);
}
.eg3d #masthead .custom-logo-link img {
	transition: transform .45s var(--eg3d-ease), filter .45s var(--eg3d-ease);
	transform-origin: left center;
}
@media (min-width: 922px) {
	.eg3d-scrolled .eg3d #ast-desktop-header .custom-logo-link img { transform: scale(.9); }
}
.eg3d .main-header-menu > .menu-item > .menu-link {
	transition: color .3s var(--eg3d-ease), transform .3s var(--eg3d-ease);
}
@media (hover: hover) {
	.eg3d .main-header-menu > .menu-item > .menu-link:hover { transform: translateY(-1px); }
}
/* mobile menu: fade and drop in, items staggered */
@keyframes eg3dDrop {
	from { opacity: 0; transform: translate3d(0, -10px, 0); }
	to   { opacity: 1; transform: none; }
}
.eg3d-js .eg3d .ast-mobile-header-content[style*="block"],
.eg3d-js .eg3d.ast-main-header-nav-open .ast-mobile-header-content {
	animation: eg3dDrop .35s var(--eg3d-ease) both;
}
.eg3d-js .eg3d.ast-main-header-nav-open .ast-mobile-header-content .menu-item {
	animation: eg3dDrop .4s var(--eg3d-ease) both;
	animation-delay: calc(var(--eg3d-i, 0) * 45ms + 60ms);
}

/* ---------- 5. Buttons ---------- */
.eg3d .wp-block-button__link,
.eg3d .ast-custom-button,
.eg3d.woocommerce a.button,
.eg3d .woocommerce a.button,
.eg3d .wpforms-submit {
	position: relative;
	overflow: hidden;
	transform: translateZ(0);
	transition: transform .35s var(--eg3d-ease), box-shadow .35s var(--eg3d-ease), background-color .3s, color .3s, border-color .3s !important;
}
@media (hover: hover) {
	.eg3d .wp-block-button__link:hover,
	.eg3d .ast-custom-button:hover,
	.eg3d.woocommerce a.button:hover,
	.eg3d .woocommerce a.button:hover,
	.eg3d .wpforms-submit:hover {
		transform: translate3d(0, -2px, 0);
		box-shadow: 0 1px 2px rgba(20, 35, 60, .06), 0 24px 48px rgba(20, 35, 60, .08);
	}
}
.eg3d .wp-block-button__link:active,
.eg3d .ast-custom-button:active,
.eg3d .woocommerce a.button:active,
.eg3d .wpforms-submit:active {
	transform: translate3d(0, 0, 0) scale(.98);
	transition-duration: .08s !important;
}
/* ---------- 6. Keyboard focus (always on, even with reduced motion) ---------- */
.eg3d a:focus-visible,
.eg3d button:focus-visible,
.eg3d summary:focus-visible,
.eg3d .wp-block-button__link:focus-visible,
.eg3d .ast-custom-button:focus-visible,
.eg3d input:focus-visible,
.eg3d select:focus-visible,
.eg3d textarea:focus-visible {
	outline: 2px solid var(--eg3d-gold) !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 6px rgba(214, 184, 120, .18) !important;
}

/* ---------- 7. 3D tilt cards ---------- */
.eg3d .eg3d-tilt {
	position: relative;
	transform: perspective(900px) rotateX(var(--eg3d-rx, 0deg)) rotateY(var(--eg3d-ry, 0deg)) translate3d(0, var(--eg3d-lift, 0px), 0);
	transform-style: preserve-3d;
	transition: transform .55s var(--eg3d-ease), box-shadow .55s var(--eg3d-ease);
}
.eg3d .eg3d-tilt.is-active {
	--eg3d-lift: -6px;
	box-shadow: var(--eg3d-shadow-2);
	transition: transform .12s linear, box-shadow .45s var(--eg3d-ease);
}
.eg3d .eg3d-glare {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	z-index: 3;
	opacity: 0;
	background: radial-gradient(420px circle at var(--eg3d-mx, 50%) var(--eg3d-my, 50%), rgba(236, 215, 163, .16), transparent 45%);
	transition: opacity .45s var(--eg3d-ease);
}
.eg3d .eg3d-tilt.is-active .eg3d-glare { opacity: 1; }
/* images inside cards ease forward a little */
.eg3d .eg3d-tilt img {
	transition: transform .8s var(--eg3d-ease);
}
@media (hover: hover) {
	.eg3d .eg3d-tilt.is-active img { transform: scale(1.045); }
}
.eg3d .eg-card .wp-block-image,
.eg3d li.product .woocommerce-LoopProduct-link { overflow: hidden; display: block; }
/* touch feedback */
@media (hover: none) {
	.eg3d .eg3d-tilt:active { transform: scale(.985); transition-duration: .12s; }
}

/* ---------- 8. Section depth ---------- */
.eg3d .site-footer { position: relative; }
.eg3d .site-footer::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 1px;
	pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(214, 184, 120, .55), transparent);
}

/* ==========================================================================
   v1.2 DESIGN LAYER (preview with the rest of the plugin)
   ========================================================================== */

/* ---------- A. Design system v1.4: tokens and typography (Cormorant Garamond + Inter) ---------- */
.eg3d {
	--eg-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--eg-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--eg-mono: var(--eg-body);
	--eg-hand: var(--eg-display);
	--eg-muted: #5B6573;
	--eg3d-navy: #14233C;
	--eg3d-midnight: #0D1626;
	--eg3d-gold: #B08D57;
	--eg3d-gold-pale: #D9C3A0;
	--eg3d-ivory: #F6F3EE;
	--eg3d-linen: #EFE9E0;
	--eg3d-hair: #E3DCD0;
	--eg3d-ink: #0E1116;
	--eg3d-text: rgba(14, 17, 22, .84);
	--eg3d-shadow: 0 1px 2px rgba(20, 35, 60, .06), 0 24px 48px rgba(20, 35, 60, .08);
}
/* Serif display headings: light weight, large, gently tracked */
html body.eg3d h1,
html body.eg3d h2,
html body.eg3d .entry-content h1,
html body.eg3d .entry-content h2,
html body.eg3d .woocommerce-products-header__title,
html body.eg3d .product_title,
html body.eg3d .eg-kalam {
	font-family: var(--eg-display) !important;
	font-weight: 500 !important;
	letter-spacing: -0.01em !important;
	color: var(--eg3d-navy) !important;
}
html body.eg3d h1,
html body.eg3d .entry-content h1,
html body.eg3d .product_title,
html body.eg3d .woocommerce-products-header__title { font-size: clamp(2.375rem, 1.5rem + 2.8vw, 3.5rem) !important; line-height: 1.1 !important; }
html body.eg3d .eg-home-hero h1 { font-size: clamp(2.75rem, 1.4rem + 4.4vw, 4.5rem) !important; line-height: 1.05 !important; font-weight: 400 !important; }
html body.eg3d h2,
html body.eg3d .entry-content h2 { font-size: clamp(1.875rem, 1.4rem + 1.5vw, 2.5rem) !important; line-height: 1.15 !important; }
/* Small headings stay in Inter for clarity */
html body.eg3d h3,
html body.eg3d h4,
html body.eg3d h5,
html body.eg3d h6,
html body.eg3d .entry-content h3,
html body.eg3d .entry-content h4 {
	font-family: var(--eg-body) !important;
	font-weight: 600 !important;
	font-size: clamp(1.125rem, 1.05rem + .25vw, 1.25rem) !important;
	line-height: 1.3 !important;
	letter-spacing: -0.005em !important;
	color: var(--eg3d-navy) !important;
}
/* Product names read as serif titles */
html body.eg3d .woocommerce ul.products li.product .woocommerce-loop-product__title,
html body.eg3d.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--eg-display) !important;
	font-weight: 500 !important;
	font-size: 1.375rem !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
}
/* FAQ questions in the serif */
html body.eg3d .entry-content .wp-block-details summary {
	font-family: var(--eg-display) !important;
	font-weight: 500 !important;
	font-size: 1.375rem !important;
	letter-spacing: 0 !important;
}
/* Gold restraint: the accented headline words are italic navy, not gold */
html body.eg3d .eg-accent { color: inherit !important; -webkit-text-fill-color: currentColor; font-style: italic; }
/* Former handwritten lines become serif italic */
html body.eg3d .eg-kalam { font-style: italic; }
html body.eg3d .eg-signature { font-family: var(--eg-display) !important; font-style: italic; font-weight: 500 !important; font-size: 1.375rem !important; color: var(--eg-muted) !important; }
/* Body copy: ink at 84%, comfortable measure */
html body.eg3d .entry-content p,
html body.eg3d .entry-content li { color: var(--eg3d-text); font-size: clamp(1rem, .97rem + .15vw, 1.0625rem); line-height: 1.65; }
html body.eg3d .entry-content .eg-lead,
html body.eg3d .entry-content p.eg-lead { color: var(--eg-muted) !important; font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem) !important; line-height: 1.6 !important; }
/* Eyebrows: small caps label in slate (pale gold is too faint to read at 12px) */
html body.eg3d .eg-eyebrow,
html body.eg3d .wp-block-cover p.eg-eyebrow,
html body.eg3d .eg-on-dark p.eg-eyebrow {
	font-family: var(--eg-body) !important;
	font-weight: 600 !important;
	font-size: 12px !important;
	letter-spacing: .18em !important;
	color: var(--eg-muted) !important;
}

/* ---------- A2. Buttons ---------- */
html body.eg3d .wp-block-button__link,
html body.eg3d .eg3d-btn,
html body.eg3d .woocommerce a.button,
html body.eg3d.woocommerce a.button,
html body.eg3d .wpforms-container .wpforms-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px !important;
	border-radius: 999px !important;
	font-family: var(--eg-body) !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	letter-spacing: .01em !important;
	line-height: 1 !important;
	text-decoration: none !important;
	text-transform: none !important;
	box-shadow: none;
}
html body.eg3d .eg3d-btn--primary,
html body.eg3d .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
html body.eg3d .woocommerce a.button,
html body.eg3d.woocommerce a.button,
html body.eg3d .wpforms-container .wpforms-submit {
	background: var(--eg3d-navy) !important;
	color: var(--eg3d-ivory) !important;
	border: 1px solid var(--eg3d-navy) !important;
}
html body.eg3d .is-style-outline > .wp-block-button__link {
	background: transparent !important;
	color: var(--eg3d-navy) !important;
	border: 1px solid var(--eg3d-hair) !important;
}
@media (hover: hover) {
	html body.eg3d .eg3d-btn--primary:hover,
	html body.eg3d .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover,
	html body.eg3d .woocommerce a.button:hover,
	html body.eg3d.woocommerce a.button:hover,
	html body.eg3d .wpforms-container .wpforms-submit:hover {
		background: var(--eg3d-midnight) !important;
		border-color: var(--eg3d-midnight) !important;
		transform: translate3d(0, -2px, 0);
		box-shadow: var(--eg3d-shadow);
	}
	html body.eg3d .is-style-outline > .wp-block-button__link:hover { background: #fff !important; border-color: var(--eg3d-navy) !important; }
}
html body.eg3d .eg3d-btn { transition: transform .4s var(--eg3d-ease), box-shadow .4s var(--eg3d-ease), background-color .3s, border-color .3s; }
/* Shop card buttons are a little smaller */
html body.eg3d ul.products li.product .button { min-height: 44px; padding: 0 22px !important; font-size: 14px !important; margin-top: 10px; }
/* Tertiary text link with a gold rule drawing in from the left */
html body.eg3d .eg3d-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	color: var(--eg3d-navy) !important;
	font-family: var(--eg-body);
	font-weight: 600;
	font-size: 15px;
	text-decoration: none !important;
	background: linear-gradient(var(--eg3d-gold), var(--eg3d-gold)) left calc(100% - 8px) / 0 1px no-repeat;
	transition: background-size .4s var(--eg3d-ease);
}
html body.eg3d .eg3d-link:hover,
html body.eg3d .eg3d-link:focus-visible { background-size: 100% 1px; }

/* ---------- B. Calmer backgrounds, even section rhythm ---------- */
html body.eg3d,
html body.eg3d.ast-plain-container { background-image: none !important; }
/* v1.5: the graph-paper grid that sat behind the shelf is gone; see section O */
.eg3d .entry-content > .wp-block-group.alignfull {
	padding-top: clamp(72px, 8vw, 112px) !important;
	padding-bottom: clamp(72px, 8vw, 112px) !important;
}

/* ---------- C. Studio product imagery: every photo on the same warm backdrop ---------- */
.eg3d {
	--eg3d-studio: #F3EEE6;
}
.eg3d ul.products li.product a img,
.eg3d .eg-cf-img img,
.eg3d.single-product .woocommerce-product-gallery__image img {
	background: var(--eg3d-studio);
	mix-blend-mode: multiply;           /* white photo backgrounds become the warm studio tone */
	object-fit: contain !important;
	aspect-ratio: 1 / 1;
	padding: 9%;
	box-sizing: border-box;
}
.eg3d ul.products li.product .woocommerce-LoopProduct-link,
.eg3d .eg-cf-img,
.eg3d.single-product .woocommerce-product-gallery__image {
	background: var(--eg3d-studio);
	isolation: isolate;
}
/* scene photos on the Categories page share one gentle colour grade */
.eg3d .eg-card .wp-block-image img,
.eg3d .eg-cat .wp-block-image img { filter: saturate(.88) sepia(.06) contrast(1.02); }

/* ---------- D. Category icons on About ---------- */
.eg3d .eg3d-icon {
	display: inline-grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: 18px;
	border-radius: 14px;
	color: var(--eg-gold-text, #8A6A38);
	background: linear-gradient(145deg, #FBF8F2, #F1EADD);
	box-shadow: inset 0 0 0 1px rgba(176, 141, 87, .28), 0 8px 18px -12px rgba(20, 35, 60, .35);
	transform: translateZ(24px);
}
.eg3d .eg3d-icon svg { width: 26px; height: 26px; }

/* ---------- F. Menu: one gold line that glides between items ---------- */
.eg3d #ast-desktop-header .main-header-menu { position: relative; }
.eg3d .eg3d-ink {
	position: absolute;
	left: 0;
	bottom: 18%;
	height: 2px;
	width: 0;
	border-radius: 2px;
	background: var(--eg-orange, #B08D57);
	opacity: 0;
	pointer-events: none;
	transition: transform .45s var(--eg3d-ease), width .45s var(--eg3d-ease), opacity .25s;
}
.eg3d-ink-ready .eg3d #ast-desktop-header .main-header-menu > .menu-item > .menu-link {
	border-bottom-color: transparent !important;
	box-shadow: none !important;
	background-image: none !important;
}
.eg3d-ink-ready .eg3d #ast-desktop-header .main-header-menu > .menu-item > .menu-link::after { opacity: 0 !important; }

/* ---------- G. Magnetic buttons ---------- */
.eg3d .ast-custom-button,
.eg3d .eg-home-hero .wp-block-button__link { transition-property: transform, box-shadow, translate, background-color, color, border-color !important; }

/* ---------- H. Soft crossfade between pages (Chrome, Edge, Safari 18+) ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root),
::view-transition-new(root) { animation-duration: .28s; animation-timing-function: ease; }

/* ---------- N. Notify dialog v1.4.2: product name travels in a field the visitor never sees; form sits flat in the dialog ---------- */
html body.eg3d .eg3d-dialog .eg3d-product-field { display: none !important; }
html body.eg3d .eg3d-dialog .wpforms-container { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 0 8px !important; }
html body.eg3d .eg3d-dialog .wpforms-container::before,
html body.eg3d .eg3d-dialog .wpforms-container::after { display: none !important; }

/* ---------- O. Home redesign v1.5: a showroom after hours ---------- */
/* Shared frame: 1160px content, 120/72px section rhythm, hairlines instead of boxes */
html body.eg3d .eg3d-sec { padding: clamp(72px, 9vw, 120px) 0 !important; margin: 0 !important; position: relative; }
/* same side margins as the hero copy (52px desktop, 24px phones); the theme strips max-width inside full-width blocks, hence !important */
html body.eg3d .entry-content .eg3d-wrap { max-width: 1440px !important; margin: 0 auto !important; padding: 0 clamp(24px, 4.1vw, 52px) !important; box-sizing: border-box !important; }
html body.eg3d .entry-content .eg3d-narrow { max-width: 720px !important; }
html body.eg3d .eg3d-narrow { text-align: center; }
html body.eg3d .eg3d-split { display: grid; grid-template-columns: 4fr 6fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
html body.eg3d .eg3d-split--wide { grid-template-columns: 6fr 4fr; align-items: center; }
html body.eg3d .eg3d-sec h2 { margin: 14px 0 20px !important; }
html body.eg3d .eg3d-sec .eg-eyebrow { margin: 0 !important; text-transform: uppercase; }
html body.eg3d .entry-content .eg3d-sec p.eg3d-lead { color: var(--eg-muted); font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.6; margin: 0; max-width: 34em; }
html body.eg3d .entry-content .eg3d-sec p.eg3d-body { margin: 0; max-width: 36em; }
html body.eg3d .eg3d-num { font-family: var(--eg-display); font-size: 1.25rem; font-weight: 500; color: var(--eg3d-gold); font-variant-numeric: lining-nums; letter-spacing: .02em; }
html body.eg3d .eg3d-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: 36px; }

/* Hero: a hairline that draws under it once, separating the showroom from the shelf */
html body.eg3d .eg-home-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--eg3d-hair); transform-origin: left center; z-index: 2; pointer-events: none; }
html.eg3d-js body.eg3d .eg-home-hero::after { animation: eg3dDraw 1.2s var(--eg3d-ease) .9s both; }
@keyframes eg3dDraw { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* 2. Categories: editorial index, preview tile on the left */
html body.eg3d .eg3d-cats { background: var(--eg3d-ivory); }
html body.eg3d .eg3d-sticky { position: sticky; top: 120px; }
html body.eg3d .eg3d-cats__preview { position: relative; margin-top: 40px; aspect-ratio: 16 / 10; border-radius: 4px; overflow: hidden; background: var(--eg3d-studio); box-shadow: var(--eg3d-shadow); }
html body.eg3d .eg3d-cats__preview img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.03); transition: opacity .5s var(--eg3d-ease), transform .9s var(--eg3d-ease); }
html body.eg3d .eg3d-cats__preview img.is-on { opacity: 1; transform: none; }
html body.eg3d .eg3d-cats__list { list-style: none; margin: 0 !important; padding: 0 !important; counter-reset: none; }
html body.eg3d .eg3d-cats__list li { margin: 0 !important; padding: 0 !important; }
html body.eg3d .eg3d-cats__row { position: relative; display: grid; grid-template-columns: 56px 1fr 32px; align-items: center; gap: 0 20px; padding: 40px 0; color: inherit !important; text-decoration: none !important; }
html body.eg3d .eg3d-cats__row::before,
html body.eg3d .eg3d-fact::before,
html body.eg3d .eg3d-commit__item::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--eg3d-hair); transform-origin: left center; transition: transform 1s var(--eg3d-ease); }
html body.eg3d .eg3d-cats__list li:last-child .eg3d-cats__row { box-shadow: 0 1px 0 var(--eg3d-hair); }
html body.eg3d .eg3d-cats__thumb { display: none; }
html body.eg3d .eg3d-cats__text { display: flex; flex-direction: column; gap: 6px; }
html body.eg3d .eg3d-cats__name { font-family: var(--eg-display); font-weight: 500; font-size: clamp(1.625rem, 1.3rem + 1vw, 2rem); line-height: 1.15; color: var(--eg3d-navy); transition: transform .4s var(--eg3d-ease); }
html body.eg3d .eg3d-cats__desc { font-size: 15px; line-height: 1.55; color: var(--eg-muted); }
html body.eg3d .eg3d-cats__arrow { justify-self: end; color: var(--eg3d-navy); font-size: 20px; opacity: .35; transition: transform .4s var(--eg3d-ease), opacity .4s var(--eg3d-ease); }
html body.eg3d .eg3d-cats__row:hover .eg3d-cats__arrow,
html body.eg3d .eg3d-cats__row:focus-visible .eg3d-cats__arrow,
html body.eg3d .eg3d-cats__row.is-on .eg3d-cats__arrow { opacity: 1; transform: translateX(6px); }
html body.eg3d .eg3d-cats__row:hover .eg3d-cats__name,
html body.eg3d .eg3d-cats__row:focus-visible .eg3d-cats__name { transform: translateX(4px); }
html body.eg3d .eg3d-cats__row:focus-visible { outline: 2px solid var(--eg3d-navy); outline-offset: 4px; }

/* 3. The shelf: flat linen, depth of field on the side cards, disclaimer as a caption */
/* beats the Customizer rule that makes dark-coloured groups transparent */
html body.eg3d.eg3d-home .entry-content .eg-picks-sec.alignfull { background-color: var(--eg3d-linen) !important; background-image: none !important; }
html body.eg3d .eg-cf-hint { display: none !important; }
html body.eg3d .eg-cf-card { transition-property: transform, opacity, filter; }
html body.eg3d .eg-cf-card:not(.is-active) { filter: blur(1.5px) saturate(.9); }
html body.eg3d .entry-content p.eg3d-caption { margin: 28px auto 0 !important; max-width: 620px; text-align: center; font-size: 13px; line-height: 1.5; color: var(--eg-muted); }

/* 4. Our standard: statement left, three facts on hairlines right */
html body.eg3d .eg3d-standard { background: var(--eg3d-ivory); }
html body.eg3d .entry-content .eg3d-standard h2 { max-width: 12em; font-size: clamp(2.25rem, 1.6rem + 2vw, 3.25rem) !important; line-height: 1.08 !important; font-weight: 400 !important; }
html body.eg3d .eg3d-facts { margin: 0 !important; }
html body.eg3d .eg3d-fact { position: relative; padding: 22px 0; }
html body.eg3d .eg3d-fact:last-child { box-shadow: 0 1px 0 var(--eg3d-hair); }
html body.eg3d .eg3d-fact dt { font-family: var(--eg-body); font-weight: 600; font-size: 15px; color: var(--eg3d-navy); margin: 0 0 4px; }
html body.eg3d .eg3d-fact dd { margin: 0; font-size: 15px; line-height: 1.55; color: var(--eg-muted); }

/* 5. For brands: the page's one dark moment */
/* one warm light from the upper left, the same direction as the hero's emblem */
html body.eg3d .eg3d-brands { background: radial-gradient(90% 120% at 0% 0%, rgba(176, 141, 87, .10), rgba(176, 141, 87, 0) 55%), var(--eg3d-midnight); color: rgba(246, 243, 238, .82); }
html body.eg3d .entry-content .eg3d-brands h2,
html body.eg3d .entry-content .eg3d-brands h3 { color: var(--eg3d-ivory) !important; }
html body.eg3d .eg3d-brands .eg-eyebrow { color: var(--eg3d-gold-pale) !important; }
html body.eg3d .entry-content .eg3d-brands p,
html body.eg3d .entry-content .eg3d-brands p.eg3d-lead { color: rgba(246, 243, 238, .72) !important; }
html body.eg3d .eg3d-commit { list-style: none; margin: 0 !important; padding: 0 !important; }
html body.eg3d .eg3d-commit__item { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 0 20px; padding: 28px 0 !important; margin: 0 !important; }
html body.eg3d .eg3d-commit__item::before { background: rgba(246, 243, 238, .14); }
html body.eg3d .eg3d-commit__item h3 { margin: 0 0 6px !important; }
html body.eg3d .eg3d-commit__item p { margin: 0 !important; font-size: 15px !important; line-height: 1.6 !important; }
html body.eg3d .eg3d-brands .eg3d-num { color: var(--eg3d-gold-pale); }
html body.eg3d .eg3d-btn--light { background: transparent !important; color: var(--eg3d-ivory) !important; border: 1px solid rgba(246, 243, 238, .55) !important; }
@media (hover: hover) {
	html body.eg3d .eg3d-btn--light:hover { background: var(--eg3d-ivory) !important; color: var(--eg3d-navy) !important; border-color: var(--eg3d-ivory) !important; transform: translate3d(0, -2px, 0); }
}
html body.eg3d .eg3d-link--light { color: var(--eg3d-ivory) !important; background-image: linear-gradient(var(--eg3d-gold-pale), var(--eg3d-gold-pale)); }
html body.eg3d .eg3d-brands :focus-visible { outline: 2px solid var(--eg3d-gold-pale); outline-offset: 4px; }

/* 6. Closing: the page ends on an action */
html body.eg3d .eg3d-close { background: var(--eg3d-ivory); }
html body.eg3d .eg3d-close__mark { display: block; width: 64px; height: 64px; margin: 0 auto 8px; }
/* one photographic world: a slight warm grade so mixed stock photos sit in the same light */
html body.eg3d .eg3d-cats__preview img,
html body.eg3d .eg3d-cats__thumb { filter: sepia(.1) saturate(.9) contrast(.97) brightness(1.03); }
html body.eg3d .entry-content .eg3d-close p.eg3d-body { margin: 0 auto 32px; color: var(--eg-muted); }

/* Hairlines draw in as their row arrives (only when motion is allowed) */
html.eg3d-js body.eg3d .eg3d-rv.eg3d-cats__row::before,
html.eg3d-js body.eg3d .eg3d-rv.eg3d-fact::before,
html.eg3d-js body.eg3d .eg3d-rv.eg3d-commit__item::before { transform: scaleX(0); }
html.eg3d-js body.eg3d .eg3d-rv.is-in.eg3d-cats__row::before,
html.eg3d-js body.eg3d .eg3d-rv.is-in.eg3d-fact::before,
html.eg3d-js body.eg3d .eg3d-rv.is-in.eg3d-commit__item::before { transform: scaleX(1); transition-delay: var(--eg3d-d, 0ms); }

/* Phones and tablets */
@media (max-width: 921px) {
	html body.eg3d .eg3d-split,
	html body.eg3d .eg3d-split--wide { grid-template-columns: 1fr; gap: 40px; }
	html body.eg3d .eg3d-sticky { position: static; }
	html body.eg3d .eg3d-cats__preview { display: none; }
	html body.eg3d .eg3d-cats__row { grid-template-columns: 64px 1fr 24px; gap: 0 16px; padding: 22px 0; }
	html body.eg3d .eg3d-cats__row .eg3d-num { display: none; }
	html body.eg3d .eg3d-cats__thumb { display: block; width: 64px; height: 64px; border-radius: 4px; object-fit: cover; background: var(--eg3d-studio); }
	html body.eg3d .eg3d-cats__name { font-size: 1.5rem; }
	html body.eg3d .eg3d-actions { flex-direction: column; align-items: stretch; }
	html body.eg3d .eg3d-actions .eg3d-link { justify-content: center; }
	html body.eg3d .eg3d-commit__item { grid-template-columns: 40px 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	html:not(.eg3d-force) body.eg3d .eg-home-hero::after { animation: none !important; }
	html:not(.eg3d-force) body.eg3d .eg3d-cats__preview img,
	html:not(.eg3d-force) body.eg3d .eg3d-cats__name,
	html:not(.eg3d-force) body.eg3d .eg3d-cats__arrow { transition: none !important; }
}

/* ---------- P. v1.6: signature 3D emblem, first-visit mark, finer detail ---------- */
/* The real-time emblem replaces the image layer once it has its first frame; glow and flat floor shadow retire */
html body.eg3d .eg3d-emblem-wrap { opacity: var(--eg3d-dim, 1); }
html body.eg3d .eg3d-emblem-wrap canvas.eg3d-gl { position: absolute; inset: 0; width: 100% !important; height: 100% !important; opacity: 0; display: block; }
html body.eg3d .eg3d-emblem-wrap.is-webgl .eg3d-emblem { opacity: 0; transition: opacity .6s var(--eg3d-ease); animation: none; }
html body.eg3d .eg3d-emblem-wrap.is-webgl .eg3d-emblem-glow,
html body.eg3d .eg3d-emblem-wrap.is-webgl .eg3d-emblem-floor { display: none; }
/* Even without WebGL, the old glow is gone: nothing glows */
html body.eg3d .eg3d-emblem-glow { display: none; }

/* First visit: cream veil while the mark draws; the page fades in after. If the script never runs, the page shows after 1.8s regardless. */
html.eg3d-intro body.eg3d #page { opacity: 0; animation: eg3dIntroSafe 0s 1.8s forwards; }
html.eg3d-intro.eg3d-intro-done body.eg3d #page { opacity: 1; animation: none; transition: opacity .5s var(--eg3d-ease); }
@keyframes eg3dIntroSafe { to { opacity: 1; } }
html body.eg3d .eg3d-intro-veil { position: fixed; inset: 0; z-index: 2147483000; background: var(--eg3d-ivory); display: grid; place-items: center; pointer-events: none; transition: opacity .28s var(--eg3d-ease); }
html body.eg3d .eg3d-intro-veil svg { width: 88px; height: 88px; }
html body.eg3d .eg3d-intro-veil path { fill: none; stroke: var(--eg3d-gold); stroke-width: 2.5; stroke-linejoin: miter; }

/* Header and footer stay put while the content crossfades between pages */
html body.eg3d #masthead { view-transition-name: eg-header; }
html body.eg3d #colophon { view-transition-name: eg-footer; }

/* A short brass rule introduces each section's eyebrow, drawing in as the section arrives */
html body.eg3d .eg3d-sec .eg-eyebrow::before { content: ""; display: inline-block !important; width: 28px; height: 1px; background: var(--eg3d-gold); margin: 0 12px 4px 0; vertical-align: middle; transform-origin: left center; }
html body.eg3d .eg3d-brands .eg-eyebrow::before { background: var(--eg3d-gold-pale); }
html.eg3d-js body.eg3d .eg3d-sec .eg-eyebrow.eg3d-rv::before { transform: scaleX(0); transition: transform .9s var(--eg3d-ease) .15s; }
html.eg3d-js body.eg3d .eg3d-sec .eg-eyebrow.eg3d-rv.is-in::before { transform: scaleX(1); }
/* Brass numerals settle in a beat after their row */
html.eg3d-js body.eg3d .eg3d-rv .eg3d-num { opacity: 0; transform: translateY(10px); transition: opacity .7s var(--eg3d-ease), transform .7s var(--eg3d-ease); transition-delay: calc(var(--eg3d-d, 0ms) + 250ms); }
html.eg3d-js body.eg3d .eg3d-rv.is-in .eg3d-num { opacity: 1; transform: none; }

/* The shelf: a segmented brass progress bar replaces the dots (the buttons stay, with their labels, as 26px-tall targets) */
html body.eg3d .eg-cf-dots { gap: 3px !important; width: min(360px, 70%); margin: 36px auto 0 !important; }
html body.eg3d .eg-cf-dot { flex: 1 1 0; width: auto !important; height: 26px !important; padding: 12px 0 !important; border-radius: 0 !important; background: var(--eg3d-hair) !important; background-clip: content-box !important; transition: background-color .4s var(--eg3d-ease) !important; }
html body.eg3d .eg-cf-dot.is-on { background: var(--eg3d-gold) !important; background-clip: content-box !important; }
html body.eg3d .eg-cf-dot:focus-visible { outline: 2px solid var(--eg3d-navy); outline-offset: 2px; }

/* For brands: the four-step process on one line, with a pale-brass rule that draws across as it enters */
html body.eg3d .eg3d-process-wrap { margin-top: clamp(56px, 7vw, 96px); }
html body.eg3d .eg3d-process { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; list-style: none; margin: 36px 0 0 !important; padding: 30px 0 0 !important; }
html body.eg3d .eg3d-process::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(246, 243, 238, .14); }
html body.eg3d .eg3d-process::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--eg3d-gold-pale); transform-origin: left center; transform: scaleX(1); }
html.eg3d-js body.eg3d .eg3d-process::after { transform: scaleX(0); transition: transform 1.8s var(--eg3d-ease) .2s; }
html.eg3d-js body.eg3d .eg3d-process:has(.is-in)::after { transform: scaleX(1); }
html body.eg3d .eg3d-process__step { position: relative; margin: 0 !important; padding: 0 !important; }
html body.eg3d .eg3d-process__dot { position: absolute; top: -34px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--eg3d-gold-pale); }
html body.eg3d .eg3d-process__step .eg3d-num { display: block; color: var(--eg3d-gold-pale); margin-bottom: 6px; }
html body.eg3d .eg3d-process__step h3 { margin: 0 0 6px !important; }
html body.eg3d .eg3d-process__step p { margin: 0 !important; font-size: 14px !important; line-height: 1.6 !important; }
@media (max-width: 921px) {
	/* stacked: the line and its dots give way to a hairline between steps */
	html body.eg3d .eg3d-process { grid-template-columns: 1fr; gap: 0; padding-top: 0 !important; }
	html body.eg3d .eg3d-process::before,
	html body.eg3d .eg3d-process::after,
	html body.eg3d .eg3d-process__dot { display: none; }
	html body.eg3d .eg3d-process__step { padding: 24px 0 !important; border-top: 1px solid rgba(246, 243, 238, .14); }
	html body.eg3d .eg3d-process__step:last-child { border-bottom: 1px solid rgba(246, 243, 238, .14); }
}
@media (prefers-reduced-motion: reduce) {
	html:not(.eg3d-force) body.eg3d .eg3d-intro-veil { display: none; }
	html:not(.eg3d-force) body.eg3d .eg3d-process::after,
	html:not(.eg3d-force) body.eg3d .eg3d-sec .eg-eyebrow::before,
	html:not(.eg3d-force) body.eg3d .eg3d-rv .eg3d-num { transform: none !important; opacity: 1 !important; transition: none !important; }
}

/* ---------- Q. v1.7: product page breadcrumb and category eyebrow; the brand form's note ---------- */
html body.eg3d.single-product .summary > .woocommerce-breadcrumb { display: none !important; }
html body.eg3d.single-product .summary .single-product-category { display: block; margin: 0 0 12px; font-family: var(--eg-body); font-weight: 600; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--eg-muted); }
html body.eg3d.single-product .summary .single-product-category a { color: inherit !important; text-decoration: none !important; }
/* Product page: a single "Description" tab becomes an editorial Details block; the tab strip (navy on navy) goes. The
   "Category:" meta line repeats the eyebrow above the title, so it goes too. */
html body.eg3d.single-product .woocommerce-tabs ul.tabs:has(li:only-child) { display: none !important; }
html body.eg3d.single-product .woocommerce-tabs ul.tabs li a { color: var(--eg3d-ivory) !important; }
html body.eg3d.single-product .woocommerce-tabs ul.tabs li:not(.active) a { color: var(--eg3d-navy) !important; }
html body.eg3d.single-product .woocommerce-tabs ul.tabs li:not(.active) { background: transparent !important; }
html body.eg3d.single-product .woocommerce-tabs { border-top: 1px solid var(--eg3d-hair); padding-top: 40px; margin-top: 24px; }
html body.eg3d.single-product .woocommerce-tabs .panel:first-of-type::before { content: "Details"; display: block; margin: 0 0 16px; font-family: var(--eg-body); font-weight: 600; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--eg-muted); }
html body.eg3d.single-product .woocommerce-tabs .panel { max-width: 620px; }
html body.eg3d.single-product .woocommerce-tabs .panel p { font-size: clamp(1rem, .97rem + .15vw, 1.0625rem) !important; line-height: 1.65 !important; color: var(--eg3d-text) !important; }
html body.eg3d.single-product .summary .product_meta { display: none !important; }
html body.eg3d .entry-content .wpforms-container .eg3d-form-note,
html body.eg3d .eg3d-form-note { margin: 14px 0 0 !important; font-size: 13px !important; line-height: 1.5 !important; color: var(--eg-muted) !important; }

/* ---------- R. v1.8: product pages v2 (body.eg3d-pdp; Settings > EG 3D Experience > Product pages) ---------- */
/* Layout: the stage at 60%, the summary at 40%; everything after spans the row */
html body.eg3d.eg3d-pdp.single-product .eg3d-pdp-top { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
@media (min-width: 922px) {
	html body.eg3d.eg3d-pdp.single-product .eg3d-pdp-top { grid-template-columns: 6fr 4fr; gap: clamp(32px, 5vw, 80px); }
	html body.eg3d.eg3d-pdp.single-product .eg3d-pdp-top > .woocommerce-product-gallery { float: none !important; width: auto !important; max-width: none !important; margin: 0 !important; position: sticky; top: 108px; }
	html body.eg3d.eg3d-pdp.single-product .eg3d-pdp-top > .summary { float: none !important; width: auto !important; margin: 0 !important; padding-top: 6px; }
}
@media (max-width: 921px) {
	html body.eg3d.eg3d-pdp.single-product .eg3d-pdp-top > .woocommerce-product-gallery,
	html body.eg3d.eg3d-pdp.single-product .eg3d-pdp-top > .summary { float: none !important; width: auto !important; margin: 0 !important; }
}
html body.eg3d.eg3d-pdp.single-product div.product::before,
html body.eg3d.eg3d-pdp.single-product div.product::after { display: none; }

/* The stage: a floating studio tile with a two-layer shadow, a faint floor reflection, a light that follows the pointer,
   and a slight tilt toward it. The photo inside keeps the studio treatment from section C. */
html body.eg3d.eg3d-pdp .woocommerce-product-gallery { perspective: 1600px; --eg3d-mx: 50%; --eg3d-my: 40%; }
html body.eg3d.eg3d-pdp .woocommerce-product-gallery .woocommerce-product-gallery__wrapper { transform: rotateX(var(--eg3d-rx, 0deg)) rotateY(var(--eg3d-ry, 0deg)); transform-style: preserve-3d; transition: transform .7s var(--eg3d-ease); will-change: transform; }
html body.eg3d.eg3d-pdp .woocommerce-product-gallery__image { position: relative; border-radius: 6px; overflow: hidden; box-shadow: var(--eg3d-shadow); -webkit-box-reflect: below 14px linear-gradient(transparent 78%, rgba(0, 0, 0, .16)); }
html body.eg3d.eg3d-pdp .woocommerce-product-gallery__image::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(520px circle at var(--eg3d-mx, 50%) var(--eg3d-my, 40%), rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 60%); mix-blend-mode: soft-light; opacity: var(--eg3d-light, 0); transition: opacity .45s var(--eg3d-ease); }
/* the stage tile follows the photo's 3:2 proportion, with a slimmer frame, so the product fills it */
html body.eg3d.eg3d-pdp.single-product .woocommerce-product-gallery__image img { aspect-ratio: 3 / 2; padding: 5%; }
html body.eg3d.eg3d-pdp .woocommerce-product-gallery__trigger { display: none !important; } /* the emoji magnifier; the image itself opens the lightbox */
html body.eg3d.eg3d-pdp .woocommerce-product-gallery__image a { cursor: zoom-in; display: block; }
html body.eg3d.eg3d-pdp .eg3d-lens { position: absolute; width: 190px; height: 190px; border-radius: 50%; pointer-events: none; opacity: 0; transform: translate(-50%, -50%) scale(.9); transition: opacity .25s var(--eg3d-ease), transform .25s var(--eg3d-ease); background: var(--eg3d-studio) no-repeat; box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 20px 40px -14px rgba(20, 35, 60, .45), 0 0 0 1px rgba(176, 141, 87, .35); z-index: 3; }
html body.eg3d.eg3d-pdp .eg3d-lens.is-on { opacity: 1; transform: translate(-50%, -50%) scale(1); }
html body.eg3d.eg3d-pdp .woocommerce-product-gallery .flex-control-thumbs { margin-top: 36px; gap: 10px; }
html body.eg3d.eg3d-pdp .woocommerce-product-gallery .flex-control-thumbs li { border-radius: 4px; overflow: hidden; background: var(--eg3d-studio); }
html body.eg3d.eg3d-pdp .woocommerce-product-gallery .flex-control-thumbs img { opacity: .55; transition: opacity .3s var(--eg3d-ease); }
html body.eg3d.eg3d-pdp .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
html body.eg3d.eg3d-pdp .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }

/* The summary */
html body.eg3d.eg3d-pdp.single-product .summary { display: grid; grid-template-columns: max-content 1fr; column-gap: 10px; align-items: center; }
html body.eg3d.eg3d-pdp.single-product .summary > * { grid-column: 1 / -1; }
html body.eg3d.eg3d-pdp.single-product .summary > .single-product-category { grid-column: 1; grid-row: 1; margin: 0 0 14px !important; }
html body.eg3d.eg3d-pdp.single-product .summary > .eg3d-chip { grid-column: 2; grid-row: 1; justify-self: start; margin: 0 0 14px; }
html body.eg3d.eg3d-pdp .eg3d-chip { display: inline-block; vertical-align: 1px; padding: 4px 10px; border: 1px solid var(--eg3d-gold-pale); border-radius: 999px; font-family: var(--eg-body); font-weight: 600; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--eg3d-gold); line-height: 1.2; }
html body.eg3d.eg3d-pdp .eg3d-chip--card { position: absolute; top: 14px; left: 14px; z-index: 2; background: rgba(246, 243, 238, .85); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
html body.eg3d.eg3d-pdp ul.products li.product .astra-shop-thumbnail-wrap { position: relative; }
html body.eg3d.eg3d-pdp.single-product .summary .product_title { font-size: clamp(2.25rem, 1.5rem + 2.4vw, 3.25rem) !important; line-height: 1.08 !important; font-weight: 400 !important; margin: 0 0 18px !important; }
html body.eg3d.eg3d-pdp.single-product .summary p.price:empty { display: none; }
html body.eg3d.eg3d-pdp.single-product .summary .woocommerce-product-details__short-description p { font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.6; color: var(--eg-muted); margin: 0 0 8px; }
html body.eg3d.eg3d-pdp .eg3d-glance { margin: 28px 0 0 !important; padding: 0; }
html body.eg3d.eg3d-pdp .eg3d-glance > div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 14px 0; border-top: 1px solid var(--eg3d-hair); }
html body.eg3d.eg3d-pdp .eg3d-glance > div:last-child { border-bottom: 1px solid var(--eg3d-hair); }
html body.eg3d.eg3d-pdp .eg3d-glance dt { font-family: var(--eg-body); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--eg-muted); padding-top: 3px; }
html body.eg3d.eg3d-pdp .eg3d-glance dd { margin: 0; font-size: 15px; line-height: 1.55; color: var(--eg3d-text); }
html body.eg3d.eg3d-pdp .eg3d-glance dd a { color: var(--eg3d-navy) !important; text-decoration: none !important; border-bottom: 1px solid var(--eg3d-gold-pale); }
html body.eg3d.eg3d-pdp.single-product .summary .eg3d-notify-block { margin-top: 28px; border: 0 !important; border-radius: 6px; background: var(--eg3d-linen) !important; padding: 20px 22px !important; }

/* Details, specifications, more in */
html body.eg3d.eg3d-pdp.single-product .woocommerce-tabs { margin-top: clamp(40px, 6vw, 80px) !important; }
html body.eg3d.eg3d-pdp .eg3d-specs { border-top: 1px solid var(--eg3d-hair); padding-top: 40px; margin-top: 40px; max-width: 620px; }
html body.eg3d.eg3d-pdp .eg3d-specs .eg-eyebrow { margin: 0 0 16px !important; }
html body.eg3d.eg3d-pdp .eg3d-specs table.woocommerce-product-attributes { border: 0; margin: 0; }
html body.eg3d.eg3d-pdp .eg3d-specs table.woocommerce-product-attributes th,
html body.eg3d.eg3d-pdp .eg3d-specs table.woocommerce-product-attributes td { border: 0; border-top: 1px solid var(--eg3d-hair); padding: 12px 0; background: transparent !important; font-size: 15px; }
html body.eg3d.eg3d-pdp .eg3d-specs table.woocommerce-product-attributes th { width: 160px; font-family: var(--eg-body); font-weight: 600; color: var(--eg3d-navy); }
html body.eg3d.eg3d-pdp .eg3d-more { border-top: 1px solid var(--eg3d-hair); padding-top: clamp(40px, 6vw, 72px); margin-top: clamp(48px, 7vw, 96px); }
html body.eg3d.eg3d-pdp .eg3d-more__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
html body.eg3d.eg3d-pdp .eg3d-more__head h2 { margin: 10px 0 0 !important; }
html body.eg3d.eg3d-pdp .eg3d-more__head .eg-eyebrow { margin: 0 !important; }
html body.eg3d.eg3d-pdp .eg3d-more ul.products { margin-bottom: 0 !important; }

/* Shop: no breadcrumb, count or sort; category tabs on a hairline instead */
html body.eg3d.eg3d-pdp .woocommerce-breadcrumb,
html body.eg3d.eg3d-pdp .woocommerce-result-count,
html body.eg3d.eg3d-pdp .woocommerce-ordering,
html body.eg3d.eg3d-pdp .ast-shop-toolbar-container { display: none !important; }
html body.eg3d.eg3d-pdp .eg3d-filter { margin: 8px 0 36px; border-bottom: 1px solid var(--eg3d-hair); }
html body.eg3d.eg3d-pdp .eg3d-filter ul { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 0 28px; }
html body.eg3d.eg3d-pdp .eg3d-filter li { margin: 0 !important; padding: 0 !important; }
html body.eg3d.eg3d-pdp .eg3d-filter a { display: inline-flex; align-items: baseline; gap: 6px; padding: 12px 0 14px; margin-bottom: -1px; font-family: var(--eg-body); font-weight: 500; font-size: 15px; color: var(--eg-muted) !important; text-decoration: none !important; border-bottom: 1px solid transparent; transition: color .3s var(--eg3d-ease), border-color .3s var(--eg3d-ease); }
html body.eg3d.eg3d-pdp .eg3d-filter a span { font-family: var(--eg-display); font-size: 15px; color: var(--eg3d-gold); }
html body.eg3d.eg3d-pdp .eg3d-filter a:hover,
html body.eg3d.eg3d-pdp .eg3d-filter a:focus-visible { color: var(--eg3d-navy) !important; }
html body.eg3d.eg3d-pdp .eg3d-filter a[aria-current="page"] { color: var(--eg3d-navy) !important; border-bottom-color: var(--eg3d-gold); }

/* The morph: a product's photo glides from the shop card into the stage on the product page */
::view-transition-group(.eg-product) { animation-duration: .5s; animation-timing-function: cubic-bezier(.2, .7, .2, 1); }
::view-transition-old(.eg-product) { animation: none; opacity: 0; }
::view-transition-new(.eg-product) { animation: none; opacity: 1; }
::view-transition-image-pair(.eg-product) { isolation: auto; }

/* Phones: a slim Notify bar once the main button has scrolled away */
html body.eg3d.eg3d-pdp .eg3d-stickybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(246, 243, 238, .92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 -1px 0 var(--eg3d-hair); transform: translateY(110%); transition: transform .4s var(--eg3d-ease); }
html body.eg3d.eg3d-pdp .eg3d-stickybar.is-on { transform: none; }
html body.eg3d.eg3d-pdp .eg3d-stickybar__name { font-family: var(--eg-display); font-size: 18px; color: var(--eg3d-navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body.eg3d.eg3d-pdp .eg3d-stickybar .eg3d-btn { min-height: 44px; padding: 0 20px !important; font-size: 14px !important; flex: none; }
@media (min-width: 922px) {
	html body.eg3d.eg3d-pdp .eg3d-stickybar { display: none; }
}
@media (max-width: 921px) {
	html body.eg3d.eg3d-pdp .woocommerce-product-gallery__image { -webkit-box-reflect: none; }
	html body.eg3d.eg3d-pdp .eg3d-more__head { flex-direction: column; align-items: flex-start; gap: 12px; }
	/* category tabs scroll sideways on phones instead of wrapping into a stack */
	html body.eg3d.eg3d-pdp .eg3d-filter { margin-left: -24px; margin-right: -24px; padding: 0 24px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	html body.eg3d.eg3d-pdp .eg3d-filter::-webkit-scrollbar { display: none; }
	html body.eg3d.eg3d-pdp .eg3d-filter ul { flex-wrap: nowrap; gap: 0 22px; width: max-content; }
	html body.eg3d.eg3d-pdp .eg3d-filter a { white-space: nowrap; }
	html body.eg3d.eg3d-pdp .eg3d-glance > div { grid-template-columns: 96px 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	html:not(.eg3d-force) body.eg3d.eg3d-pdp .woocommerce-product-gallery .woocommerce-product-gallery__wrapper { transform: none !important; transition: none !important; }
	html:not(.eg3d-force) body.eg3d.eg3d-pdp .woocommerce-product-gallery__image::after { display: none; }
	::view-transition-group(.eg-product) { animation-duration: 0s; }
}

/* ---------- I. Side panels (About › Company at a Glance): fit their content instead of stretching ---------- */
.eg3d .wp-block-column > .eg-panel { height: auto !important; }

/* ---------- J. Header v1.4: no top bar, 88px tall, 64px with a soft blur once scrolled ---------- */
html body.eg3d .ast-above-header-wrap,
html body.eg3d #ast-desktop-header .ast-above-header-wrap { display: none !important; }
@media (min-width: 922px) {
	html body.eg3d #ast-desktop-header .ast-primary-header-bar .site-primary-header-wrap,
	html body.eg3d #ast-desktop-header .ast-primary-header-bar .ast-builder-grid-row {
		min-height: 88px !important;
		transition: min-height .4s var(--eg3d-ease);
	}
	html.eg3d-scrolled body.eg3d #ast-desktop-header .ast-primary-header-bar .site-primary-header-wrap,
	html.eg3d-scrolled body.eg3d #ast-desktop-header .ast-primary-header-bar .ast-builder-grid-row { min-height: 64px !important; }
	/* the logo set the bar's height (82px tall + padding = 115px); cap it so the 88px bar holds.
	   56px tall keeps the full lockup about 225px wide, well above the 120px minimum. */
	html body.eg3d #ast-desktop-header .site-branding { padding-top: 0 !important; padding-bottom: 0 !important; }
	html body.eg3d #ast-desktop-header .custom-logo-link img.custom-logo { height: 56px !important; width: auto !important; max-height: none !important; }
}
@media (max-width: 921px) {
	html body.eg3d #ast-mobile-header .site-branding { padding-top: 0 !important; padding-bottom: 0 !important; }
	html body.eg3d #ast-mobile-header .custom-logo-link img.custom-logo { height: 40px !important; width: auto !important; max-height: none !important; }
}
html body.eg3d #masthead .ast-primary-header-bar { background-color: #fff; }
html.eg3d-scrolled body.eg3d #masthead .ast-primary-header-bar {
	background-color: rgba(255, 255, 255, .6) !important;
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	box-shadow: 0 1px 0 var(--eg3d-hair) !important;
}
html body.eg3d #ast-desktop-header .main-header-menu > .menu-item > .menu-link {
	font-family: var(--eg-body) !important;
	font-weight: 500 !important;
	font-size: 15px !important;
	letter-spacing: .01em !important;
	color: var(--eg3d-navy) !important;
}
/* Contact Us: outlined navy pill that fills on hover */
html body.eg3d .ast-header-button-1 .ast-custom-button {
	background: transparent !important;
	color: var(--eg3d-navy) !important;
	border: 1px solid var(--eg3d-navy) !important;
	border-radius: 999px !important;
	padding: 12px 24px !important;
	font-family: var(--eg-body) !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	letter-spacing: .01em !important;
	box-shadow: none !important;
}
@media (hover: hover) {
	html body.eg3d .ast-header-button-1 .ast-custom-button:hover {
		background: var(--eg3d-navy) !important;
		color: var(--eg3d-ivory) !important;
		transform: translate3d(0, -1px, 0);
	}
}

/* ---------- K. Footer: gold kept for the logo and hover only ---------- */
html body.eg3d .site-footer a:not(:has(img)) { color: rgba(246, 243, 238, .8) !important; transition: color .3s; }
html body.eg3d .site-footer a:not(:has(img)):hover { color: var(--eg3d-gold-pale) !important; }
/* v1.8.9: footer brand statement — one ivory serif line over the gray description */
html body.eg3d .site-footer p.eg-foot-tag { margin: 6px 0 8px !important; font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif !important; font-size: 23px !important; line-height: 1.25 !important; font-weight: 500 !important; letter-spacing: .005em; color: var(--eg3d-ivory) !important; }
html body.eg3d .site-footer p.eg-foot-desc { max-width: 25em; margin: 0 !important; }
/* v1.8.11: the footer column headings were navy on navy (invisible but taking space); now small gold labels */
html body.eg3d .site-footer h4.eg-foot-h { margin: 0 0 18px !important; font-size: 12px !important; line-height: 1.4 !important; font-weight: 600 !important; letter-spacing: .18em !important; text-transform: uppercase; color: var(--eg3d-gold-pale) !important; }
html body.eg3d .ast-footer-copyright .eg-legal a { white-space: nowrap; }
/* v1.8.10: phones and tablets get the same side gutter as the page content (Astra leaves it at 0 below 922px) */
@media (max-width: 921px) {
	html body.eg3d .site-footer .site-primary-footer-wrap,
	html body.eg3d .site-footer .site-below-footer-wrap { padding-left: clamp(24px, 4.1vw, 52px) !important; padding-right: clamp(24px, 4.1vw, 52px) !important; }
}
/* v1.8.12: landscape tablets and small laptops (922–1279px) were still flush to the edge; match the content's 24px */
@media (min-width: 922px) and (max-width: 1279px) {
	html body.eg3d .site-footer .site-primary-footer-wrap,
	html body.eg3d .site-footer .site-below-footer-wrap { padding-left: 24px !important; padding-right: 24px !important; }
}
/* v1.8.15: header and footer spacing pass */
/* Bottom bar: no fixed 80px height; the copyright line is centered with equal space above and below */
html body.eg3d .site-footer .site-below-footer-wrap { min-height: 0 !important; padding-top: 24px !important; padding-bottom: 24px !important; }
html body.eg3d .site-footer .site-below-footer-inner-wrap { min-height: 0 !important; align-items: center !important; }
html body.eg3d .site-footer .site-below-footer-wrap .site-footer-section { margin-bottom: 0 !important; }
/* Main footer area: the same space below the columns as above them */
html body.eg3d .site-footer .site-primary-footer-wrap { padding-bottom: 50px !important; }
/* Phones and tablets: header on the same 24px edge as the page and footer, one 80px height, menu icon on the edge */
@media (max-width: 921px) {
	html body.eg3d #ast-mobile-header .ast-primary-header-bar { padding-left: 24px !important; padding-right: 24px !important; min-height: 80px !important; }
	html body.eg3d #ast-mobile-header .ast-primary-header-bar .ast-builder-grid-row,
	html body.eg3d #ast-mobile-header .ast-primary-header-bar .site-primary-header-wrap { min-height: 80px !important; }
	html body.eg3d #ast-mobile-header .menu-toggle { padding: 12px !important; margin-right: -12px !important; }
	html body.eg3d .site-footer .site-primary-footer-wrap,
	html body.eg3d .site-footer .site-below-footer-wrap { padding-left: 24px !important; padding-right: 24px !important; }
	/* v1.8.16: stacked columns keep their 10px margin, so 40px here gives the same 50px as the top */
	html body.eg3d .site-footer .site-primary-footer-wrap { padding-bottom: 40px !important; }
}
@media (min-width: 922px) and (max-width: 1279px) {
	html body.eg3d #ast-desktop-header .site-primary-header-wrap { padding-left: 24px !important; padding-right: 24px !important; }
}
/* v1.8.18: phone and tablet pass (edges, writing, colors) */
/* Headings break into balanced lines instead of leaving one word alone on the last line */
html body.eg3d :is(.entry-content, .site-main) :is(h1, h2, h3) { text-wrap: balance; }
/* Small gold text on light backgrounds: one shade deeper, so it reads at 4.5:1 or better (was 2.8 to 4.3) */
html body.eg3d .eg3d-chip { color: #7A5C2E !important; }
html body.eg3d .eg3d-filter a span,
html body.eg3d .eg-tabs button:not(.is-active) span { color: #7A5C2E !important; }
/* Home shelf caption keeps the page's 24px edge on phones */
html body.eg3d .eg3d-caption { padding-left: 24px; padding-right: 24px; }
@media (max-width: 921px) {
	/* Shop and product pages: the same 24px edge as the rest of the site. The theme used 20px here,
	   which also let the shop's category tabs (which bleed 24px each side) overhang the screen by 4px. */
	html body.eg3d.woocommerce #content > .ast-container,
	html body.eg3d.woocommerce-page #content > .ast-container { padding-left: 24px !important; padding-right: 24px !important; }
}
/* v1.8.19: product cards */
/* Every "Notify me" button in a row sits at the same height, whether the name above it takes one line or two */
html body.eg3d ul.products li.product .astra-shop-summary-wrap { flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; }
html body.eg3d ul.products li.product .astra-shop-summary-wrap > .ast-loop-product__link { margin-bottom: 14px; }
html body.eg3d ul.products li.product .astra-shop-summary-wrap > .button { margin-top: auto !important; }
/* Phones (two narrow cards per row): product names one step smaller, so no name breaks onto three lines */
@media (max-width: 544px) {
	html body.eg3d .woocommerce ul.products li.product .woocommerce-loop-product__title,
	html body.eg3d.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.1875rem !important; }
}
@media (max-width: 374px) {
	html body.eg3d .woocommerce ul.products li.product .woocommerce-loop-product__title,
	html body.eg3d.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.125rem !important; }
}
/* v1.8.20: back-to-top arrow and footer */
/* Over the navy footer, a navy button or a dark band, the navy arrow switches to pale gold with a navy chevron (eg3d.js) */
html body.eg3d #ast-scroll-top { transition: background-color .2s ease, color .2s ease; }
html body.eg3d #ast-scroll-top.eg3d-top-on-dark { background-color: var(--eg3d-gold-pale) !important; color: var(--eg3d-navy) !important; }
html body.eg3d #ast-scroll-top.eg3d-top-on-dark svg { fill: var(--eg3d-navy) !important; }
/* Bottom bar: "All rights reserved." stays on one line */
html body.eg3d .ast-footer-copyright .eg-rights { white-space: nowrap; }
@media (max-width: 921px) {
	/* The footer description ends clear of the arrow's column, so the arrow never sits on its words */
	html body.eg3d .site-footer p.eg-foot-desc { max-width: min(25em, calc(100% - 56px)); }
	/* v1.8.21: the same for the footer tagline (it reached under the arrow on 360px phones); breaks as
	   "Genuine products. / Honest retail." on phones */
	html body.eg3d .site-footer p.eg-foot-tag { max-width: calc(100% - 56px); text-wrap: balance; }
}
/* v1.8.24: text-message consent box on the Contact form: one full-width box, no hyphenated words */
html body.eg3d .wpforms-container .eg3d-sms-consent ul { display: block !important; grid-template-columns: none !important; }
html body.eg3d .wpforms-container .eg3d-sms-consent li { width: auto !important; max-width: none !important; align-items: flex-start !important; }
html body.eg3d .wpforms-container .eg3d-sms-consent li label { font-size: 14px !important; line-height: 1.55 !important; -webkit-hyphens: manual !important; hyphens: manual !important; }
html body.eg3d .wpforms-container .eg3d-sms-consent li input[type="checkbox"] { margin-top: 3px !important; flex: none; }

/* ---------- L. Home hero (copy is rewritten by the plugin while in Preview) ---------- */
html body.eg3d .eg-home-hero .eg-sticker { display: none !important; }
html body.eg3d .eg3d-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 32px; }
html body.eg3d .eg-home-hero p.eg3d-hero-note { margin: 22px 0 0 !important; font-size: 14px !important; color: var(--eg-muted) !important; }
html body.eg3d .eg3d-hero-note a { color: var(--eg3d-navy); text-decoration: underline; text-decoration-color: var(--eg3d-gold-pale); text-decoration-thickness: 1px; text-underline-offset: 4px; }
html body.eg3d .eg3d-hero-note a:hover { text-decoration-color: var(--eg3d-gold); }
html body.eg3d .eg3d-hero-mark { display: none; }
@media (max-width: 921px) {
	/* v1.4.3: headline on the first phone screen, emblem as a small lead-in above it */
	html body.eg3d .eg-home-hero { padding-top: 48px !important; }
	html body.eg3d .eg3d-hero-mark {
		display: block;
		width: min(128px, 34vw);
		height: auto;
		margin: 0 0 20px -4px;
	}
	@supports (animation-timeline: view()) {
		html body.eg3d .eg3d-hero-mark {
			animation: eg3dMarkDrift linear both;
			animation-timeline: view();
			animation-range: exit 0% exit 100%;
		}
	}
}
@keyframes eg3dMarkDrift {
	from { transform: translate3d(0, 0, 0) scale(1); opacity: 1; }
	to   { transform: translate3d(0, 48px, 0) scale(.94); opacity: .5; }
}
@media (max-width: 600px) {
	html body.eg3d .eg3d-hero-actions { flex-direction: column; align-items: stretch; }
	html body.eg3d .eg3d-hero-actions .eg3d-btn { width: 100%; }
	html body.eg3d .eg3d-hero-actions .eg3d-link { justify-content: center; }
}

/* ---------- M. "Notify me" dialog and product-page block ---------- */
html body.eg3d .eg3d-dialog {
	width: 100%;
	max-width: min(460px, calc(100vw - 32px));
	padding: 40px 36px 28px;
	border: 0;
	border-radius: 20px;
	background: var(--eg3d-ivory);
	color: var(--eg3d-ink);
	box-shadow: 0 40px 80px -20px rgba(13, 22, 38, .45);
}
html body.eg3d .eg3d-dialog[open] { animation: eg3dDialogIn .4s var(--eg3d-ease) both; }
@keyframes eg3dDialogIn { from { opacity: 0; transform: translate3d(0, 16px, 0); } to { opacity: 1; transform: none; } }
html body.eg3d .eg3d-dialog::backdrop { background: rgba(13, 22, 38, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
html body.eg3d .eg3d-dialog__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--eg-muted);
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}
html body.eg3d .eg3d-dialog__close:hover { background: var(--eg3d-linen); color: var(--eg3d-navy); }
html body.eg3d .eg3d-dialog .eg-eyebrow { margin: 0 0 6px !important; }
html body.eg3d .eg3d-dialog .eg3d-dialog__title { margin: 0 0 10px !important; font-size: 2rem !important; }
html body.eg3d .eg3d-dialog__text { margin: 0 0 20px; font-size: 15px; line-height: 1.6; color: rgba(14, 17, 22, .78); }
html body.eg3d .eg3d-dialog .wpforms-container { margin: 0 !important; }
html body.eg3d .eg3d-dialog .wpforms-field { padding: 0 0 12px !important; }
html body.eg3d .eg3d-dialog input[type="email"] {
	width: 100% !important;
	max-width: none !important;
	height: 52px !important;
	padding: 0 16px !important;
	border: 1px solid var(--eg3d-hair) !important;
	border-radius: 12px !important;
	background: #fff !important;
	font-size: 16px !important;
}
html body.eg3d .eg3d-dialog input[type="email"]:focus { border-color: var(--eg3d-navy) !important; box-shadow: 0 0 0 3px rgba(176, 141, 87, .25) !important; }
html body.eg3d .eg3d-dialog .wpforms-submit-container { padding: 4px 0 0 !important; }
html body.eg3d .eg3d-dialog .wpforms-submit { width: 100%; }
html body.eg3d .eg3d-dialog .wpforms-confirmation-container-full { margin: 0; border: 0; border-radius: 12px; background: #fff; color: var(--eg3d-navy); }
html body.eg3d .eg3d-dialog__fine { margin: 14px 0 0; font-size: 12px; line-height: 1.5; color: var(--eg-muted); }
html body.eg3d .eg3d-dialog__fine a { color: inherit; text-decoration: underline; }
html body.eg3d .eg3d-notify-block {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin: 24px 0;
	padding: 20px 22px;
	border: 1px solid var(--eg3d-hair);
	border-radius: 16px;
	background: #fff;
}
html body.eg3d .eg3d-notify-block__text { margin: 0 !important; font-size: 15px; color: var(--eg-muted); }

/* ---------- 9. Quiet pages: legal, cart, checkout, account ---------- */
.eg3d-quiet .eg3d-tilt { transform: none !important; }
.eg3d-quiet .eg3d-glare { display: none; }

/* ---------- 10. Reduced motion and print ---------- */
@media (prefers-reduced-motion: reduce) {
	html:not(.eg3d-force) .eg3d *, html:not(.eg3d-force) .eg3d *::before, html:not(.eg3d-force) .eg3d *::after {
		animation: none !important;
		transition: none !important;
	}
	html:not(.eg3d-force) .eg3d .eg3d-rv { opacity: 1 !important; transform: none !important; }
	html:not(.eg3d-force) .eg3d .eg3d-tilt { transform: none !important; }
	html:not(.eg3d-force) .eg3d-mono { display: none !important; }
	html:not(.eg3d-force) .eg3d-emblem-wrap { transform: none !important; }
	html:not(.eg3d-force) ::view-transition-old(root), html:not(.eg3d-force) ::view-transition-new(root) { animation: none !important; }
	html:not(.eg3d-force) .eg3d-home .eg-home-hero .wp-block-cover__image-background,
	html:not(.eg3d-force) .eg3d-home .eg-home-hero .wp-block-cover__inner-container { transform: none !important; }
}
@media print {
	.eg3d .eg3d-rv { opacity: 1 !important; transform: none !important; }
	.eg3d-mono, .eg3d-glare { display: none !important; }
}
