/* Bellose Menu: header bar, BRANDS tile panel, sticky bar, search overlay and mobile slide-in panel.
 * Values copied from the Groovy Menu preset this replaces (colours, sizes, breakpoint 1024px). */

.bm {
	--bm-h: 100px;
	--bm-h-stuck: 50px;
	--bm-text: #646060;
	--bm-hover: #d56fdf;
	--bm-purple: #9d1d96;
	--bm-line: #a7159e;
	--bm-stuck-bg: rgba(49, 14, 54, .88);
	--bm-drawer-bg: #753573;
	--bm-drawer-dark: #491b47;
	--bm-drawer-line: #9c8495;
	position: relative;
	z-index: 9999;
	font-family: inherit;
}
.bm, .bm * { box-sizing: border-box; }
.bm ul { list-style: none; margin: 0; padding: 0; }
.bm li { margin: 0; padding: 0; }
.bm a { text-decoration: none; }
.bm button { font: inherit; cursor: pointer; }

/* ---- bar ---- */
.bm-header { position: relative; z-index: 9999; height: var(--bm-h); }
.bm-bg { position: absolute; inset: 0; background: #fff; transition: background-color .2s; }
.bm-container { position: relative; display: flex; align-items: center; max-width: 1200px; height: 100%; margin: 0 auto; padding: 0 15px; }
.bm-logo { display: flex; align-items: center; height: 100%; flex: 0 0 auto; }
.bm-logo img { display: block; width: auto; height: 60px; max-width: none; transition: height .2s; }
.bm-logo__light { display: none !important; }
.bm-spacer { display: none; height: var(--bm-h); }

.bm.is-stuck .bm-spacer { display: block; }
.bm.is-stuck .bm-header { position: fixed; top: 0; left: 0; right: 0; height: var(--bm-h-stuck); }
.admin-bar .bm.is-stuck .bm-header { top: 32px; }
.bm.is-stuck .bm-bg { background: var(--bm-stuck-bg); }
.bm.is-stuck .bm-logo__dark { display: none !important; }
.bm.is-stuck .bm-logo__light { display: block !important; height: 46px; }

/* ---- search button ---- */
.bm-search-btn { display: flex; align-items: center; height: 100%; padding: 0; border: 0; background: none; color: var(--bm-text); line-height: 1; }
.bm-search-btn .bm-ico { display: block; }

/* ---- burger (phones / tablets) ---- */
.bm-burger { display: none; flex-direction: column; justify-content: space-between; width: 24px; height: 24px; padding: 0; border: 0; background: none; }
.bm-burger span { display: block; width: 24px; height: 3px; background: var(--bm-purple); border-radius: 0; }

/* ---- search overlay ---- */
.bm-search { position: fixed; inset: 0; z-index: 10030; display: none; align-items: center; justify-content: center; background: rgba(0, 0, 0, .8); }
.bm-search.is-open { display: flex; }
.bm-search__close { position: absolute; top: 24px; right: 24px; padding: 4px; border: 0; background: none; color: #fff; line-height: 0; }
.bm-search__inner { width: min(760px, 88vw); text-align: center; }
.bm-search__hint { display: block; margin-bottom: 18px; color: #fff; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
.bm-search__form { display: flex; align-items: center; border-bottom: 2px solid #82178d; }
.bm-search__form input { flex: 1; min-width: 0; padding: 10px 4px; border: 0; background: transparent; color: #fff; font: inherit; font-size: 32px; outline: 0; box-shadow: none; -webkit-appearance: none; appearance: none; }
.bm-search__form button { padding: 8px; border: 0; background: none; color: #fff; line-height: 0; }
.bm-search__form button .bm-ico { width: 26px; height: 26px; }

html.bm-lock { overflow: hidden; }

/* ---- scrim + drawer (phones / tablets) ---- */
.bm-scrim { position: fixed; inset: 0; z-index: 10022; background: transparent; }
.bm-scrim[hidden] { display: none; }
.bm-drawer { position: fixed; top: 0; right: 0; z-index: 10023; display: flex; flex-direction: column; width: 300px; max-width: 100vw; height: 100%; padding: 0 15px; overflow-x: hidden; overflow-y: auto; background: var(--bm-drawer-bg); color: #fff; visibility: hidden; transform: translateX(100%); transition: transform .3s, visibility 0s .3s; -webkit-overflow-scrolling: touch; }
.bm.drawer-open .bm-drawer { visibility: visible; transform: none; transition: transform .3s; }
.bm-drawer__top { display: flex; justify-content: flex-end; padding: 12px 0; }
.bm-drawer__close { width: 24px; height: 24px; padding: 0; border: 0; background: none; color: #fff; line-height: 0; }
.bm-d-list { margin-top: 20px !important; }
.bm-d-item { position: relative; }
.bm-d-link { display: block; padding: 9px 50px 9px 0; border-bottom: 1px dotted var(--bm-drawer-line); color: #fff !important; font-size: 16px; font-weight: 700; line-height: 22px; text-transform: uppercase; }
.bm-d-link:hover, .bm-d-item.is-current > .bm-d-link { color: #e4c5e5 !important; }
.bm-d-next { position: absolute; top: 0; right: 0; display: flex; align-items: center; justify-content: flex-end; width: 50px; height: 41px; padding: 0 4px 0 0; border: 0; background: none; color: #fff; line-height: 0; }
.bm-d-item--html { margin-top: 12px; }
.bm-wim { font-size: 14px; line-height: normal; color: #fff; text-align: left; }
.bm-wim img { max-width: 100%; height: auto; }
.bm-wim .alignleft { float: none; display: block; margin: 0; }

/* second level slides in over the first */
.bm-d-sub { position: fixed; top: 0; right: 0; z-index: 1; width: 300px; max-width: 100vw; height: 100%; overflow-y: auto; background: var(--bm-drawer-bg); transform: translateX(100%); visibility: hidden; transition: transform .3s, visibility 0s .3s; }
.bm-d-item.is-sub-open > .bm-d-sub { transform: none; visibility: visible; transition: transform .3s; }
.bm-d-back { display: flex; align-items: center; gap: 12px; width: 100%; height: 50px; padding: 0 15px; border: 0; background: var(--bm-drawer-dark); color: #fff; font-size: 16px; font-weight: 700; text-transform: uppercase; text-align: left; }
.bm-d-sub ul { padding: 20px 15px 0; }
.bm-d-sub .bm-d-link { padding-right: 0; font-size: 14px; }

/* ---- phones / small tablets ---- */
@media (max-width: 1023px) {
	.bm { --bm-h: 70px; --bm-h-stuck: 70px; }
	.bm-nav { display: none; }
	.bm-logo { flex: 1 1 auto; }
	.bm-logo img { height: 44px; }
	.bm.is-stuck .bm-logo__light { height: 44px; }
	.bm-search-btn { margin-right: 32px; color: var(--bm-purple); }
	.bm-search-btn .bm-ico { width: 24px; height: 24px; }
	.bm-burger { display: flex; }
	.bm.is-stuck .bm-search-btn { color: #fff; }
	.bm.is-stuck .bm-burger span { background: #fff; }
	.bm-panel { display: none !important; }
}
@media (max-width: 767px) {
	.bm:not(.is-stuck) .bm-bg { background: #eff2f6; }
}

/* ---- desktop ---- */
@media (min-width: 1024px) {
	.bm-drawer, .bm-scrim { display: none !important; }
	.bm-nav { display: flex; flex: 1 1 auto; justify-content: flex-end; align-self: stretch; margin-left: 40px; }
	.bm-menu { display: flex; align-items: stretch; }
	.bm-item { display: flex; align-items: center; }
	.bm-link { display: flex; align-items: center; margin: 5px 15px; color: var(--bm-text); font-size: 14px; font-weight: 500; line-height: 25px; text-transform: uppercase; transition: color .15s; white-space: nowrap; }
	.bm-caret { margin-left: 14px; flex: 0 0 auto; }
	.bm-item:hover > .bm-link, .bm-item:focus-within > .bm-link, .bm-item.is-open > .bm-link, .bm-item.is-current > .bm-link { color: var(--bm-hover); }
	.bm-search-btn { padding: 0 13px 0 15px; }
	.bm-search-btn .bm-ico { width: 15px; height: 15px; }
	.bm-search-btn:hover { color: var(--bm-hover); }

	.bm.is-stuck .bm-link, .bm.is-stuck .bm-search-btn { color: #fff; }
	.bm.is-stuck .bm-item:hover > .bm-link, .bm.is-stuck .bm-item:focus-within > .bm-link, .bm.is-stuck .bm-item.is-current > .bm-link { color: var(--bm-hover); }

	/* BRANDS panel: slides up 40px while fading in; stays open 0.2s after the mouse leaves so crossing the edge does not flicker */
	.bm-panel { position: absolute; top: 100%; left: 0; width: 100%; padding: 10px 15px; border-top: 3px solid var(--bm-line); background: #fff; box-shadow: 0 8px 20px rgba(0, 0, 0, .12); visibility: hidden; opacity: 0; transform: translateY(40px); transition: opacity .2s, transform .2s, visibility 0s .2s; }
	.bm-item:hover > .bm-panel, .bm-item:focus-within > .bm-panel, .bm-item.is-open > .bm-panel { visibility: visible; opacity: 1; transform: none; transition: opacity .2s, transform .2s, visibility 0s; }
	.bm-tiles { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; }
	.bm-tile { position: relative; display: block; aspect-ratio: 500 / 650; overflow: hidden; background: #fff; }
	.bm-tile img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
	.bm-tile__logo { transition: opacity .3s; }
	.bm-ready .bm-tile:hover .bm-tile__logo, .bm-ready .bm-tile:focus-visible .bm-tile__logo { opacity: 0; }

	/* plain dropdown list for any other item that has sub items */
	.bm-panel--list { left: auto; right: auto; width: 230px; padding: 0; }
	.bm-item:not(.bm-item--mega) { position: relative; }
	.bm-sub a { display: block; padding: 10px 20px; border-bottom: 1px solid #eaeaea; color: #6e6e6f; font-size: 14px; }
	.bm-sub a:hover { color: #d6496f; }
}

@media (prefers-reduced-motion: reduce) {
	.bm *, .bm *::before, .bm *::after { transition-duration: 0s !important; transition-delay: 0s !important; }
}
