﻿@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap");

/* =========================================
   BASE
========================================= */

.pagina-productos {
    --azul-oscuro: #222160;
    --azul: #007bc4;
    --celeste: #1d93d1;
    --texto: #52618a;
    --borde: #edf0f5;

    margin: 0;
    background: #ffffff;
    color: var(--azul-oscuro);
    font-family: "Montserrat", sans-serif;
    -webkit-font-smoothing: antialiased;
}

.seccion-productos,
.seccion-productos * {
    box-sizing: border-box;
}

.seccion-productos {
    width: min(1320px, calc(100% - 80px));
    margin: 0 auto;
    padding: 30px 0 60px;
}

.seccion-productos h1,
.seccion-productos h2,
.seccion-productos h3,
.seccion-productos p,
.seccion-productos a,
.seccion-productos label,
.seccion-productos summary {
    font-family: "Montserrat", sans-serif;
}

.seccion-productos a {
    text-decoration: none;
}

.seccion-productos img {
    display: block;
    max-width: 100%;
}

.seccion-productos a:focus-visible,
.seccion-productos summary:focus-visible {
    outline: 3px solid var(--celeste);
    outline-offset: 4px;
}

/* =========================================
   ENCABEZADO
========================================= */

.productos-encabezado {
    margin-bottom: 38px;
}

.ruta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;

    margin-bottom: 13px;
    font-size: max(14px, 12px);
    font-weight: 700;
    line-height: 1.5;
}

.ruta a {
    color: var(--azul);
}

.ruta a:hover {
    text-decoration: underline;
}

.ruta span {
    color: var(--azul-oscuro);
}

.productos-encabezado h1 {
    margin: 0 0 12px;
    color: var(--azul-oscuro);

    font-size: clamp(24px, 3.7vw, 50px);
    font-weight: 700;
    line-height: 1.05;
    overflow-wrap: anywhere;
}

.productos-encabezado > p {
    max-width: 1100px;
    margin: 0;
    color: var(--texto);

    font-size: max(14px, clamp(13px, 1.5vw, 17px));
    font-weight: 400;
    line-height: 1.8;
}

/* =========================================
   TARJETAS SUPERIORES
========================================= */

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

.categorias--cuatro {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.categoria {
    display: flex;
    flex-direction: column;
    align-items: center;

    min-width: 0;
    min-height: 185px;
    padding: 20px 14px;

    background: #ffffff;
    border: 1px solid var(--borde);
    border-radius: 10px;
    box-shadow: 0 2px 5px rgb(17 20 84 / 2%);

    text-align: center;
}

.categoria-imagen {
    display: grid;
    place-items: center;

    width: 130px;
    height: 115px;
    margin-bottom: 12px;

    object-fit: contain;
}

.categoria h2 {
    margin: 0 0 9px;
    color: var(--azul-oscuro);

    font-size: max(14px, 12px);
    font-weight: 700;
    line-height: 1.5;
}

.categoria p {
    max-width: 210px;
    margin: 0;
    color: var(--texto);

    font-size: max(14px, 11px);
    font-weight: 400;
    line-height: 1.8;
}

/* =========================================
   TÃTULO DEL LISTADO
========================================= */

.catalogo > h2 {
    margin: 0 0 12px;
    color: var(--azul-oscuro);

    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
}

.catalogo-contenido {
    position: relative;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

/* Ocultar los radios sin quitar el acceso por teclado */

.selector,
.solo-lectores {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;

    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* =========================================
   FILTROS
========================================= */

.filtros {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;

    margin-bottom: 12px;
}

.filtros-avanzados {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 12px;
    margin: 0 0 18px;
}

.campo-filtro {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 180px;
    flex: 1 1 220px;
    font-size: max(14px, 11px);
    color: var(--azul-oscuro);
    font-weight: 600;
}

.campo-filtro input,
.campo-filtro select {
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #dfe8f2;
    border-radius: 6px;
    background: #ffffff;
    color: var(--azul-oscuro);
    font: inherit;
}

.campo-filtro input:focus,
.campo-filtro select:focus {
    outline: 2px solid var(--celeste);
    outline-offset: 1px;
}

.boton-reset {
    min-height: 38px;
    padding: 8px 16px;
    border: 1px solid var(--azul);
    border-radius: 6px;
    background: #ffffff;
    color: var(--azul);
    font: inherit;
    font-size: max(14px, 11px);
    font-weight: 700;
    cursor: pointer;
    align-self: end;
}

.boton-reset:hover {
    background: #eef9ff;
}

.filtros label {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 110px;
    min-height: 42px;
    padding: 8px 18px;

    color: var(--azul-oscuro);
    background: #ffffff;
    border: 1px solid var(--celeste);
    border-radius: 6px;

    font-size: max(14px, 12px);
    font-weight: 600;
    line-height: 1.4;

    cursor: pointer;
    transition: background-color 150ms ease, transform 150ms ease;
}

.filtros label:hover {
    background: #f0f8fd;
}

/* Filtro seleccionado */

#f0:checked ~ .filtros label[for="f0"],
#f1:checked ~ .filtros label[for="f1"],
#f2:checked ~ .filtros label[for="f2"],
#f3:checked ~ .filtros label[for="f3"],
#f4:checked ~ .filtros label[for="f4"],
#f5:checked ~ .filtros label[for="f5"],
#f6:checked ~ .filtros label[for="f6"],
#f7:checked ~ .filtros label[for="f7"],
#f8:checked ~ .filtros label[for="f8"] {
    color: #ffffff;
    background: var(--azul);
    border-color: var(--azul);
}

/* NavegaciÃ³n con teclado */

#f0:focus-visible ~ .filtros label[for="f0"],
#f1:focus-visible ~ .filtros label[for="f1"],
#f2:focus-visible ~ .filtros label[for="f2"],
#f3:focus-visible ~ .filtros label[for="f3"],
#f4:focus-visible ~ .filtros label[for="f4"],
#f5:focus-visible ~ .filtros label[for="f5"],
#f6:focus-visible ~ .filtros label[for="f6"],
#f7:focus-visible ~ .filtros label[for="f7"],
#f8:focus-visible ~ .filtros label[for="f8"] {
    outline: 2px solid var(--azul-oscuro);
    outline-offset: 3px;
}

/* Filtrar las tarjetas */

#f1:checked ~ .productos-grilla .producto:not([data-categoria="HPLC"]),
#f2:checked ~ .productos-grilla .producto:not([data-categoria="GC"]),
#f3:checked ~ .productos-grilla .producto:not([data-categoria="PreparaciÃ³n de muestras"]),
#f4:checked ~ .productos-grilla .producto:not([data-categoria="Viales y accesorios"]),
#f5:checked ~ .productos-grilla .producto:not([data-categoria="EstÃ¡ndares"]) {
    display: none;
}

/* =========================================
   TARJETAS DE PRODUCTOS
========================================= */

.productos-grilla {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 12px;
}

.producto {
    display: grid;
    grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
    grid-template-rows: 1fr auto;
    column-gap: 12px;
    row-gap: 10px;

    min-width: 0;
    padding: 16px 14px 13px;

    background: #ffffff;
    border: 1px solid var(--borde);
    border-radius: 10px;
    box-shadow: 0 2px 5px rgb(17 20 84 / 2%);
}

/* FotografÃ­a a la izquierda */

.producto-imagen {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 0;
    min-height: 185px;
    background: #ffffff;
}

.producto-imagen img {
    width: 100%;
    height: 185px;
    object-fit: contain;
}

/* InformaciÃ³n a la derecha */

.producto-informacion {
    min-width: 0;
    padding-top: 2px;
}

.producto-etiqueta {
    display: block;
    margin-bottom: 7px;

    color: var(--azul);
    font-size: max(14px, 9px);
    font-weight: 500;
    line-height: 1.5;
}

.producto h3 {
    margin: 0 0 10px;
    color: var(--azul-oscuro);

    font-size: max(14px, 13px);
    font-weight: 700;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.producto-info {
    min-width: 0;
    padding-top: 2px;
}

.producto-meta {
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 6px;
}

.producto-meta li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 5px 0;
    border-bottom: 1px solid #f0f2f7;
    color: var(--azul-oscuro);
    font-size: max(14px, 10px);
    line-height: 1.5;
}

.producto-meta span {
    color: var(--texto);
    font-weight: 600;
}

.producto-meta strong {
    color: var(--azul-oscuro);
    font-weight: 700;
    text-align: right;
}

.producto-caracteristicas {
    margin: 0;
    padding: 0;
    list-style: none;
}

.producto-caracteristicas li {
    padding: 7px 0;
    color: var(--azul-oscuro);
    border-bottom: 1px solid #f0f2f7;

    font-size: max(14px, 10px);
    font-weight: 400;
    line-height: 1.6;
}

.producto-caracteristicas li:last-child {
    border-bottom: 0;
}

/* =========================================
   ACCIONES INFERIORES
========================================= */

.producto-acciones {
    grid-column: 1 / -1;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
}

.boton-detalles {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    min-height: 34px;
    padding: 7px 0;

    color: var(--azul);
    font-size: max(14px, 9px);
    font-weight: 600;
    line-height: 1.5;
    text-transform: uppercase;

    cursor: pointer;
}

.boton-detalles span {
    font-size: 22px;
    line-height: 1;
}

.boton-detalles:hover {
    color: var(--azul-oscuro);
}

.boton-cotizacion {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 34px;
    padding: 9px 12px;

    color: #ffffff;
    background: var(--azul);
    border: 1px solid var(--azul);
    border-radius: 6px;

    font-size: max(14px, 9px);
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
    text-transform: uppercase;

    transition: background-color 150ms ease;
}

.boton-cotizacion:hover {
    color: #ffffff;
    background: var(--azul-oscuro);
    border-color: var(--azul-oscuro);
}

/* Detalles desplegables de filtraciÃ³n y plÃ¡stico */

.producto-detalles {
    flex: 1 1 100px;
}

.producto-detalles summary {
    list-style: none;
}

.producto-detalles summary::-webkit-details-marker {
    display: none;
}

.producto-detalles summary::after {
    content: "+";
    margin-left: 5px;
    font-size: 16px;
}

.producto-detalles[open] summary::after {
    content: "âˆ’";
}

.producto-detalles p {
    margin: 4px 0 12px;
    color: var(--texto);
    font-size: max(14px, 11px);
    line-height: 1.7;
}

/* =========================================
   TABLETS
========================================= */

@media (max-width: 1100px) {
    .seccion-productos {
        width: calc(100% - 48px);
    }

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

    .productos-grilla {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* =========================================
   CELULARES
========================================= */

@media (max-width: 700px) {
    .seccion-productos {
        width: calc(100% - 32px);
        padding: 24px 0 40px;
    }

    .productos-encabezado {
        margin-bottom: 25px;
    }

    .productos-encabezado h1 {
        font-size: clamp(24px, 3.7vw, 50px);
    }

    .productos-encabezado > p {
        font-size: 14px;
        line-height: 1.7;
    }

    .ruta {
        font-size: max(14px, 10px);
    }

    .categorias,
    .categorias--cuatro {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .categoria {
        min-height: 175px;
        padding: 18px 12px;
    }

    .categoria h2 {
        font-size: max(14px, 12px);
    }

    .categoria p {
        font-size: max(14px, 11px);
    }

    .catalogo > h2 {
        font-size: 16px;
    }

    .filtros {
        gap: 8px;
    }

    .filtros-avanzados {
        grid-template-columns: 1fr;
    }

    .filtros label {
        min-height: 40px;
        padding: 8px 12px;
    }

    .productos-grilla {
        grid-template-columns: 1fr;
    }

    .producto {
        padding: 16px;
    }

    .producto h3 {
        font-size: 14px;
    }

    .producto-caracteristicas li {
        font-size: max(14px, 11px);
    }

    .boton-detalles,
    .boton-cotizacion {
        min-height: 42px;
        font-size: max(14px, 10px);
    }
}

@media (max-width: 360px) {
    .categorias,
    .categorias--cuatro {
        grid-template-columns: 1fr;
    }

    .producto {
        grid-template-columns: 1fr;
    }

    .producto-imagen,
    .producto-imagen img {
        height: 160px;
        min-height: 160px;
    }
}
.form-agregar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 10px;
    margin: 0;
}

.cantidad-producto {
    display: flex;
    flex-direction: column;
    gap: 5px;

    color: #111454;
    font-family: "Montserrat", sans-serif;
    font-size: max(14px, 11px);
}

.cantidad-producto input {
    width: 70px;
    height: 36px;
    padding: 6px 8px;

    color: #111454;
    background: #ffffff;
    border: 1px solid #dce3ee;
    border-radius: 6px;

    font-family: inherit;
    font-size: max(14px, 12px);
}

.form-agregar .boton-cotizacion {
    min-height: 36px;
    cursor: pointer;
    font-family: "Montserrat", sans-serif;
}

.cantidad-producto input:focus-visible,
.form-agregar button:focus-visible {
    outline: 2px solid #1d93d1;
    outline-offset: 3px;
}

/* Carrito fijo abajo a la derecha */

.carrito-flotante {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1000;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 62px;
    height: 62px;

    color: #ffffff;
    background: #007bc4;
    border: 2px solid #ffffff;
    border-radius: 50%;

    text-decoration: none;
    box-shadow: 0 5px 18px rgb(17 20 84 / 22%);

    transition: background-color 150ms ease;
}

.carrito-flotante > i {
    font-size: 25px;
}

.carrito-flotante:hover {
    color: #ffffff;
    background: #111454;
}

.carrito-flotante:focus-visible {
    outline: 3px solid #111454;
    outline-offset: 4px;
}

/* Cantidad de productos distintos */

.carrito-flotante__cantidad {
    position: absolute;
    top: -5px;
    right: -5px;

    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 25px;
    height: 25px;
    padding: 0 5px;

    color: #ffffff;
    background: #111454;
    border: 2px solid #ffffff;
    border-radius: 20px;

    font-family: "Montserrat", sans-serif;
    font-size: max(14px, 11px);
    font-weight: 700;
}

@media (max-width: 600px) {
    .carrito-flotante {
        right: 16px;
        bottom: calc(16px + env(safe-area-inset-bottom, 0px));
        width: 56px;
        height: 56px;
    }

    .carrito-flotante > i {
        font-size: 23px;
    }
}

/* ConfirmaciÃ³n al agregar productos al carrito */
.mensaje-carrito {
    max-width: 1280px;
    margin: 16px auto 0;
    padding: 12px 16px;
    border-radius: 10px;
    font-weight: 600;
    background: #eef8ff;
    border: 1px solid #b9def4;
    color: #0a3154;
}

.mensaje-carrito a {
    margin-left: 8px;
    color: #078ac8;
    font-weight: 700;
    text-decoration: none;
}

.mensaje-carrito a:hover {
    text-decoration: underline;
}

.mensaje-carrito--error {
    background: #fff4f4;
    border-color: #efcaca;
    color: #8a2020;
}

