/* mapa do campus com pontos clicáveis e o cartão-destaque da principal (components/venue-campus-map.js) */
.venue-page{max-width:980px;margin:22px auto 0;padding:0 24px}
.venue-page .venue-addr{margin:0 0 14px;font:600 15px/1.5 var(--font-body);color:oklch(90% 0.01 260)}
.venue-page #venueInfo{padding:18px 20px;border-radius:18px;border:1px solid var(--card-border);background:oklch(17% 0.02 260 / .85);text-align:center}
p.venue-access,.faq-item p.venue-access{display:inline-flex;align-items:center;gap:8px;margin:0 0 22px;padding:8px 14px;border-radius:999px;background:color-mix(in oklch,var(--google-green) 16%,transparent);border:1px solid color-mix(in oklch,var(--google-green) 55%,transparent);color:oklch(95% 0.01 260);font:700 14px var(--font-body)}
/* o selo "Prédio · Entrada" tem respiro em cima (endereço) e embaixo (botões Como chegar / Mapa) */
.venue-addr + p.venue-access,.faq-item .venue-addr + p.venue-access{margin-top:18px}
.venue-access .icon{width:18px;height:18px;flex:none;fill:none;stroke:var(--google-green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.venue-page .venue-actions{justify-content:center}
.campus-map{max-width:980px;margin:18px auto 44px;padding:0 24px}
.vm-head{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;margin-bottom:16px;padding:22px 20px;border-radius:18px;border:1px solid var(--card-border);background:linear-gradient(160deg,oklch(21% 0.04 20 / .8),oklch(17% 0.03 280 / .8))}
.vm-badge{display:inline-block;font:700 11px var(--font-body);letter-spacing:.12em;color:oklch(85% 0.14 25);border:1px solid oklch(85% 0.14 25 / .5);border-radius:999px;padding:4px 12px}
.vm-head h3{margin:0;font:800 clamp(1.5rem,5vw,2.2rem) var(--font-display);color:oklch(97% 0.005 260)}
.vm-head h3 span{color:oklch(72% 0.2 25)}
.vm-head p{margin:0;max-width:480px;font:500 14.5px/1.5 var(--font-body);color:oklch(80% 0.01 260)}
.vm-viewport{scroll-margin-top:56px;position:relative;overflow:hidden;border-radius:18px;border:1px solid var(--card-border);aspect-ratio:1/1;background:#1c2a12}
.vm-stage{position:absolute;inset:0;transform-origin:0 0;transition:transform .6s ease}
.vm-stage img{width:100%;height:100%;display:block;user-select:none;filter:saturate(.75) brightness(.8)}
.vm-dim{position:absolute;inset:0;background:radial-gradient(circle at 42% 62%,transparent 0,transparent 25%,rgb(0 0 0 / .45) 72%);pointer-events:none}
.vm-pin{position:absolute;width:30px;height:30px;padding:0;border-radius:50%;border:3px solid #fff;background:var(--pin);color:#fff;font:800 14px var(--font-display);display:grid;place-items:center;cursor:pointer;transform:translate(-50%,-50%) scale(calc(1 / var(--zoom)));box-shadow:0 0 0 2px rgb(0 0 0 / .55),0 3px 8px rgb(0 0 0 / .6)}
.vm-pin.is-on{width:38px;height:38px;font-size:17px;z-index:5}
.vm-pin.is-on::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:3px solid var(--pin);animation:vm-pulse 1.4s ease-out infinite}
@keyframes vm-pulse{0%{transform:scale(.75);opacity:1}100%{transform:scale(1.4);opacity:0}}
.vm-tip{position:absolute;z-index:6;transform:translate(-50%,calc(-100% - 30px)) scale(calc(1 / var(--zoom)));background:#fff;color:#111;padding:6px 12px;border-radius:10px;font:700 15px var(--font-body);white-space:nowrap;pointer-events:none;box-shadow:0 4px 14px rgb(0 0 0 / .55)}
.vm-tip::after{content:"";position:absolute;left:50%;bottom:-7px;margin-left:-7px;border:7px solid transparent;border-bottom:0;border-top-color:#fff}
.vm-hint{position:absolute;right:3%;top:5.6%;transform:translateY(-50%);white-space:nowrap;z-index:8;background:rgb(0 0 0 / .72);color:#fff;padding:7px 12px;border-radius:999px;font:600 13px var(--font-body)}
.vm-zoom{position:absolute;right:10px;bottom:10px;z-index:8;border:0;border-radius:999px;padding:9px 14px;background:#fff;color:#111;font:700 13px var(--font-body);cursor:pointer}
.vm-pin--minor{width:24px;height:24px;font-size:11px;border-width:2px;opacity:.78}
.vm-pin--entrance{width:36px;height:36px;font-size:16px;z-index:4;box-shadow:0 0 0 3px rgb(0 0 0 / .55),0 0 0 8px color-mix(in oklch,var(--pin) 45%,transparent),0 3px 8px rgb(0 0 0 / .6)}
.vm-pin-tag{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--pin);color:#fff;padding:2px 9px;border-radius:999px;font:800 12px var(--font-body);font-style:normal;letter-spacing:.04em;white-space:nowrap;border:2px solid #fff;pointer-events:none}
.vm-pin:focus-visible,.vm-card:focus-visible,.vm-zoom:focus-visible{outline:3px solid #fff;outline-offset:3px}
.vm-detail{display:flex;flex-direction:column;gap:2px;margin:12px 0;padding:14px 16px;border-radius:14px;background:oklch(20% 0.02 260);border-left:6px solid var(--pin)}
.vm-detail strong{font:800 17px var(--font-display);color:oklch(97% 0.005 260)}
.vm-detail span{font:500 14px/1.45 var(--font-body);color:var(--muted)}
.vm-group-title{margin:16px 0 8px;font:700 12px var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.vm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.vm-card{display:flex;gap:10px;align-items:center;text-align:left;padding:10px;border-radius:12px;border:1px solid var(--card-border);background:oklch(17% 0.02 260);color:var(--text);font:600 14px var(--font-body);cursor:pointer}
.vm-card.is-on{border-color:#fff;background:oklch(24% 0.03 260)}
.vm-card i{width:34px;height:34px;flex:none;border-radius:50%;background:var(--pin);display:grid;place-items:center;border:2px solid #fff;color:#fff;font:800 15px var(--font-display);font-style:normal}
.vm-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--card-border)}
.vm-foot .chip-btn{display:inline-flex;align-items:center;gap:8px}
.vm-foot .icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vm-foot small{color:var(--muted);font:500 12px var(--font-body)}
.vm-soon{text-align:center;color:var(--muted);font:500 15px/1.55 var(--font-body);margin:30px 0}
.campus-callout{max-width:1180px;margin:26px auto;padding:0 24px}
.vm-callout{position:relative;overflow:hidden;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 22px;border-radius:var(--radius);text-decoration:none;color:inherit;background:linear-gradient(135deg,var(--card-a),var(--card-b));border:1px solid var(--card-border);transition:border-color .15s ease,transform .15s ease}
.vm-callout::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--google-blue) 0 25%,var(--google-red) 25% 50%,var(--google-yellow) 50% 75%,var(--google-green) 75%)}
.vm-callout:hover{border-color:color-mix(in oklch,var(--google-red) 55%,var(--card-border));transform:translateY(-2px)}
.vm-callout-icon{flex:none;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:color-mix(in oklch,var(--google-red) 16%,transparent);color:var(--google-red)}
.vm-callout-icon .icon{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vm-callout-text{display:flex;flex-direction:column;gap:3px;flex:1 1 260px;min-width:0}
.vm-callout-text strong{font:800 19px var(--font-display);color:oklch(96% 0.006 260)}
.vm-callout-text small{font:500 14px/1.4 var(--font-body);color:var(--muted)}
.vm-callout-cta{flex:none}
@media (prefers-reduced-motion:reduce){.vm-stage{transition:none}.vm-pin.is-on::after{animation:none}.vm-callout{transition:none}}
@media (max-width:560px){.vm-callout-cta{flex:1 1 100%;display:flex;justify-content:center;min-height:44px;align-items:center;padding:14px 18px;font-size:15px}.campus-map,.campus-callout,.venue-page{padding:0 16px}.vm-pin{width:26px;height:26px;font-size:12px;border-width:2px}.vm-pin.is-on{width:32px;height:32px;font-size:14px}}
