/*
 * Sucursales: listado y ficha.
 *
 * Las diez tiendas caben en una retícula de tarjetas; cada una lleva foto,
 * dirección, teléfono marcable y horario, que es lo que se busca cuando se
 * entra aquí. La ficha reparte los datos a la izquierda y la foto con el mapa
 * a la derecha.
 */

/* El listado abre con la cabecera compartida, que ya trae su aire arriba. */
.sucursales {
    /* Solo el vertical: el lateral lo pone `.container`, y con el atajo
       `padding` se quedaba en cero y el contenido tocaba los bordes. */
    padding-top: 34px;
    padding-bottom: 70px;
    color: var(--texto);
}

.sucursal {
    /* Solo el vertical: el lateral lo pone `.container`, y con el atajo
       `padding` se quedaba en cero y el contenido tocaba los bordes. */
    padding-top: 30px;
    padding-bottom: 70px;
    color: var(--texto);
}

/* Franja del horario, a todo el ancho de la columna. El rótulo lleva el reloj
   al lado y va en negrita: es el título del bloque, no una línea más del texto. */
.horario {
    margin: 4px 0 34px;
    padding: 20px 24px;
    border: 1px solid #e4e7ec;
    border-radius: 14px;
    background: #f8f9fa;
}

.horario__rotulo {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: .93rem;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--texto);
    margin: 0 0 8px;
}

.horario__rotulo svg {
    flex: none;
    color: #e61e29;
}

.horario__texto {
    font-size: .93rem;
    line-height: 1.7;
    color: var(--texto);
    margin: 0;
}

@media (max-width: 575px) {
    .horario {
        padding: 18px 16px;
    }
}

/* ── Retícula de tarjetas ───────────────────────────────────────────── */

/* Dos por fila, con la foto al lado de los datos. Antes eran tarjetas
   verticales de tres en fondo: la foto ocupaba la mitad de cada una y empujaba
   la dirección y el horario —que es a lo que se entra— fuera de la pantalla. */
.reticula-sucursales {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(430px, 100%), 1fr));
    gap: 22px;
}

.sucursal-tarjeta {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    border: 1px solid #e4e7ec;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.sucursal-tarjeta:hover {
    border-color: #d5d8dc;
    box-shadow: 0 10px 26px rgba(31, 39, 51, .09);
}

/* Sin foto la tarjeta pasa a una sola columna en vez de dejar el hueco. */
.sucursal-tarjeta:not(:has(.sucursal-tarjeta__foto)) {
    grid-template-columns: minmax(0, 1fr);
}

.sucursal-tarjeta__foto {
    display: block;
    height: 100%;
}

.sucursal-tarjeta__foto img {
    width: 100%;
    height: 100%;
    min-height: 190px;
    object-fit: cover;
    display: block;
    background: #f2f3f5;
}

.sucursal-tarjeta__cuerpo {
    display: flex;
    flex-direction: column;
    padding: 18px 20px;
}

.sucursal-tarjeta__nombre {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0 0 12px;
}

.sucursal-tarjeta__nombre a {
    color: var(--texto);
    text-decoration: none;
    transition: color .2s ease;
}

.sucursal-tarjeta:hover .sucursal-tarjeta__nombre a {
    color: #e61e29;
}

/* ── Datos clave ────────────────────────────────────────────────────── */

.sucursal-datos {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    display: grid;
    gap: 9px;
}

/* Icono y texto alineados por la primera línea: con `center` el icono se iba
   al medio cuando la dirección ocupaba dos renglones. */
.sucursal-datos li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: .87rem;
    line-height: 1.5;
    color: var(--texto);
}

.sucursal-datos svg {
    color: #e61e29;
    margin-top: 2px;
}

.sucursal-datos a {
    color: var(--texto);
    text-decoration: none;
}

.sucursal-datos a:hover {
    color: #e61e29;
    text-decoration: underline;
}

/* ── Botones de cómo llegar ─────────────────────────────────────────── */

/* Se empujan al fondo para que queden a la misma altura en tarjetas con
   direcciones y horarios de distinto largo. */
.sucursal-tarjeta__rutas {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
}

.ruta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid #d5d8dc;
    border-radius: 8px;
    background: #fff;
    color: var(--texto);
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.ruta:hover {
    background: #fff5f5;
    border-color: #e61e29;
    color: #e61e29;
}

@media (max-width: 575px) {
    /* En un teléfono la foto pasa arriba: a 190 px de ancho no se ve nada y
       deja los datos en una columna de apenas cien píxeles. */
    .sucursal-tarjeta {
        grid-template-columns: minmax(0, 1fr);
    }

    .sucursal-tarjeta__foto img {
        aspect-ratio: 16 / 9;
        min-height: 0;
    }

    .ruta {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* ── Ficha de una sucursal ──────────────────────────────────────────── */

/* La ficha abre con la cabecera compartida, que ya trae su aire arriba. */
.sucursal {
    padding: 30px 0 70px;
    color: var(--texto);
}

/* Un solo recuadro con dos columnas: los datos y el mapa responden a la misma
   pregunta —dónde está y cómo llego—, y en dos bloques separados se leían como
   dos secciones sin relación. */
.sucursal__panel {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    align-items: stretch;
    border: 1px solid #e4e7ec;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    margin-bottom: 56px;
}

.sucursal__subtitulo {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--texto);
    margin: 0 0 16px;
}

/* La columna de datos lleva el fondo tenue y el mapa se queda sobre blanco:
   así se distinguen dentro del mismo recuadro sin una línea de por medio. */
.sucursal__datos {
    padding: 28px 30px;
    background: #fafbfc;
    border-right: 1px solid #e4e7ec;
}

/* Cada dato con su icono y su rótulo encima del valor: en la lista anterior el
   rótulo y el valor iban en renglones sueltos y todos pesaban igual. */
.sucursal-datos--ficha {
    display: grid;
    gap: 18px;
    margin: 0;
}

.sucursal-datos--ficha li {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    font-size: .95rem;
    line-height: 1.6;
}

.sucursal-datos--ficha strong {
    display: block;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--texto-suave);
    margin-bottom: 2px;
}

.sucursal-datos--ficha span {
    color: var(--texto);
}

.sucursal-datos--ficha a {
    color: #e61e29;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.sucursal-datos--ficha a:hover {
    text-decoration: underline;
}

.sucursal__descripcion {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid #e4e7ec;
    font-size: .93rem;
}

/* El mapa se estira al alto de la columna de datos para que las dos terminen
   a la misma altura. */
.sucursal__ubicacion {
    display: flex;
    flex-direction: column;
    padding: 28px 30px;
}

.sucursal__mapa {
    position: relative;
    flex: 1 1 auto;
    min-height: 320px;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e4e7ec;
}

.sucursal__mapa iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* ── Otras tiendas ──────────────────────────────────────────────────── */

/* Cierra la ficha con salidas: quien no encontró la que buscaba tiene aquí las
   otras nueve sin volver al listado. */
.otras-tiendas {
    padding-top: 34px;
    border-top: 1px solid #e4e7ec;
}

.otras-tiendas__cabecera {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.otras-tiendas__todas {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .88rem;
    font-weight: 600;
    color: #e61e29;
    text-decoration: none;
    white-space: nowrap;
}

.otras-tiendas__todas svg {
    transition: transform .2s ease;
}

.otras-tiendas__todas:hover svg {
    transform: translateX(3px);
}

.otras-tiendas__reticula {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr));
    gap: 12px;
}

.otra-tienda {
    display: grid;
    gap: 3px;
    padding: 14px 16px;
    border: 1px solid #e4e7ec;
    border-radius: 11px;
    background: #fff;
    text-decoration: none;
    transition: border-color .2s ease, background-color .2s ease;
}

.otra-tienda:hover {
    border-color: #f5c2c5;
    background: #fffafa;
}

.otra-tienda__nombre {
    font-size: .92rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--texto);
}

.otra-tienda:hover .otra-tienda__nombre {
    color: #e61e29;
}

.otra-tienda__lugar {
    font-size: .8rem;
    line-height: 1.45;
    color: var(--texto-suave);
}

@media (max-width: 991px) {
    /* En una columna la separación entre las dos mitades pasa de vertical a
       horizontal: el borde derecho ya no divide nada. */
    .sucursal__panel {
        grid-template-columns: minmax(0, 1fr);
    }

    .sucursal__datos {
        border-right: 0;
        border-bottom: 1px solid #e4e7ec;
    }

    .sucursal__mapa {
        min-height: 300px;
    }
}

@media (max-width: 575px) {
    .sucursal__datos,
    .sucursal__ubicacion {
        padding: 22px 20px;
    }
}