/* ZV Luxe 3.7.8 — mobile experience. Loaded after the commerce and product styles.
   Scoped to small screens to preserve the established desktop storefront. */
@media (max-width: 900px) {
  html { width: 100%; max-width: 100%; -webkit-text-size-adjust: 100%; }
  body { width: 100%; max-width: 100%; overflow-x: clip; }
  .zv-main, #primary, .zv-home-layout, .zv-wide, .zv-container,
  .zv-home-layout > section, .zv-section, .zv-header-shell,
  .zv-clean-shop-section, .zv-clean-product-section {
    min-width: 0;
    max-width: 100%;
  }
  img, video, svg, iframe { max-width: 100%; }
  .zv-header-shell { min-width: 0; }
  .zv-header-left, .zv-header-actions, .zv-brand { min-width: 0; }
  .zv-brand { max-width: 100%; overflow: hidden; }
  .zv-brand img, .zv-brand .custom-logo { display: block; width: auto; max-width: 100%; height: auto; max-height: 58px; object-fit: contain; }
  /* Larger tap zones without visually enlarging icons. */
  .zv-menu-toggle, .zv-header-actions .zv-icon-link,
  .zv-panel-close, [data-zv-close-search], [data-zv-close-cart] {
    min-width: 44px !important;
    min-height: 44px !important;
    touch-action: manipulation;
  }
  .zv-mobile-drawer, .zv-cart-drawer, .zv-search-panel {
    max-width: 100vw !important;
    max-width: 100dvw !important;
    max-height: 100dvh;
    overscroll-behavior: contain;
  }
  .zv-mobile-nav { min-width: 0; overflow-wrap: anywhere; }
  .zv-mobile-nav a { min-height: 44px; display: flex; align-items: center; }
  .zv-mobile-nav .menu-item-has-children { position: relative; }
  .zv-mobile-nav .menu-item-has-children > a { padding-right: 48px; }
  .zv-mobile-submenu-toggle {
    position: absolute; right: 0; top: 0; width: 44px; height: 44px;
    display: grid; place-items: center; border: 0; background: transparent;
    color: inherit; font-size: 22px; cursor: pointer;
  }
  .zv-mobile-nav .menu-item-has-children > .sub-menu { display: none !important; margin: 0 0 12px 12px; padding: 0 0 0 14px; border-left: 1px solid var(--zv-line,#ded6ca); }
  .zv-mobile-nav .menu-item-has-children.is-submenu-open > .sub-menu { display: block !important; }
  .zv-mobile-nav .sub-menu a { font-size: 16px !important; min-height: 42px; letter-spacing: .04em; line-height: 1.4; }
  /* Support swipe rails without transferring their intrinsic width to the page. */
  .home .zv-product-section,
  .home .zv-collection-section,
  .home .zv-category-section { min-width: 0; max-width: 100%; }
  .home .zv-product-scroller,
  .home .zv-collection-scroller,
  .home .zv-native-scroller {
    min-width: 0 !important; max-width: 100% !important;
    overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }
  .home .zv-product-scroller > *, .home .zv-collection-scroller > * { scroll-snap-align: start; min-width: 0; }
  .home .zv-product-card-ref, .home .zv-collection-card { min-width: 0; }
  .home .zv-product-title-ref, .home .zv-product-price-ref,
  .home .zv-collection-copy { overflow-wrap: anywhere; }
  /* Avoid text overflowing category labels and support cards. */
  .home .zv-category-strip, .home .zv-press-logos,
  .home .zv-follow-grid { width: 100%; max-width: 100%; min-width: 0; }
  .home .zv-category-strip > *, .home .zv-press-logos > *,
  .home .zv-follow-grid > * { min-width: 0; }
  .home .zv-category-media, .home .zv-category-media img, .home .zv-category-media video { max-width: 100%; }
  /* Keep drawers consistent when WooCommerce global button styles are present. */
  body .zv-cart-drawer .woocommerce-mini-cart__buttons a,
  body.woocommerce-page .zv-cart-drawer .woocommerce-mini-cart__buttons a.button {
    min-height: 46px !important; line-height: 1.35 !important;
    display: inline-flex !important; align-items: center; justify-content: center;
  }
  body .zv-cart-drawer .zv-mini-cart-quantity button,
  body .zv-cart-drawer .zv-mini-cart-quantity input { min-height: 38px; }
  /* All text entry fields are at least 16px, avoiding automatic zoom on iOS. */
  input[type="search"], input[type="text"], input[type="email"],
  input[type="tel"], input[type="number"], input[type="password"],
  textarea, select, .select2-search__field, .select2-selection__rendered {
    font-size: 16px !important;
  }
  .zv-search-panel input[type="search"],
  .zv375-filter-form input, .zv375-filter-form select {
    min-height: 46px;
  }
  /* WooCommerce Blocks and the classic checkout must never force a wide canvas. */
  .woocommerce-checkout, .woocommerce-cart, .wc-block-checkout,
  .wc-block-components-sidebar-layout, .wc-block-components-main,
  .wc-block-components-sidebar {
    min-width: 0 !important; max-width: 100% !important;
  }
  .wc-block-components-sidebar-layout { display: block !important; }
  .wc-block-components-sidebar, .wc-block-components-main { width: 100% !important; margin-inline: 0 !important; }
  .woocommerce-checkout form.checkout,
  .woocommerce-checkout .col2-set { min-width: 0; max-width: 100%; }
}
@media (max-width: 760px) {
  .zv-header-shell { padding-inline: max(10px, env(safe-area-inset-left)) max(10px, env(safe-area-inset-right)); }
  .zv-hero-reference { width: 100%; max-width: 100%; min-height: 0 !important; height: clamp(420px, 75svh, 720px) !important; }
  .zv-hero-reference .zv-hero-track, .zv-hero-reference .zv-hero-slide { height: 100%; min-height: 0 !important; }
  .zv-hero-reference .zv-live-hero { width: 100%; height: 100%; }
  .zv-hero-reference .zv-hero-media-mobile .zv-media-file { width: 100%; height: 100%; object-fit: cover; }
  .zv-announcement { padding-inline: 12px; overflow-wrap: anywhere; line-height: 1.5; text-align: center; }
  .home .zv-section-title { max-width: 100%; overflow-wrap: anywhere; }
  /* Clear mobile product card hierarchy. */
  body.zvluxe-woo-page .woocommerce ul.products li.product { min-width: 0 !important; }
  body.zvluxe-woo-page .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 14px !important; line-height: 1.4 !important; overflow-wrap: anywhere;
  }
  body.zvluxe-woo-page .woocommerce ul.products li.product .price {
    font-size: 13px !important; line-height: 1.4 !important;
  }
  body.zvluxe-woo-page .woocommerce ul.products li.product > .button,
  body.zvluxe-woo-page .woocommerce ul.products li.product .added_to_cart,
  body.single-product .related ul.products li.product .button,
  body.single-product .upsells ul.products li.product .button {
    font-size: 12px !important; letter-spacing: .04em !important;
    line-height: 1.25 !important; min-height: 44px !important;
    padding: 10px 8px !important; text-wrap: balance;
  }
  .zv375-filter-form { max-width: 100%; min-width: 0; }
  .zv375-price-inputs { min-width: 0; }
  .zv375-price-inputs label, .zv375-filter-actions { min-width: 0; }
  .zv375-filter-toggle, .zv375-apply, .zv375-clear { min-height: 44px; }
  .zv375-results-meta { font-size: 12px !important; }
  /* Product page: avoid hiding any purchase controls and keep natural image scale. */
  body.single-product.zvluxe-product-v377 .zv377-product-main { display: block !important; min-width: 0 !important; }
  body.single-product.zvluxe-product-v377 .zv377-product-media-column,
  body.single-product.zvluxe-product-v377 .zv377-product-summary { width: 100% !important; min-width: 0 !important; }
  body.single-product.zvluxe-product-v377 .zv377-gallery-stage { min-width: 0; min-height: 0 !important; }
  body.single-product.zvluxe-product-v377 .zv377-gallery-main-image { width: 100% !important; max-width: 100% !important; height: auto !important; object-fit: contain !important; }
  body.single-product.zvluxe-product-v377 .zv377-gallery-thumbs { scroll-snap-type: x proximity; }
  body.single-product.zvluxe-product-v377 .zv377-gallery-thumb { scroll-snap-align: start; }
  body.single-product.zvluxe-product-v377 .zv377-product-summary .product_title { font-size: clamp(30px, 8vw, 44px) !important; line-height: 1.12 !important; overflow-wrap: anywhere; }
  body.single-product.zvluxe-product-v377 .zv377-product-summary form.cart .quantity .qty,
  body.single-product.zvluxe-product-v377 .zv377-product-summary form.cart .single_add_to_cart_button,
  body.single-product.zvluxe-product-v377 .zv377-product-summary form.cart .zvluxe-buy-now-button {
    min-height: 50px !important; height: auto !important;
    font-size: 13px !important; line-height: 1.35 !important;
    letter-spacing: .045em !important;
    word-break: normal !important; white-space: normal !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-product-after { display: block !important; clear: both !important; }
  body.single-product.zvluxe-product-v377 .zv377-product-after .woocommerce-tabs ul.tabs a {
    display: inline-flex; min-height: 44px; align-items: center;
    font-size: 12px !important; letter-spacing: .05em !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-product-after .woocommerce-tabs .panel { font-size: 17px; line-height: 1.7; overflow-wrap: anywhere; }
  .woocommerce-message, .woocommerce-error, .woocommerce-info { max-width: 100%; overflow-wrap: anywhere; }
}
@media (max-width: 390px) {
  .zv-header-shell { gap: 2px !important; }
  .zv-header-actions { gap: 0 !important; }
  .zv-header-actions .zv-icon-link, .zv-menu-toggle { min-width: 40px !important; }
  .zv-brand { min-width: 0 !important; }
  .home .zv-press-logos { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.single-product.zvluxe-product-v377 .zv377-product-summary form.cart .quantity .qty,
  body.single-product.zvluxe-product-v377 .zv377-product-summary form.cart .single_add_to_cart_button,
  body.single-product.zvluxe-product-v377 .zv377-product-summary form.cart .zvluxe-buy-now-button {
    font-size: 12px !important; padding-inline: 8px !important;
  }
}
@media (hover: none), (pointer: coarse) {
  .zv-loop-second-image { display: none !important; }
  .woocommerce ul.products li.product img,
  .home .zv-product-card-ref img,
  .home .zv-collection-card img { transition: none !important; transform: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .zv-native-scroller, .zv-product-scroller, .zv-collection-scroller { scroll-behavior: auto !important; }
  .zv-hero-slide, .zv-hero-media, .zv-hero-slide * { transition-duration: 0s !important; }
}
