* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: "Montserrat", sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow-x: hidden;
}

/* Cabecera */
.cabecera {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #FFF;
    color: white;
    padding: 20px;
    flex-wrap: wrap;
}

.buscador-menu { width: 100%; text-align: left; margin-bottom:20px;}

.cabecera-menu { width: 25%; text-align: left; }

.menu-icono {
    font-size: 24px;
    background: none;
    border: none;
    color: white;
    cursor: pointer;
}
.menu-icono img{width:50%;}

.menu-desplegable {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    background-color: #333;
    padding: 20px;
    z-index: 1000;
    max-height: 100vh;
    overflow-y: auto;
    box-shadow: -5px 0 10px rgba(0, 0, 0, 0.3);
}

.menu-desplegable.activo {
    display: block;
}

.menu-nivel1, .menu-nivel2, .menu-nivel3 { list-style: none; padding: 0; }

.menu-nivel1 > li, .menu-nivel2 > li, .menu-nivel3 > li {
    padding: 5px 10px;
    color: white;    
    margin-bottom: 5px;
    border-radius: 0px;
    cursor: pointer;
}

.menu-nivel2, .menu-nivel3 { display: none; margin-left: 0px; }
.menu-nivel2.activo, .menu-nivel3.activo { display: block; }
.menu-nivel2 > li, .menu-nivel3 > li {  }

.cabecera-logotipo { width: 45%; text-align: center; }

.logotipo-img {
    width: 90%;
    display: block;
    margin: 0 auto;
}

.cabecera-opciones {
    width: 30%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.form-busqueda {
    display: flex;
    flex-direction: column;
    align-items: left;
    gap: 5px;
    width: 100%;
}

.form-busqueda input[type="text"] {
    padding: 5px;
    width: 80%;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
}

.form-busqueda button { background: none; border: none; cursor: pointer; }
.icono { width: 20px; height: 20px; }

/* Cuerpo */
.cuerpo { padding: 20px; }
.banners {
    width: 90%;
    margin: 0 auto 20px;
    position: relative;
    height: 200px;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

.banner {
    width: 100%;
    height: 100%;
    position: absolute;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.banner.active { opacity: 1; }

.banda {
    display: flex;
    overflow-x: auto;
    gap: 10px;
    scroll-snap-type: x mandatory;
    padding: 20px 0;
    justify-content: flex-start;
    -webkit-overflow-scrolling: touch;
}

.titulo-seccion {/*display: flex*/;overflow-x: auto;margin-bottom:0px;font-size:30px;color:#e97730;width:90%;}

.banda::-webkit-scrollbar { display: none; }

.elemento {
    flex: 0 0 40%;
    max-width: 40vw;
    background-color: #fff;
    font-size:normal;
    color: #000;
    padding: 20px;
    text-align: center;
    border-radius: 8px;
    scroll-snap-align: start;    
}
.elemento .product-price{ color:#e97730; margin-top:10px;}
.elemento .old-price, .old-price {color: #555252; text-decoration: line-through;}
.elemento a{color:#000; text-decoration:none; font-weight:bold;padding-top:5px;}
.elemento a:hover{color:#e97730;}
.elemento img{width:90%;}

.elemento .botoncomprar, .botoncomprar{color:#fff;background-color:#1A1A1A;padding:10px 20px;text-align:center;margin-bottom:10px;float:left;width:100%;text-decoration:none; }
.elemento .botoncomprar:hover, .botoncomprar:hover {background-color:#e97730;}

.botonpedido{ font-weight: bold;color:#fff;background-color:#e97730;padding:10px 20px;text-align:center;margin-bottom:10px;float:left;width:100%;text-decoration:none; }
.botonpedido:hover {background-color:#e97730;}

.botoncesta{ float:left;width:50%;text-align: center; }
.botoncestaboton, .botoncestaboton1 {color:#fff;padding:10px 20px;text-align:center;margin-bottom:10px;float:left;width:100%;text-decoration:none; }
.botoncestaboton{background-color:#1A1A1A;}
.botoncestaboton1{background-color:#A3A3A3;}
.botoncestaboton a, .botoncestaboton1 a{color:#fff; text-decoration:none; font-weight:bold;padding-top:5px;}
.botoncestaboton a:hover{color:#e97730;}


.productolista {
    background-color: #fff;
    font-size:normal;
    color: #000;
    padding: 20px;
    text-align: center;
    border-radius: 8px;    
}
.productolista .product-price{ color:#e97730; margin-top:10px;}
.productolista .old-price{color: #555252; text-decoration: line-through;}


.publicidad { width: 90%; margin: 20px auto; text-align: center; position: relative; display: inline-block; }
.publicidad img {
    display: block;
    width: 100%;
    height: auto;
}
.publicidad .antetitulo{ position:absolute;top:45%;left:5%;font-weight:bold; }
.publicidad .titulo{ position:absolute;top:58%;left:5%;color:#fff;padding:10px 15px;text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); background-color: rgba(0, 0, 0, 0.5); }
.publicidad a{ position:absolute;top:80%;left:5%;color:#000; }
.publicidad-imagen { width: 100%; border-radius: 8px; }


.seccion-pagos { width: 90%; margin: 20px auto; display: flex; flex-direction: column; gap: 10px; }
.fila-pagos { display: flex; justify-content: space-between; }
.pago-imagen { width: 20%; border-radius: 8px; }
.pago-imagen img{width:90%;}

/* Pie de página */
.pie {
    background-color: #333;
    color: white;
    padding: 15px;
    text-align: center;
    position: relative;
}

.boletin {
    background-color: #222;
    color: white;
    padding: 20px;
    text-align: center;
    width: 100%;
}

.boletin h3 { font-size: 20px; margin-bottom: 10px; }
.boletin p { font-size: 14px; margin-bottom: 15px; }

.formulario-boletin {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.formulario-boletin input[type="email"] {
    padding: 10px;
    border: none;
    border-radius: 5px;
    width: 250px;
}

.formulario-boletin button {
    padding: 10px 20px;
    background-color: #e97730;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

.menu-pie {
    width: 90%;
    margin: 20px auto;
    background-color: #444;
    padding: 10px;
    border-radius: 0px;
}
.menu-pie a{color:#fff; text-decoration:none;}

.menu-ampli {
    width: 100%;
    margin: 0px;
    background-color: #fff;
    padding: 0px;
    border-radius: 0px;
}
.menu-ampli a{color:#fff; text-decoration:none;}

.menu-toggle {
    background-color: #555;
    color: white;
    border: none;
    font-size: 16px;
    cursor: pointer;
    text-align: left;
    padding: 8px;
    width: 100%;
    border-radius: 0px;
}

.menu-nivel2, .menu-nivel3 {
    display: none;
    padding: 5px 0;
    background-color: #666;
}

.menu-nivel2.activo, .menu-nivel3.activo { display: block; }
.menu-nivel2 li, .menu-nivel3 li { padding: 5px; }

ul{
    list-style: outside none none;
    margin: 0;
    padding: 0;
}

/* Contenido corporativo */
.ficha-contenido {
    width: 95%;
    margin: 20px auto;
    padding: 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background-color: #f9f9f9;
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
}

.ficha-contenido img{width:95%; margin-top:20px; margin-bottom:20px;}

/* Cabecera del producto */
.cabecera-contenido {
    margin-bottom: 20px;
}

.cabecera-contenido h2 {
    font-size: 24px;
    margin-bottom: 10px;
}

.cabecera-contenido p {
    font-size: 16px;
    color: #555;
}

/* Ficha del producto */
.ficha-producto {
    width: 95%;
    margin: 20px auto;
    padding: 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background-color: #f9f9f9;
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
}

.formulariobusca{
width:95%;
margin-left:5%;
margin-bottom:15px;
}

.formulariobusca .bloque{
    margin-top:15px;
}

/* Cabecera del producto */
.cabecera-producto {
    margin-bottom: 20px;
}

.cabecera-producto h2 {
    font-size: 24px;
    margin-bottom: 10px;
}

.cabecera-producto p {
    font-size: 16px;
    color: #555;
}

/* Imagen del producto */
.imagen-producto {
    text-align: center;
    margin-bottom: 20px;
}

.imagen-producto .imagen {
    width: 100%;
    border-radius: 8px;
}

/* Variedades del producto */
.variedades-producto {
    margin-bottom: 20px;
}

.variedades-producto label {
    font-size: 16px;
    margin-right: 10px;
}

.variedades-producto select {
    padding: 5px;
    font-size: 16px;
    border: 1px solid #ddd;
    border-radius: 5px;
    margin-bottom:10px;
}

/* Precio del producto */
.precio-producto {
    display: block;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.precio-producto p {
    font-size: 18px;
    font-weight: bold;
}

.precio-producto span {
    color: #e97730;
    font-size:20px;
    width:100%;
    margin-bottom:10px;
    display:block;
}

.precio-producto .flash {
    color: #e97730;
    font-size:20px;
    width:100%;
    margin-bottom:10px;
    display:block;
    text-decoration: none!important;
}

.comprar{
    display: inline-block;
    font-weight: 600;
    color: #ffffff;
    background-color: #e97730;
    padding: 20px 37px;
    z-index: 1;
    text-decoration: none;
}

.boton-comprar {
    padding: 10px 20px;
    font-size: 16px;
    color: white;
    background-color: #4CAF50;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s;
}

.boton-comprar:hover {
    background-color: #45a049;
}

/* Detalles del producto */
.detalles-producto {
    margin-top: 20px;
}

.detalles-producto h3 {
    font-size: 20px;
    margin-bottom: 10px;
}

.detalles-producto p {
    font-size: 16px;
    color: #555;
    margin-bottom:10px;
}

.row{
    float:left;
    position: relative;
    width:100%;
    margin-top:5px;
    margin-bottom:5px;
}

#shareButton {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background-color: #e97730;
  color: white;
  border: none;
  border-radius: 50px;
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: background-color 0.3s ease;
  z-index:999;
}

#buscaLupa {    
  background-color: white;
  color: #e97730;
  border: none;
  padding: 3px 6px;
  font-size: 26px;
  cursor: pointer;
  position:absolute;
  right:40px;
}

#vercesta {    
  background-color: white;
  color: #e97730;
  border: none;
  padding: 3px 6px;
  font-size: 26px;
  cursor: pointer;  
}

#micuenta {    
  background-color: white;
  color: #e97730;
  border: none;
  padding: 3px 6px;
  font-size: 26px;
  cursor: pointer;  
}

.pagination {
    display: block;
    float:left;
    width:100%;
    gap: 10px;
    margin-top:15px;
    margin-bottom:15px;
}

.pagination a{
    float:left;
    margin-right:5px;
}

.page {
    text-decoration: none;
    color: #333;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #333;
    border-radius: 50%;
    font-size: 16px;
    font-weight: bold;
    transition: all 0.3s ease;
}



.current {
    background-color: #e97730;
    color: #fff;
    border-color: #e97730;
}

.familia .imagen{
    text-align:center;
}
.familia .imagen img{
    border:1px solid #0a0a0a;
}
.familia .descripcion{
    margin-bottom:40px;
}

.productolista .imagenlista{
    text-align:center;
}
.productolista .imagenlista img{
    border:1px solid #0a0a0a;
}
.productolista .productocontenido{
    margin-bottom:40px;
}

.banderas{
    float:left;
    width:100%;
    margin-top:5px;
    margin-bottom:5px;
}
.bandera{
    width:50%;
    display:block;
    float:left;
}

.banderadescuento{
    width:50%;
    display:block;
    float:right;
    color: #fd1748;
    background: #FFF;
    width: 50px;
    height: 30px;
}

.banderaselemento{
    float:left;
    width:100%;
    margin-top:5px;
    margin-bottom:5px;
}
.banderaselemento .bandera{
    width:100%!important;
    display:block;
    float:left;
    text-align:center;
}

.banderaselemento .banderadescuento{
    width:100%;
    display:block;
    float:left;
    text-align:center;
    color: #fd1748;
    background: #FFF;   
}


/* GALERIA V1 
.carousel-container {
  width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.carousel {
  display: flex;
  gap: 10px;
  scroll-behavior: smooth;
}

.carousel-image {
  width: 100%;
  flex-shrink: 0;
  scroll-snap-align: start;
  border-radius: 10px;
}
/*  GALERIA V1 */

/* GALERIA V2 */

.carousel-container {
    width: 90%;
    max-width: 500px;
    overflow: hidden;
    position: relative;
    border-radius: 10px;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}

.carousel {
    display: flex;
    transition: transform 0.5s ease-in-out;
}

.carousel-item {
    min-width: 100%;
    position: relative;
}

.carousel-item img {
    width: 100%;
    border-radius: 10px;
    display: block;
}

.nav-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    padding: 10px 15px;
    font-size: 24px;
    cursor: pointer;
    border-radius: 50%;
    transition: background 0.3s;
}

.nav-button:hover {
    background: rgba(0, 0, 0, 0.8);
}

.left {
    left: 10px;
}

.right {
    right: 10px;
}
/* GALERIA V2 */

.vercesta a{color:#000; text-decoration:none; font-weight:bold;}


.formularioregistro{
width:95%;
display:block;
margin-left:5%;
margin-bottom:15px;
padding-top:10px;
padding-bottom:10px;
}
.formularioregistro input {
    padding: 10px;
    width: 90%;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    margin-bottom:10px;
}

.formularioregistro input[type=checkbox] {
    padding: 10px;
    width: 5%;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    margin-bottom:10px;
}
.formularioregistro input[type=textarea] {
    padding: 10px;
    width: 90%;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    margin-bottom:10px;
}
.formularioregistro select {
    padding: 10px;
    width: 90%;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    margin-bottom:10px;
}
.enlaceregistro{
    color:#e97730;
    text-decoration: none;
}

fieldset{
    padding-left:10px;
    margin-bottom:20px;
    /*
    width:96%;
    margin-left:2%;
    */
    width:100%;
    margin-left:0%;
}
legend{
    color:#e97730;
    font-size:16px;
}

.errorform{
    padding:10px;
    border:1px solid #ed0000;
    color:#ed0000;
    margin-bottom:15px;
    width:90%;
}

.lopd{
    width:90%;
    text-align: justify;
}

.menu-cuenta {
    width: 100%;
    margin: 0px;
    background-color: #fff;
    padding: 0px;
    border-radius: 0px;
}
.menu-cuenta a{color:#fff; text-decoration:none;}

.menu-cuentaampli {
    width: 100%;
    margin: 0px;
    background-color: #fff;
    padding: 0px;
    border-radius: 0px;
}
.menu-cuentaampli a{color:#fff; text-decoration:none;}

.menu-cuentatoggle {
    background-color: #e97730;
    color: white;
    border: none;
    font-size: 16px;
    cursor: pointer;
    text-align: left;
    padding: 8px;
    width: 100%;
    border-radius: 0px;
}
.menu-cuentanivel2 {
    display: none;
    padding: 5px 0;
    background-color: #b98869;
}

.micuentalegend{
    color:#fff!important;
}

.micuentap{
    width:96%;
    margin-left:2%;
}

.single-input-item{
    width:95%;
    margin-left:0px;
    display:block;
    float:left;
}
.single-input-item label{
    width:90%;
    display:block;
    float:left;
    margin:0px;
    padding:;
}

.single-input-item input{
    width:100%;
    display:block;
    float:left;
    padding: 10px;    
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    margin-bottom: 10px;
}
.single-input-item input[type=checkbox] {
    padding: 10px;
    width: 5%;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    margin-bottom:10px;
}
.single-input-item input[type=textarea] {
    padding: 10px;
    width: 90%;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    margin-bottom:10px;
}
.single-input-item select{
    width:100%;
}

.tablapedidos{    
    width:96%;
    margin-left:2%;
}

.direccionpedido{
    color:#e97730;
}

.form-enviopedido{
width:95%;
display:block;
margin-left:5%;
margin-bottom:15px;
padding-top:10px;
padding-bottom:10px;
}
.form-enviopedido select {
    padding: 10px;
    width: 90%;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    margin-bottom:10px;
}

/* Ampliacion galeria productos. */
/* Style for the image gallery */
        .image-gallery {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            padding: 10px;
            justify-content: center;
        }

        .image-gallery img {
            width: 150px;
            height: 150px;
            object-fit: cover;
            cursor: pointer;
            transition: transform 0.2s;
        }

        .image-gallery img:hover {
            transform: scale(1.1);
        }

        /* Overlay styles */
        .overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.8);
            justify-content: center;
            align-items: center;
            z-index: 1000;
        }

        .overlay.active {
            display: flex;
        }

        .overlay .image-container {
            max-width: 90%;
            max-height: 90%;
            overflow: auto;
            background: white;
            border-radius: 8px;
            padding: 10px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
        }

        .overlay img {
            display: block;
            max-width: 100%;
            max-height: 100%;
        }

        /* Close button */
        .overlay .close-btn {
            position: absolute;
            top: 20px;
            right: 20px;
            background: none;
            border: none;
            color: white;
            font-size: 24px;
            cursor: pointer;
        }

        .overlay .close-btn:hover {
            color: red;
        }
/* Ampliación galería productos. */

/* Estilos para pestañsa de fichas de productos */

.textofichas{
    width:90%;
    margin-left:5%;
    margin-right: 5%;
    font-family: Montserrat, sans-serif;
    font-weight: normal;
    font-size:14px;    
    text-align: left;
}

.titularfichas{
    font-size:17px;
    font-weight:bold;
    margin-top:20px;
    margin-bottom:10px;
}
/* Estilos para pestañsa de fichas de productos */

@media (max-width: 768px) {
    .cuerpo, .pie { padding: 15px; }
    .seccion-pagos { flex-wrap: wrap; }
    .pago-imagen { width: 30%; margin-bottom: 10px; }
}


/* Iconos fijos en la ficha de producto. */

.iconosfijos{
    float:left;
    display: block;
    width:100%;
}
.iconoficha{
    width:100%;
    float:left;
    display:block;
    background-color:#EDEDED;
    margin-bottom:6px;
}
.imagenicono{
    width:100%;
    float:left;
    margin-top:10px;
    margin-bottom:10px;
    text-align:center;
}
.imagenicono img{
    width:35px;
    height: 35px;
}
.textoicono{
    width:100%;
    float:left;
    text-transform: uppercase;
    color:#090909;
    font-size:12px;
    text-align:center;
    margin-bottom:10px;
}

/* Iconos fijos en la ficha de producto. */


/* Flotante whataspp  */
.flotantewa{
  color:#80CF84;
  font-size: 90px;
  width:100%;
  height: 100%;
  background:transparent;
  padding:0px;
  margin:0px;
}

.wapfloat {
  position: fixed;
  left: 20px;
  bottom: 4%;
  cursor: pointer;
  float: right;
  padding: 0px 0px;
  margin:0px;
  z-index: 9;
  opacity: 1;
  /*background: #ffc000;*/
  background:transparent;
  border-radius: 0px;  
}
/* Flotante whataspp  */

/* Login google */
.grid-2 {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr 1fr; /* siempre dos columnas */
  align-items: start; /* alinea arriba */
}

@media (max-width: 600px) { /* apilar solo en pantallas muy pequeñas */
  .grid-2 {
    grid-template-columns: 1fr;
  }
}
.cardlg{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:16px;
    padding:20px;
    box-shadow:0 10px 30px rgba(0,0,0,.25);
    min-height:340px;
}
.buttonlg{
    background-color: #e97730;
  color: #fff;
  border: medium none;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 14px 30px 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  -webkit-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  z-index: 1;
}

.login-form-container input{
    background-color: transparent;
  border: 1px solid #ebebeb;
  font-size: 15px;
  height: 50px;
  margin-bottom: 30px;
  padding: 0 15px;
  color: #000000;
  width: 100%;
}
/* Login google */

/* Pasos pedido */
    .breadcrumbst {
        display: flex;
        justify-content: space-between;
        align-items: center;
        font-family: Arial, sans-serif;
        margin: 30px 0;
        width: 80%;
        margin-left: auto;
        margin-right: auto;
    }

    .breadcrumbst-step {
        display: flex;
        flex-direction: column;
        align-items: center;
        flex: 1;
    }

    .step-number {
        width: 35px;
        height: 35px;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 4px;
        font-weight: bold;
        color: white;
    }

    /* Colores según estado */
    .completed .step-number {
        background-color: #000; /* Azul */
    }
    .completed .step-title {
        color: #000;
    }

    .current .step-number {
        background-color: #e97730; /* Rojo */
    }
    .current .step-title {
        color: #e97730;
        font-weight: bold;
    }

    .pending .step-number {
        background-color: #6c757d; /* Gris */
    }
    .pending .step-title {
        color: #6c757d;
    }

    .step-title {
        margin-top: 8px;
        font-size: 14px;
        text-align: center;
    }
/* pasos pedido */