/* SLIMZ catalog menu: promo, search, categories and price in one glass bar
   right above the cards. One row on wide screens, two rows on narrower
   desktops, one stacked panel on phones and tablets. The product cards
   themselves are not restyled. */.catalog-sort-label,
.catalog-filter-hover{display:none;}/* The menu counters replace the title on screen; the title stays for search
   engines and screen readers. */.catalog-layout > .products-intro{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}/* Glass panel, the same on phones and on desktop. */.catalog-menu-panel{position:relative;isolation:isolate;display:flex;flex-direction:column;box-sizing:border-box;border:1px solid rgba(205, 211, 222, 0.17);border-radius:22px;background-color:rgba(255, 255, 255, 0.018);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:inset 0 1px rgba(255, 255, 255, 0.04);transition:border-color 240ms ease, box-shadow 240ms ease, background-color 240ms ease;}/* Soft light that follows the cursor inside the panel. */.catalog-menu-panel::before{content:"";position:absolute;z-index:0;inset:0;border-radius:inherit;background:radial-gradient(220px circle at var(--catalog-spot-x, 50%) var(--catalog-spot-y, 0%), rgba(155, 220, 255, 0.075), transparent 62%);opacity:0;pointer-events:none;transition:opacity 260ms ease;}.catalog-menu .products-bundles-link{top:0;width:100%;min-height:46px;margin:0;padding:0 7px 0 14px;box-sizing:border-box;justify-content:flex-start;border-radius:15px;}.catalog-menu .products-bundles-link strong{margin-left:auto;}/* Shine that sweeps across the promo in the rhythm of the site shimmer. */.catalog-menu .products-bundles-link::after{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:-60%;width:46%;background:linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.12), transparent);pointer-events:none;animation:catalogPromoSweep 5s ease-in-out infinite;}.catalog-menu .products-tools-row{margin:0;}.catalog-menu .products-filters{height:auto;padding:0;overflow:visible;border:0;border-radius:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;}.catalog-menu .products-filters .products-filter{justify-content:flex-start;border-radius:12px;transition:color 200ms ease, background 200ms ease, text-shadow 200ms ease;}.catalog-menu .products-filter[aria-pressed="true"]{background:transparent;}.catalog-filter-count{margin-left:auto;color:rgba(214, 219, 229, 0.38);font-family:"SLIMZ GOOGLE", sans-serif;font-size:0.56rem;font-weight:500;letter-spacing:0.04em;transition:color 200ms ease;}.products-filter[aria-pressed="true"] .catalog-filter-count{color:rgba(155, 220, 255, 0.85);}/* The chosen category and price order have no frame: their icon lights up
   and the label turns white. */.catalog-menu .products-filter-liquid{display:none;}.catalog-menu .products-filter[aria-pressed="true"] .products-filter-icon{filter:drop-shadow(0 0 6px rgba(155, 220, 255, 0.7));}.catalog-menu .products-price-sort-button[aria-pressed="true"]{border-color:transparent;background:transparent;box-shadow:none;}.catalog-menu .products-price-sort-button[aria-pressed="true"] svg{color:#9bdcff;filter:drop-shadow(0 0 6px rgba(155, 220, 255, 0.7));}@media (hover: hover) and (pointer: fine){.catalog-menu-panel:hover{border-color:rgba(155, 220, 255, 0.24);box-shadow:inset 0 1px rgba(255, 255, 255, 0.05), 0 0 42px rgba(90, 200, 250, 0.07);}.catalog-menu-panel:hover::before{opacity:1;}.catalog-menu .products-filter:hover,
  .catalog-menu .products-price-sort-button:hover{color:#fff;text-shadow:0 0 14px rgba(155, 220, 255, 0.45);}.catalog-menu .products-filter:hover .products-filter-icon,
  .catalog-menu .products-price-sort-button:hover svg{color:#c9ecff;filter:drop-shadow(0 0 6px rgba(155, 220, 255, 0.75));}}/* Phones and tablets: one glass panel right under the navigation. */@media (max-width: 980px){body[data-page="products"]{--catalog-content-top:108px;}.catalog-menu-panel{padding:10px;gap:10px;border-radius:20px;}.catalog-menu .products-bundles-link{min-height:44px;border-radius:14px;}.catalog-menu .products-tools-row{width:100%;display:grid;grid-template-columns:minmax(0, 1fr);gap:8px;}.catalog-group{display:contents;}.catalog-menu .products-search,
  .catalog-menu .products-price-sort{grid-column:1;grid-row:1;}.catalog-menu .products-filters{grid-column:1;grid-row:2;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0, 1fr);gap:4px;}.catalog-menu .products-filters .products-filter{height:38px;padding:0 12px;gap:9px;}}@media (max-width: 720px){.catalog-menu .products-filters{grid-auto-flow:row;grid-template-columns:repeat(2, minmax(0, 1fr));}/* The last filter fills the whole row in a neutral glass frame. */.catalog-menu .products-filters .products-filter-sale{grid-column:1 / -1;height:44px;border:1px solid rgba(205, 211, 222, 0.17);border-radius:14px;background:rgba(255, 255, 255, 0.02);}}@media (max-width: 700px){body[data-page="products"]{--catalog-content-top:88px;}}/* Desktop: two symmetric rows as wide as the cards. Promo and price take
   equal ends of the top row with the search between them; the categories
   stand at equal distances along the bottom row. Every item is 34px tall, so
   the framed promo and search look no bigger than the other buttons. */@media (min-width: 981px){body[data-page="products"]{--catalog-content-top:108px;}.catalog-menu{margin-bottom:22px;}.catalog-layout > .products-grid{margin-top:0;}.catalog-menu-panel{padding:10px 12px;display:grid;grid-template-columns:240px minmax(0, 1fr) 240px;grid-template-areas:"promo search sort"
      "cats cats cats";gap:8px 10px;}.catalog-menu .products-tools-row,
  .catalog-group{display:contents;}.catalog-menu .products-bundles-link{grid-area:promo;height:34px;min-height:34px;padding:0 6px 0 12px;border-radius:12px;}.catalog-menu .products-bundles-link strong{min-height:22px;padding:0 8px;}.catalog-menu .products-search{grid-area:search;height:34px;padding:0 12px;gap:9px;border-radius:12px;}.catalog-menu .products-search svg{width:16px;height:16px;}.catalog-menu .products-price-sort{grid-area:sort;height:34px;margin:0;padding:0;display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:4px;justify-self:stretch;border:0;}/* Price sort buttons behave exactly like the category buttons. */.catalog-menu .products-price-sort-button{width:auto;height:34px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:12px;font-family:"SFMono-Regular", "SLIMZ GOOGLE", Consolas, monospace;font-size:0.6rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;transition:color 200ms ease, border-color 200ms ease, background 200ms ease, box-shadow 200ms ease, text-shadow 200ms ease;}.catalog-menu .products-price-sort-button[aria-pressed="true"]{color:rgba(246, 248, 252, 0.96);}.catalog-menu .products-price-sort-button svg{width:16px;height:16px;flex:0 0 auto;}.catalog-sort-label{display:inline;white-space:nowrap;}/* Categories stand at equal distances from edge to edge. The negative
     margins let the gaps be measured between the labels themselves, while the
     buttons keep a comfortable hover area. */.catalog-menu .products-filters{grid-area:cats;display:flex;justify-content:space-between;gap:0;}.catalog-menu .products-filters .products-filter{width:auto;height:34px;flex:0 0 auto;margin:0 -10px;padding:0 10px;justify-content:center;gap:10px;font-size:0.6rem;}.catalog-menu .catalog-filter-count{margin-left:0;}.catalog-menu .products-filter-icon{width:16px;height:16px;}.catalog-filter-hover{position:absolute;z-index:1;top:0;left:0;display:block;box-sizing:border-box;border:1px solid rgba(255, 255, 255, 0.05);border-radius:12px;background:rgba(255, 255, 255, 0.035);opacity:0;pointer-events:none;transition:transform 180ms cubic-bezier(0.22, 1, 0.36, 1), width 180ms cubic-bezier(0.22, 1, 0.36, 1), height 180ms cubic-bezier(0.22, 1, 0.36, 1), opacity 180ms ease;}.catalog-filter-hover.is-visible{opacity:1;}}/* Wide desktop: the whole menu in one row as wide as the cards. Promo and
   search are twin boxes at both ends, the categories stand in the middle at
   equal distances, and the price icons sit inside the search box. Narrower
   windows keep the two rows above. */@media (min-width: 1288px){.catalog-menu-panel{padding:8px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:0;}.catalog-menu .products-filters{display:contents;}.catalog-menu .products-bundles-link{width:240px;flex:0 0 auto;gap:7px;}.catalog-menu .products-search{order:3;width:240px;flex:0 0 auto;padding-right:72px;}/* Negative margins let the gaps be measured between the labels
     themselves, while the buttons keep a comfortable hover area. */.catalog-menu .products-filters .products-filter{order:2;margin:0 -12px;padding:0 12px;gap:8px;}.catalog-menu .products-price-sort{position:absolute;z-index:3;top:50%;right:13px;height:auto;display:flex;gap:2px;transform:translateY(-50%);}.catalog-menu .products-price-sort-button{width:28px;height:28px;margin:0;padding:0;border-radius:9px;}.catalog-sort-label{display:none;}}@keyframes catalogPromoSweep{0%{left:-60%;}48%, 100%{left:130%;}}@media (prefers-reduced-motion: reduce){.catalog-menu *,
  .catalog-menu-panel{transition:none !important;}.catalog-menu .products-bundles-link::after{display:none;animation:none !important;}}