/*
 * HURIK — Categorías, subcategorías y listados.
 * CSS migrado desde product-list.tpl al <head>.
 * No modifica el diseño: únicamente adelanta su carga y elimina CSS inline del body.
 */

:root {
      --h3-ink: var(--hv-ink, #151515);
      --h3-muted: var(--hv-muted, #6f6a63);
      --h3-line: var(--hv-line, #e7e2da);
      --h3-soft: var(--hv-surface-soft, #f5f2ed);
      --h3-card: var(--hv-surface, #ffffff);
      --h3-green: #168747;
      --h3-red: #b42318;
    }

    body#category #wrapper > .container,
    body#search #wrapper > .container,
    body.page-category #wrapper > .container,
    body.page-search #wrapper > .container,
    body#category .hurik-header-inner,
    body#search .hurik-header-inner,
    body.page-category .hurik-header-inner,
    body.page-search .hurik-header-inner {
      width: 96% !important;
      max-width: none !important;
      margin-inline: auto !important;
      padding-inline: 0 !important;
      box-sizing: border-box !important;
    }

    body#category #content-wrapper,
    body#search #content-wrapper,
    body.page-category #content-wrapper,
    body.page-search #content-wrapper {
      width: 100% !important;
      max-width: none !important;
      flex: 0 0 100% !important;
      float: none !important;
      padding-inline: 0 !important;
    }

    .hurik-cat-container {
      width: 100%;
      max-width: none;
      margin: 0;
      padding: 0 0 30px;
      box-sizing: border-box;
    }

    .hurik-parent-category-context {
      width: 100%;
      margin: 0 0 16px;
      padding: 0;
    }

    .hurik-parent-category-tag {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      color: var(--h3-muted);
      font-size: 14px;
      font-weight: 650;
      line-height: 1.25;
      text-decoration: none;
    }

    .hurik-parent-category-tag svg {
      width: 15px;
      height: 15px;
      flex: 0 0 15px;
    }

    .hurik-parent-category-tag:hover,
    .hurik-parent-category-tag:focus-visible {
      color: var(--h3-ink);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .cat-page-header { padding: 4px 0 22px; }

    .cat-page-header h1 {
      margin: 0;
      color: var(--h3-ink);
      font-size: clamp(28px, 2.2vw, 38px);
      font-weight: 800;
      line-height: 1.08;
      letter-spacing: -0.04em;
    }

    .cat-page-description {
      max-width: 78ch;
      margin-top: 10px;
      color: var(--h3-muted);
      font-size: 15px;
      line-height: 1.6;
    }

    .cat-page-description > :first-child { margin-top: 0; }
    .cat-page-description > :last-child { margin-bottom: 0; }

    .subcat-grid {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 14px;
      margin-bottom: 24px;
    }

    .subcat-card {
      min-width: 0;
      display: grid;
      grid-template-columns: 72px minmax(0, 1fr);
      align-items: center;
      gap: 12px;
      min-height: 88px;
      padding: 8px;
      border: 1px solid var(--h3-line);
      border-radius: 14px;
      background: var(--h3-card);
      color: var(--h3-ink);
      text-decoration: none;
      transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    }

    .subcat-card:hover,
    .subcat-card:focus-visible {
      border-color: var(--hv-line-strong, #cfc7bc);
      box-shadow: var(--hv-shadow-sm, 0 10px 28px rgba(31, 24, 16, .08));
      transform: translateY(-2px);
    }

    .subcat-card-media {
      width: 72px;
      height: 72px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      border-radius: 10px;
      background: var(--h3-soft);
    }

    .subcat-card-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .subcat-placeholder {
      color: #938a7f;
      font-size: 26px;
      font-weight: 800;
    }

    .subcat-card-copy {
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .subcat-card-copy strong {
      overflow: hidden;
      color: inherit;
      font-size: 14px;
      line-height: 1.25;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .subcat-card-copy small { color: var(--h3-muted); font-size: 11px; }

    .mobile-filter-bar { display: none; }

    .hurik-filter-panel {
      margin-bottom: 20px;
      padding: 16px;
      border: 1px solid var(--h3-line);
      border-radius: 16px;
      background: var(--h3-card);
    }

    .hurik-filter-mobile-head { display: none; }

    .hurik-filter-grid,
    .hurik-native-facets #search_filters {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
    }

    .hurik-filter-group,
    .hurik-native-facets .facet {
      min-width: 0;
      padding: 12px;
      border: 1px solid var(--h3-line);
      border-radius: 12px;
      background: #fff;
    }

    .hurik-filter-group h2,
    .hurik-native-facets .facet-title,
    .hurik-native-facets .h6 {
      margin: 0 0 9px;
      color: var(--h3-ink);
      font-size: 13px;
      font-weight: 800;
    }

    .hurik-filter-options { display: grid; gap: 6px; }

    .hurik-filter-option {
      display: grid;
      grid-template-columns: 18px minmax(0, 1fr) auto;
      align-items: center;
      gap: 7px;
      min-height: 30px;
      color: var(--h3-muted);
      font-size: 12px;
      text-decoration: none;
    }

    .hurik-filter-option:hover,
    .hurik-filter-option.is-active { color: var(--h3-ink); }

    .hurik-filter-check {
      width: 16px;
      height: 16px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid #cbc4ba;
      border-radius: 4px;
      color: #111;
      font-size: 10px;
    }

    .hurik-filter-option.is-active .hurik-filter-check { background: #111; color: #fff; }
    .hurik-filter-label { overflow: hidden; text-overflow: ellipsis; }
    .hurik-filter-option small { color: #928b83; }

    .hurik-native-facets #search_filters_wrapper,
    .hurik-native-facets #search_filters,
    .hurik-native-facets .js-search-filters,
    .hurik-native-facets .search_filters,
    .hurik-native-facets .facets-container {
      display: block !important;
      width: 100% !important;
      max-width: none !important;
    }

    .hurik-native-facets .collapse { display: block !important; height: auto !important; }

    .hurik-native-facets .navbar-toggler,
    .hurik-native-facets .collapse-icons,
    .hurik-native-facets #search_filter_controls { display: none !important; }

    .hurik-products-layout { min-width: 0; }

    .hurik-list-toolbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 18px;
    }

    .result-count { color: var(--h3-muted); font-size: 13px; font-weight: 650; }

    .sort-control {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      color: var(--h3-muted);
      font-size: 12px;
    }

    .sort-select {
      min-width: 210px;
      height: 42px;
      padding: 0 38px 0 12px;
      border: 1px solid var(--h3-line);
      border-radius: 11px;
      background: #fff;
      color: var(--h3-ink);
      font-size: 13px;
    }

    .sort-select:focus {
      border-color: var(--hv-line-strong, #bdb4a8);
      outline: 3px solid rgba(154, 123, 63, .12);
    }

    /* Las tarjetas usan exactamente el mismo componente de la portada. */
    .hurik-listing-grid { align-items: stretch; }

    .hurik-listing-card { height: 100%; }

    .hurik-listing-card-link {
      height: 100%;
      display: flex;
      flex-direction: column;
      color: inherit;
      text-decoration: none !important;
    }

    .hurik-listing-card .hurik-fcard-body {
      flex: 1;
      display: flex;
      flex-direction: column;
    }

    .hurik-listing-meta {
      min-height: 17px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin: 0 0 8px;
      font-size: 10.5px;
      font-weight: 720;
      line-height: 1.2;
    }

    .hurik-listing-options { margin-left: auto; color: var(--h3-muted); font-weight: 650; }

    .hurik-listing-title {
      margin: 0;
      color: var(--hv-ink, #111);
      font-size: 16px;
      font-weight: 720;
      line-height: 1.35;
      letter-spacing: -0.018em;
    }

    .hurik-listing-price { margin-top: auto; padding-top: 14px; }

    /* Producto agotado: cambia solo su estado visual; la tarjeta base se conserva. */
    .hurik-listing-card--oos {
      background: #ededed !important;
    }

    .hurik-listing-card--oos .hurik-fcard-img {
      background: #e7e7e7 !important;
    }

    .hurik-listing-card--oos .hurik-fcard-img img {
      filter: grayscale(1);
      opacity: .52;
    }

    .hurik-listing-card--oos .hurik-fcard-body {
      background: #f2f2f2 !important;
    }

    .hurik-listing-card--oos .hurik-listing-title {
      color: #5f5f5f;
    }

    .hurik-listing-oos {
      margin-top: 12px;
      color: #555;
      font-size: 14px;
      font-weight: 800;
      line-height: 1.2;
      letter-spacing: .025em;
    }

    .hurik-listing-restock-date {
      margin-top: 5px;
      color: #777;
      font-size: 12px;
      font-weight: 650;
      line-height: 1.35;
    }

    .hurik-price-consult {
      color: #514c46;
      font-size: 14px;
      font-weight: 760;
      letter-spacing: -0.015em;
    }

    .hurik-listing-image-placeholder {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #81796f;
      font-size: 12px;
      font-weight: 700;
    }

    .empty-products {
      grid-column: 1 / -1;
      min-height: 220px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 7px;
      padding: 32px;
      border: 1px dashed #d9d2c8;
      border-radius: 16px;
      background: #fbfaf8;
      color: var(--h3-muted);
      text-align: center;
    }

    .empty-products strong { color: var(--h3-ink); font-size: 17px; }

    .hurik-pagination {
      display: flex;
      justify-content: center;
      padding: 28px 0 6px;
    }

    .hurik-pagination .pagination {
      width: auto !important;
      max-width: none !important;
      margin: 0 !important;
    }

    .hurik-list-end {
      margin: 20px 0 0;
      color: var(--h3-muted);
      font-size: 12px;
      line-height: 1.4;
      text-align: center;
    }

    .hurik-filter-overlay { display: none; }

    @media (max-width: 1199px) {
      .subcat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    }

    @media (max-width: 767px) {
      body#category #wrapper > .container,
      body#search #wrapper > .container,
      body.page-category #wrapper > .container,
      body.page-search #wrapper > .container,
      body#category .hurik-header-inner,
      body#search .hurik-header-inner,
      body.page-category .hurik-header-inner,
      body.page-search .hurik-header-inner {
        width: calc(100% - 24px) !important;
      }

      .cat-page-header { padding-bottom: 16px; }
      .cat-page-description { font-size: 14px; }

      .subcat-grid {
        display: flex;
        gap: 10px;
        overflow-x: auto;
        margin: 0 -12px 18px;
        padding: 0 12px 4px;
        scrollbar-width: none;
      }

      .subcat-grid::-webkit-scrollbar { display: none; }

      .subcat-card {
        flex: 0 0 240px;
        grid-template-columns: 64px minmax(0, 1fr);
        min-height: 78px;
      }

      .subcat-card-media { width: 64px; height: 64px; }

      .mobile-filter-bar {
        display: flex;
        justify-content: flex-end;
        margin-bottom: 12px;
      }

      .mobile-filter-btn {
        min-height: 40px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 0 14px;
        border: 1px solid #d9d2c8;
        border-radius: 10px;
        background: #fff;
        color: var(--h3-ink);
        font-size: 13px;
        font-weight: 750;
      }

      .mobile-filter-btn svg { width: 18px; height: 18px; }

      .hurik-filter-panel {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 100052;
        max-height: 84vh;
        margin: 0;
        padding: 18px 16px 28px;
        overflow-y: auto;
        border: 0;
        border-radius: 20px 20px 0 0;
        box-shadow: 0 -18px 48px rgba(0, 0, 0, .18);
        transform: translateY(105%);
        transition: transform .28s ease;
      }

      .hurik-filter-panel.is-open { transform: translateY(0); }

      .hurik-filter-mobile-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 14px;
      }

      .hurik-filter-mobile-head strong { color: var(--h3-ink); font-size: 17px; }

      .hurik-filter-mobile-head button {
        width: 38px;
        height: 38px;
        border: 1px solid #ded8d0;
        border-radius: 50%;
        background: #fff;
        color: #333;
        font-size: 25px;
        line-height: 1;
      }

      .hurik-filter-grid,
      .hurik-native-facets #search_filters { grid-template-columns: 1fr; }

      .hurik-filter-overlay {
        position: fixed;
        inset: 0;
        z-index: 100051;
        display: block;
        border: 0;
        background: rgba(0, 0, 0, .38);
        opacity: 0;
        visibility: hidden;
        transition: opacity .2s ease, visibility .2s ease;
      }

      .hurik-filter-overlay.is-open { opacity: 1; visibility: visible; }

      .hurik-list-toolbar { align-items: flex-end; padding-top: 6px; }
      .sort-control span { display: none; }
      .sort-select { min-width: 170px; max-width: 55vw; }
      .hurik-listing-title { font-size: 14px; }
      .hurik-listing-meta { font-size: 9.5px; }
      .hurik-listing-price { padding-top: 11px; }
      .hurik-price-consult { font-size: 12px; }
    }

    @media (max-width: 420px) {
      .result-count { font-size: 12px; }
      .sort-select { min-width: 150px; font-size: 12px; }
    }

/*
     * Una sola guía horizontal para cabecera, breadcrumb y listado.
     * 96% de ancho + 2% a cada lado = 100%.
     * No usa desplazamientos en píxeles ni compensa Bootstrap.
     */
    body#category,
    body#search,
    body.page-category,
    body.page-search {
      --hurik-page-width: 96%;
      --hurik-page-edge: 2%;
    }

    body#category .hurik-header-inner,
    body#search .hurik-header-inner,
    body.page-category .hurik-header-inner,
    body.page-search .hurik-header-inner,
    body#category .hurik-listing-root,
    body#search .hurik-listing-root,
    body.page-category .hurik-listing-root,
    body.page-search .hurik-listing-root {
      width: var(--hurik-page-width) !important;
      max-width: none !important;
      margin-left: var(--hurik-page-edge) !important;
      margin-right: var(--hurik-page-edge) !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
      box-sizing: border-box !important;
    }

    body#category .hurik-listing-root > .breadcrumb,
    body#search .hurik-listing-root > .breadcrumb,
    body.page-category .hurik-listing-root > .breadcrumb,
    body.page-search .hurik-listing-root > .breadcrumb,
    body#category .hurik-listing-root > .row,
    body#search .hurik-listing-root > .row,
    body.page-category .hurik-listing-root > .row,
    body.page-search .hurik-listing-root > .row,
    body#category .hurik-listing-root #content-wrapper,
    body#search .hurik-listing-root #content-wrapper,
    body.page-category .hurik-listing-root #content-wrapper,
    body.page-search .hurik-listing-root #content-wrapper,
    body#category .hurik-listing-root .hurik-cat-container,
    body#search .hurik-listing-root .hurik-cat-container,
    body.page-category .hurik-listing-root .hurik-cat-container,
    body.page-search .hurik-listing-root .hurik-cat-container {
      width: 100% !important;
      max-width: none !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
      box-sizing: border-box !important;
    }

    body#category .hurik-listing-root > .row,
    body#search .hurik-listing-root > .row,
    body.page-category .hurik-listing-root > .row,
    body.page-search .hurik-listing-root > .row {
      display: block !important;
    }

    body#category .hurik-listing-root #content-wrapper,
    body#search .hurik-listing-root #content-wrapper,
    body.page-category .hurik-listing-root #content-wrapper,
    body.page-search .hurik-listing-root #content-wrapper {
      float: none !important;
      flex: 0 0 100% !important;
    }

/* HURIK_CATEGORY_HEADER_STACKED_V1_BEGIN
 * Categoría:
 * título + descripción
 * imagen secundaria debajo
 * subcategorías después
 */
body#category .cat-page-header--category,
body.page-category .cat-page-header--category {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start !important;
  justify-items: stretch !important;
  gap: 18px !important;
}

/* La imagen nunca vuelve a ocupar una columna lateral. */
body#category .cat-page-header--category .cat-page-cover,
body.page-category .cat-page-header--category .cat-page-cover {
  order: 2 !important;
  width: min(100%, 720px) !important;
  max-width: 720px !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  justify-self: start !important;
  align-self: start !important;
}

body#category .cat-page-header--category .cat-page-cover picture,
body.page-category .cat-page-header--category .cat-page-cover picture {
  display: block !important;
  width: 100% !important;
}

body#category .cat-page-header--category .cat-page-cover img,
body.page-category .cat-page-header--category .cat-page-cover img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: left center !important;
}

/* Todo lo que no sea la imagen queda antes de ella. */
body#category .cat-page-header--category > :not(.cat-page-cover),
body.page-category .cat-page-header--category > :not(.cat-page-cover) {
  order: 1 !important;
  min-width: 0 !important;
}

@media (max-width: 767px) {
  body#category .cat-page-header--category,
  body.page-category .cat-page-header--category {
    gap: 14px !important;
  }

  body#category .cat-page-header--category .cat-page-cover,
  body.page-category .cat-page-header--category .cat-page-cover {
    width: 100% !important;
    max-width: 100% !important;
  }
}
/* HURIK_CATEGORY_HEADER_STACKED_V1_END */

/* HURIK_PASO5_LISTING_FROM_VISUAL */
/* HURIK FASE 3 ALINEACION v1.1.1 BEGIN
   Neutraliza los márgenes negativos de Bootstrap.
   Cabecera, breadcrumb, título, controles y tarjetas comparten la guía del 96%.
*/

body#category #wrapper > .container,
body#search #wrapper > .container,
body.page-category #wrapper > .container,
body.page-search #wrapper > .container {
  width: 96% !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* Esta fila causaba el desplazamiento de aproximadamente 15 px. */
body#category #wrapper > .container > .row,
body#search #wrapper > .container > .row,
body.page-category #wrapper > .container > .row,
body.page-search #wrapper > .container > .row {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

body#category #content-wrapper,
body#search #content-wrapper,
body.page-category #content-wrapper,
body.page-search #content-wrapper {
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

body#category .hurik-cat-container,
body#search .hurik-cat-container,
body.page-category .hurik-cat-container,
body.page-search .hurik-cat-container,
body#category .breadcrumb,
body#search .breadcrumb,
body.page-category .breadcrumb,
body.page-search .breadcrumb {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

/* Móvil: misma guía de 12 px utilizada por la portada. */
@media (max-width: 767px) {
  body#category #wrapper > .container,
  body#search #wrapper > .container,
  body.page-category #wrapper > .container,
  body.page-search #wrapper > .container {
    width: calc(100% - 24px) !important;
  }
}
/* HURIK_PASO5_LISTING_FROM_VISUAL_END */
