.oferta {
  display: grid;
  grid-template-rows: auto auto;
  grid-template-columns: 35% 65%;
  border-radius: 30px;
  background-color: white;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  margin: 3% auto;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.oferta:hover {
  transform: scale(1.02);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.oferta-express {
  display: grid;
  grid-template-rows: auto 1fr;
  border-radius: 30px;
  background-color: white;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  margin: 3% auto;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.oferta-express:hover {
  transform: scale(1.02);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.contenido-oferta {
  display: grid;
  grid-template-columns: 35% 65%;
}

.grid-oferta {
  display: grid;
  grid-template-rows: auto auto;
}

.imagen{
  border-top-left-radius: 30px !important;
  border-bottom-left-radius: 30px !important;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.imagen-oferta-express{
  border-bottom-left-radius: 30px !important;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.grid-imagen img {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  display: block;

  border-top-right-radius: 30px;
  border-bottom-right-radius: 30px;
}

.parte-arriba{
  display: grid;
  grid-template-columns: 70% 30%;
  padding: 4%;
  padding-bottom: 0;
  
}

.texto-oferta{
  text-align: left;
}

.info-oferta{
  text-align: right;
}

.tienda{
  margin-top: -5%;
}

.descuento-texto{
  color: rgb(245, 36, 71) !important; 
  font-size: 32px;
}

.precio-sin-oferta{
  margin-top: -15%;
  color: rgb(245, 36, 71) !important; 
  text-decoration: line-through;
}

.grid-tiempo{
  margin-top: -5%;
  display: grid;
  grid-template-rows: 50% 50%;
  
}

.info-precio-tiempo-oferta{
  display: grid;
  grid-template-rows: 30% 25% 55%;
}

.tiempo{
  margin-top: -9%;
  display: grid;
  grid-template-columns: 30% 70%;
  
}

.icono-tiempo{
  width: 30px;
  margin-left: 70%;
}

.franja-oferta-express {
  grid-column: 1 / -1; /* hace que ocupe toda la fila */
  background-color: rgb(245, 36, 71);
  color: white;
  font-weight: bold;
  padding: 8px 20px;
  text-align: center;
  font-size: 14px;
  border-top-left-radius: 30px;
  border-top-right-radius: 30px;
}
.parte-abajo{
  display: grid;
  grid-template-columns: 55% 25% 20%;
  padding: 0 4% 2% 4%;
  align-items: center;

}

.poca-cantidad{
  color: rgb(245, 36, 71) !important; 
}

.grid-ver-oferta, .grid-reservar-oferta{
  text-align: right;
}

.btn-ver{
  border-radius: 25px;
  border: solid rgb(41, 111, 240);
  background-color: white;
  color: rgb(41, 111, 240);
  transition: background-color 0.3s ease;
}

.btn-ver:hover{
  background-color: rgb(41, 111, 240);
}

.btn-ver:active{
  background-color: rgb(26, 84, 192) !important;
  color: white !important;
}

.btn-ver:focus{
  outline: none;
  background-color: rgb(255, 255, 255);
  color: rgb(41, 111, 240);
  border: solid rgb(41, 111, 240);
}


.btn-reservar{
  border-radius: 25px;
  background-color: rgb(41, 111, 240);
  border: 4px solid rgb(41, 111, 240);
  transition: background-color 0.3s ease;
}

.btn-reservar:hover{
  background-color: rgb(26, 84, 192);
}

.btn-finalizado {
  border-radius: 25px;
  background-color: rgb(41, 111, 240);
  border: 4px solid rgb(41, 111, 240);
  color: white;
  cursor: default;
  opacity: 0.8;
}

.btn-finalizado:hover {
  background-color: rgb(41, 111, 240); /* sin cambio al pasar el mouse */
}

.btn-reservar:active{
  background-color: rgb(13, 56, 134) !important;
}

.btn-reservar:focus{
  background-color: rgb(41, 111, 240);
}

.margenh2{
  margin-bottom: 20px;
}

.margentiempo{
  margin-top: 10px;
}

@media (min-width: 650px) and (max-width: 1160px) {
  .oferta {
    display: grid;
    grid-template-columns: 40% 60%;
    grid-template-rows: auto auto;
    grid-template-areas:
      "imagen parte-arriba"
      "parte-abajo parte-abajo";
    border-radius: 25px;
  }

  .oferta-express {
    display: grid;
    grid-template-rows: auto 1fr;
    border-radius: 25px;
    overflow: hidden;
  }

  .franja-oferta-express {
    background-color: rgb(245, 36, 71);
    color: white;
    font-weight: bold;
    padding: 8px 20px;
    text-align: center;
    font-size: 14px;
    border-top-left-radius: 25px;
    border-top-right-radius: 25px;
  }
  
  .contenido-oferta {
    display: grid;
    grid-template-columns: 40% 60%;
    grid-template-rows: auto auto;
    grid-template-areas:
      "imagen parte-arriba"
      "parte-abajo parte-abajo";
  }

  .grid-imagen {
    grid-area: imagen;
    height: auto;
  }

  .grid-oferta {
    display: contents;
  }

  .parte-arriba {
    grid-area: parte-arriba;
    padding: 6%;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .info-oferta {
    order: 1;
    text-align: left;
  }

  .imagen{
    border-radius: 20px 0 0 0 !important;
  }

  .contenido-oferta .imagen-oferta-express {
    border-radius: 0 !important;
  }

  .info-precio-tiempo {
    display: grid;
    gap: 20px;
    grid-template-columns: 50% 50%;
    justify-content: flex-start;
    align-items: center;
  }

  .precio-sin-oferta{
    margin-top: 0;
  }

  .grid-tiempo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px; /
    
  }

  .grid-tiempo .texto-tiempo {
    margin: 0;
    padding: 0;
  }

  .grid-tiempo .texto-tiempo p {
    margin: 0;
    font-size: 14px;
  }


  .tiempo {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0;
  }

  .icono-tiempo {
    width: 18px;
    margin: 0;
    margin-top: -20%;
  }
  .texto-oferta {
    order: 2;
  }

  .parte-abajo {
    grid-area: parte-abajo;
    display: grid;
    grid-template-columns: 50% 25% 25%;
    justify-content: space-between;
    align-items: center;
    border-bottom-left-radius: 25px;
    border-bottom-right-radius: 25px;
    padding-right: 10%;
  }

  .cantidad {
    flex: 1;
    text-align: left;
  }

.grid-ver-oferta,
.grid-reservar-oferta {
  flex: 0 0 auto;
  padding-right: 20px;
}

  .btn-ver,
  .btn-reservar {
    padding: 8px 16px;
    font-size: 20px;
    width: 100%;
    align-items: center;
  }

  

  .imagen,
  .grid-imagen img {
    border-radius: 25px 0 0 0 !important;
    object-fit: cover;
    height: 100%;
    width: 100%;
  }

  .margenh2{
    margin-bottom: 0px;
  }

  .margentiempo{
    margin-top: 0px;
  }
}

@media (min-width: 360px) and (max-width: 750px) {
  .oferta {
    display: flex;
    flex-direction: column;
    align-items: center;
    border-radius: 20px;
    margin: 5% auto;
    width: 70%;
    font-size: 14px;
    box-sizing: border-box;
    height: auto; 
    overflow: hidden;
  }

  .oferta-express {
    display: flex;
    flex-direction: column;
    align-items: center;
    border-radius: 20px;
    margin: 5% auto;
    width: 70%;
    font-size: 14px;
    box-sizing: border-box;
    height: auto;
    overflow: hidden;
    background-color: white;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  }

  .franja-oferta-express {
    width: 100%;
    background-color: rgb(245, 36, 71);
    color: white;
    font-weight: bold;
    padding: 8px 0;
    text-align: center;
    font-size: 14px;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
  }

  .contenido-oferta {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .grid-imagen {
    width: 100%;
    height: auto;
  }

  .imagen {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 20px 20px 0 0 !important;
  }

  .contenido-oferta .imagen-oferta-express {
    border-radius: 0 !important;
  }

  .grid-oferta {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 5%;
    width: 100%;
  }

  .franja-oferta-express {
    width: 100%;
    background-color: rgb(245, 36, 71);
    color: white;
    font-weight: bold;
    padding: 8px 20px;
    text-align: center;
    font-size: 14px;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
  }

  .parte-arriba {
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: center;
    gap: 10px;
  }

  .texto-oferta {
    order: 2;
  }

  .info-precio-tiempo {
    order: 1;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
    padding: 10px 0;
  }

  .precio {
    text-align: left;
  }

  .precio h2 {
    font-size: 28px;
    margin: 0;
  }

  .precio-sin-oferta {
    font-size: 18px;
    margin: 0;
    color: rgb(245, 36, 71);
    text-decoration: line-through;
  }

  .grid-tiempo {
    text-align: right;
  }

  .texto-tiempo {
    font-size: 14px;
    margin-bottom: 4px;
  }

  .tiempo {
    display: grid;
    grid-template-columns: 30% 60%;
    align-items: center;
    
    white-space: nowrap;
  }

  .icono-tiempo {
    width: 25px;
    margin-bottom: 70%;
    margin-left: -10%;
  }

  .parte-abajo {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 10px;
    margin-top: 20px;
    width: 100%;
    padding-right: 0;
  }

  .cantidad {
    font-weight: bold;
    font-size: 15px;
    text-align: center;
  }

  .grid-ver-oferta, .grid-reservar-oferta {
    width: 100%;
    
    justify-content: center;
    padding: 0;
    box-sizing: border-box;
  }
  
  .btn-ver, .btn-reservar {
    width: 100%;
    
  }

  .btn-ver {
    padding: 10px;
    white-space: nowrap;
    text-align: center;
    display: block;
    width: 100%;
    box-sizing: border-box;
  }


 

}






@media (max-width: 360px) {
  .oferta {
    display: flex;
    flex-direction: column;
    margin-top: 6%;
    border-radius: 20px;
    gap: 5%;
    width: 100%;
    height: auto; 
    overflow: hidden; 
  }

  .oferta-express {
    display: flex;
    flex-direction: column;
    margin-top: 6%;
    border-radius: 20px;
    gap: 5%;
    width: 100%;
    height: auto;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  }

  .franja-oferta-express {
    background-color: rgb(245, 36, 71);
    color: white;
    font-weight: bold;
    text-align: center;
    padding: 8px 20px;
    font-size: 14px;
    width: 100%;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
  }

  .contenido-oferta {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

 

  .grid-imagen {
    height: 200px;
    
  }

  .imagen{
    border-radius: 20px 20px 0 0 !important;
  }

  .contenido-oferta .imagen-oferta-express {
    border-radius: 0 !important;
  }

  .grid-oferta {
    grid-template-rows: auto auto;
  }

  .parte-arriba {
    display: flex;
    flex-direction: column;
    padding: 10%;
    gap: 10px;
  }

  .texto-oferta {
    order: 2;
    text-align: left;
  }

  .info-oferta {
    order: 1;
  }

  .tienda {
    margin-top: -6%;
  }

  .info-precio-tiempo {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 25px;
    gap: 10px;
  }
  
  .precio{
    text-align: left;
  }

  .info-oferta .precio h2{
    font-size: 40px;
  }

  .precio-sin-oferta{
    font-size: 30px;
  }

  .descuento-texto{
    font-size: 40px !important;
  }

  .grid-tiempo {
    text-align: right;
    margin-top: 5%;
    
  }

  .tiempo {
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap; 
  }
  .icono-tiempo {
    margin-left: 0;
    margin-bottom: 20%;
  }

  .parte-abajo {
    grid-template-columns: 1fr;
    text-align: center;
    row-gap: 10px;
    margin-top: -10%;
  }

  .grid-ver-oferta, .grid-reservar-oferta {
    text-align: center;
  }

  .btn-ver, .btn-reservar {
    width: 80%;
    padding: 10px;
  }
}