/**
 * Mobile scroll contract — loads LAST.
 * Keep scroll on the compositor. Target known offenders only — never `* { … }`.
 * Never remove bag SSR for “perf” — fragments must return real HTML (see side-cart.php).
 *
 * Critical: freeze vw/dvh-driven tokens. iOS URL-bar show/hide changes the dynamic
 * viewport and forces style recalc on every clamp(..., vw/dvh, ...) — WebKit 266835.
 */
@media (max-width: 899px) {
  :root {
    /* Density: reclaim empty chrome without losing tap targets. */
    --gutter: 1.1rem;
    --space-section: 3.25rem;
    --space-page-top: 1.25rem;
    --space-page-bottom: 3.25rem;
    --drawer-width: 100%;
    --drawer-pad-x: 1.1rem;
    --header-h: 3.75rem;
    --control-hit: 2.75rem; /* 44px @ 16 / ~41px @ 15 — cards & size chips */
    --control-gap: 0.35rem;
    --swatch-hit: 2.375rem;
    --swatch-fill: 1.375rem;
    --card-action-inset: 0.5rem;
    --card-action-gap: 0.3rem;
  }

  html {
    /* Slightly tighter type scale site-wide (rem-driven). */
    font-size: 15px;
    scroll-behavior: auto !important;
    /* clip on the root has caused iOS scroll glitches; hidden is enough for bleed. */
    overflow-x: hidden !important;
  }

  /*
   * optimizeLegibility forces kerning/ligatures on every text run — expensive while
   * scrolling on mobile Safari, and it hits home + shop equally (not lookbook-only).
   */
  body {
    text-rendering: auto !important;
  }

  /* Colour chips: less empty ring around the fill (was 48×48 with 20px fill). */
  .fortuvo-color-swatch,
  .fortuvo-lookbook__swatch.fortuvo-color-swatch,
  .fortuvo-lookbook__swatch {
    width: var(--swatch-hit) !important;
    height: var(--swatch-hit) !important;
    min-width: var(--swatch-hit) !important;
    min-height: var(--swatch-hit) !important;
  }

  .fortuvo-color-swatch__fill,
  .fortuvo-lookbook__swatch .fortuvo-color-swatch__fill {
    width: var(--swatch-fill) !important;
    height: var(--swatch-fill) !important;
  }

  .fortuvo-color-swatches,
  .fortuvo-lookbook__swatches,
  .fortuvo-system-strip__colours {
    gap: 0.35rem !important;
  }

  .fortuvo-color-field__label {
    margin-bottom: 0.45rem !important;
  }

  .fortuvo-system-strip__colours {
    margin-top: 0.75rem !important;
  }

  .single-product .variations tr {
    margin-bottom: 0.85rem !important;
  }

  .fortuvo-size-chips-row td {
    padding-bottom: 0.55rem !important;
  }

  .fortuvo-size-field {
    gap: 0.45rem !important;
  }

  /* Product cards + section rhythm */
  .woocommerce ul.products li.product .product-card__body,
  .product-card__body,
  .home-range .product-card__body {
    padding: 0.65rem 0.45rem 0.75rem !important;
    gap: 0.3rem !important;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  ul.products li.product .woocommerce-loop-product__title,
  .home-range .woocommerce-loop-product__title {
    font-size: 1.125rem !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
  }

  ul.products,
  .woocommerce ul.products,
  .featured__grid-wrap ul.products {
    gap: 0.85rem 0.55rem !important;
  }

  /* Mobile shop: LiteSpeed may serve stale CSS — reaffirm clearfix kill. */
  ul.products::before,
  ul.products::after,
  .woocommerce ul.products::before,
  .woocommerce ul.products::after,
  .woocommerce .products::before,
  .woocommerce .products::after,
  .woocommerce .products ul::before,
  .woocommerce .products ul::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  ul.products li.product.first,
  .woocommerce ul.products li.product.first {
    clear: none !important;
    float: none !important;
  }

  .section-title {
    font-size: clamp(1.85rem, 7.5vw, 2.5rem) !important;
    margin-top: 0.5rem !important;
  }

  .section-lead {
    margin-top: 0.85rem !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
  }

  .section-head {
    margin-bottom: 1.5rem !important;
  }

  .single-product div.product .product_title {
    font-size: clamp(1.85rem, 7vw, 2.35rem) !important;
  }

  .product-emotional-hook {
    font-size: 1.05rem !important;
    margin-bottom: 0.75rem !important;
  }

  .product-single__summary {
    padding-top: 1.1rem !important;
  }

  .fortuvo-fit__head,
  .fortuvo-fit__body {
    padding: 1.1rem !important;
  }

  .fortuvo-how-wears__fit {
    font-size: 0.9375rem !important;
  }

  .fortuvo-how-wears__caption {
    padding: 0.5rem 0.65rem 0.55rem !important;
  }

  .site-header,
  .woo-archive .shop-toolbar,
  .fortuvo-system-set__submit,
  .fortuvo-sticky-pay,
  .product-single__summary {
    position: static !important;
    top: auto !important;
    bottom: auto !important;
  }

  .site-header,
  .fortuvo-quick-add-btn,
  .fortuvo-wishlist-btn,
  .fortuvo-mobile-buy-bar,
  .cookie-bar,
  .shop-toolbar {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transition: none !important;
  }

  /* Keep ♡ + quick-add on one shared inset (drawers/woo must not diverge). */
  .product-card__wrap > .fortuvo-quick-add-btn,
  .product-card__wrap > .fortuvo-wishlist-btn:not(.fortuvo-wishlist-btn--pdp) {
    top: var(--card-action-inset) !important;
    width: var(--control-hit) !important;
    height: var(--control-hit) !important;
    min-width: var(--control-hit) !important;
    min-height: var(--control-hit) !important;
    max-width: var(--control-hit) !important;
    max-height: var(--control-hit) !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
  }

  .product-card__wrap > .fortuvo-quick-add-btn {
    right: var(--card-action-inset) !important;
    left: auto !important;
  }

  .product-card__wrap > .fortuvo-wishlist-btn:not(.fortuvo-wishlist-btn--pdp) {
    right: calc(var(--card-action-inset) + var(--control-hit) + var(--card-action-gap)) !important;
    left: auto !important;
  }

  .product-card__wrap:not(:has(.fortuvo-quick-add-btn)) > .fortuvo-wishlist-btn:not(.fortuvo-wishlist-btn--pdp) {
    right: var(--card-action-inset) !important;
  }

  /*
   * Grain must not carry feTurbulence on mobile — strip every paint hook.
   * Closed backdrop is a full-viewport fixed layer — leave the tree.
   */
  .grain {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    opacity: 0 !important;
    background: none !important;
    background-image: none !important;
    filter: none !important;
    content: none !important;
  }

  body:not(.nav-open):not(.cart-open):not(.quick-add-open):not(.system-set-open):not(.memory-open):not(.find-open):not(.fortuvo-fit-open):not(.fortuvo-size-guide-open):not(.fortuvo-save-colour-open) .fortuvo-drawer-backdrop {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .fortuvo-fabric-tint,
  .fortuvo-view-panel--fabric-tint .product-card__media-img,
  .fortuvo-view-panel__img--crop,
  .fortuvo-views--fabric .product-card__media-img,
  .reveal,
  .reveal.is-visible,
  .product-card__media-img,
  .product-card__wrap,
  .product-card__media {
    filter: none !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  .fortuvo-system-strip.is-visible .fortuvo-system-strip__piece,
  .fortuvo-lookbook-card.is-visible,
  .fortuvo-fit__result.is-settled,
  .fortuvo-views-gallery.is-colour-changing {
    animation: none !important;
    transition: none !important;
  }

  ul.products li.product,
  .home-range .woo-archive__grid ul.products li.product,
  .woo-archive__grid ul.products li.product {
    content-visibility: visible !important;
    contain: none !important;
  }

  .fortuvo-drawer[aria-hidden="true"],
  #fortuvo-side-cart[aria-hidden="true"],
  #fortuvo-quick-add[aria-hidden="true"],
  #fortuvo-system-set[aria-hidden="true"],
  #fortuvo-memory-drawer[aria-hidden="true"],
  #fortuvo-find-drawer[aria-hidden="true"],
  #fortuvo-nav-drawer[aria-hidden="true"],
  #fortuvo-fit-dialog:not(.is-open),
  #fortuvo-size-guide:not(.is-open),
  .fortuvo-save-colour:not(.is-open) {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  /* Closed drawers: never keep 100svh fixed layers in the compositor math. */
  .fortuvo-drawer[aria-hidden="true"],
  #fortuvo-side-cart[aria-hidden="true"],
  #fortuvo-quick-add[aria-hidden="true"],
  #fortuvo-system-set[aria-hidden="true"],
  #fortuvo-memory-drawer[aria-hidden="true"],
  #fortuvo-find-drawer[aria-hidden="true"],
  #fortuvo-nav-drawer[aria-hidden="true"] {
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    transform: none !important;
  }

  .fortuvo-view-panel__label,
  .fortuvo-wear-carousel .fortuvo-view-panel__label {
    display: none !important;
  }

  /* PDP gallery: horizontal slides + vertical page scroll (pan-x alone blocked the page). */
  .fortuvo-wear-carousel .fortuvo-color-wear-set.is-active .fortuvo-wear-carousel__track.fortuvo-views--wear,
  .fortuvo-wear-carousel .fortuvo-color-wear-set.is-active .fortuvo-wear-carousel__track .fortuvo-view-panel,
  .fortuvo-wear-carousel .fortuvo-color-wear-set.is-active .fortuvo-wear-carousel__track .fortuvo-view-panel__link,
  .fortuvo-wear-carousel .fortuvo-color-wear-set.is-active .fortuvo-wear-carousel__track .product-card__media,
  .fortuvo-wear-carousel .fortuvo-color-wear-set.is-active .fortuvo-wear-carousel__track .product-card__media-img {
    touch-action: pan-x pan-y pinch-zoom !important;
  }

  .fortuvo-mobile-buy-bar,
  .fortuvo-mobile-buy-bar.is-visible {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
  }

  .fortuvo-lookbook__media,
  .fortuvo-lookbook__lifestyle {
    will-change: auto !important;
    transform: none !important;
    filter: none !important;
  }

  .fortuvo-drawer,
  .fortuvo-sticky-pay,
  .fortuvo-mobile-buy-bar {
    box-shadow: none !important;
  }

  /* Hero / drawers: svh is stable while scrolling; never dvh on mobile. */
  .hero--cover {
    min-height: 22rem !important;
  }

  /*
   * Accessories storefront offenders (hero + category tiles + reveal).
   * mix-blend / drop-shadow / multi-layer body washes force continuous paint on scroll.
   */
  body.fortuvo-theme {
    background: var(--bg, #f3f4f6) !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
  }

  .site-header {
    background: #f3f4f6 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transition: none !important;
  }

  .tech-hero[data-reveal="hero"] .tech-hero__mark,
  .tech-hero[data-reveal="hero"] .tech-hero__line,
  .tech-hero[data-reveal="hero"] .tech-hero__cta,
  [data-reveal],
  [data-reveal-item] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }

  .tech-dir,
  .tech-product-card__media img,
  .tech-product-card__img,
  .tech-product-card .button,
  .tech-product-card .add_to_cart_button {
    transition: none !important;
    transform: none !important;
  }

  .shop-toolbar__cats,
  .shop-toolbar__prices {
    touch-action: pan-x pan-y !important;
  }

  .fortuvo-drawer--nav,
  .fortuvo-drawer--find,
  .fortuvo-drawer--cart,
  .fortuvo-drawer--quick-add,
  .fortuvo-drawer--system-set,
  .fortuvo-drawer--memory {
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
  }
}
