/* === Reset y Body === */
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background-color: #f4f4f9;
    color: #333;
    line-height: 1.6;
    margin: 0;
    padding: 20px;
}

/* Contenedor principal */
.page-wrapper {
    display: flex;            /* convierte en flex container para usar flexbox */
    gap: 20px;                /* espacio entre elementos directos (vertical aquí por columna) */
    justify-content: center;  /* centra los elementos hijos a lo largo del eje principal */
    align-items: center;      /* centra los elementos hijos a lo largo del eje transversal */
    flex-direction: column;   /* organiza los elementos en columna (vertical) */
    width: 100%;         /* ocupa todo el ancho del padre */
}

/* Wrapper de contenedores debajo */
.containers-wrapper {
    display: flex;            /* convierte en flex container para organizar los contenedores */
    justify-content: center;  /* centra los contenedores horizontalmente dentro del wrapper */
    flex-wrap: wrap;          /* si los contenedores no caben en una fila, pasan a la siguiente */
    width: 100%;         /* ocupa todo el ancho del padre */
    gap: 20px;                /* espacio entre contenedores, tanto horizontal como vertical si hay varias filas */
    align-items: stretch;     /* fuerza que todos los contenedores hijos tengan la misma altura */

}

/* === Contenedores secundarios === */
.container {
    flex: 0 1 600px;   /* no crece, puede encogerse hasta que max-width lo limite */
    display: flex;            /* necesario para que funcione flex-direction */
    flex-direction: column;   /* organiza el contenido del contenedor verticalmente */
    max-width: 600px;         /* establece el ancho máximo de cada contenedor */
    background: #fff;       /* fondo blanco */
    padding: 20px;            /* espacio interno alrededor del contenido */
    border-radius: 8px;       /* bordes redondeados */
    box-shadow: 0 4px 6px rgba(0,0,0,0.1); /* sombra para darle profundidad */
}

/* === Títulos y párrafos === */
h1 {
    color: #5c6ac4;
    text-align: center;
}
p {
    text-align: center;
    font-size: 18px;
}

/* === Formularios === */
form {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}
input[type="text"] {
    flex-grow: 1;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

/* === Botones generales === */
button {
    padding: 10px 15px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.3s;
    background: #5c6ac4;
    font-weight: bold;
    color: white;
}
button:hover {
    filter: brightness(0.9);
}

/* === Botones Google y Logout === */
.btn-google {
    background: #4285F4;
    color: white;
    margin-right: 10px;
}
.btn-logout {
    background: #555;
    color: white;
}

/* === Listados de restaurantes === */
ul {
    list-style: none;
    padding: 0;
}
li {
    background: #eef;
    padding: 15px;
    border-radius: 4px;
    margin-bottom: 10px;
    border-left: 4px solid #5c6ac4;
}

/* === Botones de acción en recomendaciones === */
.botones-accion {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 15px;
}
.botones-accion button {
    border-radius: 6px;
    padding: 10px 15px;
    color: white;
}
.botones-accion button:nth-child(1),
.botones-accion button:nth-child(4) {
    background: rgb(193, 174, 68);
}
.botones-accion button:nth-child(2) {
    background: rgb(70, 158, 70);
}
.botones-accion button:nth-child(3) {
    background: rgb(209, 101, 101);
}
.botones-accion button:nth-child(5) {
    background: #246caf;
}

/* === Loading === */
.loading {
    text-align: center;
    padding: 20px;
}

/* === Botones sesión encima del contenido === */
.session-buttons {
    text-align: center;
    display: flex;
    margin-bottom: 20px;
    justify-content: center;
}
.logged-info {
    display: flex;
    justify-content: center;
    gap: 10px;
    align-items: center;
}

.popup-overlay {
    position: fixed;
    top:0; left:0; width:100%; height:100%;
    background: rgba(0,0,0,0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

/* === PopUp perfil nuevo usuario === */
.popup {
    background: white;
    padding: 25px;
    border-radius: 10px;
    width: 400px;
    max-width: 90%;
    box-sizing: border-box;
}

/* Encabezado */
.popup h2 {
    margin-bottom: 15px;
    text-align: center;
}

/* Grid para los campos */
.popup .form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 2 columnas iguales */
    gap: 15px 10px; /* filas x columnas */
}

/* Ajuste de filas: opcional, se crean automáticamente con grid */
.popup .form-grid label {
    display: block;
    margin-bottom: 5px;
}

/* Inputs y selects ocupan todo el ancho de la celda */
.popup input,
.popup select {
    width: 100%;
    padding: 8px;
    border-radius: 5px;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

/* Botón */
.popup button {
    margin-top: 18px;
    width: 100%;
    padding: 8px;
    border: none;
    border-radius: 5px;
    color: white;
    font-weight: bold;
    cursor: pointer;
}

/* Imagen restaurante */
.recomendacion-item {
    display: flex; /* Keeps the image and the new div side-by-side */
    align-items: center; /* Vertically aligns them in the center */
    gap: 10px; /* Provides space between the image and the new div */
    word-wrap: break-word; /* Permite que las palabras largas se rompan */
    white-space: normal;   /* Permite que el texto haga saltos de línea automáticos */
    overflow-wrap: anywhere; /* Rompe palabras largas si es necesario */
}

.recomendacion-img {
    width: 380px;
    height: 380px;
    object-fit: cover;
    border-radius: 8px;
}

.recomendacion-details {
    /* Mantenemos un ancho mínimo para los detalles en PC, aunque flexbox ya ayuda */
    min-width: 100px; 
}

.perfil-botones {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}

.perfil-botones button {
    display: flex;            /* convierte en flex container para organizar los contenedores */
    width: 100%;         /* ocupa todo el ancho del padre */
    align-items: center;      /* centra los elementos hijos a lo largo del eje transversal */
    font-size: 24px;           /* tamaño del icono */
    padding: 10px 15px;
    border: 1px solid #ccc;    /* borde gris */
    border-radius: 8px;
    background: transparent;    /* fondo transparente */
    cursor: pointer;
    justify-content: center;   /* centra horizontalmente */
    transition: all 0.2s;
}

.perfil-botones button.activo {
    border-color: #838dcb;     /* borde morado */
    background: #e0e4f7;       /* fondo ligero para indicar selección */
}


/* Responsive para móvil */
@media (max-width: 500px) {
    .popup .form-grid {
        grid-template-columns: 1fr; /* 1 columna en móvil */
    }
    .recomendacion-item {
        /* Fuerza a los elementos a APILARSE (salto de línea) */
        flex-direction: column;
        gap: 20px; /* Podemos aumentar el espacio vertical entre elementos */
    }
    .recomendacion-img {
        /* Hace que la imagen ocupe TODO el ancho disponible */
        width: 100%; 
        /* Reducimos la altura para que no sea tan grande en móvil */
        height: auto; 
        /* Aseguramos que la imagen use el 100% del ancho del contenedor y no los 380px fijos */
    }
    
}


