  /* Product Showcase Styles - Section {{ section.id }} */
  .product-section-container-{{ section.id }} {
    width: 100%;
    background-color: #f8f9fa;
    padding: 40px 0 40px 0;
  }

  .product-section-content-{{ section.id }} {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px;
    display: grid;
    grid-template-columns: 200px 1fr 320px;
    gap: 40px;
    align-items: start;
  }

  /* Left Navigation */
  .navigation-menu-{{ section.id }} {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .nav-item-{{ section.id }} {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-radius: 8px;
    text-decoration: none;
    color: #374151;
    font-weight: 500;
    font-size: 16px;
    transition: all 0.2s ease;
    cursor: pointer;
  }

  .nav-item-{{ section.id }}.active {
    background-color: #f2f3f5;
    color: #1f2937;
    font-weight: 600;
  }

  .nav-item-{{ section.id }}:hover:not(.active) {
    background-color: #e5e7eb;
  }

  .nav-item-{{ section.id }}.loading {
    opacity: 0.6;
    pointer-events: none;
  }

  .nav-arrow-{{ section.id }} {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    stroke-width: 2;
  }

  /* Main Products Section */
  .products-section-{{ section.id }} {
    display: flex;
    flex-direction: column;
    gap: 32px;
    position: relative;
  }

  .products-grid-{{ section.id }} {
    display: grid;
    grid-template-columns: repeat({{ section.settings.products_per_row | default: 3 }}, 1fr);
    gap: 24px;
    transition: opacity 0.3s ease;
  }

  .products-grid-{{ section.id }}.loading {
    opacity: 0.5;
  }

  .product-card-{{ section.id }} {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    text-align: center;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
    position: relative;
  }

  .product-card-{{ section.id }}:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    z-index: 1;
  }

  .product-image-{{ section.id }} {
    width: 100%;
    height: 120px;
    object-fit: contain;
    margin-bottom: 16px;
  }

  .product-image-placeholder-{{ section.id }} {
    width: 100%;
    height: 120px;
    background-color: #f3f4f6;
    border-radius: 8px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
    font-size: 14px;
  }

  .product-title-{{ section.id }} {
    font-size: 16px;
    font-weight: 600;
    color: #1f2937;
    margin-bottom: 8px;
    line-height: 1.4;
  }

  .product-price-{{ section.id }} {
    font-size: 16px;
    color: #6b7280;
    font-weight: 500;
  }

  .sale-price-{{ section.id }} {
    color: #dc2626;
    font-weight: 600;
  }

  .original-price-{{ section.id }} {
    text-decoration: line-through;
    color: #9ca3af;
    margin-left: 8px;
    font-size: 14px;
  }

  .sold-out-badge-{{ section.id }} {
    position: absolute;
    top: 12px;
    right: 12px;
    background-color: #ef4444;
    color: white;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
  }

  .no-collection-message-{{ section.id }} {
    grid-column: 1 / -1;
    text-align: center;
    padding: 40px 20px;
    background-color: #f9fafb;
    border-radius: 8px;
    color: #6b7280;
    font-size: 16px;
  }

  .view-all-container-{{ section.id }} {
    display: flex;
    justify-content: center;
  }

  .view-all-button-{{ section.id }} {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: #fff;
    border: 2px solid #e5e7eb;
    border-radius: {{ section.settings.button_border_radius | default: 8 }}px;
    text-decoration: none;
    color: #374151;
    font-weight: 500;
    transition: all 0.2s ease;
  }

  .view-all-button-{{ section.id }}:hover {
    border-color: #d1d5db;
    background-color: #f9fafb;
  }

  /* Loading Indicator */
  .loading-indicator-{{ section.id }} {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px;
    color: #6b7280;
  }

  .spinner-{{ section.id }} {
    width: 32px;
    height: 32px;
    border: 3px solid #f3f4f6;
    border-top: 3px solid #0ea5e9;
    border-radius: 50%;
    animation: spin-{{ section.id }} 1s linear infinite;
    margin-bottom: 16px;
  }

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

  /* Promotional Banner */
  .promo-banner-{{ section.id }} {
    border-radius: 16px;
    padding: 24px;
    color: #fff;
    position: relative;
    overflow: hidden;
    min-height: 280px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .promo-background-{{ section.id }} {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
  }

  .promo-content-{{ section.id }} {
    position: relative;
    z-index: 2;
  }

  .sale-tag-{{ section.id }} {
    background-color: #fbbf24;
    color: #1f2937;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    width: fit-content;
    margin-bottom: 16px;
  }

  .promo-title-{{ section.id }} {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 8px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  }

  .promo-subtitle-{{ section.id }} {
    font-size: 14px;
    opacity: 0.9;
    line-height: 1.4;
    margin-bottom: 16px;
  }

  .promo-button-{{ section.id }} {
    display: inline-block;
    padding: 10px 20px;
    background-color: #fff;
    color: #1f2937;
    text-decoration: none;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.2s ease;
  }

  .promo-button-{{ section.id }}:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  }

  /* Bottom Section */
  .bottom-section-{{ section.id }} {
    grid-column: 1 / -1;
    border-top: 1px solid #e5e7eb;
    padding-top: 32px;
    margin-top: 32px;
  }

  .all-equipment-{{ section.id }} {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: color 0.2s ease;
    text-decoration: none;
    color: inherit;
  }

  .all-equipment-{{ section.id }}:hover {
    color: #0ea5e9;
  }

  .section-title-{{ section.id }} {
    font-size: 24px;
    font-weight: 700;
    color: #1f2937;
    margin: 0;
  }

  /* Responsive Design */
  @media (max-width: 1200px) {
    .product-section-content-{{ section.id }} {
      grid-template-columns: 180px 1fr 280px;
      gap: 30px;
    }

    .products-grid-{{ section.id }} {
      grid-template-columns: repeat(2, 1fr);
    }

    .promo-banner-{{ section.id }} {
      min-height: 240px;
    }

    .promo-title-{{ section.id }} {
      font-size: 24px;
    }
  }

  @media (max-width: 968px) {
    .product-section-content-{{ section.id }} {
      grid-template-columns: 1fr;
      gap: 32px;
    }

    .navigation-menu-{{ section.id }} {
      flex-direction: row;
      justify-content: center;
      gap: 16px;
    }

    .products-grid-{{ section.id }} {
      grid-template-columns: repeat({{ section.settings.products_per_row | default: 3 }}, 1fr);
    }

    .promo-banner-{{ section.id }} {
      min-height: 200px;
      text-align: center;
    }
  }

  @media (max-width: 768px) {
    .product-section-content-{{ section.id }} {
      padding: 0 16px;
    }

    .products-grid-{{ section.id }} {
      grid-template-columns: 1fr;
      gap: 16px;
    }

    .navigation-menu-{{ section.id }} {
      flex-direction: column;
      gap: 8px;
    }

    .promo-title-{{ section.id }} {
      font-size: 20px;
    }

    .section-title-{{ section.id }} {
      font-size: 20px;
    }
  }

  /* Animation for product switching */
  .products-grid-{{ section.id }} {
    animation: fadeIn-{{ section.id }} 0.3s ease-in-out;
  }

  @keyframes fadeIn-{{ section.id }} {
    from {
      opacity: 0;
      transform: translateY(10px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }