/* ============================================
   PROTEKIP - Products
   ============================================ */

/* Grid tipo catálogo — excluye swiper-wrapper para no romper carruseles */
body .js-product-table,
body .row-grid:not(.swiper-wrapper) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  justify-content: start !important;
  gap: 24px !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Respetar la cantidad de columnas configurada en TN admin
   TN asigna col-md-4 → 3 cols | col-md-3 → 4 cols | col-md-2-4 → 5 cols */
body .js-product-table:has(> .col-md-4.item-product),
body .row-grid:not(.swiper-wrapper):has(> .col-md-4.item-product) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body .js-product-table:has(> .col-md-3.item-product),
body .row-grid:not(.swiper-wrapper):has(> .col-md-3.item-product) {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body .js-product-table:has(> .col-md-2-4.item-product),
body .row-grid:not(.swiper-wrapper):has(> .col-md-2-4.item-product) {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

/* Resetear columnas Bootstrap */
body .row-grid:not(.swiper-wrapper) > .item-product,
body .js-product-table > .item-product {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background-color: transparent !important;
  outline: none !important;
}


/* Card: fondo plano para el área de contenido */
body .item-product .item {
  background: #1a1a1a !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 12px !important;
  overflow: hidden;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative;
}

body .item-product:hover .item {
  background: #1e1e1e !important;
}

/* Sin precio ni botón comprar (solo consultar): centrar imagen y título verticalmente */
body .item-product:not(:has(.item-price-container)):not(:has(.js-item-submit-container)) .item {
  justify-content: center !important;
}

/* Imagen — gradiente solo en el área de la foto del producto */
body .item-product .item-image {
  background: radial-gradient(ellipse at center, #888888 0%, #4a4a4a 60%, #252525 100%) !important;
  overflow: hidden;
  flex-shrink: 0;
}

body .item-product:hover .item-image {
  background: radial-gradient(ellipse at center, #999999 0%, #565656 60%, #2e2e2e 100%) !important;
}

body .item-product .js-item-image-padding {
  padding-bottom: 70% !important;
}

body .item-product .item-image img {
  object-fit: contain !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 90% !important;
  height: 90% !important;
}

body .item-product .item-image:not(.item-image-slider):hover img,
body .item-product .item-image-slider:hover .swiper-slide-active img {
  transform: translate(-50%, -50%) scale(1.04) !important;
}

/* Evitar que el slider muestre ambas imágenes a la vez */
body .item-product .item-image .swiper-container {
  overflow: hidden !important;
}

body .item-product .item-image .swiper-slide {
  overflow: hidden !important;
}

body .item-product .placeholder-fade {
  animation: none !important;
  background: transparent !important;
  opacity: 1 !important;
}

/* Controles de slider de imagen */
body .item-product .item-slider-pagination-container {
  display: none !important;
}

body .item-product .swiper-button-prev,
body .item-product .swiper-button-next {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 28px !important;
  height: 28px !important;
  background-color: rgba(0, 0, 0, 0.5) !important;
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.2s ease;
}

body .item-product:hover .swiper-button-prev,
body .item-product:hover .swiper-button-next {
  opacity: 1;
}

body .item-product .swiper-button-prev svg,
body .item-product .swiper-button-next svg {
  fill: #999999 !important;
  width: 14px !important;
  height: 14px !important;
}

body .item-product .swiper-button-prev:hover svg,
body .item-product .swiper-button-next:hover svg {
  fill: #ffffff !important;
}

/* Descripción: sin padding lateral — cada elemento hijo tiene su propio padding de 14px
   para que el botón Comprar y el botón Consultar (que está fuera) tengan exactamente el mismo ancho */
body .item-product .item-description {
  position: static !important;
  padding: 12px 0 0 !important;
  background: transparent !important;
  border: none !important;
  border-top: none !important;
  text-align: left !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  flex: 1 !important;
  min-height: 60px !important;
  margin-top: 0 !important;
  width: 100%;
}

/* Link wrapper */
body .item-product .item-link {
  display: flex !important;
  flex-direction: column !important;
  flex: 1;
  text-decoration: none !important;
  color: #ffffff !important;
  position: static !important;
  width: 100%;
}

/* El container que envuelve imagen + descripción es el punto de anclaje del título */
body .item-product .js-quickshop-container,
body .item-product .js-product-container {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

/* Override tema: quitar margin-bottom del .item */
body .item-product .item,
body .item-product .card {
  margin-bottom: 0 !important;
}

/* Nombre del producto — flota sobre la imagen (top del container) */
/* Ocultar el título original dentro de la descripción */
body .item-product .item-name,
body .item-product .js-item-name {
  display: none !important;
}

/* Título: estilos base compartidos (home y catálogo) */
body .item-product .protekip-item-title {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  color: #ffffff !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  background: transparent !important;
  flex-shrink: 0;
}

/* Título dentro de item-link (catálogo): barra roja + alineación izquierda */
body .item-product .item-link .protekip-item-title {
  text-align: left !important;
  padding: 0 14px 6px !important;
  margin-bottom: 6px !important;
  width: 100%;
  box-sizing: border-box !important;
}

body .item-product .item-link .protekip-item-title::before {
  content: '';
  display: block;
  width: 32px;
  height: 3px;
  background-color: var(--seif-red);
  margin-bottom: 8px;
}

/* Precio */
body .item-product .item-price-container {
  flex: 1;
  margin-bottom: 0 !important;
  background-color: transparent !important;
  border: none !important;
  border-top: none !important;
  text-align: left !important;
  width: 100%;
  padding: 0 14px !important;
  box-sizing: border-box !important;
}

/* Eliminar cualquier borde/separador del área de precio y descripción */
body .item-product .item-description,
body .item-product .item-link,
body .item-product .item-price-container > *,
body .item-product .d-block {
  border: none !important;
}

/* Precio compare — ocultar en el grid, se ve en detalle del producto */
body .item-product .js-compare-price-display,
body .item-product .price-compare {
  display: none !important;
}

/* Ocultar separadores y elementos vacíos de los SDK slots */
body .item-product .item-link hr,
body .item-product .item-link .separator {
  display: none !important;
}

body .item-product .item-price,
body .item-product .js-price-display {
  font-family: var(--font-heading) !important;
  font-size: 1.5rem !important;
  color: #ffffff !important;
  text-align: left !important;
}

body .item-product .price-compare {
  color: var(--seif-gray) !important;
  font-size: 0.8rem !important;
  text-decoration: line-through;
}

/* ============================================
   Botones de acción (Agregar al carrito / Consultar)
   ============================================ */

body .item-product .js-addtocart-placeholder,
body .item-product .btn-transition {
  display: none !important;
}

body .item-product .item-actions {
  display: flex !important;
  align-self: stretch !important;
  width: 100% !important;
  padding: 8px 14px 14px !important;
  box-sizing: border-box !important;
}

body .item-product .item-actions form.js-product-form {
  width: 100% !important;
  margin: 0 !important;
}

/* Botón Agregar al carrito + Consultar — mismo estilo */
body .item-product .protekip-comprar-btn,
body .item-product .protekip-consultar-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  background-color: var(--seif-red) !important;
  border: 1px solid var(--seif-red) !important;
  border-radius: 20px !important;
  padding: 10px 20px !important;
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.96rem !important;
  text-transform: uppercase !important;
  letter-spacing: 1px;
  color: #ffffff !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color 0.2s;
  box-sizing: border-box !important;
}

body .item-product .protekip-comprar-btn:hover,
body .item-product .protekip-consultar-btn:hover {
  background-color: var(--seif-red-hover) !important;
  color: #ffffff !important;
  transform: none !important;
  box-shadow: none !important;
}

body .item-product .protekip-btn-icon {
  flex-shrink: 0;
}

/* Labels de oferta */
body .item-product .item-label,
body .item-product .label-item {
  background-color: var(--seif-red) !important;
  color: #ffffff !important;
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.75rem !important;
  text-transform: uppercase;
  border-radius: 3px !important;
}

/* Pagination */
body .page-link,
body .pagination a {
  background-color: var(--seif-card) !important;
  border: 1px solid var(--seif-border) !important;
  color: #ffffff !important;
  border-radius: 6px !important;
  font-family: var(--font-heading) !important;
  font-weight: 600;
  padding: 8px 16px !important;
  transition: all 0.2s;
}

body .page-link:hover,
body .pagination a:hover,
body .page-link.active,
body .pagination a.active {
  background-color: var(--seif-red) !important;
  border-color: var(--seif-red) !important;
  color: #ffffff !important;
}

/* ============================================
   Responsive
   ============================================ */

@media (max-width: 1024px) {
  body .js-product-table:has(> .col-md-2-4.item-product),
  body .row-grid:not(.swiper-wrapper):has(> .col-md-2-4.item-product) {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  /* TN asigna col-6 → 2 cols mobile | col-12 → 1 col mobile */
  body .js-product-table:has(> .col-6.item-product),
  body .row-grid:not(.swiper-wrapper):has(> .col-6.item-product) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body .js-product-table:has(> .col-12.item-product),
  body .row-grid:not(.swiper-wrapper):has(> .col-12.item-product) {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body .item-product .item-price,
  body .item-product .js-price-display {
    font-size: 0.9rem !important;
  }

  body .item-product .protekip-comprar-btn,
  body .item-product .protekip-consultar-btn {
    font-size: 0.72rem !important;
    letter-spacing: 0.5px !important;
    padding: 9px 10px !important;
    gap: 5px !important;
    border-radius: 14px !important;
  }

  body .item-product .protekip-btn-icon {
    width: 15px !important;
    height: 15px !important;
  }

  body .item-product .protekip-item-title {
    font-size: 0.82rem !important;
    letter-spacing: 0.5px !important;
  }

  body .item-product .item-actions {
    padding: 6px 10px 10px !important;
  }

  body .item-product .item-link .protekip-item-title {
    padding: 0 10px 4px !important;
  }

  body .item-product .item-price-container {
    padding: 0 10px !important;
  }
}

@media (max-width: 480px) {
  body .js-product-table:has(> .col-6.item-product),
  body .row-grid:not(.swiper-wrapper):has(> .col-6.item-product) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  body .js-product-table:has(> .col-12.item-product),
  body .row-grid:not(.swiper-wrapper):has(> .col-12.item-product) {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
}

/* ============================================
   PROTEKIP - Productos similares (slider)
   ============================================ */

/* Igualar altura de todos los slides */
.swiper-products-slider {
  align-items: stretch !important;
}

/* height: auto permite que align-items: stretch fije la altura al slide más alto */
.swiper-products-slider .swiper-slide {
  height: auto !important;
}

/* .item llena el 100% del slide (que ya tiene altura definida por stretch) */
.swiper-products-slider .swiper-slide .item {
  height: 100% !important;
}

/* Título de la sección */
.section-products-related h3,
.section-products-related .h3 {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 1.6rem !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  border-left: 4px solid var(--seif-red) !important;
  padding-left: 14px !important;
  margin-bottom: 28px !important;
}

/* ============================================
   PROTEKIP - Category Header
   ============================================ */

.protekip-cat-header {
  position: relative;
}

.protekip-cat-header .js-category-controls,
.protekip-cat-header .category-controls-container,
.protekip-cat-header .category-controls-row {
  background: none !important;
}

.protekip-cat-bar {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 20px 0 16px;
}

.protekip-cat-title {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 2.2rem !important;
  color: #ffffff !important;
  text-transform: uppercase !important;
  letter-spacing: 2px;
  margin: 0 !important;
  padding-left: 14px !important;
  border-left: 4px solid var(--seif-red) !important;
  line-height: 1.2;
}

/* Controles (Ordenar / Filtrar) inline a la derecha */
.protekip-cat-header .container {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap;
  margin-top: 30px;
}

.protekip-cat-header .protekip-cat-bar {
  flex: 1;
}

.protekip-cat-header .js-category-controls {
  display: flex !important;
  position: static !important;
  flex-shrink: 0;
  padding: 0 !important;
  margin: 0 !important;
}

.protekip-cat-header .category-controls-container {
  padding: 0 !important;
  max-width: none !important;
  width: auto !important;
}

.protekip-cat-header .category-controls-row {
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 0 !important;
}

.protekip-cat-header .category-control-item {
  padding: 0 0 0 12px !important;
}

.protekip-cat-header .category-control-item a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #aaaaaa !important;
  font-family: var(--font-heading) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  font-size: 0.75rem !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 1px solid #3a3a3a !important;
  border-radius: 20px !important;
  padding: 7px 16px 7px 12px !important;
  box-shadow: none !important;
  transition: border-color 0.2s, color 0.2s !important;
}

.protekip-cat-header .category-control-item a:hover {
  color: #ffffff !important;
  border-color: #666666 !important;
  text-decoration: none !important;
}

.protekip-cat-header .category-control-item a svg {
  fill: var(--seif-red) !important;
  color: var(--seif-red) !important;
  stroke: var(--seif-red) !important;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  /* Apilar título + controles en columna */
  .protekip-cat-header .container {
    flex-direction: column !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
    margin-top: 0px !important;
  }

  .protekip-cat-title {
    font-size: 1.4rem !important;
    letter-spacing: 1px !important;
  }

  .protekip-cat-bar {
    padding: 35px 0 20px !important;
    flex: unset !important;
    width: 100% !important;
  }

  /* Controles (Ordenar / Filtrar) debajo del título */
  .protekip-cat-header .js-category-controls {
    width: 100% !important;
    padding: 8px 0 12px !important;
    flex-shrink: unset !important;
  }

  .protekip-cat-header .category-controls-row {
    justify-content: flex-start !important;
  }

  .protekip-cat-header .category-control-item {
    padding: 0 20px 0 0 !important;
  }

  /* Subtítulo mobile */
  .protekip-search-subtitle {
    font-size: 0.75rem !important;
    margin: 4px 0 0 18px !important;
  }
}

/* Subtítulo de búsqueda */
.protekip-search-subtitle {
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 6px 0 0 18px;
  padding: 0;
  line-height: 1.4;
}

.protekip-search-subtitle strong {
  color: #cccccc;
  font-weight: 700;
}

/* Mobile búsqueda */
@media (max-width: 768px) {
  .protekip-search-subtitle {
    font-size: 0.78rem;
    margin: 4px 0 0 14px;
  }
}

/* ============================================
   PROTEKIP - Detalle de producto
   ============================================ */

/* ---- Layout general ---- */

.template-product #single-product {
  padding-bottom: 10px !important;
}

.template-product #single-product > .container > .row {
  align-items: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 40px !important;
}

/* Columna izquierda (imagen) — ocupa el alto disponible de pantalla, sticky al scroll */
.template-product #single-product .col-md-7 {
  padding-right: 20px !important;
  padding-bottom: 0 !important;
  flex: 0 0 50% !important;
  max-width: 50% !important;
  align-self: flex-start !important;
  position: sticky !important;
  top: 70px !important;
  height: calc(100vh - 190px) !important;
  margin-bottom: 30px !important;
}

/* Columna derecha (info) */
.template-product #single-product > .container > .row > .col {
  padding-left: 0;
  flex: 1 !important;
  min-width: 0;
}

/* ---- Card de imagen ---- */

.template-product [data-store^="product-image-"] {
  flex-direction: column !important;
  background: radial-gradient(ellipse at center, #888888 0%, #4a4a4a 60%, #252525 100%) !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 12px !important;
  overflow: visible !important;
  padding: 20px 20px 16px !important;
  height: 100% !important;
  box-sizing: border-box !important;
}

/* Imagen principal: order 1, ancho completo, crece para llenar el espacio de la card */
.template-product [data-store^="product-image-"] > .col-md {
  order: 1 !important;
  flex: 1 !important;
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
}

/* Swiper principal: fill available height */
.template-product [data-store^="product-image-"] > .col-md .swiper-container {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.template-product [data-store^="product-image-"] > .col-md .swiper-wrapper {
  flex: 1 !important;
  height: 100% !important;
}

.template-product [data-store^="product-image-"] > .col-md .swiper-slide {
  height: 100% !important;
}

/* Slide link: sin padding-bottom fijo — llena el espacio flex disponible */
.template-product .js-product-slide-link {
  padding-bottom: 0 !important;
  flex: 1 !important;
  height: 100% !important;
  min-height: 220px !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  background: transparent !important;
  display: flex !important;
}

/* Imagen centrada con contain — el gradiente se ve alrededor */
.template-product .product-slider-image {
  object-fit: contain !important;
  background-color: transparent !important;
}

/* Thumbnails: debajo (order 2), ancho completo */
.template-product [data-store^="product-image-"] > .col-md-auto {
  order: 2 !important;
  flex: none !important;
  max-width: 100% !important;
  width: 100% !important;
  padding: 14px 0 0 !important;
  margin-top: 0 !important;
}

/* Ocultar flechas verticales del swiper de thumbs */
.template-product .swiper-product-thumb-control {
  display: none !important;
}

/* Forzar thumbs horizontal */
.template-product .product-thumbs-container {
  width: 100% !important;
}

.template-product .swiper-product-thumb {
  height: auto !important;
  overflow: hidden !important;
}

.template-product .js-swiper-product-thumbs .swiper-wrapper {
  flex-direction: row !important;
  height: auto !important;
}

.template-product .js-swiper-product-thumbs .swiper-slide {
  width: auto !important;
  height: auto !important;
  margin-right: 8px !important;
}

/* Thumbnail: tamaño fijo 72×72 */
.template-product .product-thumb {
  width: 72px !important;
  height: 72px !important;
  padding-bottom: 0 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  border: 2px solid #333333 !important;
  transition: border-color 0.2s !important;
}

.template-product .product-thumb img {
  width: 72px !important;
  height: 72px !important;
  object-fit: cover !important;
}

.template-product .product-thumb.selected,
.template-product .product-thumb:hover {
  border-color: var(--seif-red) !important;
}

/* ---- Card de información (columna derecha) ---- */

.template-product [data-store^="product-info"] {
  background: #2a2a2a !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 12px !important;
  padding: 28px !important;
  box-sizing: border-box !important;
  position: relative !important;
}

/* Quitar paddings de Bootstrap — el card ya los provee */
.template-product [data-store^="product-info"] .pt-md-3 {
  padding-top: 0 !important;
}

.template-product [data-store^="product-info"] .px-md-3 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.template-product [data-store^="product-description"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}

/* ---- Breadcrumb original: oculto (reemplazado por protekip-product-nav) ---- */

.template-product .page-header {
  padding: 0 0 6px !important;
}

.template-product .page-header .breadcrumbs {
  display: none !important;
}

/* ---- Barra de navegación superior del producto ---- */

.protekip-product-nav {
  padding: 20px 0;
  margin-bottom: 0;
}

.protekip-product-nav .container {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.protekip-product-back {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #888888;
  font-size: 0.8rem;
  font-family: var(--font-heading);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s;
}

.protekip-product-back:hover {
  color: #cccccc;
  text-decoration: none;
}

.protekip-product-nav-sep {
  color: #3a3a3a;
  font-size: 0.9rem;
}

.protekip-product-crumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  overflow: hidden;
}

.protekip-product-crumbs a {
  color: var(--seif-red);
  font-size: 0.8rem;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s;
}

.protekip-product-crumbs a:hover {
  color: var(--seif-red);
  opacity: 0.75;
}

.protekip-crumb-sep {
  color: #555555;
  font-size: 0.85rem;
}

.protekip-crumb-active {
  color: var(--seif-red);
  font-size: 0.8rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 260px;
}

/* Share button en el nav bar */
.protekip-nav-share {
  margin-left: auto;
  position: relative;
}

/* ---- Título del producto ---- */

.template-product .js-product-name {
  font-family: var(--font-heading) !important;
  font-size: 1.8rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  line-height: 1.15 !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Línea roja corta bajo el título */
.template-product .js-product-name::after {
  content: '';
  display: block;
  width: 40px;
  height: 3px;
  background: var(--seif-red);
  margin-top: 12px;
  margin-bottom: 16px;
}

/* ---- Precio ---- */

.template-product #price_display {
  font-family: var(--font-heading) !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: #ffffff !important;
}

.template-product .price-container {
  margin-bottom: 12px !important;
}

/* ---- Fila cantidad + botón ---- */

.template-product #product_form .row.no-gutters {
  align-items: stretch !important;
}

/* Separación entre input y botón */
.template-product #product_form .row.no-gutters .col-8 {
  padding-left: 12px !important;
}

/* Input de cantidad: llenar el alto de la fila */
.template-product #product_form .js-quantity,
.template-product #product_form .js-quantity .input-group {
  height: 100% !important;
}

/* ---- Botón principal ---- */

.template-product .btn-add-to-cart {
  border-radius: 6px !important;
  padding: 10px 0 30px !important;
  font-size: 0.95rem !important;
  letter-spacing: 2px !important;
  margin-top: 0 !important;
  height: 70% !important;
}

.template-product .js-addtocart:hover,
.template-product .js-prod-submit-form:hover {
  transform: none !important;
  box-shadow: none !important;
}

/* ---- Descripción ---- */

.template-product [data-store^="product-description"] h6 {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  border-bottom: 1px solid #2a2a2a !important;
  padding-bottom: 12px !important;
  margin-bottom: 1px !important;
  margin-top: 1px !important;
}

.template-product .user-content {
  color: #cccccc !important;
  font-size: 0.88rem !important;
  line-height: 1.8 !important;
}

.template-product .user-content strong,
.template-product .user-content b {
  color: #e8e8e8 !important;
  font-family: var(--font-heading) !important;
  text-transform: uppercase !important;
  font-size: 0.92rem !important;
  letter-spacing: 1px !important;
}

/* ---- Social share: icono flotante esquina superior derecha ---- */

.template-product .social-share {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.template-product .social-share .btn-link {
  font-size: 0.75rem !important;
  color: #555555 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  font-family: var(--font-heading) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.template-product .social-share .js-tooltip-open {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: #888888 !important;
  background: #232323 !important;
  border: 1px solid #333333 !important;
  border-radius: 20px !important;
  padding: 6px 14px 6px 10px !important;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}

.template-product .social-share .js-tooltip-open:hover {
  border-color: #555555 !important;
  color: #cccccc !important;
}

.template-product .social-share .js-tooltip-open svg {
  margin: 0 !important;
  width: 16px !important;
  height: 16px !important;
}

/* Tooltip del share: panel ancho con redes + URL */
.template-product .social-share .tooltip {
  right: 0 !important;
  left: auto !important;
  width: 300px !important;
  padding: 0 !important;
  background: #2c2c2c !important;
  border: 1px solid #444444 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6) !important;
  position: absolute !important;
}

.template-product .social-share .tooltip .js-tooltip-close {
  position: absolute !important;
  top: 10px !important;
  right: 12px !important;
  color: #666666 !important;
  line-height: 1 !important;
  padding: 4px !important;
}

.template-product .social-share .tooltip .js-tooltip-close:hover {
  color: #aaaaaa !important;
}

.template-product .social-share .tooltip .js-tooltip-close svg {
  width: 14px !important;
  height: 14px !important;
}

/* Redes sociales en fila con icono + label */
.protekip-share-networks {
  display: flex !important;
  gap: 6px !important;
  padding: 16px 16px 12px !important;
  flex-wrap: wrap !important;
}

.protekip-share-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
  text-decoration: none !important;
  min-width: 56px !important;
}

.protekip-share-icon {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  transition: opacity 0.15s !important;
}

.protekip-share-item:hover .protekip-share-icon {
  opacity: 0.85 !important;
}

.protekip-share-label {
  font-size: 0.68rem !important;
  color: #888888 !important;
  font-family: var(--font-body) !important;
  white-space: nowrap !important;
}

/* Barra de URL + Copiar */
.protekip-share-url-bar {
  display: flex !important;
  align-items: center !important;
  background: #222222 !important;
  border-top: 1px solid #444444 !important;
  border-radius: 0 0 12px 12px !important;
  padding: 10px 14px !important;
  gap: 10px !important;
}

.protekip-share-url-text {
  flex: 1 !important;
  font-size: 0.72rem !important;
  color: #666666 !important;
  font-family: var(--font-body) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.protekip-copy-link-btn {
  background: #3a3a3a !important;
  border: none !important;
  border-radius: 6px !important;
  color: #cccccc !important;
  font-family: var(--font-heading) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
  padding: 6px 12px !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: background 0.15s !important;
}

.protekip-copy-link-btn:hover {
  background: #4a4a4a !important;
}

/* ---- Share en nav bar (mayor especificidad para override de position:absolute) ---- */

.template-product .protekip-product-nav .protekip-nav-share .social-share {
  position: static !important;
  top: auto !important;
  right: auto !important;
  margin: 0 !important;
}

.template-product .protekip-product-nav .protekip-nav-share .social-share > span {
  position: relative !important;
}

.template-product .protekip-product-nav .protekip-nav-share .social-share .tooltip {
  top: calc(100% + 8px) !important;
  right: 0 !important;
  left: auto !important;
}

/* ---- Variante como selector (>3 opciones) ---- */

.template-product .protekip-variant-select-group {
  display: block !important;
  margin-bottom: 12px !important;
}

.template-product .protekip-variant-select-group .form-label {
  display: block !important;
  font-family: var(--font-heading) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: #888888 !important;
  margin-bottom: 6px !important;
}

.template-product .protekip-variant-select-group .form-select {
  width: 100% !important;
  background-color: #1e1e1e !important;
  border: 1px solid #3a3a3a !important;
  border-radius: 6px !important;
  color: #ffffff !important;
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  padding: 10px 36px 10px 14px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer !important;
  transition: border-color 0.2s !important;
  height: auto !important;
}

.template-product .protekip-variant-select-group .form-select:hover,
.template-product .protekip-variant-select-group .form-select:focus {
  border-color: var(--seif-red) !important;
  outline: none !important;
  box-shadow: none !important;
}

.template-product .protekip-variant-select-group .form-select option {
  background-color: #1e1e1e !important;
  color: #ffffff !important;
}

.template-product .protekip-variant-select-group .form-select-icon {
  position: absolute !important;
  right: 14px !important;
  bottom: 0 !important;
  top: auto !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  transform: none !important;
  pointer-events: none !important;
  color: #888888 !important;
}

.template-product .protekip-variant-select-group .form-group {
  position: relative !important;
  margin-bottom: 0 !important;
}

/* ---- Botones ficha técnica ---- */

.template-product .protekip-ficha-btns {
  display: flex !important;
  gap: 10px !important;
  margin-top: 16px !important;
}

.template-product .protekip-download-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  flex: 1 !important;
  padding: 10px 16px !important;
  border-radius: 6px !important;
  font-family: var(--font-heading) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
  box-sizing: border-box !important;
}

.template-product .protekip-ficha-ver {
  background: transparent !important;
  border: 1px solid #3a3a3a !important;
  color: #777777 !important;
}

.template-product .protekip-ficha-ver:hover {
  border-color: #666666 !important;
  color: #cccccc !important;
  text-decoration: none !important;
}

.template-product .protekip-ficha-descargar {
  background: var(--seif-red) !important;
  border: 1px solid var(--seif-red) !important;
  color: #ffffff !important;
}

.template-product .protekip-ficha-descargar:hover {
  background: #cc0000 !important;
  border-color: #cc0000 !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

@media (max-width: 576px) {
  .template-product .protekip-ficha-btns {
    flex-direction: column !important;
  }
}

/* ---- Responsive detalle ---- */

@media (max-width: 991px) {
  .template-product #single-product > .container > .row {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
  }

  .template-product #single-product .col-md-7 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding-right: 15px !important;
    padding-bottom: 0 !important;
  }

  .template-product #single-product > .container > .row > .col {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  .template-product [data-store^="product-image-"] {
    height: auto !important;
  }

  .template-product [data-store^="product-image-"] > .col-md {
    flex: none !important;
  }

  .template-product [data-store^="product-image-"] > .col-md .swiper-container {
    flex: none !important;
    height: auto !important;
  }

  .template-product [data-store^="product-image-"] > .col-md .swiper-wrapper {
    height: auto !important;
  }

  .template-product [data-store^="product-image-"] > .col-md .swiper-slide {
    height: auto !important;
  }

  .template-product .js-product-slide-link {
    padding-bottom: 70% !important;
    flex: none !important;
    height: auto !important;
  }

  .template-product [data-store^="product-info"] {
    margin-top: 16px !important;
  }
}

@media (max-width: 576px) {
  .template-product [data-store^="product-image-"] {
    padding: 16px 16px 12px !important;
    border-radius: 8px !important;
  }

  .template-product [data-store^="product-info"] {
    padding: 20px !important;
    border-radius: 8px !important;
  }

  .template-product .js-product-name {
    font-size: 1.6rem !important;
  }

  .template-product .product-thumb {
    width: 56px !important;
    height: 56px !important;
  }

  .template-product .product-thumb img {
    width: 56px !important;
    height: 56px !important;
  }
}

/* ============================================
   Collapsible description + gap fix
   ============================================ */

/* Fix empty gap from hidden price container and form top margin */
.template-product #product_form { margin-top: 8px !important; }
.template-product .js-price-container { margin-bottom: 0 !important; }

/* Collapsible description body */
.template-product .protekip-desc-body {
  max-height: 200px;
  overflow: hidden;
  position: relative;
  transition: max-height 0.4s ease;
}

.template-product .protekip-desc-body.is-truncated::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 100px;
  background: linear-gradient(to bottom, rgba(26,26,26,0) 0%, rgba(26,26,26,0.7) 50%, rgba(26,26,26,1) 100%);
  pointer-events: none;
}

.template-product .protekip-desc-body.expanded {
  max-height: 2000px;
}

.template-product .protekip-desc-body.expanded::after {
  display: none;
}

/* ============================================
   PROTEKIP - Páginas de Solución
   ============================================ */

.protekip-solucion-page {
  padding: 48px 0 0;
}

/* Encabezado: título + controles en fila */
.protekip-cat-header-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 15px;
}

.protekip-cat-header-inner .protekip-cat-bar {
  flex: 1;
  padding: 0;
}

.protekip-cat-header-inner .js-category-controls {
  display: flex !important;
  position: static !important;
  flex-shrink: 0;
  padding: 0 !important;
}

.protekip-cat-header-inner .category-controls-container {
  padding: 0 !important;
  max-width: none !important;
}

.protekip-cat-header-inner .category-controls-row {
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 0 !important;
}

.protekip-cat-header-inner .category-control-item {
  padding: 0 0 0 12px !important;
}

.protekip-cat-header-inner .category-control-item a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: var(--seif-white) !important;
  font-family: var(--font-heading) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  font-size: 0.78rem !important;
  text-decoration: none !important;
  background: #0c0c0c !important;
  border: 1px solid #333333 !important;
  border-radius: 6px !important;
  padding: 8px 14px !important;
  box-shadow: none !important;
  transition: border-color 0.2s !important;
}

.protekip-cat-header-inner .category-control-item a:hover {
  border-color: #555555 !important;
}

.protekip-cat-header-inner .category-control-item a svg {
  fill: var(--seif-red) !important;
  color: var(--seif-red) !important;
  stroke: var(--seif-red) !important;
  flex-shrink: 0;
}

/* Párrafo intro: fuera del bloque gris */
.protekip-solucion-intro {
  margin-bottom: 0;
}

.protekip-solucion-intro p {
  font-family: var(--font-body);
  font-size: 1rem;
  color: #aaaaaa;
  line-height: 1.75;
  margin-bottom: 12px;
}

/* Estilos de encabezado y lista también en intro (fallback si el split no funciona) */
.protekip-solucion-intro h2,
.protekip-solucion-intro h3 {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 1.5rem !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  border-left: 5px solid var(--seif-red) !important;
  padding: 0 0 0 16px !important;
  margin: 28px 0 20px !important;
}

.protekip-solucion-intro ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.protekip-solucion-intro ul li {
  list-style: none !important;
  position: relative !important;
  display: block !important;
  padding-left: 20px !important;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: #aaaaaa;
  line-height: 1.65;
}

.protekip-solucion-intro ul li::marker {
  content: '' !important;
}

.protekip-solucion-intro ul li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 6px !important;
  display: block !important;
  width: 8px;
  height: 8px;
  border-right: 2.5px solid var(--seif-red);
  border-top: 2.5px solid var(--seif-red);
  transform: rotate(45deg);
}

.protekip-solucion-intro ul li strong {
  display: block;
  color: #ffffff !important;
  font-family: var(--font-heading);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}

/* Bloque "Qué necesitás": fondo gris ancho completo */
.protekip-solucion-content {
  background: #272727;
  border-top: 1px solid #333333;
  border-bottom: 1px solid #333333;
  padding: 10px 0;
  margin-top: 40px;
  margin-bottom: 40px;
}

.protekip-solucion-content h2,
.protekip-solucion-content h3 {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 1.4rem !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  border-left: 5px solid var(--seif-red) !important;
  padding: 0 0 0 16px !important;
  margin: 0 0 0 !important;
}

.protekip-solucion-content ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.protekip-solucion-content ul li {
  list-style: none !important;
  position: relative !important;
  display: block !important;
  padding-left: 20px !important;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: #aaaaaa;
  line-height: 1.6;
}

.protekip-solucion-content ul li::marker {
  content: '' !important;
}

.protekip-solucion-content ul li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 6px !important;
  display: block !important;
  width: 8px;
  height: 8px;
  border-right: 2.5px solid var(--seif-red);
  border-top: 2.5px solid var(--seif-red);
  transform: rotate(45deg);
}

.protekip-solucion-content ul li strong {
  display: block;
  color: #ffffff !important;
  font-family: var(--font-heading);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 2px;
}

@media (max-width: 768px) {
  .protekip-solucion-content {
    padding: 32px 0;
    margin-top: 28px;
  }

  .protekip-solucion-content h2,
  .protekip-solucion-content h3 {
    font-size: 1.2rem !important;
  }
}

/* Título "Productos recomendados" + botones filtros en la misma línea */

.protekip-solucion-productos-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
  margin-top: 40px;
}

/* Botones Ordenar / Filtrar dentro de la sección de productos recomendados */
.protekip-solucion-productos-header .js-category-controls {
  display: flex !important;
  position: static !important;
  padding: 0 !important;
  margin: 0 !important;
}

.protekip-solucion-productos-header .category-controls-container {
  padding: 0 !important;
  max-width: none !important;
  width: auto !important;
}

.protekip-solucion-productos-header .category-controls-row {
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
}

.protekip-solucion-productos-header .category-control-item {
  padding: 0 !important;
}

.protekip-solucion-productos-header .category-control-item a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #aaaaaa !important;
  font-family: var(--font-heading) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  font-size: 0.75rem !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 1px solid #3a3a3a !important;
  border-radius: 20px !important;
  padding: 7px 16px 7px 12px !important;
  transition: border-color 0.2s, color 0.2s !important;
}

.protekip-solucion-productos-header .category-control-item a:hover {
  color: #ffffff !important;
  border-color: #666666 !important;
  text-decoration: none !important;
}

.protekip-solucion-productos-header .category-control-item a svg {
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0 !important;
}

.protekip-solucion-productos-title {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 1.4rem !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  border-left: 4px solid var(--seif-red) !important;
  padding-left: 14px !important;
  margin-bottom: 0 !important;
  margin-top: 0 !important;
}

/* Mobile */
@media (max-width: 768px) {
  .protekip-solucion-page {
    padding: 24px 0 16px;
  }

  .protekip-cat-header-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 10px;
  }

  .protekip-cat-header-inner .protekip-cat-bar {
    padding: 0;
  }

  .protekip-cat-header-inner .js-category-controls {
    width: 100% !important;
    padding: 4px 0 0 !important;
  }

  .protekip-cat-header-inner .category-controls-row {
    justify-content: flex-start !important;
  }

  .protekip-cat-header-inner .category-control-item {
    padding: 0 12px 0 0 !important;
  }

  .protekip-solucion-intro p {
    font-size: 0.9rem;
  }

  .protekip-solucion-content {
    margin-top: 24px;
    margin-bottom: 24px;
    padding: 24px 0;
  }

  .protekip-solucion-content h2,
  .protekip-solucion-content h3 {
    font-size: 1.1rem !important;
    margin-bottom: 20px !important;
  }

  .protekip-solucion-content ul {
    gap: 16px;
  }

  .protekip-solucion-content ul li {
    font-size: 0.9rem;
  }

  .protekip-solucion-productos-title {
    font-size: 1.1rem !important;
    margin-top: 28px !important;
    margin-bottom: 18px !important;
  }
}

/* ---- Sección Consulta Mayorista ---- */
.protekip-mayorista {
  background: #161616;
  border-top: 1px solid #2a2a2a;
  padding: 48px 0;
  margin-bottom: -50px;
}

.protekip-mayorista-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
}

.protekip-mayorista-title {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 1.4rem !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  border-left: 4px solid var(--seif-red) !important;
  padding-left: 14px !important;
  margin: 0 0 6px !important;
}

.protekip-mayorista-sub {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: #888888;
  margin: 0;
  padding-left: 18px;
}

.protekip-mayorista-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background-color: #25D366;
  color: #ffffff !important;
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  text-decoration: none !important;
  padding: 13px 24px;
  border-radius: 6px;
  white-space: nowrap;
  transition: background-color 0.2s;
  flex-shrink: 0;
}

.protekip-mayorista-btn:hover {
  background-color: #1ebe5a !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

@media (max-width: 768px) {
  .protekip-mayorista {
    padding: 28px 0;
  }

  .protekip-mayorista-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .protekip-mayorista-title {
    font-size: 1.1rem !important;
    letter-spacing: 1px !important;
  }

  .protekip-mayorista-btn {
    width: 100%;
    justify-content: center;
    white-space: normal !important;
    text-align: center;
    letter-spacing: 0.8px !important;
    font-size: 0.78rem !important;
    padding: 13px 16px;
    line-height: 1.4;
  }
}

/* Toggle button */
.template-product .protekip-desc-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid #3a3a3a;
  border-radius: 20px;
  color: #aaaaaa;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  cursor: pointer;
  padding: 6px 16px 6px 14px;
  margin: 10px 0 0;
  transition: border-color 0.2s, color 0.2s;
}

.template-product .protekip-desc-toggle:hover {
  border-color: var(--seif-red);
  color: var(--seif-red);
}

.template-product .protekip-desc-toggle svg {
  transition: transform 0.3s ease;
}

.template-product .protekip-desc-toggle.expanded svg {
  transform: rotate(180deg);
}