/* Pulso · ajuste comum dos sites de revenda (2026-10-30): fotos inteiras, sem zoom, e a vitrine viva dos cards */
.fx-cheia { position: relative; isolation: isolate; overflow: hidden; }
.fx-cheia::before { content: ""; position: absolute; inset: -30px; background: var(--fx) center / cover no-repeat; filter: blur(22px) brightness(.72) saturate(1.1); z-index: -1; pointer-events: none; }
.fx-cheia > img { position: relative; }
/* sem zoom ao passar o mouse nem foto "crescendo" sozinha */
.cc:hover .cc-foto img, .vc:hover .vc-foto img, .loja-foto:hover img, .lr-foto:hover img, .cat:hover img, .hv-foto img, .hf img, .estilo:hover img, .serv-foto:hover img { transform: none !important; }
/* galeria do carro: a foto aparece inteira */
.gal-trilho img { object-fit: contain !important; }
/* vitrine viva: troca suave das fotos do card */
.cc-foto img { transition: opacity .16s ease, transform 1.1s ease; }
.cc-foto img.fx-troca { opacity: .35; }
.fx-barras { position: absolute; left: 10px; right: 10px; bottom: 9px; z-index: 4; display: flex; gap: 4px; opacity: 0; transition: opacity .3s; pointer-events: none; }
.fx-barras.on { opacity: 1; }
.fx-barras i { flex: 1; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .38); overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.fx-barras i b { display: block; height: 100%; width: 0; background: #fff; }
.fx-barras i.ja b { width: 100%; }
.fx-barras.on i.agora b { animation: fxEnche var(--passo, 1.1s) linear forwards; }
@keyframes fxEnche { to { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .fx-barras { display: none; } }
/* setas nos cards: passam as fotos do carro sem sair da lista */
.fx-seta { position: absolute; top: 50%; z-index: 5; width: 36px; height: 36px; margin-top: -18px; border: 0; border-radius: 50%; background: rgba(10, 10, 10, .55); color: #fff; display: grid; place-items: center; padding: 0; cursor: pointer; opacity: 0; transition: opacity .2s, background .2s; -webkit-tap-highlight-color: transparent; }
.fx-seta svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.fx-ant { left: 8px; } .fx-prox { right: 8px; }
.cc:hover .fx-seta, .cc:focus-within .fx-seta { opacity: 1; }
.fx-seta:hover { background: rgba(10, 10, 10, .8); }
@media (hover: none) { .fx-seta { opacity: .92; width: 34px; height: 34px; margin-top: -17px; } }
.fx-barras.man i.agora b { animation: none; width: 100%; }
/* galeria da página do carro: setas também no celular, no meio da foto */
@media (max-width: 899px) {
  .gal-set { display: flex !important; position: absolute; left: 8px; right: 8px; top: calc(var(--galH, 80vw) / 2); transform: translateY(-50%); margin: 0 !important; justify-content: space-between; pointer-events: none; z-index: 3; }
  .gal-set button { pointer-events: auto; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(10, 10, 10, .55) !important; color: #fff !important; border: 0 !important; }
  .gal-set .ic, .gal-set svg { width: 20px; height: 20px; stroke: #fff; }
}
/* proteção contra a tela "escorregando" de lado em navegadores que não entendem overflow: clip (Samsung Internet antigo) */
html, body { overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
/* setas dos trilhos (fileiras de carros que andam para o lado) */
.fx-tr { position: absolute; z-index: 6; width: 46px; height: 46px; margin-top: -23px; border-radius: 50%; border: 0; background: rgba(15, 15, 17, .82); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 8px 22px rgba(0, 0, 0, .28); transition: transform .2s, background .2s, opacity .2s; padding: 0; }
.fx-tr svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.fx-tr:hover { transform: scale(1.06); background: #000; }
.fx-tr[hidden] { display: none; }
@media (hover: none) { .fx-tr { width: 38px; height: 38px; margin-top: -19px; opacity: .9; } }
.fx-arrasta { cursor: grabbing; scroll-snap-type: none !important; user-select: none; }
.fx-arrasta * { pointer-events: none; }
