/* =========================================
   LOCALIZADOR DE FARMACIAS · HIDROTELIAL
========================================= */

.htl-farm {
    --fh-teal: #55bdb2;
    --fh-teal-dark: #43aa9f;
    --fh-cream: #fbf7ee;
    --fh-link: #5aa79e;
    --fh-text: #3c4a48;

    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 22px;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
}

.htl-farm__oculto {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* =========================================
   PANEL DE BÚSQUEDA Y LISTADO
========================================= */

.htl-farm__panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 16px;
    border-radius: 20px;
    background-color: var(--fh-cream);
}

.htl-farm__buscador {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}

.htl-farm__buscador input {
    flex: 1 1 auto;
    min-width: 0;
    height: 36px;
    padding: 0 18px;
    border: 1px solid rgba(90, 167, 158, 0.35);
    border-radius: 30px;
    background-color: #fff;
    color: var(--fh-text);
    font-size: 14px;
    outline: none;
}

.htl-farm__buscador input::placeholder {
    color: #a8b3b1;
}

.htl-farm__buscador input:focus {
    border-color: var(--fh-teal);
}

.htl-farm__geo {
    flex: 0 0 auto;
    height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: 30px;
    background-color: var(--fh-teal);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.htl-farm__geo:hover:not(:disabled) {
    background-color: var(--fh-teal-dark);
}

.htl-farm__geo:disabled {
    opacity: 0.6;
    cursor: default;
}

.htl-farm__contador {
    margin: 0 0 10px;
    padding-left: 4px;
    color: var(--fh-link);
    font-size: 12px;
}

/* Listado */

.htl-farm__lista {
    flex: 1 1 auto;
    max-height: 600px;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
}

.htl-farm__lista li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.htl-farm__item {
    display: block;
    width: 100%;
    margin-bottom: 6px;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: 12px;
    background-color: #fff;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease;
}

.htl-farm__item:hover,
.htl-farm__item.es-activo {
    border-color: var(--fh-teal);
}

.htl-farm__nombre {
    display: block;
    margin-bottom: 3px;
    color: var(--fh-teal-dark);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
}

.htl-farm__dir {
    display: block;
    color: var(--fh-link);
    font-size: 12px;
    line-height: 1.35;
}

.htl-farm__dist {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 9px;
    border-radius: 20px;
    background-color: rgba(85, 189, 178, 0.16);
    color: var(--fh-teal-dark);
    font-size: 11px;
    font-weight: 600;
}

/* =========================================
   MAPA
========================================= */

.htl-farm__mapa {
    min-height: 620px;
    border-radius: 20px;
    background-color: #e3e3e3;
    overflow: hidden;
    z-index: 0;
}

.htl-farm__pin {
    background: none;
    border: 0;
}

/* Popup */

.htl-farm .leaflet-popup-content-wrapper {
    border-radius: 14px;
}

.htl-farm .leaflet-popup-content {
    margin: 14px 16px;
}

.htl-farm__popup {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 180px;
}

.htl-farm__popup strong {
    color: var(--fh-teal-dark);
    font-size: 14px;
    line-height: 1.25;
}

.htl-farm__popup span {
    color: var(--fh-text);
    font-size: 12px;
    line-height: 1.35;
}

.htl-farm__popup a {
    color: var(--fh-link) !important;
    font-size: 12px;
    text-decoration: none;
}

.htl-farm__ruta {
    align-self: flex-start;
    margin-top: 6px;
    padding: 6px 14px;
    border-radius: 20px;
    background-color: var(--fh-teal);
    color: #fff !important;
    font-weight: 600;
}

.htl-farm__ruta:hover {
    background-color: var(--fh-teal-dark);
    color: #fff !important;
}

/* =========================================
   FOCO VISIBLE
========================================= */

.htl-farm button:focus-visible,
.htl-farm input:focus-visible,
.htl-farm a:focus-visible {
    outline: 2px solid var(--fh-teal-dark);
    outline-offset: 2px;
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 900px) {

    .htl-farm {
        grid-template-columns: 1fr;
    }

    .htl-farm__lista {
        max-height: 320px;
    }

    .htl-farm__mapa {
        order: -1;
        min-height: 320px;
    }

}

@media (max-width: 600px) {

    .htl-farm__buscador {
        flex-direction: column;
    }

    .htl-farm__geo {
        width: 100%;
    }

}

@media (prefers-reduced-motion: reduce) {

    .htl-farm * {
        transition-duration: 0.01ms !important;
    }

}
