/* chrome.css — header, footer and content-page parts shared by every store
   (chrome.php). Colours and type come from each store's Elementor globals;
   only structure and behaviour live here. */

:root {
	--rs-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--rs-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
}

/* --- Line icons: stroked, in the text colour of their widget. ------------- */
.rs-line-icon .elementor-icon svg,
.rs-menu-cart .elementor-menu-cart__toggle_button svg,
.rs-search svg,
.rs-faq-list .e-n-accordion-item-title-icon svg { fill: none !important; stroke: currentColor; width: 1em; height: 1em; }
.rs-line-icon .elementor-icon { display: inline-flex; color: inherit; transition: opacity 150ms ease; }
@media (hover: hover) and (pointer: fine) { .rs-line-icon .elementor-icon:hover { opacity: .6; } }
.rs-line-icon .elementor-icon:active { transform: scale(0.94); transition: transform 120ms ease-out; }

/* --- Menu cart --------------------------------------------------------------- */
.rs-menu-cart .elementor-menu-cart__toggle_button { background: none !important; gap: 0; }
.rs-menu-cart .elementor-menu-cart__toggle_button:active { transform: scale(0.96); }
.rs-menu-cart .elementor-button-icon { position: relative; }
.rs-menu-cart .elementor-button-icon-qty[data-counter] { font-size: 9px; min-width: 15px; height: 15px; line-height: 15px; top: -6px; right: -9px; font-weight: 600; }
/* "Cart (2)": the word from --rs-cart-label, the count WooCommerce keeps current. */
.rs-menu-cart--label .elementor-button-icon svg, .rs-menu-cart--label .elementor-button-icon i { display: none; }
.rs-menu-cart--label .elementor-menu-cart__toggle_button::before { content: var(--rs-cart-label, "Cart"); margin-right: .3em; }
.rs-menu-cart--label .elementor-button-icon { order: 2; margin: 0 !important; }
.rs-menu-cart--label .elementor-button-icon-qty[data-counter] { position: static; display: inline !important; background: none !important; font: inherit; color: inherit; min-width: 0; height: auto; line-height: inherit; padding: 0; }
.rs-menu-cart--label .elementor-button-icon-qty[data-counter]::before { content: "("; }
.rs-menu-cart--label .elementor-button-icon-qty[data-counter]::after { content: ")"; }
.rs-menu-cart--label .elementor-menu-cart__toggle_button .elementor-button-text { display: none; } /* the toggle only: the bag panel's buttons keep their words */
/* Side cart: calmer edges than Elementor's default. */
.elementor-menu-cart__main { box-shadow: -24px 0 48px rgba(0, 0, 0, .08); }
.elementor-menu-cart__container { background-color: rgba(0, 0, 0, .3); backdrop-filter: blur(2px); }

/* --- Search panel ------------------------------------------------------------- */
.rs-search-popup .dialog-widget-content { animation-name: none !important; }
.rs-search-popup .rs-search-panel { animation: rs-drop 320ms var(--rs-ease-out) both; }
@keyframes rs-drop { from { transform: translateY(-16px); opacity: 0; } to { transform: none; opacity: 1; } }
.rs-search .e-search-input { font-size: clamp(22px, 3vw, 36px) !important; padding: 12px 48px 16px 40px !important; border: 0 !important; border-bottom: 1px solid currentColor !important; border-radius: 0 !important; background: transparent !important; color: inherit; }
.rs-search .e-search-input:focus { outline: none; }
.rs-search .e-search-input-wrapper > svg, .rs-search .e-search-input-wrapper > i { left: 0 !important; width: 24px; height: 24px; }
.rs-search .e-search-submit { display: none !important; }
.rs-search .e-search-results-container { margin-top: 24px; max-height: 60vh; overflow: auto; }
@media (prefers-reduced-motion: reduce) { .rs-search-popup .rs-search-panel { animation: rs-fade 150ms ease both; } @keyframes rs-fade { from { opacity: 0; } } }

/* --- Policy and help pages ---------------------------------------------------- */
@media (min-width: 1025px) { .rs-doc-side { position: sticky !important; top: var(--rs-sticky-top, 140px); align-self: flex-start; } }
.rs-doc-main { max-width: 760px; }
.rs-doc-text p { margin: 0 0 1em; }
.rs-doc-text p:last-child { margin-bottom: 0; }
.rs-doc-text ul, .rs-doc-text ol { margin: 0 0 1em; padding-left: 1.2em; }
.rs-doc-text li { margin: 0 0 .45em; }
.rs-doc-text a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: opacity 150ms ease; }
@media (hover: hover) { .rs-doc-text a:hover { opacity: .6; } }
.rs-doc-text strong { font-weight: 600; }
.rs-doc-text table { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: .92em; }
.rs-doc-text th, .rs-doc-text td { text-align: left; padding: 10px 12px 10px 0; border-bottom: 1px solid rgba(127, 127, 127, .25); vertical-align: top; }
.rs-doc-section { scroll-margin-top: 120px; }
.rs-doc-nav .elementor-icon-list-item a[aria-current="page"], .rs-doc-nav .elementor-icon-list-item.rs-current a { text-decoration: underline; text-underline-offset: 4px; }
.rs-doc-nav .elementor-icon-list-icon { display: none; }
.rs-faq-list .e-n-accordion-item { border-bottom: 1px solid rgba(127, 127, 127, .25); }
.rs-faq-list .e-n-accordion-item-title { padding: 20px 0 !important; justify-content: space-between; }
.rs-faq-list .e-n-accordion-item-title-icon { font-size: 18px; }

/* --- Everywhere: focus you can see, presses you can feel. ----------------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.elementor-button:active, .single_add_to_cart_button:active, .button:active, button[type=submit]:active { transform: scale(0.97); }
.elementor-button, .single_add_to_cart_button, .button { transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease, transform 160ms var(--rs-ease-out); }
html { -webkit-tap-highlight-color: transparent; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
@media (pointer: coarse) { input, select, textarea { font-size: max(16px, 1em); } }

/* --- Social icons from Store details ([rs_social]) ------------------------ */
.rs-social { display: inline-flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.rs-social__link { display: inline-flex; color: inherit; transition: opacity 150ms ease; }
@media (hover: hover) { .rs-social__link:hover { opacity: .6; } }
.rs-social__link:active { transform: scale(0.94); }

/* An empty bag shows no count. */
.rs-menu-cart--icon .elementor-button-icon-qty[data-counter="0"] { display: none !important; }
.rs-backtop .elementor-button { white-space: nowrap; }
.rs-backtop .elementor-button-icon svg { width: 14px; height: 14px; fill: none !important; stroke: currentColor; }

/* Policy pages: the contents list lines up with the first heading; tables are ruled, not boxed (over the theme's defaults). */
.rs-doc-side { justify-content: flex-start !important; padding-top: 32px !important; }
@media (max-width: 1024px) { .rs-doc-side { padding-top: 0 !important; } }
.rs-doc-text table, .rs-doc-text table tbody tr, .rs-doc-text table tbody tr:nth-child(odd) > td, .rs-doc-text table tbody > tr:nth-child(odd) > th { background: none !important; }
.rs-doc-text table td, .rs-doc-text table th { border: 0 !important; border-bottom: 1px solid rgba(127, 127, 127, .22) !important; padding: 12px 16px 12px 0 !important; line-height: 1.45; }
.rs-doc-text table thead th { font-weight: 600; border-bottom-color: currentColor !important; }
@media (max-width: 600px) { .rs-doc-text table td, .rs-doc-text table th { padding-right: 10px !important; font-size: 13px; } }
.rs-doc-nav a[aria-current="page"] .elementor-icon-list-text { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }

/* A text block's last paragraph adds no space below (rows of text line up). */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Phones: the related-pages list becomes one scrolling row of chips. */
@media (max-width: 1024px) {
	.rs-doc-side > .elementor-widget-heading { display: none; }
	.rs-doc-nav .elementor-icon-list-items { display: flex !important; flex-wrap: nowrap; overflow-x: auto; gap: 8px; margin: 0 !important; padding: 0 0 4px !important; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
	.rs-doc-nav .elementor-icon-list-items::-webkit-scrollbar { display: none; }
	.rs-doc-nav .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; flex: 0 0 auto; scroll-snap-align: start; }
	.rs-doc-nav .elementor-icon-list-item::after { display: none !important; }
	.rs-doc-nav .elementor-icon-list-item a { border: 1px solid rgba(127, 127, 127, .35); border-radius: 999px; padding: 8px 14px; white-space: nowrap; }
	.rs-doc-nav a[aria-current="page"] { border-color: currentColor; }
	.rs-doc-nav a[aria-current="page"], .rs-doc-nav a[aria-current="page"] .elementor-icon-list-text { text-decoration: none !important; }
}

/* FAQ: a ruled list, question left and +/− right (over Elementor's boxed default). */
.rs-faq-list { --n-accordion-item-title-space-between: 0px; --n-accordion-border-width: 0px; }
.rs-faq-list .e-n-accordion-item { border: 0 !important; border-bottom: 1px solid rgba(127, 127, 127, .25) !important; margin: 0 !important; }
.rs-faq-list .e-n-accordion-item-title { border: 0 !important; border-radius: 0 !important; background: transparent !important; padding: 20px 0 !important; flex-direction: row-reverse !important; justify-content: space-between !important; gap: 24px; cursor: pointer; }
.rs-faq-list .e-n-accordion-item-title-header { flex: 1; }
.rs-faq-list .e-n-accordion-item > [role="region"] { border: 0 !important; padding: 0 0 22px !important; background: transparent !important; }
.rs-faq-list .e-n-accordion-item-title-icon svg { width: 16px; height: 16px; }

/* --- Drawer (phones and tablets) ------------------------------------------- */
.rs-drawer .e-off-canvas__content { box-shadow: 24px 0 48px rgba(0, 0, 0, .1); }
.rs-drawer-links .elementor-icon-list-icon, .rs-drawer-plain .elementor-icon-list-icon { display: none; }
.rs-drawer-plain .elementor-icon-list-item { border-bottom: 1px solid rgba(127, 127, 127, .25); }
.rs-drawer-plain .elementor-icon-list-item a { padding: 18px 0; display: block; }
.rs-drawer-groups .e-n-accordion-item-title { padding: 18px 0 !important; }
.rs-drawer-account .elementor-button-icon svg { width: 18px; height: 18px; fill: none !important; stroke: currentColor; }
.rs-drawer-foot { margin-top: auto; }
.rs-drawer { --e-off-canvas-width: min(88vw, 420px) !important; z-index: 1000 !important; }
/* Elementor passes a bar's z-index down to its columns; the column holding the drawer must sit above its siblings. */
.e-con:has(> .rs-drawer), .e-con:has(> .e-con-inner > .rs-drawer) { z-index: 1000 !important; }
.rs-drawer .e-off-canvas { z-index: 1000; }
.rs-drawer .e-off-canvas__overlay { background-color: rgba(0, 0, 0, .35) !important; }

/* Product gallery thumbnails: all at full strength, the current one underlined. */
.woocommerce-product-gallery .flex-control-thumbs li img { opacity: 1 !important; transition: opacity 150ms ease; }
.woocommerce-product-gallery .flex-control-thumbs li img:not(.flex-active) { opacity: .82 !important; }
@media (hover: hover) { .woocommerce-product-gallery .flex-control-thumbs li img:hover { opacity: 1 !important; } }
.woocommerce-product-gallery .flex-control-thumbs li img.flex-active { box-shadow: inset 0 -2px 0 currentColor; }
/* Line icons in icon lists (trust rows) take the text colour. */
.elementor-icon-list-icon svg[stroke="currentColor"], .elementor-button-icon svg[stroke="currentColor"] { fill: none !important; stroke: currentColor; }

/* Phones: the add-to-cart button spans the column. */
@media (max-width: 767px) {
	.single_variation_wrap .woocommerce-variation-add-to-cart, form.cart:not(.variations_form) { width: 100%; }
	.single_add_to_cart_button { width: 100% !important; }
}
/* Search fields: the icon sits clear of the text. */
.rs-search .e-search-input-wrapper { position: relative; }
.rs-search .e-search-input-wrapper > :is(svg, i) { position: absolute !important; left: 0 !important; top: 50% !important; transform: translateY(-50%); pointer-events: none; }
.rs-search .e-search-input { padding-left: 36px !important; }
/* Label-style cart: the text takes the icon colour (Elementor only applies its text colour with a subtotal), and the count is visible. */
.rs-menu-cart--label .elementor-menu-cart__toggle_button { color: var(--toggle-button-icon-color, currentColor) !important; }
.rs-menu-cart--label .elementor-button-icon { font-size: inherit !important; color: inherit; }
.rs-menu-cart--label .elementor-button-icon-qty[data-counter] { font-size: inherit !important; }

/* Product accordions: ruled rows like the FAQ unless a store styles them itself. */
.rs-pdp-acc:not(.rs-dotted-acc) .e-n-accordion-item { border: 0 !important; border-bottom: 1px solid rgba(127, 127, 127, .25) !important; margin: 0 !important; }
.rs-pdp-acc:not(.rs-dotted-acc) .e-n-accordion-item:first-child { border-top: 1px solid rgba(127, 127, 127, .25) !important; }
.rs-pdp-acc:not(.rs-dotted-acc) .e-n-accordion-item-title { border: 0 !important; border-radius: 0 !important; background: transparent !important; padding: 16px 0 !important; flex-direction: row-reverse !important; justify-content: space-between !important; }
.rs-pdp-acc:not(.rs-dotted-acc) .e-n-accordion-item > [role=region] { border: 0 !important; padding: 0 0 18px !important; background: transparent !important; }
.rs-pdp-acc .e-n-accordion-item-title-icon svg { width: 14px; height: 14px; fill: none !important; stroke: currentColor; }

/* Collection toolbar on phones: Filter left, Sort right, one row under the title. */
@media (max-width: 767px) {
	.rs-toolbar-controls { width: 100% !important; margin-left: 0 !important; }
	.rs-toolbar-controls, .rs-toolbar-controls > .e-con-inner { justify-content: space-between !important; }
}

/* Accordions: Elementor's default hover and open colours are a near-black #1f2124,
   invisible on a dark store. Unless a widget sets its own, they follow its normal
   colours; the frame is a soft hairline of the text colour, not a grey box. */
.elementor-widget-n-accordion.elementor-widget {
	--n-accordion-title-hover-color: var(--n-accordion-title-normal-color);
	--n-accordion-title-active-color: var(--n-accordion-title-normal-color);
	--n-accordion-icon-hover-color: var(--n-accordion-icon-normal-color);
	--n-accordion-icon-active-color: var(--n-accordion-icon-normal-color);
	--n-accordion-border-color: color-mix(in srgb, currentColor 22%, transparent);
}

/* Product info beside the gallery: native sticky, so it can never leave its row.
   chrome.js sets --rs-sticky-top: 110px when the column fits the screen, or a
   negative top when it is taller, so it pins by its bottom edge instead. */
@media (min-width: 1025px) { .rs-sticky-info { position: sticky !important; top: var(--rs-sticky-top, 110px); align-self: flex-start; } }

/* --- Audit fixes (site-audit.mjs) -------------------------------------------- */
/* Visually hidden, still read out (a page's h1 where the design shows none). */
.rs-sr-only, .rs-sr-only .elementor-heading-title { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
/* The bag panel follows the store: its own ground and ink, not Elementor's white and greys. */
.elementor-menu-cart__main { background-color: var(--rs-panel-bg, var(--rs-field-bg, #fff)) !important; color: var(--rs-ink); }
.elementor-menu-cart__main :is(.elementor-menu-cart__product-name a, .elementor-menu-cart__product-price, .product-quantity, .elementor-menu-cart__subtotal, .elementor-menu-cart__subtotal strong, .woocommerce-mini-cart__empty-message) { color: var(--rs-ink) !important; }
.elementor-menu-cart__main .elementor-menu-cart__product-price { opacity: .8; }
.elementor-menu-cart__main .elementor-menu-cart__close-button { color: var(--rs-ink); }
/* Placeholders readable on light and dark fields alike. */
input::placeholder, textarea::placeholder { color: currentColor !important; opacity: .62 !important; }
/* Touch targets on phones: at least 24 px, mostly 40 px, without moving the layout. */
@media (max-width: 767px) {
	.rs-line-icon .elementor-icon, .rs-menu-cart .elementor-menu-cart__toggle_button { padding: 10px !important; margin: -10px !important; }
	.rs-tiles10 .elementor-icon, .rs-tiles10 .elementor-menu-cart__toggle_button { margin: 0 !important; }
	[data-elementor-type=header] .elementor-widget-theme-site-title a { display: inline-block; padding: 8px 0; }
	.e-loop-item :is(h2, h3) a, .elementor-loop-container :is(h2, h3) a { display: inline-block; padding: 4px 0; }
	[data-elementor-type=footer] .elementor-nav-menu--layout-vertical .elementor-item { padding-top: 3px !important; padding-bottom: 3px !important; }
	.rs-backtop .elementor-button, .rs-textlink .elementor-button { padding-top: 10px !important; padding-bottom: 10px !important; }
	.woocommerce a.remove { width: 32px !important; height: 32px !important; line-height: 30px !important; display: inline-grid !important; place-items: center; }
	.woocommerce-form__input-checkbox, .woocommerce form input[type=checkbox] { width: 20px; height: 20px; }
	.woocommerce-LostPassword a, .lost_password a { display: inline-block; padding: 6px 0; }
	.elementor-menu-cart__toggle .elementor-button-icon-qty { font-size: 11px !important; }
}
@media (max-width: 767px) { .rs-announce .elementor-heading-title { font-size: 12px !important; } }
/* Search fields take the store ink, not Elementor's grey. */
.elementor-widget-search .e-search-input { color: var(--rs-ink) !important; }
@media (max-width: 767px) { .woocommerce form .show-password-input { width: 36px !important; height: 36px !important; } }
/* Hover by underline, not by fading to a grey that fails contrast. */
.rs-doc-nav .elementor-icon-list-item:hover .elementor-icon-list-text { color: var(--e-global-color-primary) !important; text-decoration: underline; text-underline-offset: 3px; }
.rs-toolbar-controls .elementor-button:hover, .rs-toolbar-controls .elementor-button:hover :is(.elementor-button-text, .elementor-button-icon) { color: var(--e-global-color-primary) !important; }
.rs-toolbar-controls .elementor-button:hover .elementor-button-text { text-decoration: underline; text-underline-offset: 3px; }
.rs-menu-cart--label .elementor-menu-cart__toggle_button:hover .elementor-button-icon-qty { color: inherit !important; }
/* Load more: ink fill, readable text, on every store. */
.e-loop__load-more .elementor-button { background-color: var(--rs-ink) !important; color: var(--rs-ink-text) !important; }
.e-loop__load-more .elementor-button:hover { opacity: .85; }
@media (max-width: 767px) {
	/* Carousel dots: a 6px dot inside a 24px target. */
	.swiper-pagination-bullet { padding: 9px !important; background-clip: content-box !important; box-sizing: content-box !important; }
	.rs-tab .elementor-heading-title a { display: inline-block; padding: 6px 0; }
	.woocommerce table.shop_table :is(td, th), .woocommerce table.shop_table :is(td, th) a { font-size: max(1em, 13px) !important; }
}
/* Text links: on hover, the page ink with an underline (no fade, no low-contrast accent). */
:is(.elementor-widget-text-editor, .rs-doc-main, .woocommerce-info, .woocommerce-message):not(:is([data-elementor-type=footer], [data-elementor-type=header]) *) a:not(.elementor-button):not(.button):hover { color: var(--e-global-color-primary) !important; opacity: 1 !important; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
	[data-elementor-type=footer] .elementor-nav-menu--layout-horizontal .elementor-item { padding-top: 6px !important; padding-bottom: 6px !important; }
	.rs-toolbar-controls .elementor-button { padding-top: 10px !important; padding-bottom: 10px !important; }
	.rs-sort select { padding-top: 10px !important; padding-bottom: 10px !important; }
}
/* Bag count bubble: the store accent and its own text colour, never Elementor default red. */
.rs-menu-cart--icon .elementor-button-icon-qty[data-counter] { background-color: var(--rs-bubble-bg, var(--e-global-color-accent)) !important; color: var(--rs-bubble-text, #fff) !important; }
/* Search panel: results flow inside the panel (it grows, then scrolls) instead of
   dropping out of it and being cut off; the clear × sits at the right and works. */
.rs-search .e-search-results-container { position: static !important; inset: auto !important; width: 100% !important; margin-top: 24px; max-height: min(64vh, 680px); overflow: auto; box-shadow: none !important; border: 0 !important; }
.rs-search .e-search-input-wrapper > :is(svg, i) { left: auto !important; right: 8px !important; width: 18px !important; height: 18px !important; pointer-events: auto !important; cursor: pointer; }
.rs-search-popup .dialog-widget-content { max-height: 100vh; overflow-y: auto; }
.rs-search .e-search-input-wrapper { display: block !important; }
.rs-search .e-search-input { height: auto !important; min-height: 0 !important; width: 100% !important; }
.rs-search .e-search-input-wrapper > :is(svg, i) { top: 24px !important; }
.rs-search .e-search-label > svg { position: absolute !important; top: 36px !important; left: 2px !important; bottom: auto !important; transform: translateY(-50%) !important; }
/* Archive hero photo where the page has no category image (shop, search, tags). */
body:not(.tax-product_cat) .rs-arch-hero-img { background-image: var(--rs-fallback) !important; background-size: cover !important; }
/* Bag panel buttons in the store's own style (Elementor ships them grey). */
.elementor-menu-cart__footer-buttons .elementor-button { border-radius: var(--rs-btn-radius, var(--rs-radius, 0)) !important; font-family: var(--e-global-typography-accent-font-family, inherit); letter-spacing: var(--e-global-typography-accent-letter-spacing, .04em); transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease; }
.elementor-menu-cart__footer-buttons .elementor-button--view-cart { background: transparent !important; color: var(--rs-ink) !important; border: 1px solid var(--rs-ink) !important; }
.elementor-menu-cart__footer-buttons .elementor-button--checkout { background: var(--rs-accent) !important; color: var(--rs-on-accent) !important; border: 1px solid var(--rs-accent) !important; }
@media (hover: hover) {
	.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover { background: var(--rs-ink) !important; color: var(--rs-ink-text) !important; }
	.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover { background: var(--rs-ink) !important; border-color: var(--rs-ink) !important; color: var(--rs-ink-text) !important; }
}
/* The results list sits on the panel itself; each store's panel decides any frame. */
.rs-search .e-search-results { border: 0 !important; padding: 0 !important; background: transparent !important; box-shadow: none !important; }
.rs-search .e-search-results-container { background: transparent !important; }
.rs-search .e-search-results-container:not(:has(.e-loop-item, .e-search-nothing-found-message)) { padding: 0 !important; margin: 0 !important; min-height: 0 !important; }
/* The popup's close icon is an SVG sprite reference that isn't always on the page: draw the × instead. */
.rs-search-popup .dialog-close-button { width: 40px !important; height: 40px !important; font-size: 0 !important; }
.rs-search-popup .dialog-close-button svg, .rs-search-popup .dialog-close-button i { display: none !important; }
.rs-search-popup .dialog-close-button::before, .rs-search-popup .dialog-close-button::after { content: ""; position: absolute; left: 50%; top: 50%; width: 20px; height: 1.5px; background: currentColor; border-radius: 1px; transform: translate(-50%, -50%) rotate(45deg); }
.rs-search-popup .dialog-close-button::after { transform: translate(-50%, -50%) rotate(-45deg); }
.rs-search-popup .dialog-close-button { transition: opacity 150ms ease; }
@media (hover: hover) { .rs-search-popup .dialog-close-button:hover { opacity: .6; } }

/* An open bag panel lives inside the header's containers; while it is open, lift
   them over their siblings (a mega menu's z-index put 01's nav over the overlay). */
.e-con:has(.elementor-menu-cart--shown) { z-index: 9999 !important; }
