/* Ana Bej deliberately has no palette overrides: existing design remains authoritative. */
.public-theme-picker { display: inline-flex; flex: 0 0 auto; align-items: center; margin-left: .3rem; }
.public-theme-picker select { min-height: 2.75rem; max-width: 100%; padding: .45rem .5rem; border: 1px solid #d6cec5; border-radius: .6rem; background: #fff; color: #302820; font: inherit; font-size: .9rem; cursor: pointer; color-scheme: light; }
html[data-public-theme="night"] { background: #000; }
html[data-public-theme="night"] body { background: #000; }
html[data-public-theme="night"] body::before,
html[data-public-theme="night"] body::after { background: none !important; opacity: 0 !important; }
html[data-public-theme="night"] .site-header { background: #000 !important; }
html[data-public-theme="night"] :is(#main-content, .site-footer) {
  --color-background: #000;
  --color-surface: #171717;
  --color-surface-raised: #222;
  --color-text: #f2ede7;
  --color-text-muted: #c4bdb5;
  --color-border: #45413e;
  --color-primary-strong: #ffae61;
  color: var(--color-text);
}
html[data-public-theme="night"] .site-footer { background: #000 !important; color: #fff; }
html[data-public-theme="night"] .catalog { background: transparent; }
html[data-public-theme="night"] #main-content :is(.catalog-empty, .catalog-notice, .app-boot-notice, .product-card__button, .catalog-page-button:not(.is-current), .catalog-subfilter-button:not(.is-active), .secondary-button) { background: #171717; }
html[data-public-theme="night"] #main-content .product-card__body { background: transparent; }
html[data-public-theme="night"] .popular__controls button { color: #f2ede7; }
html[data-public-theme="night"] .popular-dot:not(.is-active) { background: #777; border-color: #aaa; }
/* Product detail follows the night palette instead of flashing back to a white surface. */
html[data-public-theme="night"] .product-dialog {
  --color-surface: #121212;
  --color-text: #f2ede7;
  --color-text-muted: #c4bdb5;
  --color-border: #3f3b38;
  --color-primary-strong: #ffae61;
  background: #121212 !important;
  color: var(--color-text);
  border-color: var(--color-border);
  color-scheme: dark;
}
html[data-public-theme="night"] .product-dialog::backdrop { background: rgba(0, 0, 0, .72); }
html[data-public-theme="night"] .product-dialog__panel,
html[data-public-theme="night"] .product-detail__content { background: #121212; color: var(--color-text); }
html[data-public-theme="night"] .product-detail__media { background: #090909; }
html[data-public-theme="night"] .product-gallery__canvas,
html[data-public-theme="night"] .product-gallery__thumb { background: #181818; border-color: #3f3b38; }
html[data-public-theme="night"] .product-dialog__mobile-topbar {
  background: rgba(18, 18, 18, .96);
  border-color: #3f3b38;
}
html[data-public-theme="night"] .product-dialog__close,
html[data-public-theme="night"] .product-gallery__nav {
  background: rgba(28, 28, 28, .94);
  color: #f2ede7;
  border-color: #4b4743;
  box-shadow: 0 .35rem 1rem rgba(0, 0, 0, .28);
}
html[data-public-theme="night"] .product-gallery__nav:hover:not(:disabled),
html[data-public-theme="night"] .product-gallery__nav:focus-visible:not(:disabled) { background: #252525; }
html[data-public-theme="night"] .product-detail__description,
html[data-public-theme="night"] .product-detail__serial,
html[data-public-theme="night"] .product-detail__muted { color: var(--color-text-muted); }
html[data-public-theme="night"] .size-chip { background: #1b1b1b; color: var(--color-text); border-color: #48433f; }
html[data-public-theme="night"] .product-detail__measurements span { background: #1b1b1b; border-color: #48433f; color: var(--color-text); }
@media (max-width: 48rem) {
  .site-header.nav-enhanced .public-theme-picker { margin: .25rem 0 0; justify-content: center; width: 100%; }
  .site-header.nav-enhanced .public-theme-picker select { width: 100%; min-height: 3rem; text-align: center; }
  .site-header.nav-enhanced.is-menu-open .primary-nav { max-height: calc(100dvh - 1.5rem); overflow-y: auto; touch-action: pan-y; }
}
html[data-public-theme="night"] body.has-theme-backdrop .content-surface { background: #171717; }
@media (max-width: 48rem) {
  .site-header:not(.admin-site-header).nav-enhanced.is-menu-open .primary-nav {
    max-height: calc(100dvh - 1.5rem);
    overflow-y: auto !important;
    touch-action: pan-y;
  }
}

/* Products: a body-level modal avoids sticky-header clipping and transforms. */
.catalog-menu-trigger { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: .4rem .65rem; margin-right: .5rem; border: 1px solid var(--color-border); border-radius: .6rem; background: #fff; color: #302820; cursor: pointer; font: inherit; }
.catalog-menu-trigger svg { width: 40px; height: 40px; }
.catalog-site-menu { position: fixed; inset: 0 auto 0 0; width: min(320px, calc(100vw - 40px)); max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; border-right: 1px solid #d6cec5; background: #f7f1e9; color: #302820; overflow: visible; }
.catalog-site-menu[open] { display: block; animation: catalog-menu-enter 220ms ease-out; }
.catalog-site-menu__scroll { width: 100%; height: 100%; min-height: 0; display: flex; flex-direction: column; gap: 1.5rem; padding: max(1.25rem, env(safe-area-inset-top)) 1.25rem max(1.25rem, env(safe-area-inset-bottom)); overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; }
.catalog-site-menu::backdrop { background: rgb(0 0 0 / .5); }
.catalog-site-menu__heading { display: flex; justify-content: space-between; align-items: center; font-size: 1.2rem; }
.catalog-site-menu__heading button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; line-height: 1; border: 1px solid #d6cec5; border-radius: .6rem; background: transparent; color: inherit; font-size: 1.6rem; cursor: pointer; }
.catalog-site-menu__heading button:focus-visible { outline: 2px solid var(--color-border, #d6cec5); outline-offset: 2px; }
.catalog-site-menu__links { display: flex; flex-direction: column; gap: .4rem; }
.catalog-site-menu__links a { display: flex; align-items: center; min-height: 48px; padding: .75rem; border-radius: .6rem; color: inherit; }
.catalog-site-menu__links a:hover, .catalog-site-menu__links a[aria-current="page"] { background: rgb(128 112 96 / .18); }
.catalog-site-menu .public-theme-picker { margin: 0; display: flex; justify-content: space-between; gap: 1rem; }
@keyframes catalog-menu-enter { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .catalog-site-menu[open] { animation: none; } }
@media (max-width: 30rem) { .catalog-menu-trigger { padding-inline: .45rem; gap: .25rem; font-size: .8rem; margin-right: .25rem; } }
/* Night navigation: local tokens leave the Ana Bej palette untouched. */
html[data-public-theme="night"] :is(.site-header, .catalog-site-menu) {
  --color-text: #fff; --color-text-muted: #ddd; --color-border: #454545;
  --color-surface: #000; --color-primary-strong: #fff;
  background: #000; color: #fff; border-color: #454545; color-scheme: dark;
}
html[data-public-theme="night"] .site-header :is(.primary-nav, .header-category-shell, .header-subcategory-panel, .mobile-category-drawer, .header-product-search, .header-search-trigger, .menu-toggle, .category-drawer-trigger, .mobile-category-drawer__close) { background: #000 !important; color: #fff; border-color: #454545; }
html[data-public-theme="night"] .site-header :is(.brand, .primary-nav a, .header-category-nav button, .header-category-nav a, .header-subcategory-nav button, .header-subcategory-nav a, .header-product-search__icon, .header-product-search__close, .header-product-search__status, .header-product-search__result-copy span, .header-product-search__result-copy small, .header-product-search__result-arrow, .mobile-category-drawer__subcategory) { color: #fff; }
html[data-public-theme="night"] .site-header :is(.header-category-nav button.is-active, .header-category-nav button:hover, .header-subcategory-nav button:hover, .header-subcategory-nav button.is-active, .mobile-category-drawer__all, .mobile-category-drawer__category.is-active, .mobile-category-drawer__subcategory.is-active, .header-product-search__result:hover) { background: #242424; color: #fff; }
html[data-public-theme="night"] :is(.public-theme-picker select, .catalog-menu-trigger) { background: #000; color: #fff; border-color: #555; color-scheme: dark; }
html[data-public-theme="night"] .site-footer :is(a, small, span) { color: #fff; }
/* Category-aligned pill geometry, shared on desktop and mobile. */
.site-header .catalog-menu-trigger { min-height: 2.2rem; padding: .42rem .85rem; border: 1px solid rgba(242,140,40,.35); border-radius: var(--radius-pill); font-size: .84rem; font-weight: 720; }
.site-header .catalog-menu-trigger:hover { border-color: rgba(242,140,40,.65); }
.theme-switch { display: inline-grid; place-items: center; width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 0; border: 1px solid #9b9288; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; flex: 0 0 44px; }
.theme-switch svg { grid-area: 1 / 1; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.theme-switch > svg:last-of-type { display: none; }
.theme-switch[aria-checked=true] > svg:first-of-type { display: none; }
.theme-switch[aria-checked=true] > svg:last-of-type { display: block; }
.theme-switch__track { display: none; }
.theme-switch__track span { display: none; }
.catalog-site-menu .theme-switch { align-self: flex-start; }
html[data-custom-theme-color] { background: var(--public-theme-background) !important; }
html[data-custom-theme-color] body { background: var(--public-theme-background) !important; }
html[data-custom-theme-color] body::before, html[data-custom-theme-color] body::after { opacity: 0 !important; }
html[data-custom-theme-color] #main-content { --color-text: var(--public-theme-ink); --color-text-muted: var(--public-theme-muted); color: var(--public-theme-ink); }
html[data-custom-theme-color] #main-content .catalog { background: transparent; }
/* Opaque cards keep their own contrast; unframed names inherit the page palette. */
html[data-custom-theme-color] #main-content :is(.content-surface,.catalog-empty,.catalog-notice,.product-card__button,.secondary-button) { --color-text: #1f1b18; --color-text-muted: #655e58; color: var(--color-text); }
html[data-public-theme=night][data-custom-theme-color] #main-content :is(.content-surface,.catalog-empty,.catalog-notice,.product-card__button,.secondary-button) { --color-text: #fff; --color-text-muted: #ddd; color: var(--color-text); }
@media(max-width:48rem) { .site-header .catalog-menu-trigger { min-height: 2.25rem; padding-inline: .8rem; font-size: .8rem; } }
@media(prefers-reduced-motion:reduce) { .theme-switch { transition: none; } }
html[data-public-theme=night] .site-header .catalog-menu-trigger { border-color: rgba(242,140,40,.35); background: #242424; }
/* Public navigation uses only an underline for the selected destination. */
html body .site-header:not(.admin-site-header) :is(.catalog-menu-trigger, .primary-nav a, .header-category-nav button, .header-category-nav a, .header-subcategory-nav button, .header-subcategory-nav a, .mobile-category-drawer__all, .mobile-category-drawer__category, .mobile-category-drawer__subcategory),
html body .catalog-site-menu__links a {
  border-color: transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
html body .site-header:not(.admin-site-header) .primary-nav a::after { content: none !important; }
html body .site-header:not(.admin-site-header) :is(.primary-nav a[aria-current='page'], .header-category-nav [aria-pressed='true'], .header-subcategory-nav [aria-pressed='true'], .mobile-category-drawer__all[aria-pressed='true'], .mobile-category-drawer__category[aria-pressed='true'], .mobile-category-drawer__subcategory[aria-pressed='true']),
html body .catalog-site-menu__links a[aria-current='page'] {
  text-decoration-line: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .45em;
  text-decoration-color: currentColor;
}
.drawer-product-search { width: 100%; min-width: 0; }
.drawer-product-search form > label { display: block; margin-bottom: .5rem; }
.drawer-product-search__field { display: flex; align-items: center; border: 1px solid currentColor; border-radius: .7rem; overflow: hidden; background: transparent; }
.drawer-product-search__field:focus-within { border-color: #c67a32; box-shadow: 0 0 0 2px rgb(198 122 50 / .12); }
.drawer-product-search__field input { width: 100%; min-width: 0; min-height: 44px; padding: .6rem; border: 0; outline: 0; background: transparent; color: inherit; }
.drawer-product-search__field input::placeholder { color: inherit; opacity: .7; }
.drawer-product-search__field button { display: grid; place-items: center; width: 44px; min-height: 44px; flex: 0 0 auto; border: 0; border-left: 1px solid transparent; background: transparent; color: inherit; cursor: pointer; }
.drawer-product-search__field:focus-within button { border-left-color: rgb(198 122 50 / .38); }
.drawer-product-search__field svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }

/* v1.9.162 — drawer search results float beside the side menu instead of changing its layout. */
.drawer-product-search__popover {
  --drawer-search-left: 21rem;
  --drawer-search-top: 12rem;
  --drawer-search-width: 25rem;
  --drawer-search-max-height: calc(100dvh - 2rem);
  position: fixed;
  z-index: 6;
  left: var(--drawer-search-left);
  top: var(--drawer-search-top);
  width: var(--drawer-search-width);
  max-width: calc(100vw - 1.5rem);
  max-height: var(--drawer-search-max-height);
  overflow: hidden;
  border: 1px solid rgb(112 91 72 / .18);
  border-radius: 1rem;
  background: rgba(255, 252, 247, .985);
  color: #302820;
  box-shadow: 0 1.3rem 3.5rem rgb(46 33 22 / .24);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-.5rem) scale(.985);
  transform-origin: left top;
  transition: opacity 150ms ease, transform 180ms ease, visibility 180ms ease;
}
.drawer-product-search__popover[hidden] { display: none !important; }
.drawer-product-search__popover.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0) scale(1);
}
.drawer-product-search__status {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: .82rem .95rem .68rem;
  border-bottom: 1px solid rgb(112 91 72 / .12);
  color: #6e6258;
  font-size: .83rem;
  font-weight: 600;
  line-height: 1.35;
  background: inherit;
}
.drawer-product-search__results {
  position: relative;
  z-index: 1;
  max-height: calc(var(--drawer-search-max-height) - 3rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: .45rem;
  background: inherit;
}
.drawer-product-search__popover .header-product-search__result {
  grid-template-columns: 3.5rem minmax(0,1fr) 1.1rem;
  min-height: 4.5rem;
  padding: .5rem .55rem;
  border-radius: .8rem;
  color: #302820;
}
.drawer-product-search__popover .header-product-search__result-copy :is(span,small),
.drawer-product-search__popover .header-product-search__result-arrow { color: #74675d; }
.drawer-product-search__popover .header-product-search__result-copy small { color: #996233; }
.drawer-product-search__popover .header-product-search__result:hover,
.drawer-product-search__popover .header-product-search__result:focus-visible {
  background: #f5e9dc;
  transform: none;
}
.drawer-product-search__popover[data-placement='overlay'] {
  border-radius: .9rem;
  transform: translateY(-.45rem) scale(.985);
  transform-origin: center top;
}
.drawer-product-search__popover[data-placement='overlay'].is-open { transform: translateY(0) scale(1); }

html[data-public-theme='night'] .drawer-product-search__popover {
  border-color: #3f3f3f;
  background: rgba(18,18,18,.985);
  color: #f2ede7;
  box-shadow: 0 1.4rem 3.8rem rgb(0 0 0 / .55);
}
html[data-public-theme='night'] .drawer-product-search__status {
  border-color: #353535;
  color: #d4ccc4;
}
html[data-public-theme='night'] .drawer-product-search__popover .header-product-search__result { color: #f2ede7; }
html[data-public-theme='night'] .drawer-product-search__popover .header-product-search__result-copy :is(span,small),
html[data-public-theme='night'] .drawer-product-search__popover .header-product-search__result-arrow { color: #c9c1b9; }
html[data-public-theme='night'] .drawer-product-search__popover .header-product-search__result-copy small { color: #ffb36b; }
html[data-public-theme='night'] .drawer-product-search__popover .header-product-search__result:hover,
html[data-public-theme='night'] .drawer-product-search__popover .header-product-search__result:focus-visible { background: #272727; }

@media (max-width: 48rem) {
  .drawer-product-search__popover {
    max-width: calc(100vw - 1.5rem);
    border-radius: .9rem;
  }
  .drawer-product-search__results { padding-bottom: max(.45rem, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .drawer-product-search__popover { transition: none; }
}
/* Night home showcase: the complete frame and its surrounding section use the night surface. */
html[data-public-theme="night"] .home-showcase-page,
html[data-public-theme="night"] .home-showcase,
html[data-public-theme="night"] .home-showcase__inner,
html[data-public-theme="night"] .showcase-frame {
  background: #000 !important;
}
html[data-public-theme="night"] .showcase-frame {
  border-color: #000 !important;
  box-shadow: 0 1.1rem 3rem rgb(0 0 0 / .55) !important;
}
html[data-public-theme="night"] .showcase-fixed,
html[data-public-theme="night"] .showcase-slider,
html[data-public-theme="night"] .showcase-track {
  background: #000 !important;
}
/* Night category banners: remove the light edge around every banner surface. */
html[data-public-theme="night"] .catalog-hero,
html[data-public-theme="night"] .category-page__surface {
  border-color: #000 !important;
  background-color: #000 !important;
  box-shadow: 0 0.55rem 1.5rem rgb(0 0 0 / .55) !important;
}
html[data-public-theme="night"] .catalog-hero[data-layout="full-width"] {
  border-left-color: #000 !important;
  border-right-color: #000 !important;
}

/* v1.9.157 — favorite controls follow the public night palette. */
html[data-public-theme="night"] .product-card__favorite {
  background: rgba(20, 20, 20, 0.86);
  color: #f2ede7;
  border-color: #4b4743;
  box-shadow: 0 0.35rem 1rem rgba(0, 0, 0, 0.28);
}
html[data-public-theme="night"] .product-card__favorite.is-favorite { color: var(--color-primary-strong, #ffae61); }
html[data-public-theme="night"] .product-detail__favorite {
  background: #1b1b1b;
  color: #f2ede7;
  border-color: #48433f;
  box-shadow: 0 0.3rem 0.9rem rgba(0, 0, 0, 0.2);
}
html[data-public-theme="night"] .product-detail__favorite.is-favorite { color: var(--color-primary-strong, #ffae61); }

/* v1.9.160 — share controls and mobile action bar inherit the night product palette. */
html[data-public-theme="night"] .product-detail__share {
  background:#1b1b1b;
  color:#f2ede7;
  border-color:#48433f;
  box-shadow:0 .3rem .9rem rgba(0,0,0,.2);
}
html[data-public-theme="night"] .product-mobile-actions {
  background:rgba(18,18,18,.92);
  border-color:#3f3b38;
  box-shadow:0 -.6rem 1.7rem rgba(0,0,0,.3);
}
html[data-public-theme="night"] .product-mobile-actions__item { color:#f2ede7; border-color:#3f3b38; }
html[data-public-theme="night"] .product-mobile-actions__favorite.is-favorite { color:var(--color-primary-strong,#ffae61); }
html[data-public-theme="night"] .product-mobile-actions__whatsapp { color:#79d69f; }

/* v1.9.160 — showcase editorial card stays legible in night theme without changing photo colors. */
html[data-public-theme="night"] .showcase-slide__copy {
  border-color: rgba(255,255,255,.2);
  background: rgba(16,16,16,.7);
  color: #fff;
}
html[data-public-theme="night"] .showcase-slide__copy p,
html[data-public-theme="night"] .showcase-slide__cta { color: rgba(255,255,255,.9); }

/* v1.9.179 — single 16:9 showcase follows the active public theme. */
html[data-public-theme='night'] .showcase-single {
  background: #111;
}

/* v1.9.183 — desktop detail zoom that does not participate in image loading state. */
@media (min-width: 48.001rem) and (hover: hover) and (pointer: fine) {
  .desktop-image-zoom-surface {
    position: relative;
    overflow: hidden;
  }

  .desktop-image-zoom-surface > img {
    -webkit-user-select: none;
    user-select: none;
    -webkit-user-drag: none;
    transform-origin: center center;
    will-change: transform;
  }

  .desktop-image-zoom-surface.is-desktop-zoomed { cursor: grab; }
  .desktop-image-zoom-surface.is-desktop-zoom-dragging { cursor: grabbing; }

  .desktop-image-zoom {
    position: absolute;
    z-index: 12;
    top: .72rem;
    right: .72rem;
    display: none;
    width: 2.65rem;
    height: 2.65rem;
    padding: 0;
    border: 1px solid rgba(48, 40, 32, .15);
    border-radius: 999px;
    background: rgba(255, 255, 255, .86);
    color: #2b2520;
    box-shadow: 0 .35rem 1rem rgba(30, 24, 19, .14);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    place-items: center;
    opacity: 0;
    transform: translateY(-3px) scale(.96);
    transition: opacity 140ms ease, transform 140ms ease, background-color 140ms ease;
    cursor: pointer;
  }

  .desktop-image-zoom-surface.has-desktop-zoom-image > .desktop-image-zoom {
    display: grid;
  }

  .desktop-image-zoom svg {
    width: 1.2rem;
    height: 1.2rem;
  }

  .desktop-image-zoom-surface.has-desktop-zoom-image:hover > .desktop-image-zoom,
  .desktop-image-zoom-surface.is-desktop-zoomed > .desktop-image-zoom,
  .desktop-image-zoom:focus-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
  }

  .desktop-image-zoom:hover,
  .desktop-image-zoom:focus-visible,
  .desktop-image-zoom.is-active {
    background: rgba(255, 255, 255, .96);
  }

  html[data-public-theme='night'] .desktop-image-zoom {
    border-color: rgba(255,255,255,.16);
    background: rgba(28,28,28,.86);
    color: #fff;
    box-shadow: 0 .35rem 1rem rgba(0,0,0,.32);
  }

  html[data-public-theme='night'] .desktop-image-zoom:hover,
  html[data-public-theme='night'] .desktop-image-zoom:focus-visible,
  html[data-public-theme='night'] .desktop-image-zoom.is-active {
    background: rgba(38,38,38,.96);
  }
}

/* Public Boot Stage 23: the first visible frame is an atomic commit. */
html.public-instant-reveal,
html.public-instant-reveal body {
  scroll-behavior: auto !important;
}
html.public-instant-reveal *,
html.public-instant-reveal *::before,
html.public-instant-reveal *::after {
  animation: none !important;
  transition: none !important;
}


/* v1.9.209 — mobile drawer cleanup.
   The product-search block is removed from the side menu on every public page.
   With that block gone, navigation links move upward and use the freed space.
   Desktop drawer/search behavior remains unchanged. */
@media (max-width: 48rem) {
  .catalog-site-menu .drawer-product-search,
  .catalog-site-menu .drawer-product-search__popover {
    display: none !important;
  }

  .catalog-site-menu__scroll {
    gap: 0.65rem;
  }

  .catalog-site-menu__links {
    margin-top: 0;
    gap: 0.25rem;
  }
}


/* v1.9.209 — mobile public header search icon only.
   Remove the visible button ring/box on every public mobile header while preserving
   the full invisible tap target and existing search behavior. Desktop is unchanged. */
@media (max-width: 48rem) {
  .site-header:not(.admin-site-header) .header-search-trigger--mobile,
  .site-header:not(.admin-site-header).is-search-open .header-search-trigger--mobile,
  .site-header:not(.admin-site-header) .header-search-trigger--mobile:hover,
  .site-header:not(.admin-site-header) .header-search-trigger--mobile:active,
  html[data-public-theme="night"] .site-header:not(.admin-site-header) .header-search-trigger--mobile {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  .site-header:not(.admin-site-header) .header-search-trigger--mobile::before,
  .site-header:not(.admin-site-header) .header-search-trigger--mobile::after {
    display: none !important;
    content: none !important;
  }

  .site-header:not(.admin-site-header) .header-search-trigger--mobile svg {
    display: block;
  }
}


/* v1.9.209 — mobile header bound to the internal page scroll root.
   No geometry changes: existing height/logo/menu/search sizing stays intact. */
@media (max-width: 48rem) {
  .site-shell[data-public-header-managed="true"] {
    grid-template-rows: auto minmax(auto, 1fr) auto !important;
  }

  .site-shell > .site-header:not(.admin-site-header),
  .site-header:not(.admin-site-header)[data-header-scroll-mode="sticky"],
  .site-header:not(.admin-site-header)[data-header-scroll-mode="hide-on-scroll"],
  .site-header:not(.admin-site-header)[data-header-scroll-mode="hide-on-scroll"].is-scroll-hidden {
    position: sticky !important;
    inset: auto !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;

    transform: none !important;
    transition: none !important;
    will-change: auto !important;

    opacity: 1 !important;
    pointer-events: auto !important;
    isolation: isolate !important;
    z-index: var(--z-header, 100) !important;

    background-color: #fff !important;
    background-image: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  html[data-public-theme="night"] .site-header:not(.admin-site-header) {
    background-color: #000 !important;
    background-image: none !important;
  }

  body[data-page="products"].catalog-all-focus .site-header:not(.admin-site-header),
  body[data-page="products"].catalog-all-focus .site-header:not(.admin-site-header).is-scroll-hidden {
    top: 0 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  body[data-page="products"].catalog-all-focus .site-shell[data-public-header-managed="true"],
  body[data-page="favorites"] .site-shell[data-public-header-managed="true"] {
    grid-template-rows: auto minmax(auto, 1fr) auto !important;
  }
}


/* v1.9.209 — mobile pull-to-refresh feedback.
   The page never stretches. A small progress ring appears below the header:
   it fills with the pull distance, then spins while the refresh is committed. */
@media (max-width: 48rem) {
  .public-pull-refresh-indicator {
    --pull-progress: 0;
    position: fixed;
    top: calc(var(--managed-public-header-height, var(--header-height, 64px)) + 12px);
    left: 50%;
    z-index: calc(var(--z-header, 100) + 2);
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(15, 15, 15, 0.13);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    opacity: 0;
    transform: translate3d(-50%, -8px, 0) scale(0.82);
    transition: opacity 120ms ease, transform 140ms ease;
    pointer-events: none;
    contain: layout;
  }

  .public-pull-refresh-indicator.is-visible {
    opacity: calc(0.35 + (var(--pull-progress) * 0.65));
    transform: translate3d(-50%, 0, 0)
      scale(calc(0.82 + (var(--pull-progress) * 0.18)));
  }

  .public-pull-refresh-indicator.is-ready {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16);
  }

  .public-pull-refresh-indicator.is-releasing {
    opacity: 0;
    transform: translate3d(-50%, -5px, 0) scale(0.88);
  }

  .public-pull-refresh-indicator__svg {
    width: 40px;
    height: 40px;
    display: block;
    overflow: visible;
    transform: rotate(-90deg);
  }

  .public-pull-refresh-indicator__track,
  .public-pull-refresh-indicator__progress {
    fill: none;
    stroke-width: 2.8;
  }

  .public-pull-refresh-indicator__track {
    stroke: rgba(18, 18, 18, 0.14);
  }

  .public-pull-refresh-indicator__progress {
    stroke: currentColor;
    stroke-linecap: round;
    transition: stroke-dashoffset 30ms linear;
  }

  .public-pull-refresh-indicator.is-loading {
    --pull-progress: 1;
    opacity: 1;
    transform: translate3d(-50%, 0, 0) scale(1);
  }

  .public-pull-refresh-indicator.is-loading .public-pull-refresh-indicator__progress {
    stroke-dasharray: 18 38.55 !important;
    stroke-dashoffset: 0 !important;
    transition: none !important;
  }

  .public-pull-refresh-indicator.is-loading .public-pull-refresh-indicator__svg {
    animation: public-pull-refresh-spin 720ms linear infinite;
  }

  html[data-public-theme="night"] .public-pull-refresh-indicator {
    background: rgba(20, 20, 20, 0.96);
    border-color: rgba(255, 255, 255, 0.18);
    color: #fff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.34);
  }

  html[data-public-theme="night"] .public-pull-refresh-indicator__track {
    stroke: rgba(255, 255, 255, 0.18);
  }
}

@keyframes public-pull-refresh-spin {
  to { transform: rotate(270deg); }
}


/* v1.9.209 — mobile footer flow correction for the internal scroll root.
   The middle page row may grow beyond the viewport when content is long.
   This keeps the footer after real page content instead of pinning it to the
   first viewport. Short pages still expand to a full viewport naturally. */
@media (max-width: 48rem) {
  .site-shell[data-public-header-managed="true"] > .page,
  .site-shell[data-public-header-managed="true"] > main,
  body[data-page="favorites"] .site-shell[data-public-header-managed="true"] > .favorites-page {
    min-height: 0;
    align-self: stretch;
  }

  .site-shell[data-public-header-managed="true"] > .site-footer {
    align-self: end;
    width: 100%;
  }
}


/* v1.9.209 — definitive mobile footer document-flow fix.
   The internal .site-shell remains the mobile scroll root, but its page structure
   is no longer a viewport-bound 3-row grid. A column flex flow lets <main> grow
   to its real content height, so footer contact text can never sit over products,
   maps, About/Contact cards, or any other page content. */
@media (max-width: 48rem) {
  .site-shell[data-public-header-managed="true"] {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    align-items: stretch !important;
  }

  .site-shell[data-public-header-managed="true"] > .site-header:not(.admin-site-header) {
    flex: 0 0 auto !important;
    grid-row: auto !important;
  }

  .site-shell[data-public-header-managed="true"] > .page,
  .site-shell[data-public-header-managed="true"] > main,
  body[data-page="favorites"] .site-shell[data-public-header-managed="true"] > .favorites-page {
    flex: 1 0 auto !important;
    grid-row: auto !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    align-self: stretch !important;
  }

  .site-shell[data-public-header-managed="true"] > .site-footer {
    position: static !important;
    inset: auto !important;
    flex: 0 0 auto !important;
    grid-row: auto !important;
    width: 100% !important;
    margin: 0 !important;
    align-self: stretch !important;
    transform: none !important;
  }

  /* Remove page-specific minimum-height rules that were written for the old
     viewport-sized grid rows. The content itself is now authoritative. */
  body[data-page="favorites"] .site-shell[data-public-header-managed="true"] > .favorites-page,
  body[data-page="favorites"] .site-shell[data-public-header-managed="true"] .favorites-layout {
    min-height: 0 !important;
    height: auto !important;
  }

  body[data-page="products"].catalog-all-focus .site-shell[data-public-header-managed="true"] {
    display: flex !important;
    flex-direction: column !important;
    grid-template-rows: none !important;
  }
}


/* v1.9.209 — frosted-glass + exact centering for pull-to-refresh indicator.
   Frame dimensions stay unchanged. The enlarged ring is absolutely centered
   so its 40px artwork can extend evenly around the 30px frosted frame. */
@media (max-width: 48rem) {
  .public-pull-refresh-indicator {
    position: fixed;
    overflow: visible !important;

    background: rgba(255, 255, 255, 0.34) !important;
    border: 1px solid rgba(255, 255, 255, 0.66) !important;
    box-shadow:
      0 7px 22px rgba(0, 0, 0, 0.14),
      inset 0 1px 0 rgba(255, 255, 255, 0.62) !important;

    -webkit-backdrop-filter: blur(12px) saturate(145%) !important;
    backdrop-filter: blur(12px) saturate(145%) !important;
  }

  .public-pull-refresh-indicator__svg {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 40px !important;
    height: 40px !important;
    margin: 0 !important;
    transform-origin: 50% 50% !important;
    transform: translate(-50%, -50%) rotate(-90deg) !important;
  }

  .public-pull-refresh-indicator.is-loading .public-pull-refresh-indicator__svg {
    animation: public-pull-refresh-spin-centered 720ms linear infinite !important;
  }

  html[data-public-theme="night"] .public-pull-refresh-indicator {
    background: rgba(18, 18, 18, 0.38) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    box-shadow:
      0 7px 22px rgba(0, 0, 0, 0.32),
      inset 0 1px 0 rgba(255, 255, 255, 0.16) !important;
  }
}

@keyframes public-pull-refresh-spin-centered {
  from { transform: translate(-50%, -50%) rotate(-90deg); }
  to   { transform: translate(-50%, -50%) rotate(270deg); }
}
