/* Botón unificado: Cerca de mí / Usar mi ubicación (icono LocateFixed) */

.location-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.location-action-btn svg.location-action-btn__icon,
.location-action-btn .location-action-btn__icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.location-action-btn__spinner {
    display: none;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: location-action-spin 0.65s linear infinite;
    opacity: 0.85;
}

@keyframes location-action-spin {
    to {
        transform: rotate(360deg);
    }
}

.location-action-btn.is-loading {
    pointer-events: none;
    cursor: wait;
}

.location-action-btn.is-loading .location-action-btn__icon {
    display: none;
}

.location-action-btn.is-loading .location-action-btn__spinner {
    display: block;
}

/* Variante estándar: fondo blanco, activo verde */
.location-action-btn--standard,
.landing-hero-geo.location-action-btn {
    border: 1px solid rgba(15, 23, 42, 0.1);
    background: #fff;
    color: #0f172a;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.location-action-btn--standard:hover,
.landing-hero-geo.location-action-btn:hover {
    border-color: rgba(14, 143, 102, 0.35);
    background: #F3FFFA;
}

.location-action-btn--standard.is-active,
.landing-hero-geo.location-action-btn.is-active {
    background: #068C61;
    border-color: #056947;
    color: #fff;
}

/* Mapa: botones de texto con icono */
.map-btn.location-action-btn--standard {
    border-color: var(--map-border, rgba(15, 23, 42, 0.12));
    color: var(--map-navy, #0f172a);
    font-weight: 600;
}

.map-btn.location-action-btn--standard:hover {
    border-color: var(--map-green, #068C61);
    background: var(--map-green-soft, #F3FFFA);
}

.map-btn.location-action-btn--standard.is-active {
    background: var(--map-green, #068C61);
    border-color: var(--map-green-dark, #056947);
    color: #fff;
    box-shadow: 0 8px 24px -12px rgba(14, 143, 102, 0.7);
}

/* Control flotante del mapa (solo icono) */
.map-control-btn.location-action-btn {
    display: grid;
    place-items: center;
}

.map-control-btn--locate .location-action-btn__icon {
    width: 18px;
    height: 18px;
}

.map-control-btn--locate.is-loading .location-action-btn__spinner {
    width: 16px;
    height: 16px;
}

/* Tab marketplace */
.market-tab-location {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.market-tab-location .location-action-btn__icon {
    width: 16px;
    height: 16px;
}

/* Vendedor: botón en modal de ubicación */
.btn.location-action-btn .location-action-btn__icon,
.btn.location-action-btn .btn-icon.location-action-btn__icon {
    width: 18px;
    height: 18px;
}

/* Landing: CTA secundario con icono */
.landing-btn-with-locate {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.landing-btn-with-locate .location-action-btn__icon {
    width: 18px;
    height: 18px;
}
