/*
 * Página do estabelecimento ("vitrine") — ver.php. Fase 3, 19/10/2026.
 * Tudo com prefixo vt- para não colidir com style.css / Bootstrap 3 do tema.
 * Layout: capa em carrossel + nome à esquerda, contatos e mapa à direita → cards de
 * informações → fotos → avaliações → relacionados. No celular: capa, nome, contatos, descrição.
 */
.vt {
	--vt-bg: #f4f7fb; --vt-surface: #fff; --vt-soft: #eef3fa; --vt-ink: #14223a; --vt-text: #33415a; --vt-muted: #6b7890; --vt-line: #dfe6f0;
	--vt-blue: #1663d6; --vt-blue-soft: #e6efff; --vt-green: #17a34a; --vt-green-dark: #128a3e; --vt-star: #f5b301;
	--vt-gold-bg: #fff4cf; --vt-gold-ink: #8a5a00; --vt-open: #17a34a; --vt-closed: #c0392b;
	--vt-r: 12px; --vt-shadow: 0 1px 2px rgba(20,34,58,.05), 0 4px 14px rgba(20,34,58,.06);
	color: var(--vt-text); font-size: 14.5px; line-height: 1.6; padding-bottom: 30px;
}
.vt h1, .vt h2, .vt h3 { color: var(--vt-ink); margin: 0; line-height: 1.2; font-weight: 700; }
.vt a { text-decoration: none; }
.vt *, .vt *::before, .vt *::after { box-sizing: border-box; }

.vt-crumbs { font-size: 12px; color: var(--vt-muted); padding: 14px 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.vt-crumbs a { color: var(--vt-blue); }

/* topo */
.vt-top { display: grid; grid-template-columns: minmax(0, 1fr) 340px; grid-template-rows: auto 1fr; grid-template-areas: "a c" "b c"; gap: 0 28px; align-items: start; }
.vt-a { grid-area: a; min-width: 0; }
.vt-b { grid-area: b; min-width: 0; }
.vt-c { grid-area: c; min-width: 0; }

.vt-carousel { position: relative; border-radius: var(--vt-r); overflow: hidden; aspect-ratio: 2.9 / 1; background: var(--vt-soft); }
.vt-carousel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; }
.vt-carousel .vt-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--vt-ink); box-shadow: 0 2px 8px rgba(0,0,0,.2); font-size: 16px; line-height: 36px; text-align: center; padding: 0; }
.vt-carousel .vt-prev { left: 14px; } .vt-carousel .vt-next { right: 14px; }
.vt-carousel .vt-count { position: absolute; right: 14px; bottom: 12px; background: rgba(0,0,0,.6); color: #fff; font-size: 12px; font-weight: 600; padding: 3px 11px; border-radius: 999px; }

.vt-title { padding-top: 20px; }
.vt-title-row { display: flex; align-items: center; gap: 14px; }
.vt-logo { width: 64px; height: 64px; border-radius: 14px; flex: none; overflow: hidden; background: var(--vt-blue-soft); color: var(--vt-blue); font-weight: 800; font-size: 22px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--vt-line); }
.vt-logo img { width: 100%; height: 100%; object-fit: cover; }
.vt-title h1 { font-size: 30px; font-weight: 800; }
.vt-meta { color: var(--vt-muted); font-size: 14.5px; margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px 10px; }
.vt-meta span + span::before { content: "•"; margin-right: 10px; }
.vt-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px; font-size: 13px; }
.vt-rating b { color: var(--vt-ink); font-size: 15px; }
.vt-stars { color: var(--vt-star); display: inline-flex; gap: 2px; font-size: 15px; }
.vt-badge { display: inline-flex; align-items: center; gap: 6px; background: var(--vt-gold-bg); color: var(--vt-gold-ink); font-size: 11.5px; font-weight: 700; padding: 4px 10px; border-radius: 6px; }
.vt-badge .fa { color: var(--vt-star); }
.vt-open { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: var(--vt-open); }
.vt-open::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.vt-open.off { color: var(--vt-closed); }

.vt-desc { margin-top: 18px; }
.vt-desc p { margin: 0 0 6px; max-width: 72ch; }
.vt-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.vt-chip { background: var(--vt-blue-soft); color: var(--vt-blue); font-size: 12.5px; font-weight: 600; padding: 6px 14px; border-radius: 999px; }

/* contatos */
.vt-contact { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-r); padding: 14px; display: flex; flex-direction: column; gap: 10px; box-shadow: var(--vt-shadow); }
.vt-btn { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 14px; border-radius: 8px; border: 1.5px solid var(--vt-line); background: var(--vt-surface); font-weight: 600; font-size: 13.5px; color: var(--vt-ink) !important; transition: border-color .15s, background .15s; width: 100%; cursor: pointer; }
.vt-btn:hover, .vt-btn:focus { border-color: var(--vt-blue); background: var(--vt-blue-soft); }
.vt-btn .fa { color: var(--vt-blue); font-size: 17px; }
.vt-btn.vt-wa { background: var(--vt-green); border-color: var(--vt-green); color: #fff !important; padding: 14px; }
.vt-btn.vt-wa .fa { color: #fff; font-size: 20px; }
.vt-btn.vt-wa:hover { background: var(--vt-green-dark); border-color: var(--vt-green-dark); }
.vt-btn .vt-ig { color: #d6249f; } .vt-btn .vt-fb { color: #1877f2; } .vt-btn .vt-yt { color: #e62117; }
.vt-btn b { font-variant-numeric: tabular-nums; }
.vt-addr { display: flex; gap: 12px; padding: 14px; border-radius: 10px; background: var(--vt-soft); font-size: 13px; color: var(--vt-ink); }
.vt-addr .fa { color: var(--vt-blue); font-size: 20px; margin-top: 2px; }
.vt-map { position: relative; border-radius: 10px; overflow: hidden; border: 1px solid var(--vt-line); aspect-ratio: 16 / 11; background: var(--vt-soft); }
.vt-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vt-msg summary { cursor: pointer; list-style: none; }
.vt-msg summary::-webkit-details-marker { display: none; }
.vt-msg form { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.vt-msg label { font-size: 12px; font-weight: 600; color: var(--vt-ink); margin: 0; }
.vt-msg input, .vt-msg textarea, .vt-form input, .vt-form textarea { width: 100%; border: 1.5px solid var(--vt-line); border-radius: 8px; padding: 9px 11px; font: inherit; font-size: 13.5px; color: var(--vt-ink); background: #fff; }
.vt-msg textarea { min-height: 90px; resize: vertical; }
.vt-alert { padding: 10px 12px; border-radius: 8px; font-size: 13px; background: var(--vt-soft); color: var(--vt-ink); }
.vt-alert.ok { background: #e6f6ec; color: #0f6b33; }
.vt-alert.erro { background: #fdecea; color: #a12a1e; }

/* cards de informação */
.vt-info { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin-top: 26px; }
.vt-card { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-r); padding: 18px; min-width: 0; }
.vt-card h3 { font-size: 13.5px; display: flex; gap: 10px; align-items: center; margin-bottom: 14px; }
.vt-card h3 .fa { font-size: 20px; color: var(--vt-green); width: 22px; text-align: center; }
.vt-card h3 .fa.vt-c-blue { color: var(--vt-blue); }
.vt-hours { width: 100%; border-collapse: collapse; font-size: 13px; }
.vt-hours td { padding: 5px 0; vertical-align: top; }
.vt-hours td:first-child { color: var(--vt-ink); font-weight: 500; padding-right: 10px; white-space: nowrap; }
.vt-hours tr.vt-today td { color: var(--vt-blue); font-weight: 700; }
.vt-price { font-size: 22px; font-weight: 800; color: var(--vt-green); letter-spacing: .04em; }
.vt-price span { color: var(--vt-line); }
.vt-price-range { font-size: 15px; color: var(--vt-ink); font-weight: 600; margin-top: 4px; }
.vt-price-range small { display: block; color: var(--vt-muted); font-weight: 400; font-size: 12px; }
.vt-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 9px; font-size: 13px; }
.vt-list li { display: flex; gap: 10px; align-items: center; }
.vt-list .fa { color: var(--vt-green); width: 16px; text-align: center; }

/* seções */
.vt-section { margin-top: 34px; }
.vt-sec-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.vt-sec-h h2 { font-size: 18px; display: flex; gap: 10px; align-items: center; }
.vt-sec-h h2 .fa { color: var(--vt-blue); font-size: 20px; }
.vt-sec-h h2 .fa-star { color: var(--vt-star); }
.vt-link { color: var(--vt-blue) !important; font-weight: 600; font-size: 13px; background: none; border: 0; padding: 0; cursor: pointer; }
.vt-photos { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.vt-ph { position: relative; aspect-ratio: 16 / 10; border-radius: 8px; overflow: hidden; border: 0; padding: 0; background: var(--vt-soft); cursor: zoom-in; display: block; width: 100%; }
.vt-ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.vt-ph:hover img { transform: scale(1.05); }
.vt-ph .vt-more { position: absolute; inset: 0; background: rgba(10,18,32,.55); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 16px; }

.vt-rv-head { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--vt-muted); margin: -6px 0 14px; flex-wrap: wrap; }
.vt-rv-head b { color: var(--vt-ink); font-size: 15px; }
.vt-reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.vt-rv { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-r); padding: 16px; }
.vt-rv-top { display: flex; gap: 12px; align-items: center; margin-bottom: 10px; }
.vt-av { width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; flex: none; }
.vt-rv-top b { display: block; font-size: 13px; color: var(--vt-ink); }
.vt-rv-top small { color: var(--vt-muted); font-size: 11.5px; margin-left: 8px; }
.vt-rv-top .vt-stars { font-size: 12px; }
.vt-rv p { margin: 0; font-size: 13.5px; }
.vt-reply { margin-top: 10px; padding: 8px 12px; border-left: 3px solid var(--vt-blue); background: var(--vt-soft); border-radius: 0 8px 8px 0; font-size: 12.5px; }
.vt-reply b { color: var(--vt-ink); }
.vt-empty { background: var(--vt-surface); border: 1.5px dashed var(--vt-line); border-radius: var(--vt-r); padding: 22px; text-align: center; color: var(--vt-muted); }
.vt-form { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-r); padding: 18px; margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.vt-form[hidden] { display: none; }
.vt-form .vt-full { grid-column: 1 / -1; }
.vt-form label { font-size: 12.5px; font-weight: 600; color: var(--vt-ink); display: block; margin: 0 0 4px; }
.vt-form textarea { min-height: 100px; resize: vertical; }
.vt-form .vt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.vt-rate { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.vt-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.vt-rate label { font-size: 26px; color: #cfd6e0; cursor: pointer; margin: 0; }
.vt-rate input:checked ~ label, .vt-rate label:hover, .vt-rate label:hover ~ label { color: var(--vt-star); }
.vt-rate input:focus-visible + label { outline: 2px solid var(--vt-blue); border-radius: 4px; }
.vt-submit { background: var(--vt-blue); color: #fff; border: 0; border-radius: 8px; padding: 11px 20px; font-weight: 700; font-size: 13.5px; cursor: pointer; }
.vt-help { font-size: 12px; color: var(--vt-muted); }

.vt-rel { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.vt-rcard { display: flex; gap: 12px; background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-r); padding: 10px; min-width: 0; color: inherit !important; transition: box-shadow .15s; }
.vt-rcard:hover { box-shadow: var(--vt-shadow); }
.vt-rcard .vt-thumb { width: 86px; height: 86px; border-radius: 8px; object-fit: cover; flex: none; background: var(--vt-soft); display: flex; align-items: center; justify-content: center; font-weight: 800; color: var(--vt-blue); font-size: 22px; overflow: hidden; }
.vt-rcard .vt-thumb img { width: 100%; height: 100%; object-fit: cover; }
.vt-rcard div.vt-rinfo { min-width: 0; }
.vt-rcard b { display: block; font-size: 14px; color: var(--vt-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vt-rcard .vt-stars { font-size: 11px; }
.vt-rcard small { display: block; color: var(--vt-muted); font-size: 12px; }
.vt-rcard .vt-dest { color: var(--vt-gold-ink); font-weight: 600; margin-top: 4px; }

.vt-notfound { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-r); padding: 40px 20px; text-align: center; margin-top: 20px; }

/* lightbox */
.vt-lb { position: fixed; inset: 0; z-index: 2000; background: rgba(10,14,22,.92); display: none; flex-direction: column; padding: 56px 16px 18px; }
.vt-lb.on { display: flex; }
.vt-lb-img { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; }
.vt-lb-img img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; }
.vt-lb-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: #fff; padding-top: 12px; font-weight: 600; font-size: 13px; }
.vt-lb button { background: rgba(255,255,255,.14); border: 0; color: #fff; width: 44px; height: 44px; border-radius: 50%; font-size: 18px; }
.vt-lb .vt-lb-close { position: absolute; top: 10px; right: 14px; }

.vt-mbar { display: none; }

@media (max-width: 1100px) {
	.vt-rel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.vt-top { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-template-areas: "a" "c" "b"; gap: 18px; }
	.vt-carousel { aspect-ratio: 16 / 10; }
	.vt-photos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vt-photos .vt-ph:nth-child(n+4) { display: none; }
	.vt-reviews { grid-template-columns: minmax(0, 1fr); }
	.vt-title { padding-top: 14px; }
}
@media (max-width: 600px) {
	.vt-rel, .vt-form { grid-template-columns: minmax(0, 1fr); }
	.vt-title h1 { font-size: 24px; }
	.vt-mbar { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1500; background: #fff; border-top: 1px solid #dfe6f0; box-shadow: 0 -4px 16px rgba(0,0,0,.08); padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); }
	.vt-mbar .vt-btn { padding: 11px 6px; font-size: 12.5px; }
	body.vt-has-mbar { padding-bottom: 78px; }
}
@media (prefers-reduced-motion: reduce) { .vt * { transition: none !important; } }

/* Página de exemplo dos planos (ver.php?exemplo=...) e modo dentro da janela (embed=1) */
.vt-alert.vt-exemplo { background: #e8f0ff; color: #1652b0; }
body.vt-embed > nav.navbar, body.vt-embed .footer, body.vt-embed .search-form-full, body.vt-embed #ModalCategorias { display: none !important; }
body.vt-embed #page-wrapper { padding-top: 0; }
