/* custom.css - put in assets/css/custom.css */

/* Ensure header/navbar sits above everything */
nav[aria-label="Primary"],
header,
.site-sticky-header,
.sticky.top-0,
.site-header {
  z-index: 9999 !important;
}

/* Send slider/carousel arrows behind the header */
.carousel-arrow,
.slider-arrow,
.owl-nav .owl-prev,
.owl-nav .owl-next,
.splide__arrow,
.swiper-button-prev,
.swiper-button-next,
.slick-arrow,
.button--prev,
.button--next {
  z-index: 10 !important;
  position: relative !important;
  opacity: 1;
}

/* If plugin injects inline styles with fixed position, force behind header */
.carousel-arrow[style],
.owl-nav .owl-prev[style],
.owl-nav .owl-next[style],
.splide__arrow[style],
.swiper-button-prev[style],
.swiper-button-next[style] {
  z-index: 10 !important;
  position: relative !important;
}

/* Focus ring for accessibility */
.carousel-arrow:focus,
.owl-nav .owl-prev:focus,
.owl-nav .owl-next:focus,
.splide__arrow:focus,
.swiper-button-prev:focus,
.swiper-button-next:focus {
  outline: none;
  box-shadow: 0 0 0 4px rgba(230, 179, 37, 0.14);
}
<!-- paste into <head> (partials/head.php) -->
<style>
/* Mobile friendly product page tweaks */
@media (max-width: 900px) {
  /* Main two-column product layout -> stack on mobile */
  .product-grid {
    display: block !important;
    padding: 12px !important;
  }
  .product-grid > .left,
  .product-grid > .right {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px 0 !important;
  }

  /* Make main product image smaller and centered */
  .product-image {
    width: 220px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto 12px auto !important;
    display: block !important;
  }

  /* Buttons in product details - full width & stacked */
  .product-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
  }
  .product-actions a,
  .product-actions button {
    width: 100% !important;
    display: inline-block;
    text-align: center;
    padding: 10px 12px !important;
    font-size: 15px !important;
  }

  /* Reviews area - stack columns to single column */
  .reviews-area {
    display: block !important;
  }
  .reviews-area .review-form,
  .reviews-area .review-list {
    width: 100% !important;
    box-sizing: border-box;
    margin-bottom: 14px;
  }

  /* WhatsApp floating button not to overlap form */
  .whatsapp-float {
    right: 12px !important;
    bottom: 12px !important;
  }

  /* Related section - 1 or 2 columns */
  .related-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
  /* If very small screens, use 1 column */
  @media (max-width: 420px) {
    .related-grid {
      grid-template-columns: 1fr !important;
    }
  }

  /* Cards - tighten spacing on mobile */
  .related-card {
    padding: 12px !important;
    border-radius: 10px !important;
  }
  .related-card img {
    max-height: 160px !important;
  }

  /* Small tweaks for typography */
  h1.product-title {
    font-size: 20px !important;
  }
  .price {
    font-size: 20px !important;
  }
}

/* Desktop / tablet: keep grid but ensure consistent layout */
@media (min-width: 901px) {
  .product-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    align-items: start;
  }
  .product-image {
    width: 100%;
    max-width: 700px;
    object-fit: contain;
  }
  .product-actions {
    display: flex;
    gap: 12px;
    align-items: center;
  }
  .related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
  }
}

/* Utility classes used in the HTML below */
.product-grid > .left,
.product-grid > .right {
  box-sizing: border-box;
}
.product-actions a {
  border-radius: 8px;
  text-decoration: none;
}
<style>
/* Mobile product page fixes + mobile filter toggle */
@media (max-width: 900px) {
  /* Ensure search + controls row aligns and filter button visible */
  .products-controls {
    display:flex;
    gap:8px;
    align-items:center;
    justify-content:space-between;
    margin-bottom:12px;
  }
  .products-controls .search-wrap { flex:1 1 auto; display:flex; gap:8px; align-items:center; }
  .products-controls .search-wrap input[type="text"] { flex:1 1 auto; }
  .mobile-filter-btn {
    background:#0b4f2f;
    color:#fff;
    padding:8px 10px;
    border-radius:8px;
    border:none;
    font-size:14px;
    display:inline-flex;
    align-items:center;
    gap:8px;
  }

  /* Slide-down mobile filter panel (hidden by default) */
  .mobile-filter-panel {
    display:none;
    background:#fff;
    padding:12px;
    border-radius:8px;
    box-shadow:0 6px 18px rgba(0,0,0,0.06);
    margin-bottom:12px;
  }
  .mobile-filter-panel.open { display:block; animation: slideDown .18s ease; }

  @keyframes slideDown {
    from { opacity:0; transform: translateY(-6px); }
    to { opacity:1; transform: translateY(0); }
  }

  /* Make product cards full width and spacing nicer */
  .product-card { width:100%; box-sizing:border-box; margin-bottom:14px; }
  .product-card img { width:100%; height:auto; object-fit:cover; border-radius:6px; }

  /* Make sure WhatsApp floating button doesn't cover controls */
  .whatsapp-float { bottom:14px !important; right:12px !important; z-index:40; }

  /* Ensure filter icons/buttons are visible */
  .filter-icon { width:18px; height:18px; display:inline-block; }
}

/* Desktop: keep grid behaviour */
@media (min-width:901px) {
  .products-controls { display:flex; gap:12px; align-items:center; justify-content:flex-start; }
  .mobile-filter-btn { display:none; }
}
</style>
