/* Force slick-slide images to fill their container */
.product-image-slider .slick-slide img,
.product-image-slider-1 .slick-slide img {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    display: block;
    object-fit: contain;
}
.item-size[data-selected="true"] {
    background-color: #000;
    color: white !important;
    border-color: #000;
}

  /* Base swatch button */
  .item-color{
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,.15);
    box-sizing: border-box;
    position: relative;
    padding: 0;
    cursor: pointer;
    display: inline-block;
    /* subtle inner edges so white/very light colors are still visible */
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.6),
      inset 0 0 0 2px rgba(0,0,0,.05);
    transition: transform .08s ease, box-shadow .08s ease, outline-offset .08s ease;
  }

  /* Hover feedback */
  .item-color:hover{
    transform: scale(1.06);
  }

  /* Keyboard accessibility */
  .item-color:focus-visible{
    outline: 2px dashed #0d6efd;   /* Bootstrap primary */
    outline-offset: 3px;
  }

  /* Selected (active) state */
  .item-color.active{
    /* double ring: white separation + primary ring */
    box-shadow:
      inset 0 0 0 1px rgba(0,0,0,.18),
      0 0 0 3px #fff,
      0 0 0 5px #0d6efd;
  }

  /* Checkmark badge in the corner when selected */
  .item-color.active::after{
    content: "✓";
    position: absolute;
    bottom: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid rgba(0,0,0,.15);
    font-size: 12px;
    line-height: 18px;
    text-align: center;
    color: #198754; /* Bootstrap success */
    box-shadow: 0 1px 2px rgba(0,0,0,.15);
  }

  /* Optional: a compact grid wrapper for swatches */
  #color-swatch-group{
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
  }

    .item-color.active{
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.18), 0 0 0 3px #fff, 0 0 0 5px #0d6efd;
  }

  /* Layout: stack on mobile, inline on md+ */
.qty-actions {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
  align-items: stretch;
}
@media (min-width: 768px) {
  .qty-actions {
    grid-template-columns: auto 1fr;
    align-items: center;
  }
  .qty-actions-right { display: flex; gap: 12px; align-items: center; }
}

.box-product-info .box-form-cart .btn {
  margin-top: 0px !important;
}

/* SHAZ Size & Length Finder (product page) - Option 2: Expandable Card */
.shaz-size-helper-card {
  background: linear-gradient(135deg, #f8f2eb 0%, #fff8f4 100%);
  border: 2px solid #e4d7cc;
  border-radius: 16px;
  padding: 20px;
  text-align: center;
}

@media (min-width: 768px) {
  #sizechart .shaz-size-helper-card {
    max-width: 520px;
    margin: 0 auto;
  }
}

/* Keep the collapse content visually part of the helper card */
.shaz-size-helper-card .collapse {
  width: 100%;
}
.shaz-size-helper-card .shaz-size-finder {
  background: transparent;
  border: none;
  box-shadow: none;
  max-width: 100%;
  margin: 0;
  padding: 0;
}
.shaz-size-helper-card .shaz-size-finder .shaz-field {
  margin-bottom: 10px;
}

.btn-unit {
  padding: 3px 10px !important;
  font-size: 12px;
  border-radius: 5px;
  border: 1px solid rgba(0, 0, 0, 0.3);
  cursor: pointer;
  background: #fff;
  color: #000000;
  transition: all 0.2s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}
.btn-unit:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}
.btn-unit.active {
  background: linear-gradient(135deg, #000000, #000000);
  color: #fff;
  border-color: #000000;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
}

.shaz-btn {
  position: relative;
  overflow: hidden;
  transition: all 0.25s ease;
}

.shaz-btn .btn-loader {
  position: absolute;
  right: 18px;
  top: 50%;
  width: 16px;
  height: 16px;
  margin-top: -8px;
  border: 2px solid rgba(255,255,255,0.5);
  border-top-color: #fff;
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.2s ease;
  animation: shaz-spin 0.7s linear infinite;
}

.shaz-btn.is-loading .btn-loader {
  opacity: 1;
}

.shaz-btn--disabled {
  background: #c7bfb0;
  color: #aa7e59 !important;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.75;
}

.shaz-result {
  text-align: left;
}

@keyframes shaz-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.helper-hint {
  font-size: 13px;
  color: #7a6358;
  margin-bottom: 12px;
  font-weight: 500;
}

.btn-find-size {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #732b32;
  color: white;
  border: none;
  padding: 14px 32px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(115, 43, 50, 0.25);
}

.btn-find-size .icon {
  font-size: 22px;
}

.btn-find-size .arrow {
  transition: transform 0.3s ease;
}

.btn-find-size:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 18px rgba(115, 43, 50, 0.35);
  background: #8a3840;
}

.btn-find-size[aria-expanded="true"] .arrow {
  transform: rotate(180deg);
}

.shaz-link-sizechart {
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
  color: #2b69a7;
}

.shaz-size-finder {
  border: 1px solid #e4d7cc;
  padding: 18px 20px;
  border-radius: 12px;
  background: #f8f2eb;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  max-width: 420px;
  margin: 0 auto;
}

.shaz-size-finder h3 {
  margin: 0 0 6px;
  font-size: 20px;
  letter-spacing: 0.03em;
}

.shaz-size-finder .shaz-intro {
  font-size: 13px;
  margin: 0 0 14px;
  color: #5c463d;
}

.shaz-size-finder .shaz-field {
  margin-bottom: 12px;
}

.shaz-size-finder .shaz-field label {
  display: block;
  font-size: 13px;
  margin-bottom: 4px;
  font-weight: 600;
}

.shaz-size-finder .shaz-input {
  width: 100%;
  padding: 7px 9px;
  border-radius: 8px;
  border: 1px solid #d1c4b5;
  font-size: 13px;
  background: #ffffff;
}

.shaz-size-finder .helper {
  margin: 3px 0 0;
  font-size: 11px;
  color: #7a6358;
}

.shaz-size-finder .shaz-btn {
  margin-top: 6px;
  width: 100%;
  padding: 9px 12px;
  border-radius: 6px;
  border: none;
  background: #732b32;
  color: #ffffff;
  font-size: 13px;
  font-weight: 600;
  /* cursor: pointer; */
}

.shaz-size-finder .shaz-btn:hover {
  opacity: 0.94;
}

.shaz-size-finder .shaz-result {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #fff8f4;
  border: 1px solid #e4cec4;
  font-size: 13px;
}

.shaz-size-finder .shaz-result h4 {
  margin: 0 0 6px;
  font-size: 14px;
}

.shaz-size-finder .shaz-note {
  margin-top: 6px;
  font-size: 11px;
  color: #6b554b;
}

@media (max-width: 767.98px) {
  .shaz-size-finder {
    max-width: 100%;
  }
}

/* Stepper: large touch targets */
.detail-qty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.qty-btn {
  width: 44px; height: 44px; border-radius: 10px;
  border: 1px solid rgba(0,0,0,.15);
  background: #fff; font-size: 22px; line-height: 1; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  user-select: none;
}
.qty-btn:active { transform: translateY(1px); }
.qty-val.form-control {
  width: 90px; max-width: 100%; height: 44px;
  text-align: center; font-weight: 600;
  appearance: textfield;
  -moz-appearance: textfield;
}
.qty-val.form-control::-webkit-outer-spin-button,
.qty-val.form-control::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Buttons full-width on mobile, shrink on md+ via w-md-auto above */
.w-md-auto { width: auto; }

/* Mobile: Show thumbnails horizontally below the slider */
@media (max-width: 767.98px) {
  /* Override the display: none for thumbnails on mobile */
  .detail-gallery .slider-nav-thumbnails,
  .detail-gallery .slider-nav-thumbnails-1 {
    display: none !important;
    width: 100%;
    height: auto !important;
    margin: 10px auto 0 auto !important; /* center within container on mobile */
    order: 2; /* Place thumbnails after the main gallery */
    text-align: center;
  }

  /* Change gallery layout to column on mobile */
  .detail-gallery {
    flex-direction: column;
    align-items: center; /* center main gallery + thumbnails */
  }

  /* Main gallery should come first */
  .detail-gallery .box-main-gallery {
    order: 1;
    max-width: 100%;
  }

  /* Override slick for horizontal layout on mobile */
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-list {
    height: auto !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  /* Horizontal slider - CRITICAL: Let Slick handle transforms for animation */
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-list {
    height: auto !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-track {
    display: block !important;
    opacity: 1;
    width: 100% !important;
    height: auto !important;
    left: 0 !important;
    top: 0 !important;
    margin: 0 auto; /* center within container */
    /* CRITICAL: DO NOT set transform here - Slick MUST control it for animation */
  }

  /* Fallback for vertical slider on mobile (before reinit) - only if NOT horizontal */
  .slider-nav-thumbnails-1.slick-vertical:not(.slick-mobile-horizontal) .slick-list {
    height: auto !important;
    width: 100% !important;
    overflow: visible;
  }

  .slider-nav-thumbnails-1.slick-vertical:not(.slick-mobile-horizontal) .slick-track {
    display: flex !important;
    flex-direction: row !important;
    transform: translate3d(0, 0, 0) !important;
    width: auto !important;
    left: 0 !important;
    top: 0 !important;
    height: auto !important;
  }
  
  /* CRITICAL: For horizontal slider, we must NOT set transform at all */
  /* Slick will apply its own transforms dynamically - any CSS transform will block it */
  /* The vertical rule above uses :not(.slick-mobile-horizontal) so it won't apply to horizontal */

  /* Horizontal slider slides - must have fixed width for Slick to calculate properly */
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-slide {
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;
    height: 110px !important;
    margin-right: 0px !important;
    margin-bottom: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    float: left !important;
    border: 1px solid #fff;
    box-sizing: border-box;
  }
  
  /* Ensure the track width is calculated correctly */
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-list {
    position: relative;
    display: block;
  }

  /* Fallback for vertical slider on mobile */
  .slider-nav-thumbnails-1.slick-vertical .slick-slide {
    width: 100px !important;
    min-width: 100px !important;
    height: 110px !important;
    margin-right: 10px !important;
    margin-bottom: 0 !important;
    display: block !important;
    float: none !important;
    border: 1px solid #fff;
    flex-shrink: 0;
  }

  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-slide .item-thumb,
  .slider-nav-thumbnails-1.slick-vertical .slick-slide .item-thumb {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-slide .item-thumb img,
  .slider-nav-thumbnails-1.slick-vertical .slick-slide .item-thumb img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    object-fit: cover; /* ensure all thumbs visually fill the same box */
    display: block;
    margin: 0 auto;
  }

  /* Video thumb styling for mobile */
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-slide .video-thumb,
  .slider-nav-thumbnails-1.slick-vertical .slick-slide .video-thumb {
    width: 100%;
    height: 100%;
    position: relative;
    display: block;
  }

  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-slide .video-thumb img,
  .slider-nav-thumbnails-1.slick-vertical .slick-slide .video-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Ensure arrows are visible and properly positioned */
  .slider-nav-thumbnails-1 {
    position: relative;
    /* padding: 0 45px; */
  }

  .slider-nav-thumbnails-1 .slick-list {
    margin: 0;
  }

  /* Show and style horizontal navigation arrows on mobile */
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-prev,
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-next,
  .slider-nav-thumbnails-1.slick-vertical .slick-prev,
  .slider-nav-thumbnails-1.slick-vertical .slick-next {
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 50%;
    transform: translateY(-50%) rotate(0deg) !important;
    z-index: 10;
    width: 36px;
    height: 36px;
    background-color: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    opacity: 0.9;
    transition: all 0.3s ease;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    background-image: none !important;
  }

  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-prev:hover,
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-next:hover,
  .slider-nav-thumbnails-1.slick-vertical .slick-prev:hover,
  .slider-nav-thumbnails-1.slick-vertical .slick-next:hover {
    opacity: 1;
    background-color: #fff;
    border-color: #111;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  }

  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-prev,
  .slider-nav-thumbnails-1.slick-vertical .slick-prev {
    left: 5px;
    right: auto;
    top: 50%;
    bottom: auto;
  }

  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-next,
  .slider-nav-thumbnails-1.slick-vertical .slick-next {
    right: 5px;
    left: auto;
    top: 50%;
    bottom: auto;
  }

  /* Arrow icon styling */
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-prev svg,
  .slider-nav-thumbnails-1.slick-mobile-horizontal .slick-next svg,
  .slider-nav-thumbnails-1.slick-vertical .slick-prev svg,
  .slider-nav-thumbnails-1.slick-vertical .slick-next svg {
    display: block;
    width: 18px;
    height: 18px;
    margin: 0 auto;
    color: #111;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
  }
}