/* ==========================================================================
   Miss Lou Luxury — brand typography, color, and component system
   ========================================================================== */

:root {
	/* Brand system: warm gold-leaf luxury with a bright, happy coral signature. No violet, no cold neutrals. */
	--mll-ink:        #2b1d12;   /* deep warm espresso, near-black but never cold */
	--mll-ink-soft:   #6b5847;   /* warm taupe-brown for body copy */
	--mll-ivory:      #fdf8f0;   /* warm cream white */
	--mll-parchment:  #faecd8;   /* soft champagne surface */
	--mll-gold:       #c9982f;   /* true metallic gold, pulled from the logo */
	--mll-gold-soft:  rgba(201, 152, 47, 0.35);
	--mll-coral:      #e8553b;   /* bright, happy coral-red — the brand's energy note */
	--mll-coral-soft: rgba(232, 85, 59, 0.14);
	--mll-line:       rgba(43, 29, 18, 0.14);
	--mll-serif:  'Cormorant Garamond', Georgia, serif;
	--mll-sans:   'Jost', -apple-system, sans-serif;

	/* Kill Astra's default blue everywhere (links, buttons, focus rings, badges, active states) */
	--ast-global-color-0: var(--mll-ink);
	--ast-global-color-1: #1a120b;

	--mll-header-h: 64px;
}

body, p, .elementor-widget-text-editor {
	font-family: var(--mll-sans);
	color: var(--mll-ink-soft);
	font-weight: 300;
	letter-spacing: 0.01em;
	line-height: 1.75;
}

/* ---- Headings ---- */
.elementor-heading-title {
	font-family: var(--mll-serif) !important;
	color: var(--mll-ink) !important;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.1;
}

h2.elementor-heading-title {
	text-transform: uppercase;
	font-size: 1.7rem !important;
	letter-spacing: 0.16em;
	font-weight: 600;
}

/* ==========================================================================
   Scroll reveal + tactile feedback
   ========================================================================== */
.mll-reveal {
	opacity: 1 !important;
	transform: none !important;
}
.js .mll-reveal {
	opacity: 0 !important;
	transform: translateY(28px) !important;
	transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.js .mll-reveal.is-visible {
	opacity: 1 !important;
	transform: translateY(0) !important;
}
.mll-reveal-d1.is-visible { transition-delay: 0.08s !important; }
.mll-reveal-d2.is-visible { transition-delay: 0.16s !important; }

@media (prefers-reduced-motion: reduce) {
	.mll-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

.elementor-button:active {
	transform: scale(0.97);
}

/* Signature divider: gold-to-coral, echoing warmth of the brand. Deliberately its own widget, not glued to every heading. */
.mll-rule {
	width: 44px;
	height: 2px;
	background: linear-gradient(90deg, var(--mll-gold) 0%, var(--mll-coral) 100%);
	margin: 24px auto;
}
.mll-rule.mll-rule-left {
	margin: 24px 0;
}

/* ---- Buttons: thin outline, uppercase, fills on hover ---- */
.elementor-button {
	background: transparent !important;
	border: 1px solid var(--mll-ink);
	border-radius: 0;
	color: var(--mll-ink) !important;
	font-family: var(--mll-sans) !important;
	font-size: 0.76rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 17px 44px !important;
	transition: background 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s ease, border-color 0.4s ease, transform 0.15s ease-out;
}
.elementor-button:hover {
	background: var(--mll-ink) !important;
	color: var(--mll-ivory) !important;
	border-color: var(--mll-ink);
}

.mll-hero-image .elementor-button {
	border-color: var(--mll-ivory);
	color: var(--mll-ivory) !important;
}
.mll-hero-image .elementor-button:hover {
	background: var(--mll-ivory) !important;
	color: var(--mll-ink) !important;
}

/* ==========================================================================
   Hero — full-bleed photograph, dark gradient overlay for legible type
   ========================================================================== */
.mll-hero-image {
	min-height: 92vh;
	min-height: 100dvh;
	position: relative;
	overflow: hidden;
}
.mll-hero-image > .elementor-container {
	position: absolute !important;
	inset: 0 !important;
	height: 100% !important;
	display: flex !important;
	align-items: flex-end;
	z-index: 1;
	padding-bottom: 90px;
}

/* Slideshow layer: 4 stacked, crossfading background columns */
.mll-hero-slide {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	background-position: center 30% !important;
	opacity: 0;
}
.mll-hero-slide::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(20, 16, 13, 0.15) 0%, rgba(20, 16, 13, 0.35) 55%, rgba(20, 16, 13, 0.72) 100%);
}
.mll-hero-slide-1 { display: none !important; }
.mll-hero-slide-4 { display: none !important; }
.mll-hero-slide-2 { display: none !important; }
.mll-hero-slide-3 { animation: none !important; opacity: 1 !important; }

@keyframes mll-slide-2 { 0%, 42% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes mll-slide-3 { 0%, 42% { opacity: 0; } 50%, 92% { opacity: 1; } 100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.mll-hero-slide { animation: none; }
}

/* Text/CTA layer: sits above the slideshow */
.mll-hero-content {
	position: relative !important;
	z-index: 2 !important;
}
.mll-hero-image .elementor-heading-title {
	color: var(--mll-ivory) !important;
	font-size: clamp(2.8rem, 7vw, 5.5rem) !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.25);
	animation: mll-rise 1.1s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.mll-hero-image .elementor-widget-heading:nth-of-type(2) .elementor-heading-title {
	font-family: var(--mll-serif);
	font-style: italic;
	font-size: clamp(1.15rem, 2vw, 1.5rem) !important;
	text-transform: none;
	letter-spacing: 0.01em;
	font-weight: 400;
	color: var(--mll-parchment) !important;
	opacity: 0.92;
	margin-top: 14px;
	animation: mll-rise 1.1s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
}
.mll-hero-image .elementor-widget-button {
	margin-top: 34px;
	animation: mll-rise 1.1s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
}

@keyframes mll-rise {
	from { opacity: 0; transform: translateY(18px); }
	to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
	.mll-hero-image .elementor-heading-title,
	.mll-hero-image .elementor-widget-heading:nth-of-type(2) .elementor-heading-title,
	.mll-hero-image .elementor-widget-button {
		animation: none;
	}
}

/* ==========================================================================
   Editorial split sections (image + text, alternating)
   ========================================================================== */
.mll-split {
	padding: 0;
}
.mll-split .elementor-container {
	align-items: stretch;
}
.mll-split-text {
	display: flex;
	align-items: center;
}
.mll-split-text {
	background: var(--mll-ivory);
}
.mll-split-text .elementor-widget-wrap {
	padding: 64px 64px;
	max-width: 520px;
	margin: 0 auto;
}
@media (max-width: 1024px) {
	.mll-split-text .elementor-widget-wrap { padding: 48px 28px; }
}
.mll-split-eyebrow-rule {
	width: 44px;
	height: 1px;
	background: var(--mll-gold);
	margin-bottom: 22px;
}
.mll-split h2.elementor-heading-title {
	text-align: left;
	margin-bottom: 20px;
}
.mll-split .elementor-widget-text-editor p {
	font-size: 1.05rem;
	font-weight: 300;
}
.mll-split .elementor-widget-text-editor p:first-of-type:first-letter {
	font-family: var(--mll-serif);
	font-size: 3.4rem;
	font-weight: 600;
	color: var(--mll-gold);
	float: left;
	line-height: 0.8;
	padding-right: 10px;
	padding-top: 6px;
}

/* Framed, layered photography — a smaller second image overlaps the corner of the main one */
.mll-split-image {
	min-height: 620px;
	position: relative;
	padding: 22px;
	background: var(--mll-parchment);
}
.mll-split-image .elementor-widget-image {
	position: relative;
	height: 100%;
	border: 1px solid var(--mll-gold-soft);
	padding: 10px;
}
.mll-split-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 1024px) {
	.mll-split-image { min-height: 420px; padding: 14px; }
}

/* ==========================================================================
   Value strip — three small editorial details (fabric, fit, shipping)
   ========================================================================== */
.mll-strip {
	background: var(--mll-parchment);
	padding: 70px 40px;
}
.mll-strip-item {
	text-align: center;
	padding: 0 22px;
}
/* Three equal columns, three identical square photos */
@media (min-width: 769px) {
	.mll-strip .elementor-container {
		display: flex;
		align-items: flex-start;
	}
	.mll-strip .elementor-column.mll-strip-item {
		flex: 1 1 0 !important;
		width: auto !important;
		min-width: 0;
		max-width: none;
		box-sizing: border-box;
	}
}
.mll-strip-item .elementor-widget-image,
.mll-strip-item .elementor-widget-image .elementor-widget-container,
.mll-strip-item .elementor-widget-image a {
	width: 100%;
	display: block;
}
.mll-strip-item .elementor-widget-image img {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	box-sizing: border-box;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 1px solid var(--mll-gold-soft);
	padding: 8px;
	margin-bottom: 24px;
}
.mll-strip-item h3.elementor-heading-title {
	font-size: 1.05rem !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 12px;
}
.mll-strip-item .elementor-widget-text-editor p {
	font-size: 0.92rem;
	color: var(--mll-ink-soft);
}
@media (max-width: 768px) {
	.mll-strip-item { padding: 0 8px; margin-bottom: 32px; }
}

/* ==========================================================================
   Pull quote — brand philosophy line
   ========================================================================== */
.mll-quote {
	background:
		radial-gradient(circle at 15% 20%, rgba(201, 152, 47, 0.10), transparent 45%),
		radial-gradient(circle at 85% 80%, rgba(232, 85, 59, 0.07), transparent 45%),
		var(--mll-parchment);
	padding: 84px 20px;
	text-align: center;
	position: relative;
}
.mll-quote::before {
	content: '"';
	font-family: var(--mll-serif);
	font-size: 5rem;
	color: var(--mll-gold-soft);
	line-height: 1;
	display: block;
	margin-bottom: -10px;
}
.mll-quote .elementor-heading-title {
	font-family: var(--mll-serif) !important;
	font-style: italic;
	font-weight: 400 !important;
	font-size: clamp(1.6rem, 3.2vw, 2.6rem) !important;
	letter-spacing: 0.01em;
	text-transform: none;
	max-width: 780px;
	margin: 0 auto;
	line-height: 1.4;
	color: var(--mll-ink);
}

/* ==========================================================================
   Closing section — simple, bright, quiet CTA
   ========================================================================== */
.mll-dark-section {
	background: var(--mll-parchment);
	padding: 90px 20px;
	text-align: center;
}
.mll-dark-section .elementor-heading-title {
	color: var(--mll-ink) !important;
	font-size: 1.5rem !important;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 500;
	margin-bottom: 36px;
}
.mll-dark-section .elementor-button {
	border-color: var(--mll-ink);
	color: var(--mll-ink) !important;
}
.mll-dark-section .elementor-button:hover {
	background: var(--mll-ink) !important;
	color: var(--mll-ivory) !important;
}

/* ==========================================================================
   WooCommerce product grid — quiet, editorial cards (category archives)
   ========================================================================== */
ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 44px 30px;
}
@media (max-width: 768px) {
	ul.products { grid-template-columns: repeat(2, 1fr); gap: 32px 18px; }
}

ul.products li.product {
	margin: 0 !important;
	text-align: center;
}

ul.products li.product {
	opacity: 1 !important;
}
.js ul.products li.product {
	opacity: 0 !important;
	transform: translateY(24px) !important;
	transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.js ul.products li.product.is-visible {
	opacity: 1 !important;
	transform: translateY(0) !important;
}
ul.products li.product:nth-child(4n+2).is-visible { transition-delay: 0.08s !important; }
ul.products li.product:nth-child(4n+3).is-visible { transition-delay: 0.16s !important; }
ul.products li.product:nth-child(4n+4).is-visible { transition-delay: 0.24s !important; }
@media (prefers-reduced-motion: reduce) {
	ul.products li.product {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

ul.products li.product a img {
	border-radius: 0;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
ul.products li.product:hover img {
	transform: scale(1.035);
}

ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--mll-sans);
	font-size: 0.8rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--mll-ink);
	margin-top: 20px;
	margin-bottom: 6px;
}

ul.products li.product .price {
	font-family: var(--mll-serif);
	font-size: 1.05rem;
	color: var(--mll-gold);
}

/* Prices everywhere: no bold, no italic */
.price,
.price *,
.amount,
.woocommerce-Price-amount,
.woocommerce-Price-amount bdi,
.woocommerce-Price-currencySymbol {
	font-style: normal !important;
	font-weight: 400 !important;
}
ul.products li.product .price ins {
	text-decoration: none;
}

ul.products li.product .button.add_to_cart_button,
ul.products li.product .button.product_type_simple {
	background: transparent;
	border: none;
	border-top: 1px solid var(--mll-line);
	color: var(--mll-ink);
	font-family: var(--mll-sans);
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding-top: 11px;
	margin-top: 14px;
	width: 100%;
	opacity: 0.55;
	transition: opacity 0.3s ease;
}
ul.products li.product:hover .button.add_to_cart_button {
	opacity: 1;
}

ul.products li.product .onsale {
	background: var(--mll-ink);
	border-radius: 0;
	font-family: var(--mll-sans);
	font-size: 0.63rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	min-height: unset;
	min-width: unset;
	padding: 6px 12px;
	line-height: 1;
	top: 12px;
	left: 12px;
}

/* ==========================================================================
   Header + navigation
   ========================================================================== */

.ast-site-identity .site-title a,
.ast-site-title a {
	font-family: var(--mll-serif);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 700;
	white-space: nowrap;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
}
@media (max-width: 600px) {
	.ast-site-identity .site-title a,
	.ast-site-title a {
		font-size: 15px;
		letter-spacing: 0.08em;
	}
}
@media (max-width: 380px) {
	.ast-site-identity .site-title a,
	.ast-site-title a {
		font-size: 12.5px;
		letter-spacing: 0.04em;
	}
}

/* Centered hamburger-style header: keep icons and logo in the ink color, not the default accent blue */
.ast-mobile-menu-buttons-minimal svg,
.ast-search-menu-icon svg,
.ast-search-menu-icon .astra-search-icon,
.ast-header-account-wrap svg,
.ast-header-woo-cart svg,
.ast-header-woo-cart .astra-icon,
.ast-site-header-cart .count {
	color: var(--mll-ink);
	fill: var(--mll-ink);
}
.ast-site-header-cart .count {
	background: var(--mll-ink);
	border-color: var(--mll-ink);
}
.ast-site-header-cart .ast-addon-cart-wrap {
	border-color: var(--mll-ink);
}

/* Compact header icons on small phones so they don't dominate the narrow bar */
@media (max-width: 600px) {
	.ast-search-menu-icon svg,
	.ast-header-account-wrap svg,
	.ast-header-woo-cart svg {
		width: 20px !important;
		height: 20px !important;
	}
	.ast-site-header-cart .ast-addon-cart-wrap {
		width: 32px !important;
		height: 32px !important;
		padding: 4px !important;
		border-width: 1px !important;
	}
	.site-header-primary-section-right.ast-grid-right-section {
		gap: 10px !important;
	}
}


.main-header-menu .menu-link {
	font-family: var(--mll-sans);
	font-size: 0.78rem;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mll-ink);
	position: relative;
}
.main-header-menu .menu-item > .menu-link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2px;
	height: 1px;
	background: linear-gradient(90deg, var(--mll-gold) 0%, var(--mll-coral) 100%);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}
.main-header-menu .menu-item:hover > .menu-link::after,
.main-header-menu .menu-item.current-menu-item > .menu-link::after {
	transform: scaleX(1);
}

/* ==========================================================================
   Mobile menu drawer — full-height, clean dividers, staggered fade-in
   ========================================================================== */
.ast-mobile-header-content .main-header-bar-navigation {
	position: fixed !important;
	top: var(--mll-header-h, 60px) !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	background: #fff !important;
	z-index: 99999 !important;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s;
	box-shadow: 0 12px 24px rgba(43, 29, 18, 0.08);
}
.ast-mobile-header-content .main-header-bar-navigation.toggle-on {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translateY(0);
}
#ast-hf-mobile-menu.main-header-menu {
	display: block;
	padding: 8px 24px 0;
}
#ast-hf-mobile-menu.main-header-menu .menu-item {
	border-bottom: 1px solid var(--mll-line);
	opacity: 0;
	transform: translateY(10px);
}
.toggle-on #ast-hf-mobile-menu.main-header-menu .menu-item {
	animation: mllMenuItemIn 0.45s ease forwards;
}
#ast-hf-mobile-menu.main-header-menu .menu-item:nth-child(1)  { animation-delay: 0.05s; }
#ast-hf-mobile-menu.main-header-menu .menu-item:nth-child(2)  { animation-delay: 0.10s; }
#ast-hf-mobile-menu.main-header-menu .menu-item:nth-child(3)  { animation-delay: 0.15s; }
#ast-hf-mobile-menu.main-header-menu .menu-item:nth-child(4)  { animation-delay: 0.20s; }
#ast-hf-mobile-menu.main-header-menu .menu-item:nth-child(5)  { animation-delay: 0.25s; }
#ast-hf-mobile-menu.main-header-menu .menu-item:nth-child(6)  { animation-delay: 0.30s; }
#ast-hf-mobile-menu.main-header-menu .menu-item:nth-child(7)  { animation-delay: 0.35s; }
#ast-hf-mobile-menu.main-header-menu .menu-item:nth-child(8)  { animation-delay: 0.40s; }
@keyframes mllMenuItemIn {
	to { opacity: 1; transform: translateY(0); }
}
#ast-hf-mobile-menu.main-header-menu .menu-link {
	padding: 18px 0;
	font-size: 1rem;
	letter-spacing: 0.12em;
}
#ast-hf-mobile-menu.main-header-menu .menu-item > .menu-link::after {
	display: none;
}
.mll-mobile-social {
	display: flex;
	justify-content: center;
	gap: 14px;
	padding: 22px 24px;
	border-top: 1px solid var(--mll-line);
	opacity: 0;
	transform: translateY(10px);
}
.toggle-on .mll-mobile-social {
	animation: mllMenuItemIn 0.45s ease forwards;
	animation-delay: 0.45s;
}
.mll-mobile-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--mll-line);
	border-radius: 50%;
	color: var(--mll-ink);
	transition: border-color 0.2s ease, transform 0.2s ease;
}
.mll-mobile-social a:hover {
	border-color: var(--mll-ink);
	transform: translateY(-2px);
}
.mll-mobile-social svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

/* ==========================================================================
   Language switcher (GTranslate)
   ========================================================================== */
.mll-lang .gt_switcher_wrapper,
.mll-lang .gtranslate_wrapper {
	position: static !important;
}
.mll-lang .gt_switcher,
.mll-lang .gt_switcher a,
.mll-lang .gt_selected a {
	font-family: var(--mll-sans) !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.04em;
	color: var(--mll-ink) !important;
}
.mll-lang-desktop {
	position: absolute;
	top: 26px;
	right: 24px;
	z-index: 900;
}
.mll-lang-mobile {
	display: none;
}
@media (max-width: 921px) {
	.mll-lang-desktop {
		display: none;
	}
	.mll-lang-mobile {
		display: flex;
		justify-content: center;
		padding: 18px 24px 28px;
	}
}
/* Arabic: Google Translate tags <html class="translated-rtl"> — flip reading direction */
html.translated-rtl body {
	direction: rtl;
}
html.translated-rtl .mll-lang,
html.translated-rtl .mll-desktop-trigger,
html.translated-rtl #masthead {
	direction: ltr;
}

/* ==========================================================================
   Back arrow (every page except homepage)
   ========================================================================== */
.mll-back-wrap {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 24px 20px 0;
	text-align: left;
	box-sizing: border-box;
}
.mll-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mll-ink) !important;
	text-decoration: none;
	transition: gap 0.2s ease, opacity 0.2s ease;
}
.mll-back:hover {
	gap: 10px;
	opacity: 0.75;
}
.mll-back svg {
	width: 18px;
	height: 18px;
}

/* ==========================================================================
   Desktop hamburger + drawer — fully independent of Astra's header builder,
   breakpoint, and mobile-header markup. Only ever visible >= 922px, so it can
   never fight Astra's own responsive engine or affect image/grid sizing.
   ========================================================================== */
.mll-desktop-trigger,
.mll-desktop-drawer {
	display: none;
}

@media (min-width: 922px) {
	/* Hide Astra's own inline text menu on desktop; our trigger replaces it visually */
	#ast-desktop-header .ast-builder-menu-1 {
		display: none !important;
	}

	/* Make room on the left so the fixed hamburger never overlaps the logo */
	#ast-desktop-header .site-header-primary-section-left {
		padding-left: 56px;
	}

	/* Stays on screen while scrolling; soft white disc keeps it readable over photos */
	.mll-desktop-trigger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		position: fixed;
		top: 25px;
		left: 20px;
		width: 40px;
		height: 40px;
		background: rgba(255, 255, 255, 0.92) !important;
		border: 0;
		border-radius: 50%;
		box-shadow: 0 2px 10px rgba(43, 29, 18, 0.08);
		padding: 0;
		cursor: pointer;
		color: var(--mll-ink);
		z-index: 1000;
	}
	.mll-desktop-trigger svg {
		width: 22px;
		height: 22px;
	}

	.mll-desktop-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(255, 255, 255, 0.55);
		z-index: 99998;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s;
	}
	.mll-desktop-backdrop.is-open {
		opacity: 1;
		visibility: visible;
	}
	.mll-desktop-drawer {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		width: 440px;
		max-width: 90vw;
		background: #fff;
		z-index: 99999;
		overflow-y: auto;
		visibility: hidden;
		transform: translateX(-100%);
		transition: transform 0.35s ease, visibility 0.35s;
		padding: 90px 0 40px;
		box-shadow: 0 0 40px rgba(43, 29, 18, 0.08);
	}
	.mll-desktop-drawer.is-open {
		visibility: visible;
		transform: translateX(0);
	}
	.mll-desktop-drawer-close {
		position: absolute;
		top: 36px;
		right: 26px;
		width: 32px;
		height: 32px;
		border: 0;
		background: none;
		font-size: 2rem;
		font-weight: 300;
		line-height: 1;
		color: var(--mll-ink);
		cursor: pointer;
		padding: 0;
	}
	.mll-desktop-drawer-menu {
		list-style: none;
		margin: 0 26px;
		padding: 0;
		border-top: 1px solid var(--mll-line);
	}
	.mll-desktop-drawer-menu .menu-item {
		border-bottom: 1px solid var(--mll-line);
		opacity: 0;
		transform: translateY(10px);
	}
	.mll-desktop-drawer.is-open .menu-item {
		animation: mllMenuItemIn 0.45s ease forwards;
	}
	.mll-desktop-drawer-menu .menu-item:nth-child(1) { animation-delay: 0.05s; }
	.mll-desktop-drawer-menu .menu-item:nth-child(2) { animation-delay: 0.10s; }
	.mll-desktop-drawer-menu .menu-item:nth-child(3) { animation-delay: 0.15s; }
	.mll-desktop-drawer-menu .menu-item:nth-child(4) { animation-delay: 0.20s; }
	.mll-desktop-drawer-menu .menu-item:nth-child(5) { animation-delay: 0.25s; }
	.mll-desktop-drawer-menu .menu-item:nth-child(6) { animation-delay: 0.30s; }
	.mll-desktop-drawer-menu .menu-link {
		display: block;
		padding: 20px 0;
		font-family: var(--mll-sans);
		font-size: 1.1rem;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: var(--mll-ink);
	}
	.mll-desktop-drawer-social {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		margin-top: 32px;
		border-top: 1px solid var(--mll-line);
		border-bottom: 1px solid var(--mll-line);
		opacity: 0;
		transform: translateY(10px);
	}
	.mll-desktop-drawer.is-open .mll-desktop-drawer-social {
		animation: mllMenuItemIn 0.45s ease forwards;
		animation-delay: 0.4s;
	}
	.mll-desktop-drawer-social a {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 62px;
		color: var(--mll-ink);
		transition: background 0.2s ease;
	}
	.mll-desktop-drawer-social a + a {
		border-left: 1px solid var(--mll-line);
	}
	.mll-desktop-drawer-social a:hover {
		background: var(--mll-ivory);
	}
	.mll-desktop-drawer-social svg {
		width: 22px;
		height: 22px;
		fill: currentColor;
	}
}

/* ==========================================================================
   Footer
   ========================================================================== */
.ast-builder-footer-grid-columns {
	display: none;
}
.mll-footer {
	background: var(--mll-ivory);
	color: var(--mll-ink-soft);
	padding: 70px 24px 0;
	border-top: 1px solid var(--mll-line);
}
.mll-footer-inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 50px;
	border-bottom: 1px solid var(--mll-line);
}
@media (max-width: 900px) {
	.mll-footer-inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.mll-footer-inner { grid-template-columns: 1fr; }
}
.mll-footer-wordmark {
	font-family: var(--mll-serif);
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--mll-ink);
	margin-bottom: 14px;
}
.mll-footer-brand p {
	font-size: 0.9rem;
	max-width: 260px;
	opacity: 0.8;
	line-height: 1.7;
}
.mll-footer-col h4 {
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mll-ink);
	margin-bottom: 18px;
	font-weight: 500;
}
.mll-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.mll-footer-col li {
	margin-bottom: 11px;
}
.mll-footer-col a {
	color: var(--mll-ink-soft);
	opacity: 0.8;
	font-size: 0.88rem;
	text-decoration: none;
	transition: opacity 0.25s ease, color 0.25s ease;
}
.mll-footer-col a:hover {
	opacity: 1;
	color: var(--mll-gold);
}
.mll-footer-bottom {
	max-width: 1200px;
	margin: 0 auto;
	padding: 24px 0;
	text-align: center;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	opacity: 0.5;
}

/* ==========================================================================
   Category / shop archive headers (Evening Dress, Exclusive Edition, etc.)
   ========================================================================== */
.woocommerce-products-header {
	text-align: center;
	padding: 130px 24px 64px;
	margin-bottom: 60px;
	position: relative;
	background-size: cover;
	background-position: center 22%;
	background-color: var(--mll-ink);
}
.woocommerce-products-header::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(43, 29, 18, 0.1) 0%, rgba(43, 29, 18, 0.15) 40%, rgba(43, 29, 18, 0.35) 100%);
}
.term-evening-dress .woocommerce-products-header {
	background-image: url('/wp-content/uploads/2026/09/mll-hero-colonnade-gown.png');
	background-position: center 25%;
}
.mll-shop-cats {
	float: right;
	display: flex;
	gap: 12px;
	margin-bottom: 24px;
}
.mll-shop-cats a {
	font-family: var(--mll-sans);
	font-size: 0.76rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mll-ink) !important;
	border: 1px solid var(--mll-ink);
	padding: 10px 20px;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}
.mll-shop-cats a:hover {
	background: var(--mll-ink);
	color: var(--mll-ivory) !important;
}
@media (max-width: 600px) {
	.mll-shop-cats {
		float: none;
		justify-content: center;
		clear: both;
	}
}
.post-type-archive-product .woocommerce-products-header {
	background-image: url('/wp-content/uploads/2026/10/mll-category-exclusive-edition-v2.jpg');
	background-position: center 30%;
}
.term-exclusive-edition .woocommerce-products-header {
	background-image: url('/wp-content/uploads/2026/09/mll-category-exclusive-edition.jpg');
	background-position: center 25%;
}
.woocommerce-products-header__title.page-title {
	position: relative;
	z-index: 1;
	font-family: var(--mll-serif);
	font-size: clamp(2.4rem, 4.4vw, 3.4rem);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--mll-ivory);
	margin-bottom: 20px;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
	animation: mll-rise 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.term-description {
	display: none;
}
@media (prefers-reduced-motion: reduce) {
	.woocommerce-products-header__title.page-title,
	.term-description {
		animation: none;
	}
}

.woocommerce-breadcrumb {
	position: relative;
	z-index: 1;
	font-family: var(--mll-sans);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mll-parchment);
	opacity: 0.85;
}
.woocommerce-breadcrumb a {
	color: var(--mll-parchment);
}

/* ---- Contact form ---- */
.mll-contact-form {
	max-width: 480px;
	margin: 2rem 0;
}
.mll-contact-form .mll-form-row {
	margin-bottom: 1.25rem;
}
.mll-contact-form label {
	display: block;
	font-family: var(--mll-sans);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mll-ink-soft);
	margin-bottom: 0.5rem;
}
.mll-contact-form input[type="text"],
.mll-contact-form input[type="email"],
.mll-contact-form textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--mll-line);
	background: var(--mll-ivory);
	font-family: var(--mll-sans);
	font-size: 0.95rem;
	color: var(--mll-ink);
	border-radius: 0;
}
.mll-contact-form input:focus,
.mll-contact-form textarea:focus {
	outline: none;
	border-color: var(--mll-gold);
}
.mll-form-submit {
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	background: var(--mll-ink);
	color: var(--mll-ivory);
	border: none;
	padding: 0.9rem 2.2rem;
	cursor: pointer;
	transition: background 0.3s ease;
}
.mll-form-submit:hover {
	background: var(--mll-gold);
}
.mll-form-notice {
	padding: 0.9rem 1.2rem;
	margin-bottom: 1.5rem;
	font-size: 0.9rem;
}
.mll-form-success {
	background: rgba(201, 152, 47, 0.12);
	border: 1px solid var(--mll-gold-soft);
	color: var(--mll-ink);
}
.mll-form-error {
	background: rgba(184, 60, 40, 0.08);
	border: 1px solid rgba(184, 60, 40, 0.3);
	color: #7a2a1a;
}

/* ---- My Account / login / register ---- */
.woocommerce-account .entry-content,
.woocommerce-page.woocommerce-account #content {
	padding-top: 1rem;
}
.woocommerce-MyAccount-navigation {
	font-family: var(--mll-sans);
}
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	border-bottom: 1px solid var(--mll-line);
}
.woocommerce-MyAccount-navigation li {
	display: inline-block;
	margin-right: 1.75rem;
}
.woocommerce-MyAccount-navigation li a {
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mll-ink-soft);
	padding-bottom: 0.9rem;
	display: inline-block;
	border-bottom: 2px solid transparent;
	transition: color 0.25s ease, border-color 0.25s ease;
}
.woocommerce-MyAccount-navigation li a:hover {
	color: var(--mll-ink);
}
.woocommerce-MyAccount-navigation li.is-active a {
	color: var(--mll-ink);
	border-bottom-color: var(--mll-gold);
}
.woocommerce-MyAccount-content {
	font-family: var(--mll-sans);
	color: var(--mll-ink-soft);
}
.woocommerce-MyAccount-content h2,
.woocommerce form.login h2,
.woocommerce form.register h2,
.woocommerce-account .woocommerce-form-row + h2 {
	font-family: var(--mll-serif);
	color: var(--mll-ink);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 1.3rem;
}
.woocommerce form.login,
.woocommerce form.register,
.woocommerce-EditAccountForm,
.woocommerce-address-fields,
.woocommerce-ResetPassword {
	max-width: 480px;
}
.woocommerce form.login label,
.woocommerce form.register label,
.woocommerce-EditAccountForm label,
.woocommerce-address-fields label,
.woocommerce-ResetPassword label {
	font-family: var(--mll-sans);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mll-ink-soft);
	display: block;
	margin-bottom: 0.5rem;
}
.woocommerce form.login input.input-text,
.woocommerce form.register input.input-text,
.woocommerce-EditAccountForm input.input-text,
.woocommerce-address-fields input.input-text,
.woocommerce-address-fields select,
.woocommerce-ResetPassword input.input-text {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--mll-line);
	background: var(--mll-ivory);
	font-family: var(--mll-sans);
	font-size: 0.95rem;
	color: var(--mll-ink);
	border-radius: 0;
	margin-bottom: 1.1rem;
}
.woocommerce form.login input.input-text:focus,
.woocommerce form.register input.input-text:focus,
.woocommerce-EditAccountForm input.input-text:focus,
.woocommerce-address-fields input.input-text:focus,
.woocommerce-ResetPassword input.input-text:focus {
	outline: none;
	border-color: var(--mll-gold);
}
.woocommerce form.login .woocommerce-form__label-for-checkbox,
.woocommerce form.register .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	text-transform: none;
	letter-spacing: normal;
	font-size: 0.9rem;
}
.woocommerce #customer_login .col-1,
.woocommerce #customer_login .col-2 {
	border: 1px solid var(--mll-line);
	padding: 2rem;
}
.woocommerce form .button,
.woocommerce form.login button.button,
.woocommerce form.register button.button,
.woocommerce-EditAccountForm button.button,
.woocommerce-address-fields button.button,
.woocommerce-ResetPassword button.button,
.woocommerce-MyAccount-content .button {
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	background: var(--mll-ink);
	color: var(--mll-ivory);
	border: none;
	padding: 0.9rem 2.2rem;
	cursor: pointer;
	border-radius: 0;
	transition: background 0.3s ease;
}
.woocommerce form .button:hover,
.woocommerce-MyAccount-content .button:hover {
	background: var(--mll-gold);
	color: var(--mll-ink);
}
.woocommerce-MyAccount-content table.shop_table {
	border: 1px solid var(--mll-line);
	border-collapse: collapse;
	width: 100%;
}
.woocommerce-MyAccount-content table.shop_table th,
.woocommerce-MyAccount-content table.shop_table td {
	border: 1px solid var(--mll-line);
	padding: 0.85rem 1rem;
	font-family: var(--mll-sans);
	font-size: 0.9rem;
}
.woocommerce-MyAccount-content table.shop_table th {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.72rem;
	background: var(--mll-parchment);
}
/* Optional account-creation checkbox at checkout */
.woocommerce-account-fields {
	margin: 1.5rem 0;
	padding: 1.5rem;
	border: 1px solid var(--mll-line);
	background: var(--mll-ivory);
}
.woocommerce-account-fields .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--mll-sans);
	font-size: 0.9rem;
	text-transform: none;
	letter-spacing: normal;
	color: var(--mll-ink);
}

/* ---- Single product page ---- */
.woocommerce div.product .woocommerce-product-gallery {
	border: 1px solid var(--mll-gold-soft);
	padding: 10px;
	background: var(--mll-parchment);
}
.woocommerce div.product .summary.entry-summary {
	font-family: var(--mll-sans);
}
.woocommerce div.product .summary.entry-summary h1.product_title {
	font-family: var(--mll-serif);
	color: var(--mll-ink);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: clamp(1.6rem, 2.6vw, 2.2rem);
	margin-bottom: 0.75rem;
}
.woocommerce div.product .summary.entry-summary p.price,
.woocommerce div.product .summary.entry-summary .woocommerce-Price-amount {
	font-family: var(--mll-serif);
	color: var(--mll-gold);
	font-size: 1.5rem;
	font-weight: 500;
}
.woocommerce div.product .summary.entry-summary .woocommerce-product-details__short-description {
	color: var(--mll-ink-soft);
	font-weight: 300;
	line-height: 1.75;
	margin: 1.2rem 0 1.6rem;
}
.woocommerce div.product .summary.entry-summary .quantity input.qty {
	border: 1px solid var(--mll-line);
	background: var(--mll-ivory);
	color: var(--mll-ink);
	border-radius: 0;
	font-family: var(--mll-sans);
	height: 100%;
}
.woocommerce div.product .summary.entry-summary form.cart {
	display: flex;
	align-items: stretch;
	gap: 1rem;
}
.woocommerce div.product .summary.entry-summary .product_meta {
	margin-top: 1.75rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--mll-line);
	font-size: 0.85rem;
	color: var(--mll-ink-soft);
}
.woocommerce div.product .summary.entry-summary .product_meta a {
	color: var(--mll-ink);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--mll-ink-soft);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--mll-ink);
}
.woocommerce div.product .woocommerce-tabs .panel {
	font-family: var(--mll-sans);
	color: var(--mll-ink-soft);
	font-weight: 300;
	line-height: 1.8;
}
.related.products > h2 {
	font-family: var(--mll-serif);
	color: var(--mll-ink);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 1.5rem;
	text-align: center;
	margin-bottom: 2rem;
}

/* ==========================================================================
   Static pages (Privacy Policy, Shipping & Returns, Terms, Contact) —
   these are plain Gutenberg content, not Elementor, so they need their
   own pass to match the rest of the brand instead of falling back to
   Astra's bare defaults.
   ========================================================================== */
.ast-article-single .entry-title {
	font-family: var(--mll-serif);
	color: var(--mll-ink);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 600;
	text-align: center;
	font-size: clamp(1.9rem, 3.4vw, 2.6rem);
	max-width: 760px;
	margin: 0 auto 0;
}
.ast-article-single .entry-header {
	background: var(--mll-parchment);
	padding: 90px 24px 46px;
	margin-bottom: 56px;
	text-align: center;
}
.ast-article-single .entry-header::after {
	content: '';
	display: block;
	width: 44px;
	height: 2px;
	background: linear-gradient(90deg, var(--mll-gold) 0%, var(--mll-coral) 100%);
	margin: 22px auto 0;
}
.ast-article-single .entry-content {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 24px 100px;
	font-family: var(--mll-sans);
	color: var(--mll-ink-soft);
	font-weight: 300;
	line-height: 1.8;
}
.ast-article-single .entry-content h2 {
	font-family: var(--mll-serif);
	color: var(--mll-ink);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	font-size: 1.15rem;
	margin: 2.6rem 0 1rem;
	padding-top: 1.6rem;
	border-top: 1px solid var(--mll-line);
}
.ast-article-single .entry-content > h2:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}
.ast-article-single .entry-content p {
	margin-bottom: 1.1rem;
}
.ast-article-single .entry-content a {
	color: var(--mll-ink);
	text-decoration: underline;
	text-decoration-color: var(--mll-gold-soft);
	text-underline-offset: 3px;
	transition: text-decoration-color 0.25s ease;
}
.ast-article-single .entry-content a:hover {
	text-decoration-color: var(--mll-gold);
}
.ast-article-single .entry-content ul,
.ast-article-single .entry-content ol {
	margin: 0 0 1.1rem 0;
	padding-left: 1.3rem;
}
.ast-article-single .entry-content li {
	margin-bottom: 0.5rem;
}
.ast-article-single .entry-content ul li::marker {
	color: var(--mll-gold);
}

/* ==========================================================================
   Variation swatches — Color / Size buttons in place of default <select>
   ========================================================================== */
.variations {
	width: 100%;
}
.variations tr {
	display: block;
	margin-bottom: 1.5rem;
}
.variations td.label {
	display: block;
	padding: 0 0 0.6rem;
	font-family: var(--mll-sans);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mll-ink);
}
.variations td.value {
	display: block;
}
/* Visually hidden but still in the page for WooCommerce (works in LTR and RTL) */
select.mll-swatch-source {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
.mll-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.mll-swatch-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--mll-ivory);
	border: 1px solid var(--mll-line);
	color: var(--mll-ink);
	font-family: var(--mll-sans);
	font-size: 0.82rem;
	letter-spacing: 0.02em;
	padding: 10px 18px;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease, transform 0.15s ease-out;
}
.mll-swatches-color .mll-swatch-btn {
	padding: 6px 16px 6px 6px;
}
.mll-swatch-thumb {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background-size: cover;
	background-position: center 15%;
	border: 1px solid var(--mll-gold-soft);
	flex-shrink: 0;
}
.mll-swatch-btn:hover {
	border-color: var(--mll-gold);
}
.mll-swatch-btn:active {
	transform: scale(0.97);
}
.mll-swatch-btn.is-selected {
	border-color: var(--mll-ink);
	border-width: 1.5px;
	font-weight: 500;
}
.woocommerce div.product .summary.entry-summary .woocommerce-variation-availability {
	margin: 0.75rem 0 0;
}
.woocommerce div.product .summary.entry-summary .woocommerce-variation-availability p.stock {
	font-family: var(--mll-sans);
	font-size: 0.82rem;
	letter-spacing: 0.02em;
	color: var(--mll-coral);
	background: none;
	padding: 0;
	margin: 0;
}
.woocommerce div.product .summary.entry-summary .woocommerce-variation-availability p.stock::before {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--mll-gold);
	margin-right: 8px;
	vertical-align: middle;
}

/* ---- Size chart trigger + modal ---- */
.mll-size-chart-link {
	display: inline-block;
	margin-top: 10px;
	background: none;
	border: none;
	padding: 0;
	font-family: var(--mll-sans);
	font-size: 0.78rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--mll-coral);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.mll-size-chart-link:hover {
	color: var(--mll-gold);
}

/* No dark fill when pressing / focusing buttons and links (Astra's default button hover/focus) */
* {
	-webkit-tap-highlight-color: transparent;
}
.mll-swatch-btn:hover,
.mll-swatch-btn:focus,
.mll-swatch-btn:active,
.mll-swatch-btn.is-selected {
	background: var(--mll-ivory) !important;
	color: var(--mll-ink) !important;
}
.mll-size-chart-link:hover,
.mll-size-chart-link:focus,
.mll-size-chart-link:active,
.mll-size-tab:hover,
.mll-size-tab:focus,
.mll-unit-btn:hover,
.mll-unit-btn:focus,
.mll-size-modal__close:hover,
.mll-size-modal__close:focus,
.mll-desktop-trigger:hover,
.mll-desktop-trigger:focus,
.mll-desktop-drawer-close:hover,
.mll-desktop-drawer-close:focus,
.menu-toggle:hover,
.menu-toggle:focus,
.ast-mobile-menu-trigger-minimal:hover,
.ast-mobile-menu-trigger-minimal:focus,
.reset_variations:hover,
.reset_variations:focus {
	background: transparent !important;
	box-shadow: none !important;
}
button:focus:not(:focus-visible),
a:focus:not(:focus-visible) {
	outline: none;
}

/* Give "Clear" some breathing room under the size chart link */
.woocommerce div.product form.cart .mll-size-chart-link + .reset_variations,
.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-left: 28px !important;
}

.mll-size-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(43, 29, 18, 0.55);
	padding: 24px;
	align-items: center;
	justify-content: center;
}
.mll-size-modal.is-open {
	display: flex;
}
.mll-size-modal__panel {
	position: relative;
	background: var(--mll-ivory);
	max-width: 720px;
	width: 100%;
	max-height: 86vh;
	overflow-y: auto;
	padding: 2.2rem 2rem;
	box-shadow: 0 20px 60px rgba(43, 29, 18, 0.35);
}
.mll-size-modal__close {
	position: absolute;
	top: 14px;
	right: 18px;
	background: none;
	border: none;
	font-size: 1.6rem;
	line-height: 1;
	color: var(--mll-ink);
	cursor: pointer;
}
.mll-size-modal__head {
	text-align: center;
	margin-bottom: 1.4rem;
}
.mll-size-modal__head h3 {
	font-family: var(--mll-serif);
	font-size: 1.4rem;
	color: var(--mll-ink);
	margin: 0 0 0.2rem;
}
.mll-size-modal__head p {
	font-family: var(--mll-sans);
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mll-ink-soft);
	margin: 0;
}
.mll-size-modal__tabs {
	display: flex;
	justify-content: center;
	gap: 2rem;
	border-bottom: 1px solid var(--mll-line);
	margin-bottom: 1.6rem;
}
.mll-size-tab {
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	padding: 0 0 0.8rem;
	font-family: var(--mll-sans);
	font-size: 0.82rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--mll-ink-soft);
	cursor: pointer;
}
.mll-size-tab.is-active {
	color: var(--mll-ink);
	border-bottom-color: var(--mll-gold);
}
/* Keep tab text readable when pressed/hovered (Astra turned it white) */
.mll-size-tab,
.mll-size-tab:hover,
.mll-size-tab:focus,
.mll-size-tab:active {
	color: var(--mll-ink-soft) !important;
	background: none !important;
	border-top: 0 !important;
	border-left: 0 !important;
	border-right: 0 !important;
	border-bottom: 2px solid transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}
.mll-size-tab.is-active,
.mll-size-tab.is-active:hover,
.mll-size-tab.is-active:focus {
	color: var(--mll-ink) !important;
	border-bottom-color: var(--mll-gold) !important;
}
.mll-unit-btn,
.mll-unit-btn:hover,
.mll-unit-btn:focus,
.mll-unit-btn:active {
	color: var(--mll-ink-soft) !important;
	background: none !important;
	box-shadow: none !important;
}
.mll-unit-btn.is-active {
	color: var(--mll-ink) !important;
}
.mll-size-unit-toggle {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin-bottom: 1.4rem;
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--mll-ink-soft);
}
.mll-unit-btn {
	background: none;
	border: none;
	padding: 2px 4px;
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--mll-ink-soft);
	cursor: pointer;
}
.mll-unit-btn.is-active {
	color: var(--mll-ink);
	font-weight: 500;
}
.mll-calc-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.1rem 1.4rem;
	margin-bottom: 1.4rem;
}
.mll-calc-grid label {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mll-ink);
}
.mll-calc-grid input,
.mll-calc-grid select {
	border: 1px solid var(--mll-line);
	background: #fff;
	padding: 0.6rem 0.7rem;
	font-family: var(--mll-sans);
	font-size: 0.9rem;
	color: var(--mll-ink);
}
.mll-calc-submit {
	display: block;
	width: 100%;
	background: var(--mll-ink);
	color: var(--mll-ivory);
	border: none;
	padding: 0.85rem 1rem;
	font-family: var(--mll-sans);
	font-size: 0.82rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease;
}
.mll-calc-submit:hover {
	background: var(--mll-coral);
}
.mll-calc-result {
	margin-top: 1.1rem;
	text-align: center;
	font-family: var(--mll-sans);
	font-size: 0.9rem;
	color: var(--mll-ink);
}
.mll-calc-result.is-success {
	color: var(--mll-coral);
	font-weight: 500;
}
.mll-calc-result.is-error {
	color: #a33;
}
.mll-size-table-wrap {
	overflow-x: auto;
}
.mll-size-table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--mll-sans);
	font-size: 0.82rem;
}
.mll-size-table th,
.mll-size-table td {
	border: 1px solid var(--mll-line);
	padding: 0.6rem 0.7rem;
	text-align: center;
	white-space: nowrap;
}
.mll-size-table th {
	background: var(--mll-parchment);
	color: var(--mll-ink);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 500;
	font-size: 0.72rem;
}
.mll-size-note {
	margin-top: 1.2rem;
	text-align: center;
	font-family: var(--mll-serif);
	font-style: italic;
	font-size: 0.95rem;
	color: var(--mll-ink-soft);
}


/* ==========================================================================
   Justified long-form text (Our Story, policy pages, FAQ, product copy)
   ========================================================================== */
.mll-split-text .elementor-widget-text-editor p,
.entry-content > p,
.entry-content .wp-block-paragraph,
.entry-content li,
.woocommerce-Tabs-panel p,
.woocommerce-Tabs-panel li,
.woocommerce-product-details__short-description p,
.mll-faq p, .mll-faq li, .mll-faq summary + * {
	text-align: justify;
	text-justify: inter-word;
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
}

/* Phone hero: portrait photo so the whole gown is visible */
@media (max-width: 767px) {
	.mll-hero-slide-3,
	.mll-hero-slide-3 > .elementor-widget-wrap {
		background-image: url('/wp-content/uploads/2026/10/mll-hero-champagne-gown-mobile.jpg') !important;
		background-size: cover !important;
		background-position: center top !important;
	}
}

/* Phone hero: keep the text on the empty wall above the gown */
@media (max-width: 767px) {
	.mll-hero-image > .elementor-container {
		align-items: stretch;
		padding-top: 24px;
		padding-bottom: 0;
	}
	/* title + tagline at the top, button pinned near the bottom */
	.mll-hero-image .mll-hero-content,
	.mll-hero-image .mll-hero-content > .elementor-widget-wrap {
		height: 100%;
	}
	.mll-hero-image .mll-hero-content > .elementor-widget-wrap {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-content: flex-start;
		padding-bottom: 112px !important;
	}
	.mll-hero-image .mll-hero-content .elementor-widget-button {
		margin-top: auto;
		margin-bottom: 0 !important;
	}
	.mll-hero-image .elementor-heading-title {
		font-size: clamp(1.8rem, 8vw, 2.4rem) !important;
		line-height: 1.1 !important;
	}
	.mll-hero-image .elementor-widget:not(:last-child) { margin-bottom: 12px !important; }
	.mll-hero-slide::after {
		background: linear-gradient(180deg, rgba(20, 16, 13, 0.55) 0%, rgba(20, 16, 13, 0.2) 38%, rgba(20, 16, 13, 0.08) 100%);
	}
}

/* Phone product page: stack options, then quantity + Add to Cart full width */
@media (max-width: 600px) {
	.single-product form.variations_form.cart {
		display: block !important;
	}
	.single-product form.variations_form.cart table.variations,
	.single-product form.variations_form.cart .single_variation_wrap {
		display: block !important;
		width: 100% !important;
		margin-left: 0 !important;
	}
	.single-product form.variations_form.cart table.variations tbody,
	.single-product form.variations_form.cart table.variations tr,
	.single-product form.variations_form.cart table.variations td {
		display: block;
		width: 100%;
	}
	.single-product form.variations_form.cart .single_variation_wrap {
		margin-top: 20px;
	}
	.single-product form.variations_form.cart .woocommerce-variation-add-to-cart {
		display: flex !important;
		gap: 12px;
		align-items: stretch;
	}
	.single-product form.variations_form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button {
		flex: 1;
		width: auto !important;
		margin: 0 !important;
	}
	.single-product form.variations_form.cart .woocommerce-variation-add-to-cart .quantity {
		margin: 0 !important;
	}
}

/* Prices: a touch larger */
ul.products li.product .price { font-size: 1.15rem !important; }
.single-product .summary .price { font-size: 1.7rem !important; }
.single-product .summary .price .amount,
ul.products li.product .price .amount { font-size: inherit !important; }

/* Tighter gap between the feature strip and "Explore the Collections" */
.elementor-top-section.mll-strip { padding-bottom: 10px; }
.elementor-top-section.mll-dark-section { padding-top: 40px; }

/* Size system toggle (US | EU | UK) and delivery note */
.mll-sys-toggle {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--mll-ink-soft);
}
.mll-sys-label { margin-right: 4px; text-transform: uppercase; }
.mll-sys-btn,
.mll-sys-btn:hover,
.mll-sys-btn:focus,
.mll-sys-btn:active {
	background: none !important;
	border: none;
	padding: 2px 4px;
	font-family: var(--mll-sans);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--mll-ink-soft) !important;
	cursor: pointer;
	box-shadow: none;
}
.mll-sys-btn.is-active { color: var(--mll-ink) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.mll-size-modal .mll-sys-toggle { justify-content: center; margin-bottom: 0.8rem; }
.mll-calc-alt { color: var(--mll-ink-soft); font-size: 0.85em; }
.mll-delivery-time {
	margin: 14px 0 0;
	font-family: var(--mll-sans);
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	color: var(--mll-ink-soft);
}
.mll-delivery-time strong { color: var(--mll-ink); font-weight: 500; }

/* Floating WhatsApp button */
.mll-wa {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 9990;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
}
.mll-wa-btn,
.mll-wa-btn:hover,
.mll-wa-btn:focus,
.mll-wa-btn:active {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	border: none;
	padding: 0;
	background: #25d366 !important;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform 0.2s ease;
}
.mll-wa-btn:hover { transform: scale(1.06); }
.mll-wa-menu {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
	padding: 14px 16px;
	min-width: 220px;
}
.mll-wa-menu[hidden] { display: none; }
.mll-wa-title {
	margin: 0 0 10px;
	font-family: var(--mll-sans);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mll-ink-soft);
}
.mll-wa-link,
.mll-wa-link:hover {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	font-family: var(--mll-sans);
	font-size: 0.95rem;
	color: var(--mll-ink);
	text-decoration: none;
	border-top: 1px solid rgba(0, 0, 0, 0.07);
}
.mll-wa-dot { width: 9px; height: 9px; border-radius: 50%; background: #25d366; }
/* keep Astra's back-to-top arrow clear of the WhatsApp button */
#ast-scroll-top { bottom: 96px !important; }
@media (max-width: 600px) {
	.mll-wa { right: 14px; bottom: 14px; }
	#ast-scroll-top { bottom: 86px !important; right: 18px !important; }
}

/* Prices: black, same typeface as the product titles */
ul.products li.product .price,
ul.products li.product .price *,
.woocommerce div.product .summary.entry-summary p.price,
.woocommerce div.product .summary.entry-summary p.price *,
.woocommerce div.product .summary.entry-summary .woocommerce-Price-amount,
.single-product .summary .price,
.single-product .summary .price * {
	font-family: var(--mll-sans) !important;
	color: #000 !important;
	letter-spacing: 0.08em !important;
	font-weight: 400 !important;
}

/* ==========================================================================
   Menu: All Collections with its five sections underneath
   ========================================================================== */
.mll-desktop-drawer-menu .sub-menu,
#ast-hf-mobile-menu .sub-menu {
	display: block !important;
	position: static !important;
	visibility: visible !important;
	opacity: 1 !important;
	transform: none !important;
	width: auto !important;
	margin: 0 0 14px !important;
	padding: 0 0 0 18px !important;
	list-style: none;
	box-shadow: none !important;
	border: none !important;
	background: transparent !important;
}
.mll-desktop-drawer-menu .sub-menu .menu-item,
#ast-hf-mobile-menu .sub-menu .menu-item {
	border-bottom: none !important;
}
.mll-desktop-drawer-menu .sub-menu .menu-link,
#ast-hf-mobile-menu .sub-menu .menu-link {
	padding: 9px 0 !important;
	font-size: 0.82rem !important;
	letter-spacing: 0.12em;
	color: var(--mll-ink-soft) !important;
}
.mll-desktop-drawer-menu .sub-menu .menu-link:hover,
#ast-hf-mobile-menu .sub-menu .menu-link:hover { color: var(--mll-ink) !important; }
.mll-desktop-drawer-menu .ast-menu-toggle,
#ast-hf-mobile-menu .ast-menu-toggle,
.mll-desktop-drawer-menu .dropdown-menu-toggle,
#ast-hf-mobile-menu .dropdown-menu-toggle { display: none !important; }
.mll-desktop-drawer-menu .menu-link .dropdown-menu-toggle { display: none !important; }

/* ==========================================================================
   All Collections page: section tiles
   ========================================================================== */
.mll-sections {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 18px;
	margin: 8px 0 44px;
	clear: both;
}
.mll-section-tile,
.mll-section-tile:hover {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--mll-ink);
}
.mll-section-img {
	display: block;
	aspect-ratio: 3 / 4;
	background-size: cover;
	background-position: center 20%;
	background-color: var(--mll-parchment);
	transition: opacity 0.25s ease;
}
.mll-section-tile:hover .mll-section-img { opacity: 0.88; }
.mll-section-name {
	margin-top: 14px;
	font-family: var(--mll-serif);
	font-size: 1.25rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: center;
}
.mll-section-count {
	margin-top: 3px;
	text-align: center;
	font-family: var(--mll-sans);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mll-ink-soft);
}
.mll-section-heading {
	clear: both;
	margin: 0 0 18px;
	text-align: center;
	font-size: 1.1rem;
}
@media (max-width: 921px) {
	.mll-sections { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
	.mll-sections { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.mll-section-name { font-size: 1.05rem; }
}
.mll-section-heading {
	color: var(--mll-ink) !important;
	font-family: var(--mll-serif);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* Section banners: a little extra shade where the photo is bright, so the title stays readable */
.term-golden-hour .woocommerce-products-header::before { background: rgba(30, 22, 15, 0.42); }
.term-eternelle .woocommerce-products-header::before { background: rgba(30, 22, 15, 0.3); }
.term-loui-prive .woocommerce-products-header::before { background: rgba(30, 22, 15, 0.22); }

/* Phone menu: keep the main links espresso/black (no blue-grey) */
#ast-hf-mobile-menu.main-header-menu > .menu-item > .menu-link { color: var(--mll-ink) !important; }

/* Logo */
.site-branding .custom-logo-link img { width: auto; height: 40px; max-width: none; }
.ast-logo-title-inline .site-logo-img { padding-right: 12px; }
.mll-footer-logo { display: block; width: 150px; height: auto; margin: 0 0 18px; }
@media (max-width: 544px) { .site-branding .custom-logo-link img { height: 32px; } }

/* Phone menu language buttons */
.mll-lang-hidden { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.mll-lang-pills { display: flex; justify-content: center; gap: 10px; padding: 22px 0 90px; }
.mll-lang-pills button {
	min-width: 52px; padding: 11px 14px; background: transparent; color: var(--mll-ink, #2b1d12);
	border: 1px solid var(--mll-line, #e6dccd); border-radius: 0; font: 400 13px/1 'Jost', sans-serif;
	letter-spacing: .14em; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.mll-lang-pills button.is-active { background: var(--mll-ink, #2b1d12); color: #fff; border-color: var(--mll-ink, #2b1d12); }
@media (min-width: 922px) { .mll-lang-pills { display: none; } }

/* Arabic (right to left) */
html[dir="rtl"] .mll-back svg { transform: scaleX(-1); }
html[dir="rtl"] .entry-content,
html[dir="rtl"] .woocommerce-tabs,
html[dir="rtl"] .site-footer .widget,
html[dir="rtl"] .mll-footer { direction: rtl; text-align: right; }
html[dir="rtl"] .entry-content ul,
html[dir="rtl"] .entry-content ol { padding-right: 1.2em; padding-left: 0; }
html[dir="rtl"] .mll-lang-pills { direction: ltr; }
html[dir="rtl"] .entry-content a[href^="tel:"],
html[dir="rtl"] .entry-content a[href*="wa.me"] { direction: ltr; unicode-bidi: embed; }
html[dir="rtl"] #masthead,
html[dir="rtl"] .site-header,
html[dir="rtl"] .mll-lang,
html[dir="rtl"] .mll-desktop-trigger,
html[dir="rtl"] .mll-desktop-drawer .mll-lang-pills { direction: ltr; }
html[dir="rtl"] .mll-desktop-drawer,
html[dir="rtl"] .ast-mobile-popup-drawer .ast-mobile-popup-content { direction: rtl; text-align: right; }
html[dir="rtl"] .mll-split .elementor-widget-text-editor p:first-of-type:first-letter { all: unset; }
a[href^="mailto:"] { direction: ltr; unicode-bidi: isolate; }
