/* Small, reversible feedback; transforms used by galleries remain intact. */
body[data-concept] :is(button,a.cta,.review-tools>a){transition:background-color 180ms ease,color 180ms ease,box-shadow 180ms ease,translate 180ms ease,filter 180ms ease}
body[data-concept] :is(button,a.cta,.review-tools>a):focus-visible{outline:3px solid #bf4569;outline-offset:4px}
@media(hover:hover) and (pointer:fine){
 body[data-concept=play] :is(.cta,.more,.locations-more,.map-zoom,.filters button,.photo-dialog button):not(:disabled):hover{translate:0 -2px;box-shadow:0 5px 0 #15326920;filter:brightness(.96)}
 body[data-concept=flow] :is(.cta,.more,.locations-more,.map-zoom,.filters button,.gallery-actions button,.photo-dialog button):not(:disabled):hover{background:#eaf0ff;color:#202329;box-shadow:none;translate:none}
 body[data-concept] .review-tools :is(button,a):hover{background:#e3eaf4;color:#153269}
 body[data-concept] :is(.place-photo,.journey-photo):hover{filter:brightness(.94)}
 body[data-concept=flow] .location-row:hover{background:#eaf0ff}
 body[data-concept] :is(.cta,.more,.locations-more,.map-zoom,.filters button,.gallery-actions button,.photo-dialog button):active{translate:0 1px;box-shadow:none}
}
body.reduced[data-concept] :is(button,a.cta,.review-tools>a){transition:none;translate:none}
@media(prefers-reduced-motion:reduce){body[data-concept] :is(button,a.cta,.review-tools>a){transition:none;translate:none}}

/* Flow controls stay flat through hover and press. */
body[data-concept=flow] :is(.cta,.more,.locations-more,.map-zoom,.filters button,.gallery-actions button,.photo-dialog button):active{translate:none;box-shadow:none}
@media(hover:hover) and (pointer:fine){
 body[data-concept=flow] .review-tools :is(button,a):hover{background:#eaf0ff;color:#202329;box-shadow:none;translate:none}
 body[data-concept=flow] .location-row:hover{color:#202329;box-shadow:none;translate:none}
 body[data-concept=flow] .location-row:hover :is(h3,p,span){color:#202329}
}
/* Replace the search field border in place; no external focus ring. */
body[data-concept=play] #places input[type=search]:is(:focus,:focus-visible){outline:none;outline-offset:0;border-color:#204bff;box-shadow:none}
