/* Optimized with main.css as the shared design source. */
/* ============================= */
/* PRODUCT SINGLE PAGE           */
/* ============================= */
/* Force hover images to render properly with Lightspeed Cache */
img[data-hover-image] {
    transition: opacity 0.2s ease;
    will-change: opacity;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

img[data-hover-image].hover-loading {
    opacity: 0.8 !important;
}

/* Prevent Lightspeed from interfering */
img[data-hover-image][src*="hover"] {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Add hover effect for product images touch */
/* Touch device optimizations */
@media (hover: none) and (pointer: coarse) {
    /* For touch devices - ensure overlays work properly */
    .lux-img {
        cursor: pointer;
        -webkit-tap-highlight-color: rgba(0,0,0,0.1);
    }
    
    .hover-overlay-img {
        transition: opacity 0.2s ease, transform 0.6s ease;
        will-change: opacity, transform;
    }
    
    /* Prevent text selection on double tap */
    .lux-img * {
        user-select: none;
        -webkit-touch-callout: none;
    }
    
    /* Ensure overlay doesn't block clicks when hidden */
    .hover-overlay-img {
        pointer-events: none;
    }
    
    /* When active, allow pointer events? No - we want clicks to go to link */
    .lux-img.hover-active .hover-overlay-img {
        pointer-events: none;
    }
}

/* Desktop hover effects */
@media (hover: hover) and (pointer: fine) {
    .lux-img:hover .hover-overlay-img {
        opacity: 1;
        transform: scale(1.06);
    }
    
    .lux-img:hover img:first-child {
        transform: scale(1.06);
    }
}

/* Base styles for both desktop and touch */
.lux-img {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.lux-img img:first-child,
.hover-overlay-img {
    transition: opacity 0.3s ease, transform 0.6s ease;
    will-change: transform, opacity;
}

.lux-img img:first-child {
    position: relative;
    z-index: 1;
}

.hover-overlay-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    z-index: 2;
    pointer-events: none; /* Allows clicking through to the link */
}

/* Badges should stay above everything */
.lux-img .badge-sale,
.lux-img .badge-best,
.lux-img .badge-soldout {
    z-index: 3;
    position: absolute;
}

/* Active state for touch devices */
.lux-img.hover-active .hover-overlay-img {
    opacity: 1;
    transform: scale(1.06);
}

.lux-img.hover-active img:first-child {
    transform: scale(1.06);
}

/* For product cards in grid */
.product-masonry .lux-img,
.related-slider .lux-img {
    overflow: hidden;
}

/* Ensure product images maintain proper aspect ratio */
.lux-img {
    position: relative;
    overflow: hidden;
    background: #f5f5f5;
}

.lux-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease, opacity 0.15s ease;
}

.lux-card:hover .lux-img img {
    transform: scale(1.06);
}

.hover-overlay-img{
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.3s ease; z-index: 2;
}
.product-container {
  display: flex;
  flex-wrap: wrap;
}

.product-gallery-wrap {
  flex: 1 1 45%;
}

.product-gallery img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.product-gallery.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0px;
  width: 100%;
}

.product-gallery.grid a {
  display: block;
  width: 100%;
}

.product-gallery.stack {
  display: flex;
  flex-direction: column;
}

.product-gallery.carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}

.product-gallery.carousel a {
  flex: 0 0 100%;
  scroll-snap-align: start;
}

@media (max-width: 1024px) {
  .product-gallery-wrap {
    flex: 1 1 50%;
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    background: var(--bg-main);
    height: auto;
    flex-direction: column;
  }

  .product-gallery::-webkit-scrollbar {
    display: none;
  }

  .product-gallery a {
    flex: 0 0 90%;
    width: 90%;
    height: 100%;
    scroll-snap-align: start;
  }

  .product-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.product-info {
  flex: 1 1 40%;
  padding: 31px 6% 7%;
  position: sticky;
  top: var(--nav-height);
  background: var(--bg-main);
  scrollbar-width: none;
}

.breadcrumb {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-secondary);
}

.product-title {
  font-family: var(--font-headline);
  font-size: 2.25rem;
  font-weight: 500;
  margin-bottom: 10px;
  line-height: 1.2;
}

.product-price {
  font-size: 1.1rem;
  margin-bottom: var(--space-7);
}

.product-description {
  font-size: 0.95rem;
  color: var(--text-secondary);
  margin-bottom: var(--space-10);
  line-height: 1.7;
}

.label-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 15px;
  display: block;
}

.color-swatches {
  display: flex;
  gap: var(--space-3);
  margin-bottom: var(--space-7);
}

.swatch {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  cursor: pointer;
  border: 1px solid rgba(0,0,0,0.1);
  position: relative;
}

.swatch.active::after {
  content: '';
  position: absolute;
  top: -4px;
  left: -4px;
  right: -4px;
  bottom: -4px;
  border: 1px solid var(--text-primary);
  border-radius: 50%;
}

.size-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: var(--space-10);
}

.size-option {
  border: 1px solid var(--border);
  padding: var(--space-3) 0;
  text-align: center;
  cursor: pointer;
  font-size: 0.85rem;
  transition: all 0.2s;
}

.size-option:hover {
  border-color: var(--text-primary);
}

.size-option.active {
  background: var(--text-primary);
  color: #fff;
  border-color: var(--text-primary);
}

.size-option.disabled {
  color: var(--border);
  cursor: not-allowed;
  text-decoration: line-through;
}

.btn-add-to-cart {
  width: 100%;
  padding: var(--space-5);
  background: var(--brand);
  color: var(--text-btn);
  border: none;
  font-family: var(--font-headline);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 600;
  cursor: pointer;
  margin-bottom: 15px;
  transition: opacity 0.3s;
}

.btn-add-to-cart:hover {
  opacity: 0.9;
}

.details-accordion {
  margin-top: 50px;
  border-top: 1px solid var(--border);
}

.accordion-item {
  border-bottom: 1px solid var(--border);
}

.accordion-header {
  padding: var(--space-5) 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-size: 0.85rem;
  text-transform: uppercase;
  font-weight: 500;
}

.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease-out;
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

.accordion-item.active .accordion-content {
  max-height: 500px;
  padding-bottom: var(--space-5);
}

.accordion-item.active .fa-plus {
  transform: rotate(45deg);
}

@media (min-width: 992px) and (max-width: 1199.99px) {
  .product-info {
    flex: 3 1 40%;
  }
}

@media (max-width: 991px) {
  .product-info {
    position: static;
    height: auto;
    padding: var(--space-10) 50px;
    border-left: none;
  }
}

@media (max-width: 991px) {
  .product-container {
    flex-direction: column;
  }

  .product-info {
    padding: var(--space-7) 15%;
  }
}

@media (max-width: 576px) {
  .product-info {
    padding: var(--space-10) 5%;
  }
}

.gallery-indicators .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ccc;
  transition: background 0.3s ease;
  cursor: pointer;
}

.gallery-indicators .dot.active {
  background: #000;
}

@media (max-width: 991px) {
    #productGallery {
        display: flex !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        gap: 0;
    }

    #productGallery > a {
        flex: 0 0 100%;
        scroll-snap-align: start;
        display: block;
    }

    #productGallery img, 
    #productGallery video {
        width: 100%;
        height: auto;
        display: block;
    }

    #productGallery::-webkit-scrollbar {
        display: none;
    }
    
    #product-container {
      flex-direction: column;
    }
    
    #product-container .gallery-indicators {
      display: flex;
      justify-content: center;
      gap: var(--space-2);
      padding: 15px 0;
      background: var(--bg-main);
    }
}

#product-container .gallery-indicators { display: none;}

.gallery-nav {
  display: none;
}
.nav-btn {
    
        background: #f8f9fa;
        border: 1px solid #ddd;
        border-radius: 50%;
        width: 40px;
        height: 40px;
        cursor: pointer;
        transition: background 0.3s;
        display: flex;
        align-items: center;
        justify-content: center;
    }
.gallery-nav #prevBtn, .gallery-nav #nextBtn {
    height: 40px;
    width: 40px;
    padding: 0;
}
@media screen and (min-width:992px) {
  .gallery-nav {
  justify-content: space-between;
    position: absolute;
    top: 50%;
    width: 100%;
    padding-left:100px;
}
}
@media screen and (max-width:1024px) {
  .gallery-nav {
    display: none;
    gap: 10px;
    justify-content: space-between;
    margin-top: 10px;
    position:absolute;
    top: 38%;
    width: 100%;
    padding: 0 var(--space-5);
  }

  .nav-btn {
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    cursor: pointer;
    transition: background 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .nav-btn:hover {
    background: #e2e6ea;
  }
}

@media screen and (max-width: 992px) {
    .gallery-nav {
        top: 46%;
        padding:0 25px;
       
    }
}

.product-gallery figure{margin: 0;}
.product-gallery video{width: 100%;}

/* Color and Size Pills */
.color-section{  
   margin-bottom: 15px;
    align-items: center;
}
.color-pill{
  text-indent: -999px;
  font-size: 0px;
  height:28px;
  width:28px;
  overflow: hidden;
  border-radius: 50%;
}

.color-pills{ margin:0 !important; }
.color-pills span:first-child,.size-pills span:first-child{
  min-width: 120px;
}
.color-pills, .size-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 15px 0;
}

.color-pill, .size-pill {
    border: 1px solid #ddd;
    background: #fff;
    cursor: pointer;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.2s ease;
}

.size-pill:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    text-decoration: line-through;
}

.color-pill:hover:not(:disabled),
.size-pill:hover:not(:disabled) {
    transform: scale(1.05);
}
.size-pill{ min-width: 55px;}

.color-pill.active,
.size-pill.active {
    background: #000;
    color: #fff;
    border-color: var(--brand);
}

.color-pill.disabled,
.size-pill.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    text-decoration: line-through;
}

.size-pills-placeholder {
    padding: var(--space-2) 0;
    color: #999;
    font-size: 13px;
    font-style: italic;
}

/* Pattern Pills Styling */
.pattern-pill {
    transition: all 0.2s ease;
}

.pattern-pill:hover .pattern-image-wrapper {
    border-color: var(--card);
        
    transform: scale(1.05);
}

.pattern-pill.active .pattern-image-wrapper {
    border-color:var(--brand) !important;
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--border)
}

.pattern-pill.active .pattern-name {
    color: #332bac;
}
.pattern-pill-disabled:hover .pattern-image-wrapper{
    transform:none;
    opacity:0.8;
}
.pattern-pill:not(.active):hover{
    border:0px !important;
}
/* Pattern Grid Layout */

.pattern-image-wrapper {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid #e5e5e5;
    margin-bottom: var(--space-2);
}

.pattern-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pattern-pill-disabled .pattern-pill {
    padding: 3px !important
}

.quantity-section {
    margin: var(--space-5) 0;
}

.quantity-selector {
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    width: fit-content;
    margin-top: var(--space-2);
}

.quantity-btn {
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
}

.quantity-btn:hover:not(:disabled) {
    background-color: #f5f5f5;
}

.quantity-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.quantity-input {
    width: 60px;
    height: 40px;
    border: none;
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
    text-align: center;
    font-size: 14px;
    -moz-appearance: textfield;
}

.quantity-input::-webkit-outer-spin-button,
.quantity-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.add-to-cart-btn {
    width: 100%;
    padding: 15px;
    background: #000;
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: background-color 0.2s;
    margin: var(--space-5) 0 10px;
}

.add-to-cart-btn:hover {
    background: #333;
}

.add-to-cart-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.selected-color, .selected-size,.selected-pattern {
    color: #000;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-size: 11px;
}

.label-title {
    font-size: 11px;
    color:var(--text-primary);
    display: block;
    margin-bottom: var(--space-2);
    letter-spacing: 0.2em;
}

.add-to-cart-btn.loading {
    position: relative;
    color: transparent;
}

.add-to-cart-btn.loading::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin-top: -10px;
    margin-left: -10px;
    border: 2px solid #fff;
    border-top-color: transparent;
    border-radius: 50%;
    animation: spinner 0.6s linear infinite;
}

@keyframes spinner {
    to { transform: rotate(360deg); }
}

/* Pattern pills backup for text under the pattern */
/*
.pattern-pill {
    padding: var(--space-2) var(--space-4);
    min-width: 55px;
    border:none;
    background: transparent;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.1em;
}
*/
.pattern-pill {
    border:none;
    background: transparent;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.2em;
}
.pattern-pill:hover:not(:disabled) {
    border-color: var(--brand-hover);
}

.pattern-pill.active {
 
    color: white;
    border-color: var(--brand);
}

.pattern-pill.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    text-decoration: line-through;
}

.pattern-grid {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    overflow-x: scroll;
    -ms-overflow-style: none;
    
    /* For Firefox */
    scrollbar-width: none;
}
.pattern-grid::-webkit-scrollbar {
    display: none;
}


.pattern-pill.active .pattern-thumbnail {
    box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--border);
}

.pattern-thumbnail {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid var(--border, var(--brand-hover));
    transition: all 0.2s ease;
}

.pattern-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pattern-name {
    font-size: 10px;
    letter-spacing: 0.1em;
    color: var(--text-secondary, #666);
    text-transform: uppercase;
}

.pattern-pill:hover .pattern-thumbnail {
    transform: scale(1.05);
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(0,0,0,0.1);
}

.color-pills {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
    margin-top: var(--space-2);
    padding-left:4px;
}

.color-pill {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    text-indent: -9999px;
    overflow: hidden;
    border: 2px solid var(--border, #ddd);
    transition: all 0.2s ease;
    cursor: pointer;
}

.color-pill.active {
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--border);
    transform: scale(1.05);
}

.color-pill:hover:not(.active) {
    transform: scale(1.05);
    opacity: 0.85;
}

.color-pill.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    filter: grayscale(0.2);
    pointer-events: none;
    position: relative;
    overflow: hidden;
}

.color-pill.disabled::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1px;
    background: rgba(255, 255, 255, 0.6);
    transform: rotate(-45deg);
}

/* WooCommerce Overrides */
.woocommerce div.product form.cart {
  margin-top: 2em;
}

.woocommerce div.product form.cart .variations {
  margin-bottom: 2em;
}

.woocommerce div.product form.cart .variations td.label {
  padding-right: 1em;
}

.woocommerce div.product form.cart .variations select {
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--bg-main);
  font-family: var(--font-body);
}

.woocommerce div.product form.cart .reset_variations {
  display: none !important;
}

.woocommerce-variation-price {
  margin: var(--space-5) 0;
}

.woocommerce-variation-price .price {
  font-size: 1.2rem;
  font-weight: 600;
}

.woocommerce-variation-availability {
  margin: 10px 0;
}

.stock.out-of-stock {
  color: #c94f4f;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.1em;
}

.woocommerce .quantity .qty {
  padding: 15px;
  width: 100px;
  border: 1px solid var(--border);
  border-radius: 0;
}

.single_add_to_cart_button {
  width: calc(100% - 120px) !important;
  padding: var(--space-4) !important;
  background: var(--brand) !important;
  color: white !important;
  border: none !important;
  font-family: var(--font-headline) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  border-radius: 0 !important;
}

.single_add_to_cart_button:hover {
  background: var(--brand-hover) !important;
  opacity: 0.9;
}


/* Related Products bini style product css */
/* Product hero + reference-style gallery. Kept scoped to the single-product template. */
.loomaama-product-hero {
    position: relative;
    min-height: clamp(430px, 58vw, 690px);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background-color: #6f6a61;
    background-position: center 32%;
    background-repeat: no-repeat;
    background-size: cover;
    color: #fff;
}
.loomaama-product-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(22, 21, 18, .62) 0%, rgba(22, 21, 18, .29) 42%, rgba(22, 21, 18, .06) 72%, rgba(22, 21, 18, .10) 100%);
    pointer-events: none;
}
.loomaama-product-hero__inner {
    position: relative;
    z-index: 1;
    width: min(1440px, 100%);
    margin: 0 auto;
    padding: clamp(var(--space-12), 7vw, var(--space-24)) clamp(var(--space-6), 5vw, 72px);
}
.loomaama-product-hero__content { max-width: 610px; }
.loomaama-product-hero__eyebrow {
    margin: 0 0 14px;
    font-size: 11px;
    line-height: 1.3;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 600;
}
.loomaama-product-hero__title {
    margin: 0;
    max-width: 600px;
    color: inherit;
    font-size: clamp(38px, 5vw, 70px);
    line-height: .98;
    font-weight: 400;
    text-wrap: balance;
}
.loomaama-product-hero__copy {
    margin: var(--space-5) 0 0;
    max-width: 460px;
    color: rgba(255,255,255,.9);
    font-size: 14px;
    line-height: 1.7;
}
.loomaama-product-hero__link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: var(--space-7);
    padding-bottom: 7px;
    border-bottom: 1px solid rgba(255,255,255,.7);
    color: #fff;
    font-size: 11px;
    letter-spacing: .15em;
    text-transform: uppercase;
    text-decoration: none;
}
.loomaama-product-hero__link:hover { color: #fff; opacity: .82; }

section.product-container.product-detail-shell {
    width: min(1440px, 100%);
    margin: 0 auto;
 
    display: grid !important;
    grid-template-columns: minmax(0, 1.32fr) minmax(340px, .78fr);
    gap: clamp(var(--space-8), 5vw, 76px);
    align-items: start;
}
.product-detail-shell .product-gallery-wrap { min-width: 0; }
.product-gallery-stage {
    width: 100%;
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: var(--space-4);
    align-items: start;
}
.product-gallery-left {
    min-width: 0;
    position: sticky;
    top: 110px;
}
.product-gallery-selection {
    margin: 0 0 10px;
    font-size: 9px;
    line-height: 1.45;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: #8a857d;
}
.product-gallery-selection strong {
    display: block;
    margin-top: 3px;
    color: #28251f;
    font-weight: 500;
    letter-spacing: .04em;
}
.gallery-variation-filter {
    display: block;
    width: 100%;
    margin-top: 3px;
    padding: 0 var(--space-4) 0 0;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    color: #28251f;
    font: inherit;
    font-size: 9px;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    field-sizing: content;
}

.gallery-variation-filter:focus {
    outline: 1px solid #b9b3aa;
    outline-offset: 2px;
}
.available-product-thumbs {
    display: flex;
    flex-direction: column;
    gap: 9px;
    max-height: calc(100vh - 180px);
    overflow-y: auto;
    scrollbar-width: thin;
    padding-right: 3px;
}
.available-product-thumb {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    padding: 0;
    
    border: 1px solid transparent;
    background: #f2f0ec;
    text-decoration: none;
    transition: border-color .2s ease, opacity .2s ease;
}
.available-product-thumb:hover { opacity: .82; }
.available-product-thumb.is-current { border-color: #28251f; }
.available-product-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.available-product-thumb__name {
    position: absolute;
    inset: auto 4px 4px 4px;
    padding: 3px 4px;
    background: rgba(255,255,255,.88);
    color: #28251f;
    font-size: 7px;
    line-height: 1.2;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.available-products-empty {
    display: none;
    margin: var(--space-2) 0 0;
    color: #8a857d;
    font-size: 9px;
    line-height: 1.5;
}

/* Main product gallery is a native horizontal swipe/scroll-snap track. */
.product-detail-shell #productGallery.product-gallery {
    display: flex !important;
    position: relative;
    min-width: 0;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.product-detail-shell #productGallery.product-gallery::-webkit-scrollbar { display: none; }
.product-detail-shell #productGallery .gallery-media-item {
    display: block !important;
    flex: 0 0 100%;
    width: 100% !important;
    min-width: 100%;
    margin: 0 !important;
    text-decoration: none;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}
.product-detail-shell #productGallery .gallery-media-item.is-active { display: block !important; }
.product-detail-shell #productGallery figure { margin: 0; }
.product-detail-shell #productGallery img,
.product-detail-shell #productGallery video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center;
    user-select: none;
    -webkit-user-drag: none;
}
.product-detail-shell .product-info { min-width: 0; }
.product-detail-shell .product-detail-title { margin-top: 10px; }

.product-detail-shell .gallery-nav .nav-btn[disabled] { opacity: .35; pointer-events: none; }

/* Product information tabs live below #product-detail instead of inside the sticky buy panel. */
#variation-long-description-content span,#variation-short-description-content span {
    display: block;
    margin-bottom: 15px
}
.product-detail-tabs-section {
    width: min(1440px, 100%);
    margin: 0 auto;
}
.product-detail-tabs {
    border-top: 1px solid #ddd8d0;
}
.product-detail-tabs__nav {
    display: flex;
    align-items: stretch;
    gap: clamp(18px, 2.4vw, 38px);
    overflow-x: auto;
    border-bottom: 1px solid #ddd8d0;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.product-detail-tabs__nav::-webkit-scrollbar { display: none; }
.product-detail-tab-btn {
    position: relative;
    flex: 0 0 auto;
    padding: 22px 0 18px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #777169;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .12em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: color .2s ease;
}
.product-detail-tab-btn::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 1px;
    background: #1f1d19;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .2s ease;
}
.product-detail-tab-btn:hover,
.product-detail-tab-btn.is-active { color: #1f1d19; }
.product-detail-tab-btn.is-active::after { transform: scaleX(1); }
.product-detail-tabs__body { min-height: 170px; }

.product-detail-tab-panel {
    display: none;
    padding: clamp(var(--space-3), 3vw, var(--space-3)) 0 0;
    color: #37332d;
    font-size: 16px;
    line-height: 1.8;
}
.product-detail-tab-panel.is-active { display: block; }
.product-detail-tab-panel > :last-child { margin-bottom: 0; }
.product-detail-tab-panel .woocommerce-product-attributes {
    width: 100%;
    max-width: 760px;
    margin: 0;
}
.product-detail-tab-panel .review-buttons {
    justify-content: flex-start !important;
    margin: 0 !important;
}
.product-detail-tab-panel .review-buttons .btn {
    border-radius: 0;
    padding: 10px var(--space-4);
    font-size: 11px;
    letter-spacing: .04em;
}

@media (min-width: 992px) {
    .product-detail-shell .product-info { position: sticky; top: 104px; }
}
@media (max-width: 991.98px) {
    .loomaama-product-hero { min-height: 500px; background-position: center; }
    .loomaama-product-hero::before { background: linear-gradient(0deg, rgba(20,19,16,.72) 0%, rgba(20,19,16,.18) 62%, rgba(20,19,16,.06) 100%); }
    section.product-container.product-detail-shell {
        grid-template-columns: 1fr;
        padding-left: var(--space-4);
        padding-right: var(--space-4);
        gap: var(--space-8);
    }
    .product-gallery-stage { grid-template-columns: 1fr; gap: var(--space-3); }
    .product-gallery-left { position: static; order: 2; }
    .product-gallery-selection { margin: 0 0 var(--space-2); }
    .available-product-thumbs {
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0 0 5px;
    }
    .available-product-thumb { flex: 0 0 68px; width: 68px; }
    .product-detail-shell #productGallery { order: 1; }
}
.size-section .size-select,
.width-section .width-select {
    width: 100%;
    max-width: 220px;
}

.recently-viewed-section {
    margin-bottom: clamp(42px, 6vw, 84px);
}
.recently-viewed-slider {
    width: 100%;
    overflow: hidden;
}
.recently-viewed-slider .swiper-wrapper {
    align-items: stretch;
}
.recently-viewed-slider .swiper-slide {
    height: auto;
}
.recently-viewed-slider .lux-card {
    min-width: 0;
    height: auto;
}
.recently-viewed-pagination {
    position: relative;
    margin-top: 1.5rem;
}

@media (max-width: 575.98px) {
    .loomaama-product-hero { min-height: 440px; }
    .loomaama-product-hero__inner { padding: 42px var(--space-5); }
    .loomaama-product-hero__title { font-size: clamp(34px, 12vw, 52px); }
    .product-detail-shell #productGallery img,
    .product-detail-shell #productGallery video { aspect-ratio: 3 / 4; }
    .product-detail-tabs-section { padding-left: var(--space-4); padding-right: var(--space-4); }
    .product-detail-tabs__nav { gap: 22px; }
    .product-detail-tab-btn { padding-top: 18px; padding-bottom: 15px; }
    .size-section .size-select,
    .width-section .width-select { max-width: 100%; }
    .gallery-nav{padding: 0 5px;}
    .nav-btn {
        width: 30px;
        height: 30px;
       
    }
}


.product-gallery-stage {display:grid!important;grid-template-columns:80px minmax(0,1fr) 88px;gap:18px;align-items:stretch}
.product-gallery-stage #productGallery {display:block!important;min-width:0;width:100%;overflow:hidden;scroll-snap-type:none;position:relative;background:var(--bg-editorial)}
#productGallery .swiper-wrapper {display:flex;align-items:stretch}
#productGallery .swiper-slide {flex-shrink:0;width:100%;height:auto;overflow:hidden}
#productGallery figure {margin:0;width:100%;height:100%;display:flex;flex-direction:column}
#productGallery .swiper-zoom-container {width:100%;height:100%;min-height:280px;aspect-ratio:2/3;overflow:hidden}
#productGallery .swiper-zoom-container img {display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;touch-action:none}
#productGallery figcaption {font-size:11px;color:var(--text-secondary);text-align:center;padding:6px}
#productGallery .swiper-zoom-container {position:relative;display:flex!important;align-items:center;justify-content:center;height:auto!important;min-height:0!important;aspect-ratio:2/3;touch-action:none}
#productGallery .swiper-zoom-container img {width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;transform-origin:center center;user-select:none;-webkit-user-drag:none;will-change:transform}
#productGallery .swiper-zoom-container.is-zoomed {cursor:grab}
#productGallery .swiper-zoom-container.is-dragging {cursor:grabbing}
.gallery-thumbs {display:flex;flex-direction:column;gap:10px;max-height:80vh;overflow:auto;padding:2px;scrollbar-width:thin}
.gallery-thumb {flex-shrink:0;width:100%;padding:3px;border:1px solid transparent;background:transparent;cursor:pointer}
.gallery-thumb img {display:block;width:100%;aspect-ratio:2/3;object-fit:cover}
.gallery-thumb.is-active {border-color:var(--brand)}
.gallery-thumb:focus-visible {outline:2px solid var(--brand)}
.product-gallery-wrap .gallery-pagination {position:static!important;transform:none!important;width:100%!important;display:flex;justify-content:center;gap:5px;flex-wrap:wrap;padding:var(--space-4) 0}
.gallery-pagination .swiper-pagination-bullet {background:var(--brand);width:7px;height:7px;margin:0 3px!important}
.product-pattern-rail {font-family:var(--font-headline);font-size:11px;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0}
.product-pattern-rail > p:first-child {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
#availablePatternButtons {display:flex;flex-direction:column;align-items:center;gap:18px;max-height:65vh;overflow-y:auto;padding:5px 4px;scrollbar-width:thin;width:100%}
.product-pattern-button {flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px;width:78px;height:auto;padding:0;border:0;background:transparent;cursor:pointer;font:inherit;color:var(--text-secondary)}
.product-pattern-button img {box-sizing:border-box;width:58px;height:58px;object-fit:cover;display:block;border-radius:50%;margin:0;padding:3px;border:2px solid transparent;opacity:.35;transition:opacity .2s,border-color .2s}
.product-pattern-button span {position:static;display:block;width:100%;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;overflow-wrap:anywhere;border:0;text-align:center;font-size:10px;line-height:1.35}
.product-pattern-button:hover img,.product-pattern-button:focus-visible img {opacity:1}
.product-pattern-button:focus-visible {outline:2px solid var(--brand);outline-offset:3px}
.product-pattern-button.is-active {color:var(--text-primary)}
.product-pattern-button.is-active img {border-color:var(--brand);opacity:1}
@media(max-width:767px){.product-detail-shell {display:block!important;padding-left:var(--space-4)!important;padding-right:var(--space-4)!important}.product-gallery-stage {grid-template-columns:minmax(0,1fr) 66px;gap:10px}.product-gallery-left {grid-column:1/-1;grid-row:2;min-width:0}.gallery-thumbs {flex-direction:row;max-height:none;width:100%;overflow-x:auto}.gallery-thumb {width:55px}.product-pattern-rail {grid-column:2;grid-row:1}#availablePatternButtons {padding:3px;gap:var(--space-3);max-height:55vh}.product-pattern-button {width:58px}.product-pattern-button img {width:44px;height:44px}.product-pattern-button span {font-size:9px}#productGallery .swiper-zoom-container {min-height:200px}.product-info {min-width:0;width:100%;margin-top:var(--space-6)}}


/* Reference layout: full gallery, inset pattern rail and quiet product summary. */
#product-detail {display:grid!important;grid-template-columns:minmax(0,1.58fr) minmax(300px,1fr);column-gap:var(--space-12);row-gap:var(--space-4);max-width:1280px;margin:30px auto var(--space-20);padding:0 var(--space-10)!important;align-items:start}
#product-detail > .breadcrumb {grid-column:1/-1;margin:0;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#858585}
#product-detail .product-gallery-wrap {min-width:0}
#product-detail .product-gallery-stage {position:relative;display:grid!important;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
#product-detail #productGallery {grid-column:1;grid-row:1;background:transparent;}
#product-detail .product-gallery-left {grid-column:1;grid-row:2;min-width:0}
#product-detail .gallery-thumbs {flex-direction:row;gap:14px;max-height:none;overflow-x:auto;scroll-snap-type:x proximity}
#product-detail .gallery-thumb {width:calc((100% - 56px)/7);min-width:64px;padding:3px;scroll-snap-align:start}
#product-detail .gallery-thumb img {aspect-ratio:.92;object-fit:cover;}
#product-detail .product-pattern-rail {position:absolute;right:12px;top:50%;transform:translateY(calc(-50% - 55px));z-index:3;width:78px;padding:10px 4px;border-radius:14px;background:rgb(255 255 255 / 50%);box-shadow:0 3px 18px #00000012}
#product-detail #availablePatternButtons {gap:var(--space-3);max-height:360px;padding:0}
#product-detail .product-pattern-button {width:68px}
#product-detail .product-pattern-button img {width:34px;height:34px}
#product-detail .gallery-pagination {display:none!important}
#product-detail .product-info {width:100%;min-width:0;margin:0;padding:6px 0 0;position:static}
#product-detail .product-title {font-weight:400!important;font-size:clamp(32px,3.2vw,46px)!important;line-height:1.12;margin:0 0 10px;letter-spacing:-.025em}
#product-detail .product-price {font-size:23px;margin-bottom:var(--space-3)}
#product-detail .product-description {font-size:16px;line-height:1.6;color:var(--text-secondary);margin:0 0 22px}
#product-detail .selected-pattern {border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--space-5) 0;margin:0 0 var(--space-5);font-size:14px}
#product-detail .size-section,#product-detail .width-section {margin:0 0 var(--space-5)}
#product-detail .size-section > div:first-child {display:grid!important;grid-template-columns:1fr auto;gap:var(--space-2)!important}
#product-detail .size-pills {display:contents}
#product-detail .size-pills .label-title {grid-column:1;grid-row:1}
#product-detail #openSizeGuide {grid-column:2;grid-row:1;border:0;background:none;padding:0;color:var(--brand);text-decoration:underline;font-size:12px}
#product-detail #size-select {grid-column:1/-1;grid-row:2}
#product-detail select {width:100%;max-width:none!important;border:1px solid var(--border);border-radius:3px;min-height:42px;background-color:white;font-size:14px}
#product-detail .quantity-section {display:flex;align-items:center;gap:var(--space-6);margin:0 0 var(--space-6)}
#product-detail .quantity-selector {display:flex;border:1px solid var(--border);border-radius:3px;overflow:hidden}
#product-detail .quantity-btn,#product-detail .quantity-input {width:40px;height:38px;border:0;border-radius:0;background:var(--bg-main);text-align:center}
#product-detail .quantity-input {background:white}
#product-detail #add-to-cart-btn {width:100%;background:var(--text-primary);color:white;border:0;border-radius:0;min-height:48px;letter-spacing:.09em;font-size:13px;margin:0 0 var(--space-3);text-transform:uppercase}
#product-detail .fabric-note {text-align:left!important;font-size:12px!important;line-height:1.5;margin-bottom:26px}
@media(max-width:900px){#product-detail{column-gap:28px;padding:0 var(--space-6)!important;grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr)}}
@media(max-width:767px){#product-detail{display:grid!important;grid-template-columns:minmax(0,1fr);padding:0 var(--space-4)!important;margin:20px auto var(--space-12);row-gap:14px}#product-detail .product-info{margin-top:var(--space-2)}#product-detail .product-title{font-size:32px!important}#product-detail .product-pattern-rail{right:8px;width:62px;border-radius:10px;padding:var(--space-2) 2px;transform:translateY(calc(-50% - 36px))}#product-detail .product-pattern-button{width:56px}#product-detail .product-pattern-button img{width:40px;height:40px}#product-detail .product-pattern-button span{font-size:8px}#product-detail .gallery-thumbs{gap:var(--space-2)}#product-detail .gallery-thumb{width:calc((100% - 24px)/4)}}




/* ---------------------------------------------------------------
   LOOMAAMA SINGLE PRODUCT: LEFT THUMBNAILS / STICKY BUY PANEL
   Overrides older bottom-row thumbnail layout without touching Swiper.
   --------------------------------------------------------------- */
#product-detail .lm-product-benefits {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    margin: 14px 0 22px;
    padding: var(--space-2) 0;
    color: var(--text-secondary);
}
#product-detail .lm-product-benefit {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-2);
    padding: 4px 6px;
    text-align: center;
    border-right: 1px solid var(--border);
}
#product-detail .lm-product-benefit:last-child { border-right: 0; }
#product-detail .lm-product-benefit svg { color: var(--text-secondary); flex-shrink: 0; }
#product-detail .lm-product-benefit span {
    font-family: var(--font-headline);
    font-size: clamp(10px, 0.88vw, 13px);
    line-height: 1.45;
}
@media (min-width: 992px) {
    #product-detail.product-detail-shell { align-items: start; }
    #product-detail .product-info {
        position: sticky !important;
        top: calc(var(--nav-height, 80px) + 20px) !important;
        align-self: start;
       
    }
    #product-detail .product-gallery-stage {
        display: grid !important;
        grid-template-columns: 74px minmax(0, 1fr);
        gap: 15px;
        align-items: start;
    }
    #product-detail .product-gallery-left {
        position: sticky;
        top: calc(var(--nav-height, 80px) + 20px);
        grid-column: 1;
        grid-row: 1;
        order: initial;
        min-width: 0;
    }
    #product-detail .gallery-thumbs {
        display: flex;
        flex-direction: column;
        gap: 9px;
        width: 100%;
        max-height: calc(100vh - var(--nav-height, 80px) - 48px);
        overflow-x: hidden;
        overflow-y: auto;
        scroll-snap-type: y proximity;
    }
    #product-detail .gallery-thumb {
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
        scroll-snap-align: start;
    }
    #product-detail .gallery-thumb img { aspect-ratio: 2/3; object-fit: cover; }
    #product-detail #productGallery { grid-column: 2; grid-row: 1; min-width: 0; }
}
@media (max-width: 991.98px) {
    #product-detail .product-info {
        position: static !important;
        top: auto !important;
        height: auto;
        max-height: none;
        overflow: visible;
    }
    #product-detail .product-gallery-stage { display: grid !important; grid-template-columns: minmax(0, 1fr); }
    #product-detail #productGallery { grid-column: 1; grid-row: 1; }
    #product-detail .product-gallery-left { position: static; grid-column: 1; grid-row: 2; }
    #product-detail .gallery-thumbs { flex-direction: row; max-height: none; overflow-x: auto; overflow-y: hidden; }
    #product-detail .gallery-thumb { flex: 0 0 64px; width: 64px; min-width: 64px; }
}
@media (max-width: 575.98px) {
    #product-detail .lm-product-benefit { padding: 4px 2px; gap: 6px; }
    #product-detail .lm-product-benefit svg { width: 23px; height: 23px; }
    #product-detail .lm-product-benefit span { font-size: 10px; }
    #product-detail .gallery-thumb { flex-basis: 54px; width: 54px; min-width: 54px; }
}


/* Mobile product cards: keep native vertical scrolling and one-tap links. */
@media (hover: none), (pointer: coarse) {
    .product-masonry .lux-img,
    .main-product-masonry .lux-img,
    .product-masonry .lux-img a,
    .main-product-masonry .lux-img a {
        touch-action: pan-y pinch-zoom;
    }
    .product-masonry .lux-img img,
    .main-product-masonry .lux-img img,
    .product-masonry .hover-overlay-img,
    .main-product-masonry .hover-overlay-img {
        transform: none !important;
        transition: none !important;
    }
    .product-masonry .hover-overlay-img,
    .main-product-masonry .hover-overlay-img {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
}
