/* VV Imóveis — visualizador de fotos e galerias em tamanho padrão */

/* ---------- miniaturas padronizadas ---------- */
.vv-galeria-grade{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
	gap:10px;
	margin:22px 0 8px;
}
.vv-galeria-grade .vv-foto{
	position:relative;
	display:block;
	width:100%;
	aspect-ratio:4/3;
	overflow:hidden;
	border-radius:10px;
	background:#e9e6e0;
	cursor:zoom-in;
	border:0;
	padding:0;
	-webkit-tap-highlight-color:transparent;
}
.vv-galeria-grade .vv-foto img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform .35s ease;
}
.vv-galeria-grade .vv-foto:hover img{ transform:scale(1.05); }
.vv-galeria-grade .vv-foto:focus-visible{ outline:3px solid var(--vv-gold,#1FC7A8); outline-offset:2px; }

/* capa grande, também clicável */
.vv-single-capa{ position:relative; cursor:zoom-in; }
.vv-single-capa img{
	width:100%;
	aspect-ratio:16/9;
	object-fit:cover;
	display:block;
	border-radius:12px;
}
.vv-foto-dica{
	position:absolute;
	right:12px; bottom:12px;
	background:rgba(20,37,61,.82);
	color:#fff;
	font-size:12px;
	font-weight:600;
	letter-spacing:.02em;
	padding:7px 12px;
	border-radius:999px;
	pointer-events:none;
}

@media (max-width:640px){
	.vv-galeria-grade{ grid-template-columns:repeat(2,1fr); gap:8px; }
	.vv-single-capa img{ aspect-ratio:4/3; border-radius:8px; }
}

/* ---------- modal ---------- */
body.vv-lb-travado{ overflow:hidden; }

.vv-lb{
	position:fixed;
	inset:0;
	z-index:99999;
	background:rgba(10,16,26,.94);
	display:none;
	flex-direction:column;
	-webkit-backdrop-filter:blur(4px);
	backdrop-filter:blur(4px);
}
.vv-lb.aberto{ display:flex; }

.vv-lb-palco{
	flex:1;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:56px 12px 12px;
	min-height:0;
	position:relative;
}
.vv-lb-palco img{
	max-width:100%;
	max-height:100%;
	object-fit:contain;
	border-radius:6px;
	box-shadow:0 18px 60px rgba(0,0,0,.5);
	transition:opacity .18s ease;
}
.vv-lb.carregando .vv-lb-palco img{ opacity:.25; }

.vv-lb-load{
	position:absolute;
	width:34px; height:34px;
	border:3px solid rgba(255,255,255,.25);
	border-top-color:var(--vv-gold,#1FC7A8);
	border-radius:50%;
	opacity:0;
	animation:vv-lb-gira .8s linear infinite;
}
.vv-lb.carregando .vv-lb-load{ opacity:1; }
@keyframes vv-lb-gira{ to{ transform:rotate(360deg); } }

.vv-lb-x{
	position:absolute;
	top:12px; right:12px;
	width:46px; height:46px;
	border:0;
	border-radius:50%;
	background:rgba(255,255,255,.14);
	color:#fff;
	font-size:30px;
	line-height:1;
	cursor:pointer;
	z-index:2;
	display:flex;
	align-items:center;
	justify-content:center;
}
.vv-lb-x:hover{ background:rgba(255,255,255,.26); }

.vv-lb-nav{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	width:52px; height:52px;
	border:0;
	border-radius:50%;
	background:rgba(255,255,255,.13);
	color:#fff;
	font-size:22px;
	cursor:pointer;
	z-index:2;
}
.vv-lb-nav:hover{ background:rgba(255,255,255,.26); }
.vv-lb-nav[hidden]{ display:none; }
.vv-lb-ant{ left:14px; }
.vv-lb-prox{ right:14px; }

.vv-lb-rodape{
	flex:0 0 auto;
	padding:12px 18px calc(14px + env(safe-area-inset-bottom));
	color:rgba(255,255,255,.82);
	font-size:13px;
	display:flex;
	gap:14px;
	align-items:center;
	justify-content:center;
	text-align:center;
}
.vv-lb-cont{
	font-weight:700;
	letter-spacing:.06em;
	color:var(--vv-gold,#1FC7A8);
	white-space:nowrap;
}
.vv-lb-leg{ opacity:.8; }

/* celular: setas menores e no rodapé, o dedo já faz o trabalho */
@media (max-width:640px){
	.vv-lb-palco{ padding:60px 6px 6px; }
	.vv-lb-nav{ width:44px; height:44px; background:rgba(255,255,255,.10); }
	.vv-lb-ant{ left:6px; }
	.vv-lb-prox{ right:6px; }
	.vv-lb-x{ width:42px; height:42px; font-size:26px; }
}

@media (prefers-reduced-motion:reduce){
	.vv-galeria-grade .vv-foto img,
	.vv-lb-palco img{ transition:none; }
	.vv-lb-load{ animation:none; }
}
