/* assets/video-hero.css — 房源影片 hero／首頁輪播 */
.vh { position: relative; overflow: hidden; background: #111; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.vh-stack, .vh-slide { position: absolute; inset: 0; }
.vh-slide { opacity: 0; transition: opacity .7s ease; pointer-events: none; }
.vh-slide.on { opacity: 1; pointer-events: auto; }
.vh-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.vh-shade { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(30,24,18,.85) 0%, rgba(30,24,18,.28) 45%, rgba(30,24,18,0) 70%); }
.vh-overlay { position: absolute; left: 0; right: 0; bottom: 34px; padding: 22px 18px; padding-right: 64px; color: #fff; z-index: 2; }
.vh-overlay h1, .vh-overlay .vh-title { margin: 0; font-size: 1.55rem; line-height: 1.25; color: #fff; }
.vh-overlay .vh-tagline { margin: 6px 0 12px; font-size: .92rem; color: rgba(255,255,255,.85); }
.vh-overlay .amenity-tag, .vh-overlay .vh-tag { display: inline-block; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.14); color: #fff; border-radius: 999px; padding: 2px 10px; font-size: .75rem; margin: 0 6px 6px 0; }
.vh-overlay .vh-ctas { display: flex; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.vh-overlay .vh-btn { display: inline-block; padding: 9px 18px; border-radius: 8px; font-size: .9rem; text-decoration: none; color: #fff; border: 1px solid rgba(255,255,255,.6); }
.vh-overlay .vh-btn.primary { background: #b08a4e; border-color: #b08a4e; }
.vh-credit { display: inline-block; margin-top: 8px; font-size: .72rem; color: rgba(255,255,255,.75); text-decoration: none; }
.vh-credit:hover, .vh-credit:focus-visible { text-decoration: underline; }
.vh-sound { position: absolute; right: 12px; bottom: 56px; z-index: 3; width: 34px; height: 34px; border-radius: 50%; border: 0; background: rgba(0,0,0,.45); color: #fff; font-size: 1rem; cursor: pointer; backdrop-filter: blur(4px); }
.vh-sound:focus-visible, .vh-dot:focus-visible, .vh-play:focus-visible { outline: 2px solid #c2a36b; outline-offset: 2px; }
.vh-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255,255,255,.18); z-index: 2; }
.vh-bar i { display: block; height: 100%; width: 0; background: #c2a36b; }
.vh-dots { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; z-index: 3; padding: 0 12px; }
.vh-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.45); cursor: pointer; font-size: 0; }
.vh-dot.on { background: #fff; width: 22px; border-radius: 4px; }
.vh--labels .vh-dot { width: auto; height: auto; font-size: .72rem; padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,.45); background: rgba(0,0,0,.25); color: #fff; backdrop-filter: blur(4px); }
.vh--labels .vh-dot.on { background: #fff; color: #43392e; border-color: #fff; }
.vh-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 4; width: 64px; height: 64px; border-radius: 50%; border: 0; background: rgba(0,0,0,.55); color: #fff; font-size: 1.4rem; cursor: pointer; }
.vh-play[hidden] { display: none; }
/* 房源頁 hero 高度 */
.vh--property { height: min(78vh, 640px); }
/* 首頁輪播高度 */
.vh--home { height: min(70vh, 600px); }
@media (min-width: 900px) {
  .vh--property { height: 460px; }
  .vh--home { height: 520px; }
  .vh-overlay { padding: 34px 56px; max-width: 720px; bottom: 40px; }
  .vh-overlay h1, .vh-overlay .vh-title { font-size: 2.3rem; }
  .vh-sound { right: 20px; bottom: 64px; }
}
@media (prefers-reduced-motion: reduce) { .vh-slide { transition: none; } }
