/* A shared vector language, with the existing Zippy colors. */
.z-icon { display: inline-block; width: 1em; height: 1em; flex-shrink: 0; vertical-align: -.15em; color: inherit; pointer-events: none; overflow: visible; }
.z-icon.is-filled { fill: currentColor; }
.hero-chips .z-icon, .now-filters .z-icon, .filter-chips .z-icon { width: 17px; height: 17px; margin-right: 5px; vertical-align: -.22em; }
.hero-chips a, .now-filters button, .filter-chips button { display: inline-flex; align-items: center; justify-content: center; gap: 4px; }
.filter-chips > button { flex-shrink: 0; }
.category-visual, .category-art { position: relative; color: var(--z-deep); }
.category-visual > .z-icon { width: 46px; height: 46px; filter: drop-shadow(0 5px 3px color-mix(in srgb, var(--z-deep) 9%, transparent)); }
.category-art > .z-icon { width: 37px; height: 37px; }
.category-icon-badge { display: grid; place-items: center; width: 29px; height: 29px; position: absolute; right: 4px; bottom: 4px; z-index: 2; background: white; border: 1px solid color-mix(in srgb, var(--z-deep) 12%, white); color: var(--z-deep); border-radius: 9px; box-shadow: 0 3px 7px color-mix(in srgb, var(--z-ink) 12%, transparent); }
.category-icon-badge .z-icon { width: 19px; height: 19px; }
.home-heart .z-icon, .favorite-button .z-icon { width: 21px; height: 21px; stroke-width: 1.8; }
.home-heart[aria-pressed=true], .favorite-button[aria-pressed=true] { color: var(--z-deep); }
.store-name-row .rating .z-icon, .store-title .rating .z-icon { width: 12px; height: 12px; }
.home-bottom-nav a > span, .bottom-nav a > span { display: grid; place-items: center; }
.home-bottom-nav .z-icon, .bottom-nav .z-icon { height: 24px; width: 24px; }
.home-bottom-nav a.active, .bottom-nav a.active { color: var(--z-deep); }
.profile-link > span, .header-actions a > span { display: grid; place-items: center; }
.profile-link .z-icon, .header-actions .z-icon { height: 23px; width: 23px; }
.hero-search > div > span, .search-entry .search-icon { display: grid; place-items: center; }
.hero-search > div > span .z-icon, .search-entry .search-icon .z-icon { width: 23px; height: 23px; }
.hero-search button, .search-entry button { display: grid; place-items: center; }
.hero-search button .z-icon, .search-entry button .z-icon { height: 22px; width: 22px; }
.mobile-location > span:first-child .z-icon { width: 20px; height: 20px; }
.phone-categories .z-icon { width: 25px; height: 25px; color: var(--z-deep); }
.phone-categories small { margin-top: 5px; }
.phone-store > span:first-child { display: grid; place-items: center; }
.phone-store > span:first-child .z-icon { height: 27px; width: 27px; color: var(--z-deep); }
.phone-nav .z-icon { width: 20px; height: 20px; }
.hero-float > span:first-child { display: grid; place-items: center; }
.hero-float > span:first-child .z-icon { width: 32px; height: 32px; }
.map-pin .z-icon { width: 25px; height: 25px; color: var(--z-deep); }
.map-legend .z-icon { width: 18px; height: 18px; margin-right: 4px; color: var(--z-deep); }
.city-tag .z-icon, .location-pill > span:last-child .z-icon { height: 15px; width: 15px; }
.text-link > .z-icon { width: 20px; height: 20px; }
.button > span, .button > .z-icon, .campaign-cta b { flex-shrink: 0; }
.step-icon { display: grid; place-items: center; }
.business-benefits .z-icon { width: 15px; height: 15px; margin-right: 5px; color: var(--z-lime); }
.start-symbol .z-icon { width: 28px; height: 28px; }
.commerce-pillars > div > span .z-icon { width: 24px; height: 24px; }
.home-footer .social-links, .market-footer .social-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 22px; }
.social-label { display: block; width: 100%; font-size: 11px; line-height: 1.6; color: var(--z-muted); margin-bottom: 1px; }
.social-control { display: grid; place-items: center; height: 44px; width: 44px; flex-shrink: 0; padding: 11px; border: 1px solid var(--z-line); border-radius: 13px; background: white; cursor: pointer; box-shadow: 0 4px 9px color-mix(in srgb, var(--z-ink) 5%, transparent); transition: transform .18s, box-shadow .18s; }
.social-control img { width: 23px; height: 23px; object-fit: contain; }
.social-control--instagram, .channel-brand-instagram { background: radial-gradient(circle at 28% 108%, #fdf497 0%, #fdf497 5%, #fd5949 40%, #d6249f 68%, #285aeb 95%); border-color: transparent; }
.social-control--facebook { background: white; }
.social-control--facebook img { height: 25px; width: 25px; }
.social-control:hover { transform: translateY(-3px); box-shadow: 0 7px 13px color-mix(in srgb, var(--z-ink) 12%, transparent); }
.social-control:focus-visible, .whatsapp-float:focus-visible, .channel-ok:focus-visible, .zippy-channel-close:focus-visible { outline: 3px solid var(--z-deep); outline-offset: 4px; }
.whatsapp-float { position: fixed; bottom: 26px; right: 26px; z-index: 39; display: grid; place-items: center; width: 60px; height: 60px; padding: 15px; border: 2px solid white; border-radius: 50%; background: #25d366; cursor: pointer; box-shadow: 0 4px 10px #075e5424, 0 12px 27px #075e5433; transition: transform .18s, box-shadow .18s, background .18s; }
.whatsapp-float img { height: 29px; width: 29px; object-fit: contain; }
.whatsapp-float:hover { transform: translateY(-3px); background: #20bd5a; box-shadow: 0 7px 15px #075e5429, 0 17px 30px #075e543b; }
.whatsapp-tooltip { position: absolute; right: calc(100% + 13px); color: white; background: var(--z-ink); padding: 10px 14px; border-radius: 10px; font: 600 12px/1.4 var(--z-font); white-space: nowrap; box-shadow: 0 4px 12px #17211d18; opacity: 0; visibility: hidden; transform: translateX(4px); transition: opacity .18s, transform .18s, visibility .18s; pointer-events: none; }
.whatsapp-float:hover .whatsapp-tooltip, .whatsapp-float:focus-visible .whatsapp-tooltip { opacity: 1; visibility: visible; transform: translateX(0); }
.zippy-channel-dialog { width: min(440px, calc(100% - 36px)); padding: 31px; max-height: 88dvh; overflow: auto; border: 1px solid var(--z-line); border-radius: 23px; color: var(--z-ink); background: white; box-shadow: 0 25px 65px #17211d30; font-family: var(--z-font); }
.zippy-channel-dialog::backdrop { background: #17211d80; backdrop-filter: blur(4px); }
.zippy-channel-close { display: grid; place-items: center; position: absolute; top: 17px; right: 17px; height: 37px; width: 37px; background: var(--z-paper); border: 1px solid var(--z-line); border-radius: 50%; cursor: pointer; }
.zippy-channel-close .z-icon { height: 18px; width: 18px; }
.channel-brand { display: grid; place-items: center; height: 59px; width: 59px; padding: 14px; border-radius: 17px; margin-bottom: 21px; border: 1px solid var(--z-line); }
.channel-brand img { width: 30px; height: 30px; }
.channel-brand-whatsapp { background: #25d366; border-color: transparent; }
.channel-brand-facebook { background: white; }
.channel-status { display: block; font-size: 10px; line-height: 1.5; letter-spacing: 1.5px; text-transform: uppercase; color: var(--z-muted); font-weight: 700; }
.zippy-channel-dialog h2 { font-size: 28px; line-height: 1.2; letter-spacing: -.9px; margin: 13px 0 0; padding-right: 10px; }
.zippy-channel-dialog p { font-size: 13px; line-height: 1.85; color: var(--z-muted); margin: 18px 0 0; }
.channel-ok { display: block; width: 100%; margin-top: 25px; padding: 15px 18px; min-height: 47px; border: 0; border-radius: 12px; background: var(--z-deep); color: white; font: 700 12px/1.5 var(--z-font); cursor: pointer; }
@media (max-width: 680px) {
  .whatsapp-float { width: 55px; height: 55px; padding: 13px; right: 17px; bottom: calc(90px + env(safe-area-inset-bottom)); }
  .whatsapp-float img { height: 27px; width: 27px; }
  .category-visual > .z-icon { width: 37px; height: 37px; }
  .category-art > .z-icon { width: 31px; height: 31px; }
  .category-icon-badge { height: 24px; width: 24px; right: 3px; bottom: 3px; border-radius: 7px; }
  .category-icon-badge .z-icon { width: 16px; height: 16px; }
  .hero-chips .z-icon, .now-filters .z-icon, .filter-chips .z-icon { width: 16px; height: 16px; margin-right: 3px; }
  .map-pin .z-icon { height: 21px; width: 21px; }
  .home-footer .social-links, .market-footer .social-links { margin-top: 19px; }
}
@media (max-width: 600px) {
  .floating-map { left: 18px; right: auto; bottom: calc(96px + env(safe-area-inset-bottom)); }
  .zippy-channel-dialog { padding: 26px; border-radius: 22px; }
  .zippy-channel-dialog h2 { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .social-control, .whatsapp-float, .whatsapp-tooltip { transition: none; }
}
