/**
 * Estados focus/active compartidos — botones premium públicos.
 */
.sp-btn:active,
.ppc-btn:active,
.lc-btn:active,
.demo-btn:active,
.tfp-btn:active {
    transform: translateY(0);
}

.sp-btn--primary:active {
    filter: brightness(0.92);
}

.sp-btn--ghost:active {
    background: rgba(255, 255, 255, 0.88);
    color: var(--sp-navy, #071c2d);
}

.sp-cta__action:active {
    transform: translateY(0);
}

.ppc-btn--primary:active {
    filter: brightness(0.92);
}

.ppc-btn:focus-visible {
    outline: 2px solid var(--pv-cyan, #00d9d9);
    outline-offset: 3px;
}

.lc-btn:active {
    filter: brightness(0.94);
}

.demo-btn--primary:active {
    filter: brightness(0.92);
}

.demo-btn--secondary:active {
    background: rgba(7, 28, 45, 0.08);
}

body.lodging-detail-page .btn-book:active {
    transform: translateY(-1px);
    filter: brightness(0.94);
}

body.lodging-detail-page .btn-book:focus-visible {
    outline: 3px solid var(--ld-cyan, #00d9d9);
    outline-offset: 3px;
}

.np-filter:hover {
    border-color: rgba(10, 37, 64, 0.28);
    background: rgba(7, 28, 45, 0.04);
}

.np-filter:focus-visible {
    outline: 2px solid var(--pv-cyan, #00d9d9);
    outline-offset: 2px;
}

.np-filter[aria-pressed="true"]:hover {
    background: var(--pv-navy-soft, #0d3048);
    border-color: var(--pv-navy-soft, #0d3048);
}

.np-filter:active {
    transform: scale(0.98);
}

.lm-filter:hover {
    border-color: rgba(10, 37, 64, 0.28);
    background: rgba(7, 28, 45, 0.04);
}

.lm-filter.active,
.lm-filter[aria-pressed="true"] {
    background: var(--pv-navy, #071c2d);
    color: #fff;
    border-color: var(--pv-navy, #071c2d);
}

.lm-filter:focus-visible {
    outline: 2px solid var(--pv-cyan, #00d9d9);
    outline-offset: 2px;
}

.lm-filter:active {
    transform: scale(0.98);
}

.lm-card__btn:focus-visible {
    outline: 2px solid var(--pv-cyan, #00d9d9);
    outline-offset: 2px;
}
