/**
 * Single Product Styles
 * 
 * Estilos personalizados para la página de producto individual de WooCommerce
 */

/* ============================================
   BREADCRUMB
   ============================================ */

html, body {
  overflow-x: hidden;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

body{
  background-color: var(--color-bg-secondary);
}

.content-wrapper{
  max-width: 1229px;
  margin: 0 auto;
}

.site-main{
  max-width: 1440px;
  margin: 0 auto;
}

.woocommerce-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-sm);
  padding: var(--spacing-md) 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

.woocommerce-breadcrumb a {
  color: var(--color-text-secondary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.woocommerce-breadcrumb a:hover {
  color: var(--color-primary);
  text-decoration: none;
}

/* ============================================
   PRODUCT LAYOUT
   ============================================ */

.product-single-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-xl);
  margin-bottom: var(--spacing-xl);
}

/* ============================================
   PRODUCT IMAGES
   ============================================ */

.product-single-layout .images {
  position: relative;
}

.woocommerce-product-gallery {
  position: relative;
  margin-bottom: var(--spacing-lg);
}

.woocommerce-product-gallery__wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-md);
}

.woocommerce-product-gallery__image {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background-color: var(--color-bg-secondary);
}

.woocommerce-product-gallery__image:first-child {
  width: 100%;
  aspect-ratio: 1 / 1;
}

.woocommerce-product-gallery__image:first-child a {
  height: 100%;
  display: block;
}

.woocommerce-product-gallery__image:first-child img {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  border-radius: var(--radius-lg);
}

.woocommerce-product-gallery__image a {
  display: block;
  position: relative;
  overflow: hidden;
  height: 100%;
}

.woocommerce-product-gallery__image img {
  width: 100%;
  height: 100%; /* Force height to match container */
  object-fit: cover; /* Contain content */
  display: block;
  border-radius: var(--radius-lg);
  transition: transform var(--transition-base);
}

.woocommerce-product-gallery__image:hover img {
  transform: scale(1.03);
}

/* Galería de miniaturas */
.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) {
  flex: 0 0 calc(25% - var(--spacing-md)); /* Fixed width: 4 items per row accounting for gap */
  width: calc(25% - var(--spacing-sm));
  aspect-ratio: 1 / 1; /* Fixed square shape */
  max-width: none;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color var(--transition-fast);
}

.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child):hover {
  border-color: var(--color-primary);
}

/* ============================================
   PRODUCT SUMMARY
   ============================================ */

.summary.entry-summary {
  display: flex;
  flex-direction: column;
  aspect-ratio: 1/1;
  background-color: white;
  padding: var(--spacing-2xl);
  border-radius: 15px;
  height: fit-content;
  gap: var(--spacing-lg);
}

/* Product Title */
.product_title.entry-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  line-height: var(--line-height-tight);
  margin-bottom: 0;
}

/* Price */
.summary .price {
  display: flex;
  align-items: baseline;
  gap: var(--spacing-sm);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  color: #00A995; /* Green color */
  margin: 0;
}

.summary .price .woocommerce-Price-amount {
  color: #00A995;
}

.summary .price .woocommerce-Price-currencySymbol {
  font-size: var(--font-size-2xl);
  color: #00A995;
}

.summary .price .woocommerce-price-suffix {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  color: var(--color-text-secondary);
}

/* Short Description */
.woocommerce-product-details__short-description {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-relaxed);
  color: var(--color-text-secondary);
  margin: 0;
}

.woocommerce-product-details__short-description p {
  margin-bottom: var(--spacing-md);
}

/* Stock Status */
.stock {
  display: inline-flex;
  align-items: center;
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
}

.stock.in-stock {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.stock.out-of-stock {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

/* ============================================
   ADD TO CART FORM
   ============================================ */

form.cart {
  display: flex;
  flex-direction: row;
  align-items: flex-end; /* Align bottom to match button height if needed, or center */
  gap: var(--spacing-md);
  padding: 0;
  background-color: transparent;
  border-radius: 0;
  border: none;
  margin-top: var(--spacing-lg);
}

/* Variable Product Form Overrides */
form.variations_form.cart {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--spacing-sm);
}

.woocommerce-variation-add-to-cart {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: var(--spacing-md);
}

.woocommerce-variation-availability {
  margin-bottom: var(--spacing-sm);
}

/* Variations Table */
table.variations {
  border: none;
  margin-bottom: var(--spacing-sm);
  width: 100%;
}

table.variations tbody {
  border: none;
  padding: 0;
  background: transparent;
}

table.variations tr {
  display: flex;
  align-items: baseline;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-sm);
  border: none;
  padding: 0;
  background: transparent;
}

table.variations th,
table.variations td {
  display: block;
  border: none;
  padding: 0;
  background: transparent;
}

table.variations tr {
  margin-bottom: var(--spacing-sm);
}

table.variations th.label {
  text-align: left;
  padding-bottom: 0;
  min-width: 50px;
  margin-right: var(--spacing-xs);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
}

table.variations td.value {
  padding-bottom: 0;
  flex-grow: 1;
}

table.variations select {
  width: 100%;
  max-width: 300px;
  padding: var(--spacing-sm) var(--spacing-md);
  border: 1px solid var(--color-gray-400);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-base);
  background-color: var(--color-white);
  color: var(--color-text-primary);
}

a.reset_variations {
  display: inline-block;
  margin-top: var(--spacing-xs);
  margin-left: var(--spacing-md);
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* Quantity Input */
.quantity {
  display: flex;
  flex-direction: column; /* Label on top of input */
  align-items: flex-start;
  gap: var(--spacing-xs);
}

.quantity label {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
}

.quantity input.qty {
  width: 80px;
  height: 48px; /* Force flexible match with button */
  padding: 0;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  text-align: center;
  border: 1px solid var(--color-gray-400); /* Match button border width */
  border-radius: var(--radius-sm);
  background-color: var(--color-white);
  transition: border-color var(--transition-fast);
}

.quantity input.qty:focus {
  outline: none;
  border-color: var(--color-primary);
}

/* Add to Cart Button */
.single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  width: fit-content !important;
  min-width: 200px;
  height: 48px; /* Force match with input */
  padding: 0 20px !important; /* Adjust padding since height is fixed */
  font-family: var(--font-primary) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  color: var(--color-white) !important;
  background-color: var(--color-primary) !important;
  border: 1px solid var(--color-primary) !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer;
  transition: all var(--transition-base);
  letter-spacing: normal;
  box-shadow: none !important;
}

.single_add_to_cart_button:hover {
  background-color: #ff0600 !important;
  border-color: #ff0600 !important;
  transform: none !important;
  box-shadow: none !important;
}

.single_add_to_cart_button:active {
  transform: translateY(0);
  box-shadow: 0 4px 8px rgba(255, 6, 0, 0.2);
}

.single_add_to_cart_button.disabled,
.single_add_to_cart_button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}

/* ============================================
   PRODUCT META
   ============================================ */

.product_meta {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  padding: 0;
  background-color: transparent;
  border-radius: 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  margin-top: var(--spacing-xl);
  border-top: 1px solid var(--color-gray-400);
  padding-top: var(--spacing-md);
}

.product_meta a {
  color: var(--color-primary);
  text-decoration: none;
  font-weight: var(--font-weight-semibold);
  transition: color var(--transition-fast);
}

.product_meta a:hover {
  color: var(--color-primary-dark);
  text-decoration: underline;
}

/* ============================================
   PRODUCT TABS
   ============================================ */

/* Tab Navigation */
.wc-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-sm);
  list-style: none;
  margin: 0 0 var(--spacing-xl);
  padding: 0;
  border-bottom: 2px solid var(--color-gray-400);
}

.wc-tabs li {
  margin: 0 0 -2px 0;
  padding: 0;
}

.wc-tabs li a {
  display: block;
  padding: var(--spacing-md) var(--spacing-xl);
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-secondary);
  text-decoration: none;
  border-bottom: 3px solid transparent;
  transition: all var(--transition-fast);
}

.wc-tabs li a:hover {
  color: var(--color-primary);
  text-decoration: none;
}

.wc-tabs li.active a {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}

/* Tab Panels */

.woocommerce-tabs{
  padding: var(--spacing-xl);
  background-color: white;
  border-radius: var(--radius-lg);
}

.woocommerce-Tabs-panel {
  padding: var(--spacing-xl) 0;
}

.woocommerce-Tabs-panel h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-lg);
}

.woocommerce-Tabs-panel p {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-relaxed);
  color: var(--color-text-secondary);
  margin-bottom: var(--spacing-md);
}

/* Attributes Table */
.woocommerce-product-attributes {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  border-top: 1px solid var(--color-gray-300);
}

.woocommerce-product-attributes-item {
  border-bottom: 1px solid var(--color-gray-300);
}

.woocommerce-product-attributes-item__label {
  width: 150px;
  padding: var(--spacing-md) var(--spacing-lg) var(--spacing-md) 0;
  font-family: var(--font-heading);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  text-transform: capitalize;
  vertical-align: top;
}

.woocommerce-product-attributes-item__value {
  padding: var(--spacing-md) 0;
  color: var(--color-text-secondary);
  font-family: var(--font-primary);
}

.woocommerce-product-attributes-item__value p {
  margin: 0;
  line-height: 1.5;
}

/* Specific attribute highlight if needed (e.g. color) */
.woocommerce-product-attributes-item--attribute_color .woocommerce-product-attributes-item__value {
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
}

/* ============================================
   RELATED PRODUCTS
   ============================================ */

.related.products {
  margin-top: var(--spacing-2xl);
  margin-bottom: var(--spacing-2xl);
}

.related.products h2 {
  text-align: center;
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-xl);
}

/* Related Products Grid */
.related.products .products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-xl);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Card Style */
.related.products .product {
  background-color: var(--color-white);
  border-radius: 20px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  display: flex !important;
  flex-direction: column;
  height: 100%;
  border: none;
  padding-bottom: 20px;
  transition: transform var(--transition-fast);
}

.related.products .product:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.related.products .product a.woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

/* Image */
.related.products .product img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 20px 20px 0 0;
  margin-bottom: 0;
  background-color: var(--color-gray-50);
}

/* Typography */
.related.products .product .woocommerce-loop-product__title {
  font-family: 'DIN Alternate', 'DINCondensed', 'DIN', sans-serif;
  font-size: 1.25rem;
  text-align: left;
  font-weight: 700;
  color: #1D1D1B;
  text-transform: uppercase;
  line-height: 1.1;
  letter-spacing: 0.5px;
  margin: 15px 20px 5px 20px;
  padding: 0;
  transition: none;
}

.related.products .product .price {
  font-family: var(--font-primary);
  font-size: 1.125rem;
  font-weight: 800;
  color: #000000;
  margin: 10px 20px 20px 20px;
  display: block;
}

.related.products .product .price .woocommerce-Price-amount {
  color: #000000;
}

.related.products .product .price del {
  opacity: 0.5;
  font-weight: normal;
}

.related.products .product .price ins {
  text-decoration: none;
  font-weight: 800;
}

/* Button */
.related.products .product .button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: calc(100% - 40px) !important;
  margin: 0 20px 0 20px !important;
  padding: 12px 20px !important;
  background-color: var(--color-primary) !important;
  border: none !important;
  border-radius: 4px !important;
  color: #FFFFFF !important;
  font-family: var(--font-primary) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: background-color 0.3s ease;
  cursor: pointer;
  margin-top: auto;
}

.related.products .product .button:hover {
  background-color: var(--color-primary-dark) !important;
}

.related.products .product .button::after {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'%3E%3C/circle%3E%3Ccircle cx='20' cy='21' r='1'%3E%3C/circle%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  margin-left: 8px;
}

.related.products .product .added_to_cart {
  display: none;
}

/* ============================================
   NOTICES
   ============================================ */

.woocommerce-notices-wrapper {
  margin-bottom: var(--spacing-md);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  padding: var(--spacing-md) var(--spacing-lg);
  border-radius: var(--radius-md);
  margin-bottom: var(--spacing-md);
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.woocommerce-message {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.woocommerce-info {
  background-color: #d1ecf1;
  color: #0c5460;
  border: 1px solid #bee5eb;
}

.woocommerce-error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

/* ============================================
   SLIDER DOTS (Related Products)
   ============================================ */
.related.products .slider-dots {
  display: none; /* Hidden by default (desktop) */
  justify-content: center;
  align-items: center;
  margin-top: 20px;
  gap: 8px;
}

.slider-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: var(--color-gray-400);
  cursor: pointer;
  transition: all 0.3s ease;
  padding: 0;
}

.slider-dot.active {
  background: var(--color-primary);
  transform: scale(1.25);
}

.slider-dot:hover {
  background: var(--color-primary-light);
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 992px) {
  .product-single-layout {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .summary.entry-summary {
  gap: var(--spacing-sm);
  aspect-ratio: unset;
  p{
    margin-bottom: 0;
  }
}

  .related.products .products {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-lg);
  }

  .product_title.entry-title {
    font-size: var(--font-size-3xl);
  }

  .summary .price {
    font-size: var(--font-size-2xl);
  }
}

@media (max-width: 768px) {
  .woocommerce-breadcrumb {
    font-size: var(--font-size-xs);
    gap: var(--spacing-xs);
  }

  .product_title.entry-title {
    font-size: var(--font-size-2xl);
  }

  .summary .price {
    font-size: var(--font-size-xl);
  }

  .woocommerce-product-details__short-description {
    font-size: var(--font-size-base);
  }

  .single_add_to_cart_button {
    padding: var(--spacing-md) var(--spacing-xl);
    font-size: var(--font-size-base);
  }

  .wc-tabs li a {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-size-base);
  }

  /* Related Products Slider Mobile */
  .related.products {
    width: 100%;
    max-width: 100vw;
    overflow: hidden;
    position: relative;
  }

  .related.products .products {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: var(--spacing-md);
    padding: 0 var(--spacing-sm) var(--spacing-md) var(--spacing-sm);
    margin-bottom: 0;
    grid-template-columns: none; /* Reset grid */
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    align-items: stretch; /* Ensure all items have the same height */
  }

  .related.products .products::-webkit-scrollbar {
    display: none;
  }

  .related.products .product {
    flex: 0 0 70vw !important;
    max-width: 300px;
    width: 70vw !important;
    height: auto !important; /* Allow flex stretch to determine height */
    scroll-snap-align: start;
    margin-bottom: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .related.products .slider-dots {
    display: flex;
  }

  .woocommerce-Tabs-panel h2,
  .related.products h2 {
    font-size: var(--font-size-2xl);
  }
}

@media (max-width: 576px) {
  .quantity input.qty {
    width: 60px;
    padding: var(--spacing-sm);
  }
}

