/* =========================================================
   Saidah Collections — LUXE redesign layer (v4)
   Loaded LAST. Re-themes the existing components without
   touching main.css / sections-v2.css / single-product.css.

   Palette is taken from the crest: royal violet + antique gold,
   set on warm ivory. Type: Cormorant Garamond (display) + Jost (UI).

   To fall back to the Customizer colours instead, delete the
   "PALETTE" block directly below.
   ========================================================= */

/* ---------- PALETTE (overrides Customizer colour vars) ---------- */
body {
	--saidah-primary: #3F1D72;
	--saidah-secondary: #B8923A;
	--saidah-bg: #FBF8F2;
	--saidah-surface: #F2EBDD;
	--saidah-border: #E4D9C6;
	--saidah-text: #1E1330;
	--saidah-muted: #6F6480;
	--saidah-radius: 2px;
	--saidah-shadow: none;
	--saidah-font-heading: 'Cormorant Garamond', 'Times New Roman', serif;
	--saidah-font-body: 'Jost', system-ui, sans-serif;
	--saidah-section-gap: 96px;

	--lx-ink: #1E1330;
	--lx-royal: #3F1D72;
	--lx-deep: #1B0D33;
	--lx-gold: #B8923A;
	--lx-gold-soft: #D9BE7C;
	--lx-ivory: #FBF8F2;
	--lx-cream: #F2EBDD;
	--lx-line: #E4D9C6;
	--lx-muted: #6F6480;
	--lx-wide: 1440px;
	--lx-gutter: clamp(20px, 4vw, 56px);
}

body { background: var(--lx-ivory); color: var(--lx-ink); font-weight: 400; }
h1, h2, h3, h4 { font-weight: 500; color: var(--lx-ink); letter-spacing: 0; line-height: 1.12; }
.container-wide { width: 100%; max-width: var(--lx-wide); margin: 0 auto; padding-inline: var(--lx-gutter); }
.container-fluid { padding-inline: var(--lx-gutter); }
.container { max-width: var(--lx-wide); padding-inline: var(--lx-gutter); }

/* ---------- Buttons ---------- */
.btn {
	border-radius: 0;
	font-size: .76rem;
	font-weight: 500;
	letter-spacing: .16em;
	padding: 15px 34px;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.btn-primary { background: var(--lx-royal); color: #fff; border-color: var(--lx-royal); }
.btn-primary:hover { background: var(--lx-deep); border-color: var(--lx-deep); }
.btn-outline { color: var(--lx-ink); border-color: var(--lx-ink); background: transparent; }
.btn-outline:hover { background: var(--lx-ink); color: #fff; }
.btn-ghost { color: var(--lx-ink); border-color: transparent; background: transparent; padding-inline: 8px; position: relative; }
.btn-ghost::after { content: ""; position: absolute; left: 8px; right: 8px; bottom: 9px; height: 1px; background: var(--lx-gold); transition: transform .3s ease; transform-origin: left; }
.btn-ghost:hover::after { transform: scaleX(.4); }
.btn-gold { background: var(--lx-gold); color: var(--lx-deep); border-color: var(--lx-gold); }
.btn-gold:hover { background: var(--lx-gold-soft); border-color: var(--lx-gold-soft); }
.btn-sm { padding: 10px 22px; font-size: .7rem; }
:focus-visible { outline: 2px solid var(--lx-gold); outline-offset: 3px; }

/* ---------- Shared section furniture ---------- */
.lx-section { padding-block: var(--saidah-section-gap); }
.lx-band { background: var(--lx-cream); }
.lx-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 44px; }
.lx-head--center { flex-direction: column; align-items: center; text-align: center; gap: 10px; }
.lx-title { font-size: clamp(2rem, 3.2vw, 3rem); margin: 0; }
.lx-sub { margin: 0; color: var(--lx-muted); font-size: 1.02rem; }
.lx-sub a:hover { color: var(--lx-royal); }
.lx-link { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid var(--lx-gold); padding-bottom: 4px; white-space: nowrap; }
.lx-link:hover { color: var(--lx-royal); }
.lx-eyebrow { margin: 0 0 18px; font-size: .74rem; letter-spacing: .24em; text-transform: uppercase; color: var(--lx-royal); font-weight: 500; display: flex; align-items: center; gap: 14px; }
.lx-eyebrow::before { content: ""; width: 34px; height: 1px; background: var(--lx-gold); }

/* Old section heading helper (still used by retained sections) */
.section-heading { margin-bottom: 44px; }
.section-eyebrow { width: 44px; height: 1px; border: 0; border-radius: 0; background: var(--lx-gold); margin: 0 auto 18px; }
.section-eyebrow::before { display: none; }
.align-left .section-eyebrow { margin-left: 0; }
.section-kicker { display: block; font-size: .74rem; letter-spacing: .24em; text-transform: uppercase; color: var(--lx-royal); margin-bottom: 12px; }
.section-title { font-size: clamp(2rem, 3.2vw, 3rem); font-weight: 500; }
.section-subtitle { color: var(--lx-muted); }
.section { padding-block: var(--saidah-section-gap); }
.section.alt-bg { background: var(--lx-cream); }

/* =========================================================
   HEADER
   ========================================================= */
.announcement-bar.lx-announce { background: var(--lx-deep); color: #EADFC4; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; padding: 0; animation: none; }
.lx-announce-inner { display: flex; align-items: center; justify-content: center; position: relative; min-height: 38px; }
.lx-announce-text { margin: 0; display: flex; gap: 0; flex-wrap: wrap; justify-content: center; }
.lx-announce-item + .lx-announce-item::before { content: ""; display: inline-block; width: 1px; height: 11px; background: var(--lx-gold); opacity: .7; margin: 0 22px; vertical-align: -1px; }
.lx-announce-link { margin-left: 22px; color: var(--lx-gold-soft); border-bottom: 1px solid currentColor; }
.lx-announce-currency { position: absolute; right: var(--lx-gutter); top: 50%; transform: translateY(-50%); }
.lx-announce-currency select, .lx-announce-currency .currency-select { background: transparent; color: #EADFC4; border: 0; font: inherit; letter-spacing: .1em; text-transform: uppercase; }
.lx-announce-currency option { color: #000; }
.header-topbar { display: none; }

.site-header { background: var(--lx-ivory); box-shadow: none; border-bottom: 1px solid var(--lx-line); }
.site-header.is-scrolled { box-shadow: 0 8px 24px -16px rgba(30, 19, 48, .35); }

.header-main { max-width: var(--lx-wide); }
.custom-logo, .site-branding img { height: 64px; width: 64px; box-shadow: none; }
.site-header.is-scrolled .custom-logo,
.site-header.is-scrolled .site-branding img { height: 46px; width: 46px; }
.site-branding img:hover, .custom-logo:hover { box-shadow: none; }

.header-actions { gap: 4px; }
.action-btn { color: var(--lx-ink); }
.action-btn:hover { color: var(--lx-royal); }
.action-btn .count, .header-actions .count {
	background: var(--lx-royal); color: #fff; font-size: .62rem; min-width: 17px; height: 17px; line-height: 17px; border-radius: 50%;
}

.category-nav { background: var(--lx-ivory); border: 0; }
.mega-menu { gap: clamp(22px, 3vw, 46px); }
.mega-menu > .menu-item > .menu-link {
	font-size: .74rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--lx-ink); padding: 14px 0 16px;
}
.mega-menu > .menu-item > .menu-link::after { background: var(--lx-gold); height: 1px; }
.mega-menu > .menu-item > .menu-link:hover { color: var(--lx-royal); }
.mega-panel { background: var(--lx-ivory); border-top: 1px solid var(--lx-line); box-shadow: 0 24px 40px -28px rgba(30, 19, 48, .35); }

@media (min-width: 992px) {
	.header-main { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding-block: 14px 6px; }
	.site-header.is-scrolled .header-main { padding-block: 8px 2px; }
	.mobile-menu-toggle { display: none; }
	.header-search { grid-column: 1; grid-row: 1; justify-self: start; width: min(300px, 100%); max-width: 300px; margin: 0; }
	.site-branding { grid-column: 2; grid-row: 1; justify-content: center; }
	.header-actions { grid-column: 3; grid-row: 1; justify-self: end; }

	.header-search .saidah-search-form {
		border: 0; border-bottom: 1px solid var(--lx-line); border-radius: 0; background: transparent; box-shadow: none;
	}
	.header-search .saidah-search-form:focus-within { border-bottom-color: var(--lx-gold); box-shadow: none; }
	.header-search .search-field { padding: 10px 0; font-size: .86rem; letter-spacing: .02em; }
	.header-search .search-field::placeholder { color: var(--lx-muted); }
	.header-search .search-submit { background: transparent; color: var(--lx-ink); padding: 0 4px 0 12px; }
	.header-search .search-submit:hover { background: transparent; color: var(--lx-royal); }
}
@media (max-width: 991px) {
	.site-header { border-bottom: 1px solid var(--lx-line); }
	.header-main { padding-block: 10px; }
	.custom-logo, .site-branding img { height: 48px; width: 48px; }
	.announcement-bar.lx-announce { font-size: .66rem; letter-spacing: .1em; }
	.lx-announce-item.is-secondary { display: none; }
	.lx-announce-currency { display: none; }
	.mobile-menu-toggle span { background: var(--lx-ink); }
	.mobile-bottom-nav { background: var(--lx-ivory); border-top: 1px solid var(--lx-line); box-shadow: none; }
	.bottom-nav-item { color: var(--lx-ink); }
	.bottom-nav-item.is-active { color: var(--lx-royal); }
	.mobile-nav-drawer { background: var(--lx-ivory); }
	.mobile-menu-list a { font-family: var(--saidah-font-heading); font-size: 1.35rem; }
}

/* =========================================================
   HERO
   ========================================================= */
.lx-hero { background: var(--lx-ivory); overflow: hidden; }
.lx-hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(32px, 6vw, 96px); min-height: min(86vh, 820px); padding-block: 48px 64px; }
.lx-hero-title { font-size: clamp(2.7rem, 5.6vw, 5.4rem); font-weight: 500; line-height: 1.02; margin: 0 0 26px; max-width: 14ch; }
.lx-hero-text { font-size: 1.12rem; color: var(--lx-muted); max-width: 40ch; margin: 0 0 40px; line-height: 1.7; }
.lx-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }

.lx-hero-visual { position: relative; display: flex; justify-content: center; }
.lx-arch {
	position: relative; width: min(100%, 560px); aspect-ratio: 4 / 5; border-radius: 999px 999px 0 0;
	overflow: hidden; background: var(--lx-royal);
}
.lx-hero-visual::before {
	content: ""; position: absolute; top: -14px; left: 50%; transform: translateX(-50%); width: min(100%, 560px); aspect-ratio: 4 / 5;
	border: 1px solid var(--lx-gold); border-radius: 999px 999px 0 0; translate: 18px 18px; pointer-events: none;
}
.lx-arch img { width: 100%; height: 100%; object-fit: cover; }

.lx-placeholder {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; width: 100%; height: 100%;
	background: radial-gradient(circle at 50% 40%, #4D2690 0%, var(--lx-royal) 55%, var(--lx-deep) 100%); color: #EADFC4; text-align: center; padding: 20px;
}
body .lx-placeholder img { width: 96px; height: 96px; max-width: 96px; border-radius: 50%; opacity: .92; object-fit: contain; }
.lx-placeholder small { font-size: .72rem; letter-spacing: .08em; opacity: .75; max-width: 24ch; }

@media (max-width: 860px) {
	.lx-hero-inner { grid-template-columns: 1fr; min-height: 0; padding-block: 28px 56px; gap: 40px; }
	.lx-hero-visual { order: -1; }
	.lx-arch { width: min(78%, 420px); }
	.lx-hero-visual::before { width: min(78%, 420px); translate: 12px 12px; }
	.lx-hero-title { max-width: 14ch; font-size: clamp(2.5rem, 11vw, 3.4rem); }
	.lx-hero-text { font-size: 1.02rem; margin-bottom: 30px; }
}

/* =========================================================
   CATEGORIES
   ========================================================= */
.lx-cat-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 28px); }
.lx-cat { display: block; text-align: left; }
.lx-cat-media { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--lx-cream); }
.lx-cat-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .6, .2, 1); }
.lx-cat:hover .lx-cat-media img { transform: scale(1.04); }
.lx-cat-name { display: block; margin-top: 16px; font-family: var(--saidah-font-heading); font-size: 1.55rem; line-height: 1.1; }
.lx-cat-cta { display: inline-block; margin-top: 6px; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--lx-muted); border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.lx-cat:hover .lx-cat-cta { color: var(--lx-royal); border-bottom-color: var(--lx-gold); }
@media (min-width: 1200px) {
	/* more than 5 categories: wrap to a second row rather than squeeze */
	.lx-cat-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1100px) { .lx-cat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.lx-cat-grid { display: flex; overflow-x: auto; gap: 14px; scroll-snap-type: x mandatory; margin-inline: calc(var(--lx-gutter) * -1); padding-inline: var(--lx-gutter); scrollbar-width: none; }
	.lx-cat-grid::-webkit-scrollbar { display: none; }
	.lx-cat { flex: 0 0 62%; scroll-snap-align: start; }
	.lx-cat-name { font-size: 1.35rem; }
	.lx-head { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 30px; }
	.lx-head--center { align-items: center; }
}

/* =========================================================
   PRODUCT CARD  (homepage, shop, related, wishlist)
   ========================================================= */
.product-card { background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
.product-card:hover { box-shadow: none; }
.product-media { background: var(--lx-cream); overflow: hidden; }
.product-media-link { display: block; position: relative; aspect-ratio: 4 / 5; }
.product-media img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
.product-img-hover { position: absolute; inset: 0; opacity: 0; transition: opacity .45s ease; }

.wishlist-btn {
	position: absolute; top: 12px; right: 12px; z-index: 3; width: 34px; height: 34px; border-radius: 50%;
	background: rgba(251, 248, 242, .92); color: var(--lx-ink); box-shadow: none; border: 0;
	display: flex; align-items: center; justify-content: center;
}
.wishlist-btn:hover { color: var(--lx-royal); background: #fff; }
.wishlist-btn .saidah-icon { width: 17px; height: 17px; stroke-width: 1.5; }

.product-label { top: 12px; left: 12px; z-index: 3; border-radius: 0; background: var(--lx-royal); color: #fff; font-size: .66rem; font-weight: 500; letter-spacing: .1em; padding: 5px 10px; text-transform: uppercase; }
.product-label.label-soldout { background: var(--lx-muted); }

.quick-view-btn {
	left: 0; right: 0; bottom: 0; border-radius: 0; width: 100%; background: rgba(251, 248, 242, .94); color: var(--lx-ink);
	font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; padding: 13px; border: 0;
}
.quick-view-btn:hover { background: var(--lx-ink); color: #fff; }

.product-info { padding: 16px 2px 0; text-align: left; }
.product-title { font-family: var(--saidah-font-body); font-size: .94rem; font-weight: 400; letter-spacing: .01em; line-height: 1.4; margin: 0 0 6px; min-height: 0; }
.product-title a { color: var(--lx-ink); }
.product-title a:hover { color: var(--lx-royal); }
.product-rating { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; font-size: .72rem; color: var(--lx-muted); }
.product-rating-stars { display: inline-block; font-size: .82rem; letter-spacing: 2px; line-height: 1; }
.product-rating-stars::before {
	content: "★★★★★"; background: linear-gradient(90deg, var(--lx-gold) calc(var(--rating, 0) / 5 * 100%), var(--lx-line) 0);
	-webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}
.product-price { font-size: .95rem; font-weight: 500; color: var(--lx-ink); margin-bottom: 12px; min-height: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
.product-price del { color: var(--lx-muted); font-weight: 300; margin: 0; order: 2; }
.product-price ins { text-decoration: none; order: 1; color: var(--lx-royal); }
.product-info .btn-add-cart {
	margin-top: auto; width: 100%; padding: 12px 8px; background: transparent; color: var(--lx-ink);
	border: 1px solid var(--lx-line); font-size: .68rem; letter-spacing: .16em; border-radius: 0;
}
.product-info .btn-add-cart:hover { background: var(--lx-ink); border-color: var(--lx-ink); color: #fff; }
.product-info .btn-add-cart.added { border-color: var(--lx-gold); }
a.added_to_cart { display: none; }

@media (hover: hover) and (min-width: 992px) {
	.has-hover-image:hover .product-img-hover { opacity: 1; }
	.product-media .quick-view-btn { transform: translateY(100%); opacity: 1; transition: transform .35s ease; }
	.product-card:hover .quick-view-btn { transform: translateY(0); }
	.product-media .wishlist-btn { opacity: 0; transition: opacity .25s ease; }
	.product-card:hover .wishlist-btn, .wishlist-btn.is-active, .wishlist-btn:focus-visible { opacity: 1; }
}
@media (hover: none), (max-width: 991px) {
	.quick-view-btn { display: none; }
	.product-info .btn-add-cart { padding: 11px 6px; }
}

/* ---------- Carousel (Best Sellers): 4 across on desktop ---------- */
.carousel-wrap { position: relative; }
.product-carousel { gap: clamp(14px, 1.6vw, 28px); padding-bottom: 4px; }
.carousel-slide { width: calc((100% - 3 * clamp(14px, 1.6vw, 28px)) / 4); min-width: 0; }
.carousel-nav { background: var(--lx-ivory); color: var(--lx-ink); border: 1px solid var(--lx-line); border-radius: 50%; box-shadow: none; top: 36%; }
.carousel-nav:hover { background: var(--lx-ink); color: #fff; transform: translateY(-50%); }
@media (max-width: 1100px) { .carousel-slide { width: calc((100% - 2 * 18px) / 3); } }
@media (max-width: 767px) { .carousel-slide { width: 46%; } .product-carousel { gap: 14px; } }
@media (max-width: 480px) { .carousel-slide { width: 46%; } }

/* ---------- Grids: 4 desktop / 3 tablet / 2 mobile (never 1) ---------- */
.product-grid { gap: clamp(22px, 2.4vw, 40px) clamp(14px, 1.6vw, 28px); }
.product-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1199px) { .product-grid-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .product-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 12px; } }
@media (max-width: 480px)  { .product-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .product-title { font-size: .86rem; min-height: 0; } .product-info { padding: 12px 0 0; } }
.lx-grid-item { min-width: 0; display: flex; }
.lx-grid-item > .product-card { width: 100%; }

/* New Arrivals: on a cream band, cards sit on ivory tiles */
.lx-band .product-media { background: var(--lx-ivory); }

/* =========================================================
   BRAND STORY
   ========================================================= */
.lx-story { background: var(--lx-ivory); padding-block: 0 var(--saidah-section-gap); }
.lx-story-inner { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(36px, 7vw, 120px); align-items: center; }
.lx-story-media { aspect-ratio: 5 / 6; overflow: hidden; background: var(--lx-cream); }
.lx-story-media img { width: 100%; height: 100%; object-fit: cover; }
.lx-story-title { font-size: clamp(2.2rem, 3.8vw, 3.8rem); margin: 0 0 24px; max-width: 14ch; }
.lx-story-copy p:not(.lx-eyebrow) { color: var(--lx-muted); font-size: 1.06rem; line-height: 1.8; max-width: 46ch; margin: 0 0 34px; }
@media (max-width: 860px) {
	.lx-story-inner { grid-template-columns: 1fr; }
	.lx-story-media { aspect-ratio: 4 / 4.2; }
}

/* =========================================================
   OCCASIONS
   ========================================================= */
.lx-occ-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 22px); }
.occasion-card.lx-occ { position: relative; display: block; overflow: hidden; background: var(--lx-royal); border-radius: 0; box-shadow: none; transform: none; }
.lx-occ-media { display: block; aspect-ratio: 3 / 4; }
.lx-occ-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .6, .2, 1); }
.lx-occ:hover .lx-occ-media img { transform: scale(1.04); }
.lx-occ-caption {
	position: absolute; inset: auto 0 0 0; padding: 60px 18px 20px; display: block; text-align: left; color: #fff;
	background: linear-gradient(0deg, rgba(27, 13, 51, .78), rgba(27, 13, 51, 0));
}
.lx-occ .occasion-title { font-family: var(--saidah-font-heading); font-size: 1.6rem; color: #fff; }
@media (max-width: 1100px) { .lx-occ-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
	.lx-occ-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lx-occ-grid .lx-occ:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.lx-occ-grid .lx-occ:last-child:nth-child(odd) .lx-occ-media { aspect-ratio: 16 / 9; }
	.lx-occ .occasion-title { font-size: 1.3rem; }
}

/* =========================================================
   SIGNATURE COLLECTION BANNER
   ========================================================= */
.lx-signature { position: relative; isolation: isolate; background: radial-gradient(circle at 70% 30%, #55299A 0%, var(--lx-royal) 45%, var(--lx-deep) 100%); color: #fff; overflow: hidden; }
.lx-signature-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.lx-signature.has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(27, 13, 51, .82) 0%, rgba(27, 13, 51, .35) 60%, rgba(27, 13, 51, .1) 100%); z-index: -1; }
.lx-signature-inner { padding-block: clamp(80px, 12vw, 160px); max-width: var(--lx-wide); }
.lx-signature .lx-eyebrow { color: var(--lx-gold-soft); }
.lx-signature-title { color: #fff; font-size: clamp(2.2rem, 4.6vw, 4.4rem); max-width: 17ch; margin: 0 0 38px; font-weight: 500; }

/* =========================================================
   TRUST
   ========================================================= */
.lx-trust { background: var(--lx-ivory); padding-block: 72px; border-bottom: 1px solid var(--lx-line); }
.lx-trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.lx-trust-item { text-align: center; padding-inline: 12px; }
.lx-trust-icon { color: var(--lx-gold); margin-bottom: 16px; }
.lx-trust-item h3 { font-family: var(--saidah-font-body); font-size: .78rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 8px; }
.lx-trust-item p { margin: 0; color: var(--lx-muted); font-size: .95rem; max-width: 26ch; margin-inline: auto; }
@media (max-width: 767px) { .lx-trust { padding-block: 52px; } .lx-trust-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 16px; } .lx-trust-item p { font-size: .88rem; } }

/* =========================================================
   REVIEWS
   ========================================================= */
.testimonials.lx-band { background: var(--lx-cream); }
.testimonial-carousel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 32px); overflow: visible; }
.testimonial-card { width: auto; background: var(--lx-ivory); border: 1px solid var(--lx-line); border-radius: 0; box-shadow: none; padding: 40px 34px; text-align: left; }
.testimonial-stars { color: var(--lx-line); letter-spacing: 3px; margin-bottom: 18px; }
.testimonial-stars .star.filled { color: var(--lx-gold); }
.testimonial-text, .testimonial-text p { font-family: var(--saidah-font-heading); font-style: normal; font-size: 1.32rem; line-height: 1.45; margin: 0; color: var(--lx-ink); }
.testimonial-author { margin-top: 26px; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; }
.testimonial-author small { display: block; letter-spacing: .04em; text-transform: none; color: var(--lx-muted); font-size: .82rem; }
@media (max-width: 900px) {
	.testimonial-carousel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin-inline: calc(var(--lx-gutter) * -1); padding-inline: var(--lx-gutter); scrollbar-width: none; }
	.testimonial-card { flex: 0 0 84%; scroll-snap-align: center; padding: 30px 24px; }
}

/* =========================================================
   INSTAGRAM
   ========================================================= */
.instagram-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(6px, .8vw, 12px); overflow: visible; }
.instagram-item { width: auto; height: auto; aspect-ratio: 1; border-radius: 0; display: block; overflow: hidden; background: var(--lx-cream); }
.instagram-overlay { background: rgba(27, 13, 51, .5); color: #fff; }
.instagram-live-item { width: auto; max-width: none; }
@media (max-width: 767px) { .instagram-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* =========================================================
   NEWSLETTER
   ========================================================= */
.newsletter.lx-newsletter { background: var(--lx-deep); color: #EADFC4; padding-block: 88px; }
.newsletter-inner { max-width: 640px; text-align: center; }
.newsletter-title { font-size: clamp(2rem, 3.4vw, 3rem); color: #fff; margin: 0 0 14px; }
.lx-newsletter-text { margin: 0 0 34px; color: #CFC3DC; font-size: 1.02rem; }
.newsletter-form { gap: 0; border-bottom: 1px solid var(--lx-gold); }
.newsletter-form input { background: transparent; border: 0; border-radius: 0; color: #fff; padding: 16px 4px; font-size: .95rem; }
.newsletter-form input::placeholder { color: #A99DBA; }
.newsletter-form input:focus { outline: none; }
.newsletter-form .btn { background: transparent; color: var(--lx-gold-soft); border: 0; padding-inline: 8px 4px; }
.newsletter-form .btn:hover { color: #fff; background: transparent; }
.newsletter-response { color: var(--lx-gold-soft); min-height: 1.4em; }
@media (max-width: 480px) { .newsletter-form { flex-direction: row; } .newsletter.lx-newsletter { padding-block: 64px; } }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer.lx-footer { background: var(--lx-deep); color: #CFC3DC; border-top: 1px solid rgba(184, 146, 58, .35); }
.lx-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1.3fr; gap: clamp(28px, 4vw, 64px); padding-block: 72px 56px; }
.lx-footer-brand .custom-logo { height: 84px; width: 84px; box-shadow: none; border: 0; }
.lx-footer-about { margin: 20px 0 22px; max-width: 34ch; font-size: .94rem; line-height: 1.75; }
.lx-footer .footer-heading { font-family: var(--saidah-font-body); font-size: .74rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--lx-gold-soft); margin: 0 0 22px; }
.lx-footer-col ul li { margin-bottom: 12px; font-size: .94rem; }
.lx-footer a { color: #CFC3DC; transition: color .2s; }
.lx-footer a:hover { color: #fff; }
.lx-footer .contact-list li { display: flex; gap: 10px; align-items: flex-start; }
.lx-footer .contact-list .saidah-icon { flex: none; margin-top: 3px; color: var(--lx-gold-soft); }
.lx-footer .footer-social { display: flex; gap: 10px; }
.lx-footer .footer-social a { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(217, 190, 124, .45); display: inline-flex; align-items: center; justify-content: center; color: var(--lx-gold-soft); background: transparent; }
.lx-footer .footer-social a:hover { background: var(--lx-gold); border-color: var(--lx-gold); color: var(--lx-deep); }
.lx-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding: 22px 0; }
.lx-footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.lx-footer .footer-copy { margin: 0; font-size: .8rem; color: #A99DBA; }
.lx-footer .footer-payments { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }
.lx-footer .pay-badge { border: 1px solid rgba(255, 255, 255, .22); background: transparent; color: #CFC3DC; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; padding: 5px 10px; border-radius: 2px; }
@media (max-width: 1100px) { .lx-footer-grid { grid-template-columns: 1fr 1fr 1fr; } .lx-footer-brand { grid-column: 1 / -1; } }
@media (max-width: 640px) {
	.lx-footer-grid { grid-template-columns: 1fr 1fr; padding-block: 52px 36px; }
	.lx-footer-col.footer-contact { grid-column: 1 / -1; }
	.lx-footer-bottom-inner { flex-direction: column; align-items: flex-start; }
}

/* Footer SEO keyword block (inc/seo-footer.php) — keep it quiet */
.footer-seo, .saidah-footer-seo { border-top: 1px solid rgba(255, 255, 255, .08); color: #8F829F; font-size: .78rem; }
.footer-seo a, .saidah-footer-seo a { color: #A99DBA; }

/* =========================================================
   RETAINED EXTRAS — calmed to match (Celebrate Her, Gifting,
   Shop by Colour, New Launch, banner positions)
   ========================================================= */
.celebrate-her { background: var(--lx-cream); }
.persona-tab { border-radius: 0; background: var(--lx-ivory); }
.persona-tab:hover { transform: none; box-shadow: none; border-color: var(--lx-ink); }
.persona-tab.is-active { border-color: var(--lx-royal); box-shadow: 0 0 0 1px var(--lx-royal) inset; }
.persona-tab-media { border-radius: 50%; }
.gift-band { border-radius: 0; background: var(--lx-ivory); }
.gift-band:hover { transform: none; box-shadow: none; border-color: var(--lx-ink); }
.gift-band.is-active { background: var(--lx-cream); border-color: var(--lx-royal); }
.gift-band-label { font-size: 1.5rem; }
.color-swatch-dot { box-shadow: none; }
.banner-position .banner-card, .banner-position .banner-card img { border-radius: 0; box-shadow: none; }
.banner-position { padding-block: 0; }

/* =========================================================
   SHOP / CATEGORY PAGE
   ========================================================= */
.category-hero { background: var(--lx-cream); padding: 40px 0 36px; border-bottom: 1px solid var(--lx-line); text-align: left; }
.category-hero.has-image { padding: 90px 0 60px; background-color: var(--lx-deep); }
.category-hero-title { font-size: clamp(2.2rem, 4vw, 3.6rem); font-weight: 500; color: var(--lx-ink); }
.category-hero.has-image .category-hero-title { color: #fff; }
.category-hero-title::after { background: var(--lx-gold); height: 1px; width: 56px; }
.category-hero .term-description, .category-hero .term-description p { color: var(--lx-muted); font-size: 1rem; }
.category-hero.has-image .term-description, .category-hero.has-image .term-description p { color: rgba(255, 255, 255, .85); }
.category-hero:not(.has-image) .saidah-breadcrumbs,
.category-hero:not(.has-image) .woocommerce-breadcrumb,
.category-hero:not(.has-image) .woocommerce-breadcrumb a { color: var(--lx-muted); }
.saidah-breadcrumbs, .woocommerce-breadcrumb { font-size: .76rem; letter-spacing: .06em; }

.shop-page { padding-top: 12px; padding-bottom: var(--saidah-section-gap); }
.shop-toolbar { border-bottom: 1px solid var(--lx-line); padding-block: 16px; margin-bottom: 36px; gap: 16px; }
.shop-filter-toggle { border: 1px solid var(--lx-ink); border-radius: 0; color: var(--lx-ink); background: transparent; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; padding: 11px 22px; }
.shop-filter-toggle:hover { background: var(--lx-ink); color: #fff; }
.shop-result-count { font-size: .82rem; color: var(--lx-muted); }
.shop-sort-select { border: 0; border-bottom: 1px solid var(--lx-line); border-radius: 0; background: transparent; font-size: .84rem; padding: 8px 30px 8px 4px; }
.shop-filter-panel { background: var(--lx-ivory); box-shadow: 0 0 60px rgba(27, 13, 51, .25); }
.shop-filter-panel-header { border-bottom: 1px solid var(--lx-line); }
.shop-filter-panel-header h3 { font-size: 1.7rem; color: var(--lx-ink); }
.filter-group { border-bottom: 1px solid var(--lx-line); }
.filter-group-title { font-family: var(--saidah-font-body); font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: var(--lx-ink); }
.filter-checkbox input { accent-color: var(--lx-royal); }
.shop-filter-panel-footer { border-top: 1px solid var(--lx-line); background: var(--lx-ivory); }
.category-subcats-wrap .category-grid { gap: 16px; }
.category-products-heading .rail-title { font-size: 2rem; }

.woocommerce-pagination, .shop-pagination { margin-top: 56px; }
.woocommerce-pagination a, .woocommerce-pagination span,
.shop-pagination a, .shop-pagination span, .shop-pagination button { border-radius: 0; border-color: var(--lx-line); background: transparent; }
.woocommerce-pagination .current, .shop-pagination .current, .shop-pagination .is-active { background: var(--lx-ink); border-color: var(--lx-ink); color: #fff; }

/* =========================================================
   SINGLE PRODUCT
   ========================================================= */
.single-product-page { padding-block: 8px var(--saidah-section-gap); max-width: var(--lx-wide); margin-inline: auto; }
.single-product-page .saidah-breadcrumbs { padding-block: 22px; color: var(--lx-muted); }
.product-main-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.product-gallery-wrap { position: sticky; top: 110px; }
.woocommerce-product-gallery__wrapper, .woocommerce-product-gallery__image { border-radius: 0; background: var(--lx-cream); }
.woocommerce-product-gallery__image img, .woocommerce-product-gallery img { aspect-ratio: 4 / 5; }
.woocommerce-product-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.woocommerce-product-gallery .flex-control-thumbs img { aspect-ratio: 1; object-fit: cover; opacity: .55; border-radius: 0; cursor: pointer; transition: opacity .2s; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }

.product-summary-wrap { padding-top: 6px; }
.product-summary-wrap .product_title, .product-summary-wrap h1 { font-size: clamp(2rem, 3.2vw, 3rem); font-weight: 500; margin: 0 0 14px; line-height: 1.08; }
.product-summary-wrap .woocommerce-product-rating { margin-bottom: 14px; }
.product-summary-wrap .star-rating { color: var(--lx-gold); }
.product-summary-wrap .price { font-size: 1.5rem; font-weight: 400; color: var(--lx-ink); margin: 0 0 20px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.product-summary-wrap .price ins { text-decoration: none; color: var(--lx-royal); order: 1; }
.product-summary-wrap .price del { color: var(--lx-muted); font-size: 1.05rem; order: 2; }
.product-summary-wrap .onsale { background: var(--lx-royal); color: #fff; border-radius: 0; }
.woocommerce-product-details__short-description { color: var(--lx-muted); font-size: 1.02rem; line-height: 1.75; margin-bottom: 22px; max-width: 52ch; }
.product-quick-facts { margin: 0 0 26px; padding: 4px 0 18px; border-bottom: 1px solid var(--lx-line); display: grid; gap: 8px; font-size: .9rem; }
.product-quick-facts div { display: flex; gap: 16px; }
.product-quick-facts dt { flex: 0 0 90px; color: var(--lx-muted); }
.product-quick-facts dd { margin: 0; }

.product-summary-wrap form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin-bottom: 8px; }
.product-summary-wrap form.cart.variations_form { display: block; }
.product-summary-wrap .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.quantity { border-radius: 0; border-color: var(--lx-line); }
.single_add_to_cart_button, .buy-now-button {
	flex: 1 1 180px; min-height: 52px; border-radius: 0; font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; padding-inline: 24px;
}
.single_add_to_cart_button { background: var(--lx-royal); color: #fff; border: 1px solid var(--lx-royal); }
.single_add_to_cart_button:hover:not(:disabled) { background: var(--lx-deep); color: #fff; }
.buy-now-button { flex-basis: 100%; }
.single-wishlist { margin: 6px 0 22px; }
.wishlist-btn--text { position: static; width: auto; height: auto; border-radius: 0; background: transparent; display: inline-flex; gap: 10px; padding: 8px 0; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; opacity: 1; }
.wishlist-btn--text:hover { background: transparent; }
.variations th, .variations td { padding: 6px 0; text-align: left; }
.variations label { font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; }
.variations select { border: 1px solid var(--lx-line); border-radius: 0; padding: 12px 14px; background: transparent; min-width: 220px; }

.product-tabs-wrap { margin-top: 88px; }
.woocommerce-tabs ul.tabs { border-bottom: 1px solid var(--lx-line); gap: 28px; }
.woocommerce-tabs ul.tabs li a { padding: 14px 0; font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; border-radius: 0; background: transparent; color: var(--lx-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.woocommerce-tabs ul.tabs li.active a { background: transparent; color: var(--lx-ink); border-bottom-color: var(--lx-gold); }
.woocommerce-Tabs-panel { max-width: 780px; line-height: 1.85; color: var(--lx-ink); }
.related.products > h2, .upsells.products > h2 { font-size: clamp(1.8rem, 2.6vw, 2.5rem); text-align: center; margin: 88px 0 36px; }
.related.products ul.products, .upsells.products ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 20px; list-style: none; padding: 0; margin: 0; }
.related.products ul.products li, .upsells.products ul.products li { width: auto; float: none; margin: 0; }
.sticky-atc-bar { background: var(--lx-ivory); border-top: 1px solid var(--lx-line); box-shadow: 0 -10px 30px -20px rgba(30, 19, 48, .35); }

@media (max-width: 991px) {
	.product-main-grid { grid-template-columns: 1fr; gap: 28px; }
	.product-gallery-wrap { position: static; }
	.related.products ul.products, .upsells.products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
	.product-tabs-wrap { margin-top: 56px; }
	.woocommerce-tabs ul.tabs { gap: 20px; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
	.woocommerce-tabs ul.tabs li a { white-space: nowrap; }
	.sticky-atc-bar { bottom: 62px; } /* clear the mobile bottom nav */
}

/* =========================================================
   CART / CHECKOUT / ACCOUNT — inherit the new palette, soften corners
   ========================================================= */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: 0; }
.woocommerce-message { background: #F1F4EA; border-color: #D5DEC2; color: #3E5A22; }
.woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.wc-proceed-to-checkout a.checkout-button, #place_order { border-radius: 0; letter-spacing: .14em; text-transform: uppercase; font-size: .76rem; }
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], select, textarea { border-radius: 0; }

/* =========================================================
   Motion + back-to-top
   ========================================================= */
.back-to-top { background: var(--lx-ink); border-radius: 0; }
@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Buy Now mirrors a disabled Add to Cart (variation not chosen yet) */
.buy-now-button.disabled { opacity: .45; cursor: not-allowed; }
.product-gallery-wrap { top: calc(var(--lx-header-h, 110px) + 16px); }

/* Scroll-snap rows keep their left gutter */
.lx-cat-grid, .testimonial-carousel { scroll-padding-inline: var(--lx-gutter); }
@media (max-width: 860px) {
	.lx-hero-actions .btn-ghost { padding-inline: 0; }
	.lx-hero-actions .btn-ghost::after { left: 0; right: 0; }
}
@media (max-width: 767px) {
	body { --saidah-section-gap: 60px; }
	.lx-trust { padding-block: 48px; }
}

/* =========================================================
   FIX v4.0.1 — single product page on tablet/mobile
   single-product.css forces 2 columns with !important and relied on
   `display:block` at <=767px. luxe.css (loaded later) set display:grid
   again, so the 2 columns came back on phones. Stack it properly here.
   ========================================================= */
@media (max-width: 991px) {
	.product-main-grid {
		display: block !important;
		grid-template-columns: 1fr !important;
	}
	.product-main-grid > .product-gallery-wrap,
	.product-main-grid > .product-summary-wrap {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0;
		float: none !important;
	}
	.product-main-grid > .product-summary-wrap { margin-top: 28px; padding-top: 0; }
	.product-gallery-wrap { position: static !important; }
	.single-product-page { padding-inline: var(--lx-gutter); overflow-x: clip; }
	.woocommerce-product-gallery__image img,
	.woocommerce-product-gallery img { aspect-ratio: 4 / 5; }
}
@media (max-width: 767px) {
	/* gallery edge to edge, matching the page gutter */
	.product-main-grid > .product-gallery-wrap {
		margin-inline: calc(var(--lx-gutter) * -1) !important;
		width: calc(100% + var(--lx-gutter) * 2) !important;
		max-width: none !important;
	}
	.woocommerce-product-gallery .flex-control-thumbs { display: flex; padding-inline: var(--lx-gutter); gap: 8px; overflow-x: auto; flex-wrap: nowrap; }
	.woocommerce-product-gallery .flex-control-thumbs li { flex: 0 0 60px; width: 60px; }
	.woocommerce-product-gallery .flex-control-thumbs img { width: 60px; height: 75px; aspect-ratio: auto; }
	.product-summary-wrap .product_title,
	.product-summary-wrap h1 { font-size: 1.9rem; }
	.product-summary-wrap .price { font-size: 1.3rem; }
	.product-summary-wrap form.cart { gap: 10px; }
	.single_add_to_cart_button { flex: 1 1 0; min-width: 0; }
	.buy-now-button { flex: 1 1 100%; }
	.variations select { min-width: 0; width: 100%; }
	.product-tabs-wrap { margin-top: 48px; }
	.related.products ul.products,
	.upsells.products ul.products,
	.up-sells.upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 24px 12px; }
}

/* =========================================================
   FIX v4.0.2 — product page side padding (phones/tablets)
   Padding no longer depends on the .container-fluid wrapper (some
   other rule/plugin/Additional CSS can reset it). Each block carries its
   own left/right padding with !important; the wrapper is set to 0 so the
   gutter is never doubled. Gallery stays edge-to-edge.
   ========================================================= */
@media (max-width: 991px) {
	body .single-product-page {
		padding-left: 0 !important;
		padding-right: 0 !important;
		overflow-x: hidden;
		box-sizing: border-box;
	}
	body .single-product-page > nav,
	body .single-product-page > .saidah-breadcrumbs,
	body .single-product-page > .woocommerce-breadcrumb,
	body .single-product-page .product-summary-wrap,
	body .single-product-page .product-tabs-wrap {
		padding-left: 20px !important;
		padding-right: 20px !important;
		box-sizing: border-box !important;
	}
	body .single-product-page .product-main-grid > .product-gallery-wrap {
		margin-left: 0 !important;
		margin-right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	body .single-product-page .woocommerce-product-gallery .flex-control-thumbs {
		padding-left: 20px !important;
		padding-right: 20px !important;
		box-sizing: border-box;
	}
	body .single-product-page .related.products ul.products,
	body .single-product-page .upsells.products ul.products {
		margin-left: 0;
		margin-right: 0;
	}
}
@media (min-width: 992px) {
	body .single-product-page { padding-left: var(--lx-gutter, 40px); padding-right: var(--lx-gutter, 40px); box-sizing: border-box; }
}

/* =========================================================
   FIX v4.0.3 — wide screens / browser zoom-out, carousel cards,
   Instagram grid, HD hero slider
   ========================================================= */

/* One consistent content width everywhere (was: some sections full-bleed). */
body { --lx-wide: 1440px; }
@media (min-width: 1800px) { body { --lx-wide: 1600px; } }
.container, .container-fluid, .container-wide {
	width: 100%;
	max-width: var(--lx-wide);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

/* Carousel cards must fill their slot (they were shrinking to the image's own width). */
.carousel-slide { display: flex; }
.carousel-slide > .product-card { width: 100%; min-width: 0; flex: 1 1 auto; }
.carousel-slide .product-media, .carousel-slide .product-info { width: 100%; }
/* Fewer products than slots: centre them, but keep real scrolling intact. */
.product-carousel > .carousel-slide:first-child { margin-left: auto; }
.product-carousel > .carousel-slide:last-child { margin-right: auto; }

/* Categories / occasions: centre incomplete last rows on desktop. */
@media (min-width: 768px) {
	.lx-cat-grid { display: flex; flex-wrap: wrap; justify-content: center; --lx-g: clamp(14px, 1.6vw, 28px); gap: var(--lx-g); }
	.lx-cat { flex: 0 0 calc((100% - 4 * var(--lx-g)) / 5); min-width: 0; }
}
@media (min-width: 768px) and (max-width: 1100px) {
	.lx-cat { flex-basis: calc((100% - 3 * var(--lx-g)) / 4); }
}
@media (min-width: 1101px) {
	.lx-occ-grid { display: flex; flex-wrap: wrap; justify-content: center; --lx-g: clamp(12px, 1.4vw, 22px); gap: var(--lx-g); }
	.lx-occ-grid > .lx-occ { flex: 0 0 calc((100% - 4 * var(--lx-g)) / 5); min-width: 0; }
}

/* Instagram: column count follows number of posts; tiles are square + sharp. */
.instagram-grid { grid-template-columns: repeat(var(--lx-ig-cols, 6), minmax(0, 1fr)); }
.instagram-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 767px) { .instagram-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Gifting / colour tab rows follow the container width */
.gift-bands { max-width: 100%; }

/* ---------- HD hero slider ---------- */
.lx-arch { background: var(--lx-cream); }
.lx-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s ease; }
.lx-slide.is-active { opacity: 1; z-index: 1; }
.lx-slide-img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.lx-hero-visual { --lx-arch-w: min(100%, 560px); }
@media (min-width: 1400px) { .lx-arch, .lx-hero-visual::before { width: min(100%, 640px); } }
.lx-hero-dots { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; gap: 10px; z-index: 3; }
.lx-hero-dot { width: 9px; height: 9px; border-radius: 50%; border: 1px solid #fff; background: transparent; padding: 0; cursor: pointer; }
.lx-hero-dot.is-active { background: var(--lx-gold); border-color: var(--lx-gold); }
.lx-hd-note { position: absolute; left: 0; right: 0; bottom: -44px; margin: 0; font-size: .74rem; color: #8a2b2b; background: #fbeaea; padding: 8px 12px; text-align: center; }
@media (prefers-reduced-motion: reduce) { .lx-slide { transition: none; } }

/* =========================================================
   CATEGORY MENU (v4.0.4) — desktop mega panel + mobile accordion
   ========================================================= */
.mega-menu { flex-wrap: wrap; row-gap: 0; column-gap: clamp(18px, 2.2vw, 40px); }
.mega-menu > .lx-cat-item > .menu-link { white-space: nowrap; }
.mega-menu > .lx-cat-item.current-cat > .menu-link { color: var(--lx-royal); }
.mega-menu > .lx-cat-item.current-cat > .menu-link::after { width: 60%; left: 20%; }

.mega-panel.lx-mega { padding: 0; }
.lx-mega-inner { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); padding-block: 34px 40px; }
.lx-mega-head { border-right: 1px solid var(--lx-line); padding-right: 24px; }
.lx-mega-title { display: block; font-family: var(--saidah-font-heading); font-size: 1.8rem; line-height: 1.1; margin-bottom: 14px; color: var(--lx-ink); }
.lx-mega-all { display: inline-block; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--lx-royal); border-bottom: 1px solid var(--lx-gold); padding-bottom: 3px; }
.lx-mega-all:hover { color: var(--lx-ink); }
.lx-mega-cols { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 44px; }
.lx-mega-cols li { break-inside: avoid; margin: 0; }
.lx-mega-cols a { display: block; padding: 7px 0; font-size: .92rem; color: var(--lx-ink); transition: color .2s, padding-left .2s; }
.lx-mega-cols a:hover { color: var(--lx-royal); padding-left: 5px; }
@media (max-width: 1100px) { .lx-mega-cols { columns: 2; } }

/* Mobile drawer: accordion */
.lx-mcats { padding-top: 8px; }
.lx-mcat-list, .lx-mcat-sub { list-style: none; margin: 0; padding: 0; }
.lx-mcat { border-bottom: 1px solid var(--lx-line); }
.lx-mcat-row { display: flex; align-items: stretch; }
.lx-mcat-link { flex: 1 1 auto; padding: 15px 0; font-family: var(--saidah-font-heading); font-size: 1.35rem; line-height: 1.2; color: var(--lx-ink); }
.lx-mcat-toggle { flex: 0 0 48px; background: transparent; border: 0; cursor: pointer; position: relative; color: var(--lx-ink); }
.lx-mcat-toggle span { position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translate(-50%, -70%) rotate(45deg); transition: transform .25s ease; }
.lx-mcat.is-open > .lx-mcat-row .lx-mcat-toggle span { transform: translate(-50%, -30%) rotate(-135deg); }
.lx-mcat-sub { padding: 0 0 12px 14px; border-left: 1px solid var(--lx-gold); margin-left: 2px; }
.lx-mcat-sub[hidden] { display: none; }
.lx-mcat-sub a { display: block; padding: 10px 0 10px 14px; font-size: .95rem; color: var(--lx-ink); }
.lx-mcat-sub a:hover { color: var(--lx-royal); }
.lx-mcat-sub .lx-mcat-all { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--lx-royal); }

/* Home first (v4.0.5) */
.mega-menu > .lx-home-item.current-cat > .menu-link { color: var(--lx-royal); }
.mega-menu > .lx-home-item.current-cat > .menu-link::after { width: 60%; left: 20%; }
.mobile-drawer-section.lx-mhome { padding-bottom: 0; border-bottom: 0; }
.lx-mhome .lx-mcat { border-bottom: 1px solid var(--lx-line); }
.lx-mcats { padding-top: 14px; }

/* =========================================================
   SHOP BY CATEGORY — tabs + sub-category tiles (v4.0.6)
   ========================================================= */
.lx-cat-tabs { display: flex; justify-content: center; gap: clamp(20px, 3.2vw, 52px); margin: 0 0 38px; border-bottom: 1px solid var(--lx-line); }
.lx-cat-tab {
	background: transparent; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 14px 2px; cursor: pointer;
	font-family: var(--saidah-font-body); font-size: .76rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--lx-muted);
	transition: color .2s, border-color .2s; white-space: nowrap;
}
.lx-cat-tab:hover { color: var(--lx-ink); }
.lx-cat-tab.is-active { color: var(--lx-ink); border-bottom-color: var(--lx-gold); }
.lx-cat-panel[hidden] { display: none; }
.lx-cat-panel-title { font-size: 1.7rem; margin: 0 0 22px; }

/* Tiles: 6 across (12 tiles = 2 neat rows), 4 on tablet, 2 on phones */
@media (min-width: 1101px) {
	.lx-cat-grid--tabs .lx-cat { flex-basis: calc((100% - 5 * var(--lx-g)) / 6); }
}
@media (min-width: 768px) and (max-width: 1100px) {
	.lx-cat-grid--tabs .lx-cat { flex-basis: calc((100% - 3 * var(--lx-g)) / 4); }
}
@media (max-width: 767px) {
	.lx-cat-grid--tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; margin-inline: 0; padding-inline: 0; gap: 22px 12px; }
	.lx-cat-grid--tabs .lx-cat { flex: none; min-width: 0; }
	.lx-cat-tabs { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--lx-gutter) * -1); padding-inline: var(--lx-gutter); gap: 26px; }
	.lx-cat-tabs::-webkit-scrollbar { display: none; }
}

/* Designed name tile (no image uploaded) */
.lx-cat-media--text {
	display: flex; align-items: center; justify-content: center; position: relative; text-align: center; padding: 20px;
	background: radial-gradient(circle at 50% 35%, #4D2690 0%, var(--lx-royal) 60%, var(--lx-deep) 100%); color: #F3E7C4;
	transition: background .4s ease;
}
.lx-cat-media--text::before { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(217, 190, 124, .55); pointer-events: none; transition: inset .35s ease; }
.lx-cat:hover .lx-cat-media--text::before { inset: 6px; }
.lx-cat--text:nth-child(even) .lx-cat-media--text { background: var(--lx-cream); color: var(--lx-ink); }
.lx-cat--text:nth-child(even) .lx-cat-media--text::before { border-color: var(--lx-gold); }
.lx-cat-text { position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.lx-cat-orn { width: 8px; height: 8px; background: var(--lx-gold); transform: rotate(45deg); }
.lx-cat-text-name { font-family: var(--saidah-font-heading); font-size: clamp(1.2rem, 1.6vw, 1.65rem); line-height: 1.18; font-weight: 500; overflow-wrap: anywhere; }
.lx-cat--text .lx-cat-name { display: none; } /* the name is already inside the box */
.lx-cat--text .lx-cat-cta { margin-top: 14px; }
.lx-cat--parent .lx-cat-media--text { background: var(--lx-deep); color: #F3E7C4; }

/* =========================================================
   Bottom-nav "Categories" drawer (v4.0.7): all categories + sub-categories
   ========================================================= */
.mobile-category-drawer { background: var(--lx-ivory); }
.mobile-category-drawer .mobile-drawer-header { font-family: var(--saidah-font-heading); font-size: 1.4rem; border-bottom: 1px solid var(--lx-line); }
.lx-dcat-list { list-style: none; margin: 0; padding: 6px 20px 90px; }
.lx-dcat-list .lx-mcat { border-bottom: 1px solid var(--lx-line); }
.lx-dcat-row { align-items: center; }
.lx-dcat-link { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 14px; padding: 12px 0; color: var(--lx-ink); }
.lx-dcat-thumb { width: 48px; height: 48px; border-radius: 50%; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--lx-gold); display: flex; align-items: center; justify-content: center; background: var(--lx-royal); }
.lx-dcat-thumb img { width: 100%; height: 100%; object-fit: cover; }
.lx-dcat-initial { font-family: var(--saidah-font-heading); font-size: 1.35rem; color: var(--lx-gold-soft); line-height: 1; }
.lx-dcat-name { font-family: var(--saidah-font-heading); font-size: 1.25rem; line-height: 1.2; }
.lx-dcat-sub { margin-left: 24px; }
.lx-dcat-list .lx-mcat-toggle { align-self: stretch; }
