/**
 * MB Buscador Rapido 1.8.1 - experiencia de busqueda inmersiva.
 *
 * La capa vive directamente bajo <body> y se blinda contra el CSS del tema.
 * Escritorio y movil usan la misma idea: buscador propio arriba, contenido
 * util debajo y nada de mini desplegables estrechos.
 */

.mbsearch-layer {
    --mb-bg: #fff;
    --mb-fg: #101828;
    --mb-muted: #667085;
    --mb-muted-2: #98a2b3;
    --mb-border: #eaecf0;
    --mb-hover: #f7f9fc;
    --mb-soft: #f4f7fb;
    --mb-accent: #2164da;
    --mb-accent-strong: #1754be;
    --mb-mark: #2567c9;
    --mb-max: 1480px;
    --mb-shadow: 0 22px 70px rgba(15, 23, 42, .18);

    position: fixed;
    inset: 0;
    /* El maximo que admite un z-index, y hace falta entero.
       Medido en la tienda: el lanzador de Oct8ne es
       <chat-oct8ne id="livechat-wrapper"> y se pone en 2147483646, asi que con
       los 2147483000 de antes quedaba por encima de la capa. En movil eso
       dejaba el boton de "Ver los N resultados" tapado por la burbuja del chat
       y por el sello de opiniones, justo en la esquina donde hay que pulsar.
       Los navegadores recortan cualquier valor mayor que este, de modo que
       nada puede ponerse por delante. */
    z-index: 2147483647;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--mb-bg);
    color: var(--mb-fg);
    box-shadow: var(--mb-shadow);
    border-top: 3px solid var(--mb-accent);
    overflow: hidden;
    text-align: left;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;
}

.mbsearch-layer[hidden],
.mbsearch-layer [hidden],
.mbsearch-backdrop[hidden] {
    display: none !important;
}

.mbsearch-layer *,
.mbsearch-layer *::before,
.mbsearch-layer *::after {
    box-sizing: border-box;
}

.mbsearch-layer button::before,
.mbsearch-layer button::after,
.mbsearch-layer a::before,
.mbsearch-layer a::after,
.mbsearch-layer li::before,
.mbsearch-layer li::after {
    content: none !important;
    display: none !important;
}

.mbsearch-layer button,
.mbsearch-layer a,
.mbsearch-layer input {
    text-transform: none !important;
    letter-spacing: normal !important;
    text-indent: 0 !important;
    box-shadow: none !important;
    float: none !important;
    font-family: inherit;
}

.mbsearch-layer button {
    appearance: none;
    -webkit-appearance: none;
    margin: 0;
    min-width: 0;
    min-height: 0;
    width: auto;
    height: auto;
    white-space: nowrap;
}

.mbsearch-layer img {
    max-width: 100%;
    border: 0;
}

/* El autocompletado que trae el tema para la misma caja.
   El JS marca su contenedor al engancharse. Sin esto se veian dos buscadores
   a la vez —el nuestro a pantalla completa y el del tema colgando de la
   cabecera— y al cerrar el nuestro el suyo se quedaba abierto ahi debajo. */
.mbsearch-tema-anulado > .ac_results,
.mbsearch-tema-anulado > .lps_results,
.mbsearch-tema-anulado > .ui-autocomplete,
.mbsearch-tema-anulado > .leoproductsearch-loading,
.mbsearch-tema-anulado .ac_results,
.mbsearch-tema-anulado .lps_results,
.mbsearch-tema-anulado .leoproductsearch-loading {
    display: none !important;
}

.mbsearch-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2147483646;
    background: rgba(15, 23, 42, .34);
}

body.mbsearch-locked {
    position: fixed;
    left: 0;
    right: 0;
    width: 100%;
    overflow: hidden;

    /* El JS añade un padding-right igual al ancho de la barra de
       desplazamiento que acaba de desaparecer. Sin border-box ese relleno se
       sumaria al 100% en vez de descontarse, y la cabecera seguiria saltando
       al abrir la capa. */
    box-sizing: border-box;
}

/* ---------------------------------------------------------- cabecera */

.mbsearch-head {
    position: relative;
    z-index: 8;
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 0 0 auto;
    width: 100%;
    padding: 19px max(24px, calc((100vw - var(--mb-max)) / 2));
    border-bottom: 1px solid var(--mb-border);
    background: rgba(255, 255, 255, .98);
}

.mbsearch-back,
.mbsearch-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 0 0 auto;
    padding: 10px 12px;
    border: 1px solid var(--mb-border);
    border-radius: 999px;
    background: #fff;
    color: var(--mb-fg);
    font: inherit;
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease, transform .14s ease;
}

.mbsearch-back {
    display: none;
}

.mbsearch-back:hover,
.mbsearch-x:hover {
    border-color: #d0d5dd;
    background: var(--mb-hover);
}

.mbsearch-back svg,
.mbsearch-x svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.mbsearch-field {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    height: 54px;
    border: 1px solid #dce3ed;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
    transition: border-color .14s ease, box-shadow .14s ease;
}

.mbsearch-field:focus-within {
    border-color: var(--mb-accent);
    box-shadow: 0 0 0 4px rgba(76, 141, 246, .10);
}

.mbsearch-field-icon {
    flex: 0 0 auto;
    padding: 0 4px 0 17px;
    color: var(--mb-accent);
}

.mbsearch-field-icon svg {
    display: block;
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
}

.mbsearch-input {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    padding: 12px 8px;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: var(--mb-fg) !important;
    font: inherit;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
}

.mbsearch-input::placeholder {
    color: #b0b8c5;
    opacity: 1;
}

.mbsearch-input::-webkit-search-cancel-button {
    display: none;
}

.mbsearch-wipe {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 0;
    background: none;
    color: var(--mb-muted);
    cursor: pointer;
}

.mbsearch-wipe:hover {
    color: var(--mb-fg);
}

.mbsearch-wipe svg {
    display: block;
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.mbsearch-layer.is-loading::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    z-index: 10;
    height: 3px;
    background: var(--mb-accent);
    opacity: .9;
    animation: mbsearch-bar 1s linear infinite;
}

@keyframes mbsearch-bar {
    0%   { transform: scaleX(0); transform-origin: left; }
    50%  { transform: scaleX(1); transform-origin: left; }
    51%  { transform: scaleX(1); transform-origin: right; }
    100% { transform: scaleX(0); transform-origin: right; }
}

/* ------------------------------------------------------------- cuerpo */

.mbsearch-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: #fff;
}

.mbsearch-layer ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mbsearch-inner {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 34px;
    width: 100%;
    max-width: var(--mb-max);
    margin: 0 auto;
    padding: 24px 24px;
}

.mbsearch-inner.is-single {
    grid-template-columns: minmax(0, 1fr);
}

.mbsearch-side {
    min-width: 0;
    padding-right: 28px;
    border-right: 1px solid var(--mb-border);
}

.mbsearch-main {
    min-width: 0;
}

.mbsearch-block + .mbsearch-block {
    margin-top: 25px;
}

.mbsearch-block-head,
.mbsearch-products-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.mbsearch-block-title {
    display: block;
    margin-bottom: 10px;
    color: #475467;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.mbsearch-products-head .mbsearch-block-title {
    margin-bottom: 0;
    color: var(--mb-fg);
    font-size: 15px;
}

.mbsearch-result-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--mb-soft);
    color: var(--mb-muted);
    font-size: 12px;
    font-weight: 700;
}

.mbsearch-clear {
    padding: 0;
    border: 0;
    background: none;
    color: var(--mb-accent-strong);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.mbsearch-clear:hover {
    text-decoration: underline;
}

/* ----------------------------------------------------------- filas */

.mbsearch-row {
    display: flex;
    align-items: stretch;
}

.mbsearch-item {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
    padding: 10px 10px;
    margin: 0 -10px;
    border-radius: 9px;
    color: inherit;
    text-decoration: none !important;
    transition: background .12s ease;
}

.mbsearch-item:hover,
.mbsearch-item:focus,
.mbsearch-item.is-active {
    background: var(--mb-hover);
    color: inherit;
    text-decoration: none !important;
}

.mbsearch-item mark,
.mbsearch-card mark {
    padding: 0;
    background: transparent;
    color: var(--mb-mark);
    font-weight: 700;
}

.mbsearch-icon {
    flex: 0 0 18px;
    color: var(--mb-muted);
}

.mbsearch-icon svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.mbsearch-name {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
}

.mbsearch-remove {
    flex: 0 0 auto;
    padding: 0 8px;
    border: 0;
    background: none;
    color: var(--mb-muted-2);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.mbsearch-remove:hover {
    color: var(--mb-fg);
}

/* ------------------------------------------------- categorias sugeridas */

.mbsearch-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--mb-border);
}

.mbsearch-chips-label {
    width: 100%;
    margin: 0 0 2px;
    color: var(--mb-muted);
    font-size: 12px;
    font-weight: 700;
}

.mbsearch-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    padding: 8px 13px;
    margin: 0;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--mb-soft);
    color: #344054;
    font-size: 13px;
    text-decoration: none !important;
    white-space: nowrap;
}

.mbsearch-chip:hover,
.mbsearch-chip.is-active {
    border-color: #b9d2fb;
    background: #f4f8ff;
    color: var(--mb-accent-strong);
}

.mbsearch-chip-n {
    color: var(--mb-muted);
    font-size: 11px;
    font-weight: 700;
}

/* ------------------------------------------------------ fichas */

.mbsearch-products-block {
    min-width: 0;
}

.mbsearch-products-block .mbsearch-products-head {
    margin-bottom: 14px;
}

.mbsearch-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 20px 16px;
    min-width: 0;
}

.mbsearch-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 8px;
    border: 1px solid transparent;
    border-radius: 14px;
    background: #fff;
    color: inherit;
    text-decoration: none !important;
    transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.mbsearch-card:hover,
.mbsearch-card.is-active {
    border-color: #e0e6ee;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .09) !important;
    transform: translateY(-1px);
    color: inherit;
}

.mbsearch-card-img {
    position: relative;
    display: block;
    width: 100%;
    margin-bottom: 11px;
    overflow: hidden;
    border-radius: 11px;
    background: #f7f9fc;
}

.mbsearch-card-img img {
    display: block;
    width: 100%;
    height: 188px;
    object-fit: contain;
    mix-blend-mode: multiply;
}

.mbsearch-tag {
    position: absolute;
    left: 9px;
    top: 9px;
    padding: 4px 7px;
    border-radius: 6px;
    background: rgba(16, 24, 40, .82);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
}

.mbsearch-card-info {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
}

.mbsearch-card-name {
    display: -webkit-box;
    min-height: 39px;
    overflow-wrap: anywhere;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: #101828;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.38;
}

.mbsearch-card-ref {
    display: block;
    margin-top: 5px;
    overflow: hidden;
    color: var(--mb-muted);
    font-size: 12px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mbsearch-card-price {
    display: block;
    margin-top: 8px;
    color: #101828;
    font-size: 16px;
    font-weight: 800;
}

/* -------------------------------------------- pantalla inicial */

.mbsearch-start {
    width: 100%;
}

.mbsearch-start-inner {
    width: 100%;
    max-width: var(--mb-max);
    margin: 0 auto;
    padding: 27px 24px 48px;
}

.mbsearch-start-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 42px;
    align-items: start;
    margin-bottom: 28px;
}

.mbsearch-start-top .mbsearch-block + .mbsearch-block {
    margin-top: 0;
}

.mbsearch-start-products {
    min-width: 0;
    padding-top: 24px;
    border-top: 1px solid var(--mb-border);
}

.mbsearch-grid.is-popular {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding: 2px 2px 12px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}

.mbsearch-grid.is-popular .mbsearch-card {
    flex: 0 0 205px;
    scroll-snap-align: start;
}

.mbsearch-grid.is-popular .mbsearch-card-img img {
    height: 175px;
}

/* ------------------------------------------------------- estados y pie */

.mbsearch-dym {
    width: 100%;
    max-width: var(--mb-max);
    margin: 0 auto;
    padding: 12px 24px;
    border-bottom: 1px solid var(--mb-border);
    color: var(--mb-muted);
}

.mbsearch-dym a {
    color: var(--mb-accent-strong);
    font-weight: 700;
}

.mbsearch-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
    padding: 64px 24px 72px;
    color: var(--mb-muted);
    text-align: center;
}

.mbsearch-empty-icon svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    opacity: .45;
}

.mbsearch-empty strong {
    color: var(--mb-fg);
    font-size: 18px;
    font-weight: 700;
}

.mbsearch-empty-hint {
    max-width: 520px;
}

.mbsearch-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 16px 0 6px;
    border: 0;
    cursor: pointer;
    padding: 12px 22px;
    border-radius: 999px;
    background: var(--mb-accent);
    color: #fff !important;
    font-weight: 700;
    text-decoration: none !important;
}

.mbsearch-cta:hover,
.mbsearch-cta.is-active {
    background: var(--mb-accent-strong);
    color: #fff !important;
}

.mbsearch-empty-cats {
    width: 100%;
    margin-top: 18px;
}

.mbsearch-empty-cats .mbsearch-chips {
    justify-content: center;
    margin-bottom: 0;
}

.mbsearch-empty-recent {
    width: 100%;
    max-width: 390px;
    margin-top: 24px;
    text-align: left;
}

.mbsearch-footer {
    flex: 0 0 auto;
    padding: 12px 24px max(12px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--mb-border);
    background: var(--mb-bg);
    box-shadow: 0 -4px 16px rgba(16, 24, 40, .04);
}

.mbsearch-more {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    max-width: 360px;
    min-height: 48px;
    margin: 0 auto;
    padding: 12px 18px;
    border: 0;
    border-radius: 12px;
    background: var(--mb-accent);
    color: #fff !important;
    font-size: 15px;
    line-height: 1.3;
    font-weight: 700;
    text-align: center;
    text-decoration: none !important;
}

.mbsearch-more svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.mbsearch-more:hover,
.mbsearch-more:focus-visible,
.mbsearch-more.is-active { background: var(--mb-accent-strong); }

.mbsearch-layer a:focus-visible,
.mbsearch-layer button:focus-visible {
    outline: 2px solid var(--mb-accent-strong);
    outline-offset: 2px;
}

.mbsearch-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.mbsearch-loading-state {
    padding: 28px;
    color: var(--mb-muted);
    text-align: center;
}

/* ------------------------------------------------------ tablet */

@media (max-width: 1199px) and (min-width: 768px) {
    .mbsearch-inner {
        grid-template-columns: 235px minmax(0, 1fr);
        gap: 24px;
    }

    .mbsearch-side {
        padding-right: 22px;
    }

    .mbsearch-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mbsearch-card-img img {
        height: 176px;
    }

    .mbsearch-start-top {
        grid-template-columns: 1fr 1fr;
    }
}

/* ---------------------------------------------------------------- movil */

@media (max-width: 767px) {
    .mbsearch-layer {
        border-top-width: 3px;
        font-size: 15px;
    }

    /* El fondo deja de ser un velo oscuro y pasa a ser una superficie opaca.
       En movil la capa se ajusta al viewport VISIBLE, que en iOS excluye el
       teclado y tambien la barrita de sugerencias que Safari pone encima. Esa
       barrita es translucida, asi que por debajo del boton de resultados se
       colaba el texto de la pagina de detras y se leia a medias. El fondo
       cubre la pantalla entera, teclado incluido, de modo que lo que se ve a
       traves de esa franja es una superficie limpia y no la pagina. */
    .mbsearch-backdrop {
        background: #fff;
    }

    .mbsearch-head {
        position: sticky;
        top: 0;
        gap: 8px;
        padding: max(9px, env(safe-area-inset-top)) 12px 9px;
    }

    .mbsearch-back {
        display: none;
    }

    .mbsearch-layer .mbsearch-x {
        width: 44px;
        height: 44px;
        padding: 12px;
        border-color: transparent;
        background: #eef4ff;
        color: var(--mb-accent-strong);
    }

    .mbsearch-x-text {
        display: none;
    }

    .mbsearch-field {
        height: 46px;
        border-radius: 13px;
        background: #f7f9fc;
    }

    .mbsearch-field-icon {
        padding-left: 13px;
    }

    .mbsearch-field-icon svg {
        width: 19px;
        height: 19px;
    }

    .mbsearch-input {
        padding: 10px 5px;
        font-size: 16px; /* evita zoom automatico en iOS */
        font-weight: 500;
    }

    .mbsearch-layer .mbsearch-wipe {
        width: 44px;
        height: 44px;
        padding: 13px;
    }

    .mbsearch-inner {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: 14px 14px 20px;
    }

    .mbsearch-side {
        order: 2;
        padding: 18px 0 0;
        margin-top: 12px;
        border-right: 0;
        border-top: 1px solid var(--mb-border);
    }

    .mbsearch-main {
        order: 1;
        padding-top: 0;
    }

    .mbsearch-side .mbsearch-block + .mbsearch-block {
        margin-top: 15px;
    }

    .mbsearch-block-title {
        margin-bottom: 7px;
        font-size: 13px;
    }

    .mbsearch-item {
        padding: 10px 8px;
        margin: 0 -8px;
        border-radius: 8px;
    }

    .mbsearch-name {
        font-size: 14px;
    }

    .mbsearch-chips {
        flex-wrap: nowrap;
        gap: 7px;
        margin: 0 -14px 15px;
        padding: 0 14px 8px;
        border-bottom: 0;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .mbsearch-chips::-webkit-scrollbar {
        display: none;
    }

    .mbsearch-chips-label {
        display: none;
    }

    .mbsearch-chip {
        min-height: 44px;
        padding: 9px 13px;
        font-size: 13px;
    }

    .mbsearch-products-block .mbsearch-products-head {
        margin-bottom: 8px;
    }

    /* Dos productos por fila: fotos utiles para comparar acabados. */
    .mbsearch-grid:not(.is-popular) {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px 12px;
    }

    .mbsearch-grid:not(.is-popular) .mbsearch-card {
        padding: 0;
        border: 0;
        border-radius: 10px;
        box-shadow: none !important;
        transform: none !important;
    }

    .mbsearch-grid:not(.is-popular) .mbsearch-card-img {
        aspect-ratio: 1;
        margin: 0 0 9px;
        border-radius: 10px;
    }

    .mbsearch-grid:not(.is-popular) .mbsearch-card-img img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .mbsearch-grid:not(.is-popular) .mbsearch-card-name {
        min-height: 55px;
        -webkit-line-clamp: 3;
        font-size: 13px;
        line-height: 1.4;
    }

    .mbsearch-grid:not(.is-popular) .mbsearch-card-ref { font-size: 12px; }
    .mbsearch-grid:not(.is-popular) .mbsearch-card-price {
        margin-top: auto;
        padding-top: 7px;
        font-size: 17px;
    }

    .mbsearch-footer {
        padding: 10px 14px max(10px, env(safe-area-inset-bottom));
    }

    .mbsearch-footer .mbsearch-more { max-width: none; }
    .mbsearch-layer .mbsearch-clear, .mbsearch-layer .mbsearch-remove { min-width: 44px; min-height: 44px; }

    .mbsearch-start-top ul {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding: 2px 0 6px;
    }
    .mbsearch-start-top .mbsearch-row {
        flex: 0 0 auto;
        max-width: 250px;
        border-radius: 10px;
        background: var(--mb-soft);
        padding: 0 8px;
    }
    .mbsearch-start-top .mbsearch-item { margin: 0; min-height: 44px; }
    .mbsearch-start-top .mbsearch-icon { display: none; }

    /* Inicio: recientes arriba y populares en carrusel, no dos columnas. */
    .mbsearch-start-inner {
        padding: 16px 14px 34px;
    }

    .mbsearch-start-top {
        display: block;
        margin-bottom: 18px;
    }

    .mbsearch-start-top .mbsearch-block + .mbsearch-block {
        margin-top: 18px;
    }

    .mbsearch-start-products {
        padding-top: 17px;
    }

    .mbsearch-grid.is-popular {
        gap: 10px;
        margin: 0 -14px;
        padding: 2px 14px 12px;
    }

    .mbsearch-grid.is-popular .mbsearch-card {
        flex: 0 0 160px;
        padding: 5px;
        border-radius: 11px;
    }

    .mbsearch-grid.is-popular .mbsearch-card-img {
        margin-bottom: 8px;
    }

    .mbsearch-grid.is-popular .mbsearch-card-img img {
        height: 132px;
    }

    .mbsearch-grid.is-popular .mbsearch-card-name {
        min-height: 36px;
        font-size: 13px;
    }

    .mbsearch-grid.is-popular .mbsearch-card-price {
        margin-top: 5px;
        font-size: 14px;
    }

    .mbsearch-dym {
        padding: 10px 14px;
        font-size: 13px;
    }

    .mbsearch-empty {
        padding: 45px 18px 54px;
    }

    .mbsearch-empty strong {
        font-size: 17px;
    }

}

/* --------------------------------------------- variante oscura opcional */

[data-mbsearch-theme="dark"] .mbsearch-layer {
    --mb-bg: #1c1f23;
    --mb-fg: #e9ecef;
    --mb-muted: #9aa2ab;
    --mb-muted-2: #7f8790;
    --mb-border: #31353a;
    --mb-hover: #272b30;
    --mb-soft: #25292e;
    --mb-accent: #6fa8ff;
    --mb-accent-strong: #8ebcff;
    --mb-mark: #9ec5ff;
    background: var(--mb-bg);
}

/* El fondo opaco de movil, en su version oscura. */
@media (max-width: 767px) {
    [data-mbsearch-theme="dark"] .mbsearch-backdrop {
        background: #1c1f23;
    }
}

[data-mbsearch-theme="dark"] .mbsearch-head,
[data-mbsearch-theme="dark"] .mbsearch-body,
[data-mbsearch-theme="dark"] .mbsearch-card,
[data-mbsearch-theme="dark"] .mbsearch-chip,
[data-mbsearch-theme="dark"] .mbsearch-field,
[data-mbsearch-theme="dark"] .mbsearch-back,
[data-mbsearch-theme="dark"] .mbsearch-x,
[data-mbsearch-theme="dark"] .mbsearch-more {
    background: var(--mb-bg);
    color: var(--mb-fg);
}

[data-mbsearch-theme="dark"] .mbsearch-card-img {
    background: #24282d;
}

[data-mbsearch-theme="dark"] .mbsearch-card-img img {
    mix-blend-mode: normal;
}

/* =====================================================================
   Cabecera de la pagina de resultados.

   Sustituye al titulo del tema en vez de sumarse a el, y usa exactamente el
   mismo lenguaje visual que el panel de busqueda: las dos superficies tienen
   que parecer la misma herramienta, no dos modulos distintos.
   ===================================================================== */

/* Conserva el h1 del tema para tecnologias de asistencia. La cabecera
   del modulo es h2, sin crear un segundo h1 ni esconder todo el bloque. */
.mbsearch-has-landing section#main > h1.h1,
.mbsearch-has-landing #js-product-list-header h1 {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

/* El recuento de movil del tema.
   La cabecera ya dice "918 productos" y dos dedos mas abajo el tema repetia
   "Mostrando 1-36 de 918 articulos". Ese texto no vive en un <p>, que es lo
   que se intentaba apagar antes, sino en
   <div class="col-sm-12 hidden-md-up ... showing"> dentro de un .row dentro
   de #js-product-list-top. Solo se apaga en la pagina de busqueda; en las
   categorias sigue como estaba. */
.mbsearch-has-landing #js-product-list-top .showing {
    display: none !important;
}

.mbsearch-landing {
    --mb-fg: #101828;
    --mb-muted: #667085;
    --mb-border: #eaecf0;
    --mb-soft: #f4f7fb;
    --mb-hover: #f7f9fc;
    --mb-accent: #2164da;
    --mb-accent-strong: #1754be;

    box-sizing: border-box;
    /* Sin caja ni fondo: es la cabecera de la pagina, no una tarjeta. */
    margin: 0 0 26px;
    padding: 0;
    color: var(--mb-fg);
}

.mbsearch-landing *,
.mbsearch-landing *::before,
.mbsearch-landing *::after {
    box-sizing: border-box;
}

.mbsearch-landing-kicker {
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--mb-muted);
}

/* El titulo y el recuento van juntos: el numero es un dato del titulo,
   no una frase aparte que ocupe otra linea. */
.mbsearch-landing-title {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0;
    font-size: clamp(27px, 3.2vw, 42px);
    line-height: 1.1;
    letter-spacing: -.025em;
    font-weight: 700;
    color: var(--mb-fg);
}

.mbsearch-landing-badge {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 5px 13px;
    border-radius: 999px;
    background: var(--mb-soft);
    color: var(--mb-accent-strong);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
    white-space: nowrap;
}

.mbsearch-landing-badge small {
    font-size: 13px;
    font-weight: 600;
    color: var(--mb-muted);
}

.mbsearch-landing-count {
    margin: 10px 0 0;
    color: var(--mb-muted);
    font-size: 16px;
}

.mbsearch-landing-dym {
    margin: 10px 0 0;
    color: var(--mb-muted);
    font-size: 15px;
}

.mbsearch-landing-dym a {
    color: var(--mb-accent-strong);
    font-weight: 700;
}

/* --------------------------------------------------------- categorias */

.mbsearch-landing-chips {
    margin-top: 20px;
}

.mbsearch-landing-chips-label {
    display: block;
    margin: 0 0 9px;
    color: var(--mb-fg);
    font-size: 14px;
    font-weight: 700;
}

/* Los chips van en su propia caja para que en movil puedan convertirse en una
   tira que se desliza sin arrastrar con ella la etiqueta. */
.mbsearch-landing-chips-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
}

/* El nombre se recorta con puntos suspensivos cuando no cabe; el numero no se
   recorta nunca, porque es lo que decide si merece la pena entrar. */
.mbsearch-landing-chip-name {
    min-width: 0;
    overflow: hidden;
    font-weight: inherit;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Mismos chips que en el panel: fondo suave, sin borde, numero en pildora. */
.mbsearch-landing-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--mb-soft);
    color: #344054;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.mbsearch-landing-chip:hover,
.mbsearch-landing-chip:focus {
    background: #fff;
    border-color: var(--mb-accent);
    color: var(--mb-accent-strong);
    text-decoration: none;
}

.mbsearch-landing-chip span {
    padding: 1px 7px;
    border-radius: 999px;
    background: rgba(16, 24, 40, .07);
    font-size: 12px;
    font-weight: 700;
    color: var(--mb-muted);
}

.mbsearch-landing-chip:hover span,
.mbsearch-landing-chip:focus span {
    background: rgba(76, 141, 246, .14);
    color: var(--mb-accent-strong);
}

/* ------------------------------------------------------- sin resultados */

.mbsearch-landing-help {
    margin-top: 20px;
}

.mbsearch-landing-help p {
    margin: 0 0 16px;
    color: var(--mb-muted);
    font-size: 16px;
}

.mbsearch-landing-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    border-radius: 999px;
    background: var(--mb-accent);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition: background .14s ease, transform .14s ease;
}

.mbsearch-landing-cta:hover,
.mbsearch-landing-cta:focus {
    background: var(--mb-accent-strong);
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
}

@media (max-width: 767px) {
    .mbsearch-landing {
        margin-bottom: 18px;
    }

    .mbsearch-landing-title {
        gap: 10px;
    }

    .mbsearch-landing-chips {
        margin-top: 15px;
    }

    /* Las categorias pasan a una sola fila que se desliza con el dedo.
       Apiladas ocupaban ~300px de alto: en un movil de 375 habia que pasar de
       largo toda la cabecera para ver el primer producto. Y la de nombre largo
       se salia 51px por la derecha, medido en la tienda, porque el chip no
       parte el texto y no tenia ancho maximo. */
    .mbsearch-landing-chips-strip {
        flex-wrap: nowrap;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 4px;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .mbsearch-landing-chips-strip::-webkit-scrollbar {
        display: none;
    }

    .mbsearch-landing-chip {
        flex: 0 0 auto;
        max-width: 74vw;
        padding: 9px 14px;
        font-size: 13px;
        scroll-snap-align: start;
    }

    .mbsearch-landing-cta {
        width: 100%;
    }
}

[data-mbsearch-theme="dark"] .mbsearch-landing {
    --mb-fg: #e9ecef;
    --mb-muted: #9aa2ab;
    --mb-border: #31353a;
    --mb-soft: #272b30;
    --mb-accent: #6fb2f0;
    --mb-accent-strong: #9ecdf5;
}


@media (prefers-reduced-motion: reduce) {
    .mbsearch-layer *, .mbsearch-layer::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
