/* ============================================================
   IFAD header + footer — framework-free (no Bootstrap).
   ============================================================ */

:root {
	--ifad-navy: #0e0e31;
	--ifad-gold: #c9a24a;
	--ifad-line: #ececf0;
	--ifad-muted: #6b6b76;
}

/* Reserve the scrollbar gutter so opening any modal (which locks page scroll)
   never shifts the layout — including the full-bleed header bars. */
html { scrollbar-gutter: stable; }

/* Clear the header height on desktop. */
@media ( min-width: 992px ) {
	body > main { margin-top: 107px; }
}

/* The base theme treats the header as in-flow, but production's global stylesheet
   forces `header { position: fixed; left: 0 }` with NO width — so it shrink-wraps
   to the (wide desktop) menu, becoming ~1560px on mobile and, being fixed, it
   escapes overflow clipping → the whole page can be dragged sideways. Pin it to
   the viewport width so it never exceeds the screen. */
.ifad-header { width: 100%; max-width: 100%; box-sizing: border-box; }

/* Mobile: form controls must be ≥16px or iOS Safari auto-zooms the page on focus.
   !important beats the per-module input rules (account form is 14px) — a hard iOS
   requirement, not cosmetic. Does not disable pinch-zoom. */
@media ( max-width: 767px ) {
	input:not([type="checkbox"]):not([type="radio"]),
	select, textarea,
	.ifad-select__native,
	.ifad-range__in {
		font-size: 16px !important;
	}
}

.ifad-container {
	width: 100%;
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 24px;
	box-sizing: border-box;
}

/* Restore form-control font inheritance lost when Bootstrap's reset was dropped.
   Native <input>/<select>/<button>/<textarea> otherwise fall back to the system
   font instead of the brand "Nunito Sans" (visible in the filter, search, sort,
   currency and other controls). Mirrors normalize.css / the old Bootstrap reset. */
button, input, optgroup, select, textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/* Site-wide: link hovers change COLOUR only — never underline. */
a:hover, a:focus { text-decoration: none; }

/* Skip link — visually hidden via the clip technique (NOT left:-9999px, which in
   RTL creates a ~9999px horizontal overflow that lets the whole page pan
   sideways). Revealed on keyboard focus. */
.ifad-skip {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	padding: 0;
	margin: -1px;
}
.ifad-skip:focus {
	width: auto;
	height: auto;
	overflow: visible;
	clip: auto;
	clip-path: none;
	white-space: normal;
	margin: 0;
	z-index: 1000;
	background: var(--ifad-navy);
	color: #fff;
	padding: 10px 16px;
	border-radius: 0 0 8px 0;
}

/* ---------------- Top announcement bar ---------------- */
.ifad-topbar {
	background: var(--ifad-navy);
	color: #fff;
}
.ifad-topbar__text {
	margin: 0;
	padding: 7px 0;
	text-align: center;
	font-size: 14px;
	letter-spacing: 0;
	color: #e7e8f0;
}

/* ---------------- Language switch (dropdown, mirrors currency) ---------------- */
.ifad-lang { position: relative; display: inline-block; font-size: 15px; color: var(--ifad-navy); line-height: 1; }
.ifad-lang__trigger { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 4px 0; color: inherit; font: inherit; cursor: pointer; transition: opacity .15s ease; }
.ifad-lang__trigger:hover { opacity: .6; }
.ifad-lang__code { font-weight: 500; letter-spacing: .02em; }
.ifad-lang__caret { display: block; flex-shrink: 0; transition: transform .18s ease; }
.ifad-lang__trigger[aria-expanded="true"] .ifad-lang__caret { transform: rotate(180deg); }
.ifad-lang__menu {
	position: absolute;
	top: calc(100% + 6px);
	right: -9px;
	min-width: 58px;
	margin: 0;
	padding: 6px;                 /* matches the sort dropdown; 6px inset + 10px option = same 16px edge */
	list-style: none;
	background: #fff;
	border: 1px solid var(--ifad-line);
	border-radius: 5px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
	z-index: 50;
}
.ifad-lang__menu[hidden] { display: none; }
.ifad-lang__option { font-size: 14px; border-radius: 5px; }
.ifad-lang__option a { display: block; padding: 9px 10px; color: var(--ifad-navy); text-decoration: none; white-space: nowrap; }
.ifad-lang__option:hover { background: #f2f2f5; }
.ifad-lang__option.is-selected { background: var(--ifad-navy); }
.ifad-lang__option.is-selected a { color: #fff; }

/* ---------------- Main header ---------------- */
.ifad-header__main {
	background: #fff;
	border-bottom: 1px solid #fffdfd;   /* near-invisible hairline (desktop) */
	position: relative;
}
.ifad-header__row {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: 72px;                    /* tight like prod: ~3.5px pad + 65px logo */
}

.ifad-logo { flex: 0 0 auto; display: inline-flex; align-items: center; }
.ifad-logo img { display: block; height: 65px; width: auto; }

/* ---------------- Primary nav ---------------- */
.ifad-nav { flex: 1 1 auto; }
.ifad-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 4px 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ifad-menu a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 2px 4px;
	font-size: 16px;
	font-weight: 300;              /* prod menu weight */
	color: var(--ifad-navy);
	text-decoration: none;
	white-space: nowrap;
	transition: color .15s ease;
}
.ifad-menu > li { position: relative; }
/* Header nav is the ONE place with a hover underline (prod parity): an animated
   line slides in under the item (via background-gradient so it never clashes
   with the dropdown caret ::after). Everywhere else stays colour-only. */
.ifad-menu > li > a {
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 1px;
	transition: color .15s ease, background-size .22s ease;
}
.ifad-menu > li:hover > a,
.ifad-menu > li:focus-within > a { background-size: 100% 1px; }
/* caret for parents */
.ifad-menu > li.menu-item-has-children > a::after {
	content: "";
	width: 7px;
	height: 7px;
	margin-top: -3px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform .2s ease;
}
.ifad-menu > li.menu-item-has-children:hover > a::after,
.ifad-menu > li.menu-item-has-children:focus-within > a::after { transform: rotate(-135deg); margin-top: 2px; }

/* dropdown */
.ifad-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(6px);
	min-width: 200px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: #fff;
	border: 1px solid var(--ifad-line);
	border-radius: 5px;
	box-shadow: 0 12px 30px rgba(14, 14, 49, .12);
	opacity: 0;
	visibility: hidden;
	transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
	z-index: 40;
}
.ifad-menu > li:hover > .sub-menu,
.ifad-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}
.ifad-menu .sub-menu a { padding: 9px 12px; border-radius: 5px; font-size: 14px; white-space: normal; }
.ifad-menu .sub-menu a:hover { background: #f4f4f7; color: var(--ifad-navy); }

/* ---------------- Actions (currency + icons) ---------------- */
.ifad-header__actions {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 22px;                     /* prod .header-icon-right gap */
}
.ifad-currency {
	position: relative;
	display: inline-block;
	font-size: 15px;
	color: var(--ifad-navy);
	line-height: 1;
}
.ifad-currency__trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: 0;
	padding: 4px 0;
	color: inherit;
	font: inherit;
	cursor: pointer;
	transition: opacity .15s ease;
}
.ifad-currency__trigger:hover { opacity: .6; }
.ifad-currency__code { font-weight: 500; letter-spacing: .02em; }
.ifad-currency__caret { display: block; flex-shrink: 0; transition: transform .18s ease; }
.ifad-currency__trigger[aria-expanded="true"] .ifad-currency__caret { transform: rotate(180deg); }
.ifad-currency__menu {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	min-width: 60px;
	margin: 0;
	padding: 6px;                 /* matches the sort dropdown; 6px inset + 10px option = same 16px edge */
	list-style: none;
	background: #fff;
	border: 1px solid var(--ifad-line);
	border-radius: 5px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
	z-index: 50;
}
.ifad-currency__menu[hidden] { display: none; }
.ifad-currency__option {
	padding: 9px 10px;
	border-radius: 5px;
	font-size: 14px;
	color: var(--ifad-navy);
	cursor: pointer;
	white-space: nowrap;
}
.ifad-currency__option:hover { background: #f2f2f5; }
.ifad-currency__option.is-selected { background: var(--ifad-navy); color: #fff; }
.ifad-act {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	background: none;
	border: 0;
	color: var(--ifad-navy);
	cursor: pointer;
	text-decoration: none;
	transition: opacity .15s ease;
}
.ifad-act svg { display: block; }
.ifad-act:hover { opacity: .55; }
.ifad-badge {
	position: absolute;
	top: -3px;
	right: -3px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--ifad-navy);
	color: #fff;
	font-size: 10px;
	line-height: 16px;
	text-align: center;
	box-sizing: border-box;
}
.ifad-badge[hidden] { display: none; }   /* wishlist/cart count shows only when > 0 (prod) */

/* Signed-in check on the account icon — navy circle + white tick, bottom-right. */
.ifad-act-check {
	position: absolute;
	right: -5px;
	bottom: -4px;
	width: 14px;
	height: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	background: var(--ifad-navy);
	border: 2px solid #fff;
	border-radius: 50%;
	color: #fff;
}
.ifad-act-check svg { width: 8px; height: 8px; display: block; }

/* ---------------- Account dropdown (logged-in) ---------------- */
.ifad-account-menu { position: relative; display: inline-flex; }
.ifad-account-pop {
	position: absolute;
	top: calc(100% + 14px);
	right: 0;
	width: 244px;
	max-width: calc(100vw - 32px);
	background: #fff;
	border: 1px solid var(--ifad-line, #e5e5ea);
	border-radius: 8px;
	box-shadow: 0 12px 34px rgba(14, 14, 49, .16);
	padding: 6px;
	z-index: 60;
}
.ifad-account-pop[hidden] { display: none; }
.ifad-account-pop__head { padding: 14px 14px 13px; border-bottom: 1px solid var(--ifad-line, #e5e5ea); margin-bottom: 6px; }
.ifad-account-pop__hi { display: block; font-size: 12px; color: var(--ifad-muted, #6b6b76); letter-spacing: .02em; }
.ifad-account-pop__name { display: block; font-size: 17px; font-weight: 700; color: var(--ifad-navy); line-height: 1.2; margin: 2px 0 9px; }
.ifad-account-pop__role { display: inline-block; padding: 3px 12px; border-radius: 999px; background: var(--ifad-navy); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.ifad-account-pop__nav { display: flex; flex-direction: column; }
.ifad-account-pop__item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 6px; color: var(--ifad-navy); text-decoration: none; font-size: 14px; font-weight: 500; transition: background .15s ease; }
.ifad-account-pop__item:hover { background: #f4f4f7; }
.ifad-account-pop__ico { display: inline-flex; width: 18px; height: 18px; color: var(--ifad-muted, #6b6b76); flex-shrink: 0; }
.ifad-account-pop__ico svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ifad-account-pop__item:hover .ifad-account-pop__ico { color: var(--ifad-navy); }
.ifad-account-pop__sep { display: block; height: 1px; background: var(--ifad-line, #e5e5ea); margin: 6px 8px; }
.ifad-account-pop__item--logout { color: #9b0303; }
.ifad-account-pop__item--logout:hover { background: #fdeaea; }
.ifad-account-pop__item--logout .ifad-account-pop__ico { color: #9b0303; }

/* ---------------- Search bar (toggled) ---------------- */
.ifad-searchbar { border-top: 1px solid var(--ifad-line); background: #fff; }
.ifad-searchbar[hidden] { display: none; }
.ifad-searchbar__form { position: relative; display: flex; gap: 10px; padding: 14px 0; }
.ifad-searchbar__form input {
	flex: 1 1 auto;
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--ifad-line);
	border-radius: 5px;
	font-size: 15px;
}
.ifad-searchbar__form button {
	flex: 0 0 auto;
	height: 44px;
	padding: 0 22px;
	background: var(--ifad-navy);
	color: #fff;
	border: 0;
	border-radius: 5px;
	font-size: 15px;
	cursor: pointer;
}

/* ---------------- Live search dropdown ---------------- */
.ifad-searchbar__inner { position: relative; }
.ifad-search__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% - 8px);
	background: #fff;
	border: 1px solid var(--ifad-line);
	border-radius: 5px;
	box-shadow: 0 16px 40px rgba(14, 14, 49, .12);
	max-height: 70vh;
	overflow-y: auto;
	z-index: 60;
}
.ifad-search__panel[hidden] { display: none; }
.ifad-search__panel.is-loading { opacity: .55; }
.ifad-search__list { margin: 0; padding: 6px; list-style: none; }
.ifad-search__item + .ifad-search__item { border-top: 1px solid #f2f2f5; }
.ifad-search__item a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px;
	border-radius: 5px;
	text-decoration: none;
	transition: background .15s ease;
}
.ifad-search__item a:hover { background: #f5f5f8; }
.ifad-search__thumb {
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	border-radius: 5px;
	overflow: hidden;
	background: var(--ifad-line);
}
.ifad-search__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ifad-search__info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ifad-search__title {
	font-size: 14px;
	color: var(--ifad-navy);
	line-height: 1.25;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ifad-search__price,
.ifad-search__price .ifad-price { font-size: 13px; font-weight: 500; color: var(--ifad-navy); }
.ifad-search__price del { opacity: .5; margin-right: 6px; font-weight: 400; text-decoration: line-through; }
.ifad-search__price ins { text-decoration: none; }
/* SKU chip, pushed to the trailing edge of each result row. */
.ifad-search__sku {
	flex: 0 0 auto;
	margin-inline-start: auto;
	padding: 4px 10px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--ifad-muted);
	background: #f4f4f7;
	border: 1px solid #ececf0;
	border-radius: 5px;
	white-space: nowrap;
}
@media ( max-width: 560px ) {
	.ifad-search__sku { display: none; } /* too tight next to the title on phones */
}
.ifad-search__all {
	display: block;
	padding: 12px;
	text-align: center;
	font-size: 13px;
	font-weight: 500;
	color: var(--ifad-navy);
	border-top: 1px solid var(--ifad-line);
	text-decoration: none;
	transition: color .15s ease;
}
.ifad-search__all:hover { color: var(--ifad-gold); }
.ifad-search__empty { margin: 0; padding: 22px; text-align: center; color: var(--ifad-muted); font-size: 14px; }

/* ---------------- Burger ---------------- */
/* Prod-style bars (middle shorter at 16px, top/bottom longer at 22px, 8px
   apart) but WITHOUT the bordered tile — a plain, borderless hamburger so the
   frame can never look clipped against the screen edge. Open -> centred X. */
.ifad-burger {
	display: none;
	position: relative;
	width: 40px;
	height: 40px;
	margin-left: auto;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
}
.ifad-burger span {
	position: absolute;
	left: 9px;
	top: 50%;
	height: 2px;
	margin-top: -1px;
	display: block;
	background: #202027;
	border-radius: 3px;
	transition: all .3s linear;
}
.ifad-burger span:nth-child(1) { width: 22px; top: calc( 50% - 8px ); } /* top    — long  */
.ifad-burger span:nth-child(2) { width: 16px; }                         /* middle — short */
.ifad-burger span:nth-child(3) { width: 22px; top: calc( 50% + 8px ); } /* bottom — long  */

/* Open -> X: the middle bar fades, top & bottom meet at the centre and cross. */
.ifad-header.is-menu-open .ifad-burger span:nth-child(1) { top: 50%; transform: rotate(45deg); }
.ifad-header.is-menu-open .ifad-burger span:nth-child(2) { opacity: 0; }
.ifad-header.is-menu-open .ifad-burger span:nth-child(3) { top: 50%; transform: rotate(-45deg); }

/* RTL: the burger sits at the left edge with the action icons to its right;
   pull it a touch toward the edge so it isn't cramped against the cart icon,
   but keep enough room that its border never hugs the screen edge. Only
   matters while the burger shows (≤991). */
[dir="rtl"] .ifad-burger { margin-left: -4px; }

/* Above 400px give the burger 1px more width (height untouched). */
@media ( min-width: 401px ) {
	.ifad-burger { width: 41px; }
}

/* ---------------- Footer ---------------- */
.ifad-footer { margin-top: 60px; border-top: 1px solid var(--ifad-line); }
.ifad-footer__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 17px 24px;
	flex-wrap: wrap;
}
.ifad-footer__logo img { display: block; height: 65px; width: auto; }
.ifad-footer__nav { display: flex; align-items: center; }   /* vertically centre the menu list against the logo */
.ifad-footer__menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Same animated hover underline as the header nav (prod parity): a line slides
   in under the link via a background gradient; colour stays navy. */
.ifad-footer__menu a {
	font-size: 14px;
	color: var(--ifad-navy);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 1px;
	transition: background-size .22s ease;
}
.ifad-footer__menu a:hover { background-size: 100% 1px; }
/* Zero the ul's default vertical margin (id beats the base ul rule) so the list
   sits vertically centred against the logo; wider gap on desktop. */
@media ( min-width: 992px ) {
	#menu-footer { gap: 50px; margin: 0; }
}
.ifad-footer__bar { border-top: 1px solid var(--ifad-line); }
.ifad-footer__copy {
	margin: 0;
	padding: 18px 0;
	text-align: center;
	font-size: 13px;
	color: var(--ifad-muted);
}

/* ---------------- Responsive ---------------- */
@media ( max-width: 991px ) {
	.ifad-header__main { border-bottom: 0; } /* drop the hairline under the header on mobile */
	.ifad-header__row { min-height: 68px; gap: 14px; }
	.ifad-burger { display: flex; flex: 0 0 auto; order: 3; margin-left: 0; border: 1px solid #e2e0e0; border-radius: 5px; box-sizing: border-box; } /* burger LAST → rightmost in EN (leftmost in RTL), like prod; bordered tile; never shrink */
	.ifad-header__actions { gap: 12px; margin-inline-start: auto; }

	/* Classic mobile menu — the DEFAULT on every page. The burger expands the nav
	   as a full-width dropdown. (The staged drawer page overrides this below.) */
	.ifad-nav {
		position: absolute;
		left: 0; right: 0;
		top: 100%;
		background: #fff;
		border-bottom: 1px solid var(--ifad-line);
		box-shadow: 0 16px 30px rgba(14, 14, 49, .1);
		max-height: 0;
		overflow: hidden;
		transition: max-height .25s ease;
		z-index: 30;
	}
	.ifad-header.is-menu-open .ifad-nav { max-height: 80vh; overflow: auto; }
	.ifad-menu { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; padding: 8px 24px 16px; }
	.ifad-menu > li { border-bottom: 1px solid var(--ifad-line); }
	.ifad-menu a { padding: 13px 0; font-size: 16px; }
	.ifad-menu .sub-menu {
		position: static;
		transform: none;
		opacity: 1;
		visibility: visible;
		min-width: 0;
		border: 0;
		box-shadow: none;
		padding: 0 0 8px 14px;
	}
	.ifad-menu > li.menu-item-has-children > a::after { margin-left: auto; }

	/* Staged drawer page ONLY: the burger opens the premium drawer instead, so
	   hide the inline nav + header currency and give the icons a little more air. */
	body.ifad-mmenu-on .ifad-nav { display: none; }
	body.ifad-mmenu-on .ifad-header__actions .ifad-currency { display: none; }
	body.ifad-mmenu-on .ifad-header__actions { gap: 15px; }
	body.ifad-mmenu-on .ifad-lang { margin-inline-end: 5px; }
}
@media ( max-width: 560px ) {
	.ifad-header__actions { gap: 10px; }
	.ifad-logo img { height: 54px; }
	.ifad-footer__top { justify-content: center; text-align: center; }
	/* Slimmer header side padding so logo + icons + bordered burger breathe. */
	.ifad-header .ifad-container { padding-inline: 14px; }
}

/* Currency inside the classic mobile nav — shows < 426px (non-drawer pages) where
   the header actions row can't fit the switcher. The drawer page uses its own
   currency pills, and its nav (with this block inside) is display:none anyway. */
.ifad-nav__currency { display: none; }
@media ( max-width: 426px ) {
	.ifad-header__actions .ifad-currency { display: none; }
	.ifad-nav__currency { display: flex; align-items: center; gap: 14px; padding: 1px 24px 18px; }
	.ifad-nav__currency-label { font-size: 13px; font-weight: 600; color: var(--ifad-muted); text-transform: uppercase; letter-spacing: .04em; }
	.ifad-nav__currency-opts { display: flex; flex-wrap: wrap; gap: 8px; }
	.ifad-nav__currency-opt { min-width: 46px; padding: 7px 12px; font-size: 14px; font-weight: 600; color: var(--ifad-navy); background: #fff; border: 1px solid var(--ifad-line); border-radius: 5px; cursor: pointer; transition: color .15s ease, border-color .15s ease, background .15s ease; }
	.ifad-nav__currency-opt:hover { border-color: var(--ifad-gold); color: var(--ifad-gold); }
	.ifad-nav__currency-opt.is-selected { color: #fff; background: var(--ifad-navy); border-color: var(--ifad-navy); }
}

/* ============================================================================
   Premium mobile menu drawer — off-canvas panel opened by the burger (≤991px).
   Hidden on desktop. Slides in from the end side (right in LTR, left in RTL)
   over a dimming overlay; sections fade-up in a gentle stagger.
   ============================================================================ */
body.ifad-mmenu-lock { overflow: hidden; }
/* Drawer is a mobile affordance only — never show it (or its overlay) on desktop. */
@media ( min-width: 992px ) {
	.ifad-mmenu, .ifad-mmenu-overlay { display: none !important; }
}
.ifad-mmenu-overlay {
	position: fixed;
	inset: 0;
	background: rgba( 14, 14, 49, .5 );
	backdrop-filter: blur( 2px );
	opacity: 0;
	z-index: 1090;
	transition: opacity .3s ease;
}
.ifad-mmenu-overlay.is-open { opacity: 1; }

.ifad-mmenu {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	height: 100dvh;
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: 0 24px 55px rgba( 14, 14, 49, .2 );
	z-index: 1091;
	transform: translateY( -100% );          /* off-screen above; slides DOWN into view */
	transition: transform .42s cubic-bezier( .22, 1, .36, 1 );
	overscroll-behavior: contain;
}
.ifad-mmenu.is-open { transform: translateY( 0 ); }

/* --- Top bar: brand + compact tools (account · currency · language · close) --- */
.ifad-mmenu__bar {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 14px 18px;
	border-bottom: 1px solid rgba( 14, 14, 49, .08 );
}
.ifad-mmenu__brand { flex: 0 0 auto; }
.ifad-mmenu__brand img { display: block; height: 44px; width: auto; }
.ifad-mmenu__tools { display: flex; align-items: center; gap: 12px; min-width: 0; }
/* Account icon (+ signed-in check badge like the header) */
.ifad-mmenu__tool {
	position: relative;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	color: var(--ifad-navy);
	border-radius: 50%;
	transition: background .18s ease, color .18s ease;
}
.ifad-mmenu__tool:hover { background: rgba( 14, 14, 49, .06 ); color: #b5872f; }
/* The tool is a padded 38px hit-area, so pull the badge inward from the header
   defaults so it hugs the visible icon's bottom-right corner. */
.ifad-mmenu__tool .ifad-act-check { right: 5px; bottom: 5px; }
/* Currency / language dropdowns */
.ifad-mmenu__dd { position: relative; flex: 0 0 auto; }
.ifad-mmenu__dd-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	height: 37px;
	padding: 0 13px;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--ifad-navy);
	background: none;
	border: 1px solid rgba( 14, 14, 49, .12 );
	border-radius: 10px;
	cursor: pointer;
	transition: border-color .16s ease, color .16s ease, background .16s ease;
}
.ifad-mmenu__dd-btn:hover { border-color: #caa24a; color: #b5872f; }
.ifad-mmenu__dd-btn[aria-expanded="true"] { border-color: var(--ifad-navy); background: rgba( 14, 14, 49, .03 ); }
.ifad-mmenu__dd-caret { flex-shrink: 0; transition: transform .18s ease; }
.ifad-mmenu__dd-btn[aria-expanded="true"] .ifad-mmenu__dd-caret { transform: rotate( 180deg ); }
.ifad-mmenu__dd-menu {
	position: absolute;
	top: calc( 100% + 6px );
	inset-inline-end: 0;
	min-width: 78px;
	margin: 0;
	padding: 6px;
	list-style: none;
	background: #fff;
	border: 1px solid var(--ifad-line);
	border-radius: 10px;
	box-shadow: 0 14px 34px rgba( 14, 14, 49, .16 );
	z-index: 60;
}
.ifad-mmenu__dd-menu[hidden] { display: none; }
.ifad-mmenu__dd-opt {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--ifad-navy);
	border-radius: 7px;
	cursor: pointer;
}
.ifad-mmenu__dd-opt > a { display: block; color: inherit; text-decoration: none; padding: 8px 12px; }
.ifad-mmenu__dd-opt[data-code] { padding: 8px 12px; }   /* currency options carry the text directly */
.ifad-mmenu__dd-opt:hover { background: #f4f4f7; color: #b5872f; }
.ifad-mmenu__dd-opt.is-active { color: #fff; background: var(--ifad-navy); }
.ifad-mmenu__dd-opt.is-active > a { color: #fff; }
/* Close */
.ifad-mmenu__close {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin-inline-start: 2px;
	color: var(--ifad-navy);
	background: none;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: background .18s ease, color .18s ease;
}
.ifad-mmenu__close:hover { background: rgba( 14, 14, 49, .06 ); color: #b5872f; }

/* --- Scroll body + section rhythm --- */
.ifad-mmenu__scroll {
	flex: 1 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 6px 0 10px;
}
.ifad-mmenu__sec { padding: 18px 20px; border-bottom: 1px solid rgba( 14, 14, 49, .07 ); }
.ifad-mmenu__sec:last-child { border-bottom: 0; }

/* Staggered fade-up of sections when the drawer opens. */
.ifad-mmenu__sec,
.ifad-mmenu__foot { opacity: 0; transform: translateY( 10px ); transition: opacity .4s ease, transform .4s ease; }
.ifad-mmenu.is-open .ifad-mmenu__sec,
.ifad-mmenu.is-open .ifad-mmenu__foot { opacity: 1; transform: none; }
.ifad-mmenu.is-open .ifad-mmenu__account   { transition-delay: .06s; }
.ifad-mmenu.is-open .ifad-mmenu__nav        { transition-delay: .11s; }
.ifad-mmenu.is-open .ifad-mmenu__quick      { transition-delay: .16s; }
.ifad-mmenu.is-open .ifad-mmenu__utility    { transition-delay: .21s; }
.ifad-mmenu.is-open .ifad-mmenu__concierge  { transition-delay: .26s; }
.ifad-mmenu.is-open .ifad-mmenu__foot       { transition-delay: .31s; }

/* --- Account block --- */
.ifad-mmenu__acct-head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 14px; }
.ifad-mmenu__acct-hi { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ifad-muted); }
.ifad-mmenu__acct-name { font-size: 20px; font-weight: 700; color: var(--ifad-navy); line-height: 1.2; }
.ifad-mmenu__acct-role { font-size: 12px; color: #b5872f; font-weight: 600; }
.ifad-mmenu__acct-links { display: flex; flex-direction: column; gap: 2px; }
.ifad-mmenu__acct-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 12px;
	margin: 0 -12px;
	font-size: 15px;
	color: var(--ifad-navy);
	border-radius: 8px;
	transition: background .16s ease;
}
.ifad-mmenu__acct-link:hover { background: rgba( 14, 14, 49, .04 ); }
.ifad-mmenu__acct-ico { display: inline-flex; width: 20px; height: 20px; color: #b5872f; }
.ifad-mmenu__acct-ico svg { width: 20px; height: 20px; }
.ifad-mmenu__acct-link--logout { color: #a23b34; }
.ifad-mmenu__acct-link--logout .ifad-mmenu__acct-ico { color: #a23b34; }

/* Guest sign-in card */
.ifad-mmenu__signin {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	background: linear-gradient( 135deg, #0E0E31, #1a1a4a );
	color: #fff;
	border-radius: 12px;
}
.ifad-mmenu__signin-ico { display: inline-flex; width: 26px; height: 26px; color: #e6c877; }
.ifad-mmenu__signin-ico svg { width: 26px; height: 26px; }
.ifad-mmenu__signin-txt { display: flex; flex-direction: column; gap: 1px; margin-inline-end: auto; }
.ifad-mmenu__signin-txt strong { font-size: 16px; font-weight: 700; }
.ifad-mmenu__signin-txt em { font-style: normal; font-size: 12.5px; color: rgba( 255, 255, 255, .68 ); }
.ifad-mmenu__signin .ifad-mmenu__chev { color: rgba( 255, 255, 255, .6 ); }

/* --- Category navigation (accordion) --- */
.ifad-mmenu__menu { list-style: none; margin: 0; padding: 0; }
.ifad-mmenu__menu li { position: relative; }
.ifad-mmenu__menu > li + li { border-top: 1px solid rgba( 14, 14, 49, .06 ); }
/* Same sliding 1px underline as the desktop header nav: a line grows in under the
   text on hover (background-gradient); colour stays navy. Replaces the old gold
   colour-change hovers. inline-block so the line hugs the text, not the full row. */
.ifad-mmenu__menu a {
	display: inline-block;
	padding: 13px 2px;
	font-size: 16px;
	font-weight: 500;
	color: var(--ifad-navy);
	text-decoration: none;
	background-image: linear-gradient( currentColor, currentColor );
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 1px;
	transition: background-size .22s ease;
}
.ifad-mmenu__menu a:hover { background-size: 100% 1px; }
/* Accordion toggle injected by JS on parent items */
.ifad-mmenu__acc {
	position: absolute;
	top: 4px;
	inset-inline-end: -6px;
	width: 38px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	color: var(--ifad-navy);
	cursor: pointer;
}
.ifad-mmenu__acc svg { width: 16px; height: 16px; transition: transform .25s ease; }
.ifad-mmenu__menu li.is-open > .ifad-mmenu__acc svg { transform: rotate( 180deg ); }
.ifad-mmenu__menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 0 0 12px;
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s ease;
}
.ifad-mmenu__menu li.is-open > .sub-menu { max-height: 600px; }
.ifad-mmenu__menu .sub-menu a { padding: 10px 2px; font-size: 14.5px; color: #55556a; background-position: 0 100%; }

/* --- Quick links (wishlist + cart) --- */
.ifad-mmenu__quick { display: flex; gap: 12px; }
.ifad-mmenu__quick-link {
	position: relative;
	flex: 1 1 0;
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	justify-content: center;
	gap: 8px;
	padding: 13px 10px 7px;
	color: var(--ifad-navy);
	border: 1px solid rgba( 14, 14, 49, .1 );
	border-radius: 10px;
	transition: border-color .18s ease, background .18s ease;
}
.ifad-mmenu__quick-ico svg { width: 20px; height: 20px; }
.ifad-mmenu__quick-link:hover { border-color: #caa24a; background: rgba( 202, 162, 74, .05 ); }
.ifad-mmenu__quick-lbl { font-size: 13px; font-weight: 600; }
.ifad-mmenu__quick-badge {
	order: -1;                 /* sits to the LEFT of the icon */
	min-width: 20px;
	height: 20px;
	padding: 0 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: #fff;
	background: var(--ifad-navy);
	border-radius: 999px;      /* round (circle for single digits) */
}
.ifad-mmenu__quick-badge[hidden] { display: none; }

/* --- Utility (language + currency pills) --- */
.ifad-mmenu__util-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ifad-mmenu__util-row + .ifad-mmenu__util-row { margin-top: 14px; }
.ifad-mmenu__util-lbl { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ifad-muted); font-weight: 600; }
.ifad-mmenu__pills { display: flex; flex-wrap: wrap; gap: 7px; }
.ifad-mmenu__pill {
	min-width: 44px;
	padding: 7px 13px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--ifad-navy);
	text-decoration: none;
	background: #fff;
	border: 1px solid rgba( 14, 14, 49, .14 );
	border-radius: 20px;
	cursor: pointer;
	transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.ifad-mmenu__pill:hover { border-color: #caa24a; color: #b5872f; }
.ifad-mmenu__pill.is-active { color: #fff; background: var(--ifad-navy); border-color: var(--ifad-navy); }

/* --- Concierge CTA --- */
.ifad-mmenu__concierge-btn {
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 14px 16px;
	color: var(--ifad-navy);
	background: linear-gradient( 135deg, rgba( 230, 200, 119, .16 ), rgba( 181, 135, 47, .1 ) );
	border: 1px solid rgba( 181, 135, 47, .3 );
	border-radius: 12px;
	text-decoration: none;
}
.ifad-mmenu__concierge-btn:hover { border-color: #b5872f; }
.ifad-mmenu__concierge-ico { display: inline-flex; width: 24px; height: 24px; color: #b5872f; }
.ifad-mmenu__concierge-txt { display: flex; flex-direction: column; gap: 1px; margin-inline-end: auto; }
.ifad-mmenu__concierge-txt strong { font-size: 15px; font-weight: 700; }
.ifad-mmenu__concierge-txt em { font-style: normal; font-size: 12.5px; color: var(--ifad-muted); }
.ifad-mmenu__concierge-btn .ifad-mmenu__chev { color: #b5872f; }

/* --- Footer --- */
.ifad-mmenu__foot {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 11px 20px calc( 11px + env( safe-area-inset-bottom ) );
	text-align: center;
	background: var(--ifad-navy);
	border-top: 1px solid rgba( 255, 255, 255, .1 );
}
.ifad-mmenu__trust { margin: 0; font-size: 12px; letter-spacing: .02em; color: rgb( 255 255 255 ); }
.ifad-mmenu__foot-link { font-size: 13px; font-weight: 600; color: #e6c877; transition: color .16s ease; }
.ifad-mmenu__foot-link:hover { color: #fff; }

@media ( prefers-reduced-motion: reduce ) {
	.ifad-mmenu { transition: none; }
	.ifad-mmenu-overlay { transition: none; }
	.ifad-mmenu__sec,
	.ifad-mmenu__foot { transition: none; opacity: 1; transform: none; }
}
