/* PH Video Hub v0.8.5 — exact PlayHard header parity and filled single-watch live rail. */
html:has(body.phvv-video-route), body.phvv-video-route { overflow-x:clip !important; background:#10071b !important; }
body.phvv-video-route #secondary { display:none !important; }
body.phvv-video-route #content,
body.phvv-video-route .site-content,
body.phvv-video-route .site-content > .ast-container,
body.phvv-video-route #primary,
body.phvv-video-route .content-area,
body.phvv-video-route .site-main {
  box-sizing:border-box !important; display:block !important; float:none !important;
  width:100% !important; max-width:100% !important; min-width:0 !important;
  margin:0 !important; padding:0 !important;
}

main.phvv-route-wrap {
  box-sizing:border-box !important; position:relative !important; left:auto !important; right:auto !important; transform:none !important;
  width:100% !important; max-width:none !important; min-width:0 !important; min-height:70vh;
  margin:0 !important; padding:14px 16px 54px !important; overflow-x:clip !important;
  color:#fff; background:#10071b;
}
.phvv-video-hub {
  --phvv-bg:#10071b; --phvv-panel:#170a27; --phvv-stroke:rgba(185,136,255,.22);
  --phvv-stroke-hi:rgba(210,168,255,.52); --phvv-text:#fff; --phvv-muted:rgba(255,255,255,.61); --phvv-accent:#c497ff;
  width:100%; min-width:0; color:var(--phvv-text);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; line-height:1.45;
}
/* One real viewport canvas. Do not cap by CSS pixels: browser zoom must not turn a wide display into a narrow catalog. */
.phvv-content-shell {
  width:calc(100vw - 32px);
  max-width:none;
  min-width:0;
  margin-inline:auto;
}
.phvv-video-hub *, .phvv-video-hub *::before, .phvv-video-hub *::after { box-sizing:border-box; }

/* Facets never enlarge the route width. */
.phvv-top-facets { width:100%; min-width:0; margin:0 0 14px; overflow-x:auto; overflow-y:hidden; border-bottom:1px solid rgba(185,136,255,.15); background:linear-gradient(180deg,rgba(28,13,46,.74),rgba(16,7,27,.20)); scrollbar-width:none; }
.phvv-top-facets::-webkit-scrollbar { display:none; }
.phvv-top-facets-scroll { display:flex; align-items:center; gap:7px; width:max-content; min-width:100%; padding:10px 2px 13px; }
.phvv-top-facet { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:6px 11px; border:1px solid rgba(185,136,255,.18); border-radius:999px; background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.028)); color:rgba(255,255,255,.86) !important; font-size:11px; font-weight:800; line-height:1; text-decoration:none !important; white-space:nowrap; }
.phvv-top-facet:hover, .phvv-top-facet.is-active { border-color:rgba(207,158,255,.56); background:linear-gradient(180deg,rgba(145,84,231,.38),rgba(83,42,143,.30)); color:#fff !important; box-shadow:0 0 15px rgba(174,112,255,.12),inset 0 1px 0 rgba(255,255,255,.08); }

/* Archive and single share one viewport canvas. Rails are fixed, the central column consumes the remainder. */
.phvv-video-layout {
  display:grid !important;
  grid-template-columns:clamp(220px,10.6vw,260px) minmax(0,1fr) clamp(300px,14vw,340px) !important;
  column-gap:20px;
  row-gap:18px;
  align-items:start;
  width:100%;
  min-width:0;
  max-width:none;
  margin:0;
}
.phvv-video-layout:not(.phvv-video-layout--single) .phvv-left-sidebar,
.phvv-video-layout:not(.phvv-video-layout--single) .phvv-right-sidebar {
  width:auto !important;
  max-width:100%;
}
.phvv-video-layout:not(.phvv-video-layout--single) .phvv-main-column { min-width:0; }

.phvv-video-layout > *, .phvv-main-column { min-width:0 !important; max-width:100% !important; }
.phvv-sidebar, .phvv-right-sidebar { position:sticky; top:136px; align-self:start; min-width:0; max-width:100%; }
.phvv-video-layout:not(.phvv-video-layout--single) .phvv-sidebar-inner { max-height:none; overflow:visible; }
.phvv-video-layout:not(.phvv-video-layout--single) .phvv-right-sidebar { width:auto; }
.phvv-sidebar-inner, .phvv-rail-panel, .phvv-panel { border:1px solid var(--phvv-stroke); border-radius:18px; background:linear-gradient(180deg,rgba(33,16,53,.96),rgba(17,8,29,.98)); box-shadow:0 18px 48px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.028); }

/* Left rail. */
.phvv-nav-group { padding:14px 12px; border-bottom:1px solid rgba(255,255,255,.07); }
.phvv-nav-group:last-child { border-bottom:0; }
.phvv-nav-group h2, .phvv-rail-panel h2 { margin:0 0 10px; color:rgba(255,255,255,.49); font-size:10px; font-weight:900; letter-spacing:.12em; line-height:1.1; text-transform:uppercase; }
.phvv-nav-list, .phvv-term-list { display:flex; flex-direction:column; gap:7px; }
.phvv-nav-link, .phvv-term-link { display:flex; align-items:center; gap:7px; min-height:36px; padding:8px 10px; border:1px solid rgba(255,255,255,.10); border-radius:11px; background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025)); color:rgba(255,255,255,.88) !important; font-size:12px; font-weight:760; line-height:1.1; text-decoration:none !important; }
.phvv-term-link { justify-content:space-between; min-height:32px; padding-inline:9px; }
.phvv-nav-link:hover, .phvv-term-link:hover { border-color:rgba(196,149,255,.43); background:rgba(155,95,237,.18); color:#fff !important; }
.phvv-nav-link.is-active, .phvv-term-link.is-active { border-color:rgba(196,149,255,.56); background:linear-gradient(180deg,rgba(150,88,233,.33),rgba(83,44,140,.28)); color:#fff !important; }
.phvv-nav-icon { display:inline-flex; width:14px; min-width:14px; justify-content:center; color:var(--phvv-accent); font-size:10px; }
.phvv-term-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.phvv-term-count { margin-left:auto; flex:0 0 auto; color:rgba(255,255,255,.46); font-size:10px; font-weight:850; }

/* Archive panel/cards. */
.phvv-catalog-panel { padding:16px; overflow:hidden; }
.phvv-catalog-head { display:flex; align-items:flex-start; padding:4px 5px 16px; }
.phvv-catalog-title { position:relative; padding-left:15px; }
.phvv-catalog-title::before, .phvv-seo-copy-head::before { content:""; position:absolute; left:0; top:3px; bottom:2px; width:4px; border-radius:999px; background:linear-gradient(180deg,#dfbaff,#9257ea); box-shadow:0 0 13px rgba(191,133,255,.36); }
.phvv-kicker { margin:0 0 4px; color:rgba(255,255,255,.54); font-size:9px; font-weight:900; letter-spacing:.11em; line-height:1; text-transform:uppercase; }
.phvv-catalog-head h1, .phvv-single h1 { margin:0; color:#fff; font-weight:860; letter-spacing:-.044em; }
.phvv-catalog-head h1 { font-size:clamp(24px,2vw,34px); line-height:1.04; }
.phvv-catalog-head p { margin:6px 0 0; color:var(--phvv-muted); font-size:11px; font-weight:650; }
.phvv-catalog-divider { height:1px; margin:0 4px 14px; background:linear-gradient(90deg,rgba(193,148,255,.34),rgba(255,255,255,.06) 70%,transparent); }
.phvv-catalog-panel > .phvv-grid { padding:0 4px 4px; }
.phvv-grid { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:12px; align-items:start; min-width:0; }
.phvv-card { min-width:0; overflow:hidden; border:1px solid rgba(194,148,255,.20); border-radius:14px; background:linear-gradient(180deg,rgba(39,20,61,.94),rgba(19,9,32,.99)); box-shadow:inset 0 1px 0 rgba(255,255,255,.026),0 12px 26px rgba(0,0,0,.16); transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease; }
.phvv-card:hover { border-color:rgba(210,169,255,.52); box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 18px 34px rgba(0,0,0,.25); transform:translateY(-2px); }
.phvv-card.is-thumb-failed, .phvv-rail-video.is-thumb-failed { display:none !important; }
.phvv-card-link { display:block; height:100%; color:inherit !important; text-decoration:none !important; }
.phvv-thumb { position:relative; display:block; isolation:isolate; aspect-ratio:16/9; overflow:hidden; background:#09040f; }
.phvv-thumb::after { content:""; position:absolute; right:0; bottom:0; left:0; z-index:2; height:50%; background:linear-gradient(180deg,transparent,rgba(10,4,17,.23) 32%,rgba(10,4,17,.76)); pointer-events:none; }
.phvv-thumb-fallback { position:absolute; inset:0; z-index:0; display:block; background:linear-gradient(145deg,#10061a,#06030b); }
.phvv-thumb-fallback--ready::before { display:none; }
.phvv-thumb-fallback::before { content:"PREVIEW"; position:absolute; top:50%; left:50%; padding:6px 9px; border:1px solid rgba(190,150,255,.16); border-radius:999px; color:rgba(255,255,255,.36); font-size:8px; font-weight:900; letter-spacing:.12em; transform:translate(-50%,-50%); }
.phvv-thumb-image { position:relative; z-index:1; display:block; width:100%; height:100%; object-fit:cover; object-position:center; color:transparent; font-size:0; transition:transform .22s ease; }
.phvv-thumb-image.is-broken { display:none; }
.phvv-card:hover .phvv-thumb-image { transform:scale(1.035); }
.phvv-duration { position:absolute; right:6px; bottom:6px; z-index:3; padding:3px 5px; border:1px solid rgba(255,255,255,.18); border-radius:5px; background:rgba(8,4,14,.88); color:#fff; font-size:8px; font-weight:900; line-height:1; }
.phvv-card-body { display:flex; flex-direction:column; justify-content:space-between; gap:6px; min-height:60px; padding:9px 11px 10px; }
.phvv-card-title { display:-webkit-box; overflow:hidden; color:#fff; font-size:12px; font-weight:820; letter-spacing:-.016em; line-height:1.22; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.phvv-card-meta, .phvv-meta { display:flex; flex-wrap:wrap; gap:5px 8px; color:rgba(255,255,255,.58); font-size:10px; font-weight:720; }
.phvv-card-meta span + span::before, .phvv-meta span + span::before { content:"·"; margin-right:5px; color:rgba(255,255,255,.30); }
.phvv-empty { padding:22px; border:1px dashed rgba(190,150,255,.28); border-radius:15px; background:rgba(255,255,255,.03); color:rgba(255,255,255,.68); }

/* Right recommendation rail. */
.phvv-recommendation-rail { padding:16px 14px; }
.phvv-rail-list { display:flex; flex-direction:column; gap:8px; }
.phvv-rail-video { min-width:0; }
.phvv-rail-video > a { display:grid; grid-template-columns:84px minmax(0,1fr); align-items:center; gap:10px; min-height:76px; padding:7px; border:1px solid rgba(194,148,255,.18); border-radius:12px; background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.026)); color:rgba(255,255,255,.94) !important; text-decoration:none !important; }
.phvv-rail-video > a:hover { border-color:rgba(196,149,255,.44); background:rgba(159,99,239,.17); color:#fff !important; }
.phvv-rail-thumb { width:84px; height:56px; border:1px solid rgba(255,255,255,.13); border-radius:8px; box-shadow:0 0 0 2px rgba(190,150,255,.05); }
.phvv-rail-thumb .phvv-duration { right:3px; bottom:3px; padding:2px 3px; border-radius:3px; font-size:6px; }
.phvv-rail-copy { display:flex; flex-direction:column; gap:5px; min-width:0; }
.phvv-rail-title { display:-webkit-box; overflow:hidden; color:#fff; font-size:12px; font-weight:830; letter-spacing:-.012em; line-height:1.17; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.phvv-rail-meta { display:block; overflow:hidden; color:rgba(255,255,255,.55); font-size:10px; font-weight:720; line-height:1.18; text-overflow:ellipsis; white-space:nowrap; }
.phvv-rail-divider { height:1px; margin:15px 0; background:rgba(255,255,255,.08); }
.phvv-tags-heading { margin-top:0 !important; }
.phvv-rail-tag-list { display:flex; flex-wrap:wrap; gap:6px; }
.phvv-rail-tag-list a, .phvv-tags a, .phvv-single-copy-links a { display:inline-flex; align-items:center; min-height:25px; padding:5px 7px; border:1px solid rgba(190,140,255,.22); border-radius:999px; background:rgba(190,140,255,.08); color:rgba(255,255,255,.82) !important; font-size:9px; font-weight:780; line-height:1; text-decoration:none !important; }
.phvv-rail-tag-list a:hover, .phvv-tags a:hover, .phvv-single-copy-links a:hover { border-color:rgba(190,140,255,.44); background:rgba(190,140,255,.22); color:#fff !important; }

/* Single visual stage. Every major panel follows the main-column axis. */
.phvv-single, .phvv-single-stage { width:100%; min-width:0; }
.phvv-breadcrumbs { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin:0 0 11px; color:rgba(255,255,255,.48); font-size:10px; font-weight:700; }
.phvv-breadcrumbs a { color:rgba(255,255,255,.72) !important; text-decoration:none !important; }
.phvv-breadcrumbs a:hover { color:#fff !important; }
.phvv-single-head { width:100%; padding:22px 26px 21px; margin:0 0 14px; }
.phvv-single-head-inner { max-width:900px; }
.phvv-single-head h1 { display:-webkit-box; max-width:100%; overflow:hidden; overflow-wrap:anywhere; font-size:clamp(30px,1.85vw,36px); line-height:1.08; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.phvv-single-meta { margin-top:11px; font-size:11px; }
.phvv-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.phvv-tags a { min-height:28px; padding:6px 9px; font-size:10px; }
.phvv-player-panel { width:100%; margin:0; padding:11px; background:linear-gradient(180deg,rgba(38,17,61,.86),rgba(12,6,20,.96)); box-shadow:0 24px 70px rgba(0,0,0,.34); }
.phvv-player-wrap { position:relative; overflow:hidden; aspect-ratio:16/9; border:1px solid rgba(196,149,255,.22); border-radius:16px; background:#050308; }
.phvv-player { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; }
.phvv-player-missing { display:flex; height:100%; align-items:center; justify-content:center; padding:24px; color:rgba(255,255,255,.62); text-align:center; }
.phvv-related { width:100%; margin:26px 0 0; padding:20px; }
.phvv-related-count { flex:0 0 auto; color:rgba(255,255,255,.52); font-size:10px; font-weight:760; white-space:nowrap; }
.phvv-related .phvv-grid { grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:16px; }
.phvv-related .phvv-card-body { min-height:64px; }
.phvv-related .phvv-card-title { font-size:13px; }
.phvv-section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 16px; padding-left:13px; border-left:4px solid #bd8dff; }
.phvv-section-head h2 { margin:0; color:#fff; font-size:23px; font-weight:840; letter-spacing:-.028em; }
.phvv-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin-top:22px; }
.phvv-pagination a, .phvv-pagination span { display:inline-flex; align-items:center; justify-content:center; min-width:32px; min-height:32px; padding:0 10px; border:1px solid rgba(190,150,255,.22); border-radius:999px; background:rgba(255,255,255,.052); color:rgba(255,255,255,.89) !important; font-size:10px; font-weight:820; text-decoration:none !important; }
.phvv-pagination a:hover, .phvv-pagination .is-active { border-color:rgba(190,150,255,.54); background:rgba(190,150,255,.21); color:#fff !important; }

/* Copy panels. */
.phvv-seo-copy, .phvv-single-copy { margin-top:20px; padding:22px 26px; background:linear-gradient(180deg,rgba(32,14,51,.93),rgba(18,8,30,.97)); }
.phvv-seo-copy-head { position:relative; margin:0 0 11px; padding-left:13px; }
.phvv-seo-copy h2, .phvv-single-copy h2 { margin:0; color:#fff; font-size:21px; font-weight:850; letter-spacing:-.032em; line-height:1.12; }
.phvv-seo-copy p, .phvv-single-copy p { max-width:960px; margin:9px 0 0; color:rgba(255,255,255,.69); font-size:12px; font-weight:580; line-height:1.68; }
.phvv-single-copy-links { display:flex; flex-wrap:wrap; gap:6px; margin-top:13px; }
.phvv-shortcode-grid { color:#fff; }
.phvv-shortcode-grid > h2 { margin:0 0 14px; }

/* Client-side paging swaps only this local card mount; no page navigation or fetch is involved. */
.phvv-related-grid-mount { min-width:0; }
.phvv-related-pagination-mount:empty { display:none; }


/* v0.6.0: left rail has both browse categories and local popular tags, with no nested white scrollbar. */
.phvv-left-tag-list { display:flex; flex-wrap:wrap; gap:7px; padding:0 0 2px; }
.phvv-left-tag-list a { display:inline-flex; min-height:25px; align-items:center; padding:4px 8px; border:1px solid rgba(193,145,255,.25); border-radius:999px; color:rgba(255,255,255,.84); background:rgba(72,37,102,.30); font-size:10px; font-weight:780; line-height:1; text-decoration:none; }
.phvv-left-tag-list a:hover { color:#fff; border-color:rgba(223,166,255,.65); background:rgba(110,53,151,.56); }
.phvv-sidebar-inner, .phvv-right-sidebar, .phvv-rail-panel { scrollbar-width:none; }
.phvv-sidebar-inner::-webkit-scrollbar, .phvv-right-sidebar::-webkit-scrollbar, .phvv-rail-panel::-webkit-scrollbar { display:none; }

/* Astra can re-apply max-width through theme presets. The standalone video canvas owns its outer route width. */
body.phvv-video-route #content > .ast-container {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
body.phvv-video-route main.phvv-route-wrap {
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
}


/* v0.6.3: keep server-rendered catalog visible immediately; no JS hides panels or waits for a loader. */
.phvv-video-hub, .phvv-video-layout, .phvv-main-column, .phvv-catalog-panel, .phvv-card, .phvv-sidebar, .phvv-right-sidebar { content-visibility:visible; }
.phvv-thumb-image.litespeed-no-lazyload { opacity:1 !important; transition:none !important; }
.phvv-thumb-fallback--ready { background:linear-gradient(135deg,#21102f,#12091d); }

/* -------------------------------------------------------------------------
   PH Video Hub 0.7.8 — Native Header + aligned single-watch layout
   -------------------------------------------------------------------------
   This stylesheet scopes all Video Hub presentation under .phvv-* and never
   targets the PlayHard header, logo or navigation. */

/* Single pages use a left browse rail and one wide workspace. The live rail is
   nested in the player row, so it starts at the player edge and never floats
   beside breadcrumbs or the video title. */
.phvv-video-layout.phvv-video-layout--single {
  grid-template-columns:clamp(220px,10.6vw,260px) minmax(0,1fr) !important;
  gap:20px !important;
  align-items:start !important;
}
.phvv-video-layout--single > .phvv-main-column {
  display:block !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
}
.phvv-video-layout--single .phvv-single-stage {
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
.phvv-watch-row {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) clamp(300px,19vw,340px) !important;
  align-items:start !important;
  gap:20px !important;
  width:100% !important;
  min-width:0 !important;
}
.phvv-watch-row--solo { grid-template-columns:minmax(0,1fr) !important; }
.phvv-watch-row > .phvv-player-panel { min-width:0 !important; }
.phvv-watch-row > .phvv-right-sidebar,
.phvv-watch-row > .phvv-live-streams-sidebar,
.phvv-video-layout--single .phvv-live-streams-sidebar {
  position:static !important;
  top:auto !important;
  align-self:start !important;
  display:block !important;
  width:auto !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
}
.phvv-single-below { width:100% !important; min-width:0 !important; }
.phvv-video-layout--single .phvv-related,
.phvv-video-layout--single .phvv-single-copy { width:100% !important; }

/* Isolated prepared PlayHard live rail. It uses the original room-card markup
   but does not load or copy the global PHSPB stylesheet. */
.phvv-live-streams-sidebar {
  position:sticky !important;
  top:136px !important;
  align-self:start !important;
  width:auto !important;
  min-width:0 !important;
  max-width:100% !important;
}
.phvv-live-streams-sidebar > .phspb-sidebar-panel {
  position:static !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  padding:12px !important;
  overflow:visible !important;
  border:1px solid rgba(190,150,255,.16) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(33,16,53,.96),rgba(17,8,29,.98)) !important;
  box-shadow:0 18px 48px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.028) !important;
}
.phvv-live-streams-sidebar .phspb-nav-sidebar-inner {
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  min-width:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
.phvv-live-rail-head {
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:10px !important;
  margin:2px 0 11px !important;
  padding:0 1px !important;
}
.phvv-live-rail-head > div { display:flex !important; flex-direction:column !important; gap:3px !important; min-width:0 !important; }
.phvv-live-rail-kicker {
  color:rgba(214,170,255,.72) !important;
  font-size:9px !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
}
.phvv-live-rail-head strong {
  display:block !important;
  color:#fff !important;
  font-size:13px !important;
  font-weight:860 !important;
  letter-spacing:-.018em !important;
  line-height:1.15 !important;
}
.phvv-live-rail-count {
  flex:0 0 auto !important;
  padding:5px 7px !important;
  border:1px solid rgba(190,150,255,.20) !important;
  border-radius:999px !important;
  background:rgba(190,140,255,.08) !important;
  color:rgba(255,255,255,.62) !important;
  font-size:9px !important;
  font-weight:800 !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
.phvv-live-streams-sidebar .phspb-sidebar-recommended { padding:0 !important; border:0 !important; }
.phvv-live-streams-sidebar .phspb-sidebar-recommended-list {
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  width:100% !important;
}
.phvv-live-streams-sidebar .phspb-sidebar-room {
  display:grid !important;
  grid-template-columns:42px minmax(0,1fr) !important;
  align-items:center !important;
  gap:8px !important;
  min-width:0 !important;
  min-height:58px !important;
  padding:7px 8px !important;
  border:1px solid rgba(190,150,255,.17) !important;
  border-radius:14px !important;
  background:radial-gradient(circle at 18% 0%,rgba(190,150,255,.12),transparent 40%),linear-gradient(180deg,rgba(255,255,255,.058),rgba(255,255,255,.03)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 8px 20px rgba(0,0,0,.12) !important;
  color:rgba(255,255,255,.90) !important;
  text-decoration:none !important;
  transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease !important;
}
.phvv-live-streams-sidebar .phspb-sidebar-room:hover,
.phvv-live-streams-sidebar .phspb-sidebar-room:focus {
  transform:translateY(-1px) !important;
  border-color:rgba(190,150,255,.34) !important;
  background:radial-gradient(circle at 18% 0%,rgba(190,150,255,.18),transparent 44%),linear-gradient(180deg,rgba(255,255,255,.078),rgba(255,255,255,.04)) !important;
  color:#fff !important;
}
.phvv-live-streams-sidebar .phspb-sidebar-room-media {
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:42px !important;
  height:42px !important;
  overflow:hidden !important;
  flex:0 0 42px !important;
  border:1px solid rgba(255,255,255,.12) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.06) !important;
  box-shadow:0 0 0 3px rgba(190,150,255,.05) !important;
}
.phvv-live-streams-sidebar .phspb-sidebar-room-media img { width:100% !important; height:100% !important; object-fit:cover !important; object-position:center !important; }
.phvv-live-streams-sidebar .phspb-sidebar-room-placeholder { display:inline-flex !important; align-items:center !important; justify-content:center !important; width:100% !important; height:100% !important; color:rgba(255,255,255,.48) !important; font-size:18px !important; }
.phvv-live-streams-sidebar .phspb-sidebar-room-dot { position:absolute !important; right:3px !important; bottom:3px !important; width:9px !important; height:9px !important; border:2px solid #130a21 !important; border-radius:50% !important; background:#ff4d6d !important; box-shadow:0 0 0 3px rgba(255,77,109,.12) !important; }
.phvv-live-streams-sidebar .phspb-sidebar-room-body { display:flex !important; flex-direction:column !important; gap:3px !important; min-width:0 !important; }
.phvv-live-streams-sidebar .phspb-sidebar-room-name { display:block !important; overflow:hidden !important; color:#fff !important; font-size:11px !important; font-weight:850 !important; letter-spacing:-.015em !important; line-height:1.15 !important; text-overflow:ellipsis !important; white-space:nowrap !important; }
.phvv-live-streams-sidebar .phspb-sidebar-room-meta { display:flex !important; align-items:center !important; min-width:0 !important; gap:5px !important; color:rgba(255,255,255,.58) !important; font-size:9px !important; font-weight:750 !important; line-height:1.15 !important; }
.phvv-live-streams-sidebar .phspb-sidebar-room-meta span { overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important; }
.phvv-live-rail-cta {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  width:100% !important;
  min-height:36px !important;
  margin-top:10px !important;
  padding:8px 10px !important;
  border:1px solid rgba(205,157,255,.34) !important;
  border-radius:12px !important;
  background:linear-gradient(135deg,rgba(143,73,229,.42),rgba(205,92,178,.26)) !important;
  color:#fff !important;
  font-size:10px !important;
  font-weight:850 !important;
  letter-spacing:.01em !important;
  line-height:1 !important;
  text-decoration:none !important;
}
.phvv-live-rail-cta span { color:#ff77ad !important; font-size:9px !important; }
.phvv-live-rail-cta:hover { border-color:rgba(230,187,255,.62) !important; filter:brightness(1.08); color:#fff !important; }

/* Thirty archive cards always fill the last row: 5 wide desktop, 3 compact
   desktop/tablet and 2 phone. */
@media (min-width:1500px) {
  .phvv-video-layout:not(.phvv-video-layout--single) .phvv-grid { grid-template-columns:repeat(5,minmax(0,1fr)) !important; }
}
@media (min-width:821px) and (max-width:1499px) {
  .phvv-video-layout:not(.phvv-video-layout--single) .phvv-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
}
@media (min-width:1260px) and (max-width:1399px) {
  .phvv-video-layout.phvv-video-layout--single { grid-template-columns:minmax(0,1fr) !important; }
  .phvv-video-layout--single .phvv-left-sidebar { display:none !important; }
}
@media (max-width:1259px) {
  .phvv-video-layout:not(.phvv-video-layout--single),
  .phvv-video-layout.phvv-video-layout--single { grid-template-columns:minmax(0,1fr) !important; width:100% !important; }
  .phvv-video-layout .phvv-left-sidebar,
  .phvv-video-layout .phvv-right-sidebar { display:none !important; }
  .phvv-video-layout:not(.phvv-video-layout--single) .phvv-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
  .phvv-video-layout--single .phvv-watch-row { grid-template-columns:minmax(0,1fr) !important; }
}
@media (max-width:820px) {
  main.phvv-route-wrap { padding:8px 7px 30px !important; }
  .phvv-catalog-panel, .phvv-related { padding:11px !important; }
  .phvv-catalog-head { padding:4px 3px 12px !important; }
  .phvv-top-facets { margin-bottom:9px !important; }
  .phvv-top-facets-scroll { padding:7px 0 10px !important; }
  .phvv-top-facet { min-height:28px !important; padding:6px 9px !important; font-size:10px !important; }
  .phvv-video-layout:not(.phvv-video-layout--single) .phvv-grid,
  .phvv-related .phvv-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px !important; }
  .phvv-card { border-radius:11px !important; }
  .phvv-card-body, .phvv-related .phvv-card-body { min-height:58px !important; padding:7px 7px 8px !important; gap:4px !important; }
  .phvv-card-title, .phvv-related .phvv-card-title { font-size:10px !important; }
  .phvv-card-meta { gap:4px !important; font-size:8px !important; }
  .phvv-duration { right:5px !important; bottom:5px !important; font-size:7px !important; }
  .phvv-single-head { padding:14px 13px !important; }
  .phvv-single-head h1, .phvv-catalog-head h1 { font-size:23px !important; }
  .phvv-breadcrumbs { font-size:9px !important; }
  .phvv-player-panel { padding:5px !important; }
  .phvv-player-wrap { border-radius:11px !important; }
  .phvv-seo-copy, .phvv-single-copy { margin-top:14px !important; padding:15px 13px !important; }
  .phvv-seo-copy h2, .phvv-single-copy h2 { font-size:18px !important; }
  .phvv-seo-copy p, .phvv-single-copy p { font-size:11px !important; line-height:1.58 !important; }
  .phvv-section-head { align-items:flex-start !important; gap:10px !important; }
  .phvv-section-head h2 { font-size:19px !important; }
  .phvv-related-count { padding-top:4px !important; font-size:9px !important; }
}

/* Informational embed notice; a policy page remains the formal rights channel. */
.phvv-embed-notice { max-width:1120px; margin:22px auto 0; padding:0 14px; text-align:center; }
.phvv-embed-notice p { margin:0; color:rgba(255,255,255,.42); font-size:10px; font-weight:560; line-height:1.55; }
@media (max-width:820px) {
  .phvv-embed-notice { margin-top:16px; padding:0 7px; }
  .phvv-embed-notice p { font-size:9px; line-height:1.5; }
}

/* -------------------------------------------------------------------------
   PH Video Hub 0.7.10 — exact header parity + real-filled watch rail.
   -------------------------------------------------------------------------
   Header rules are the exact narrow PlayHard stream-template rules, copied only
   for the video-route body class. No Elementor global options, PHSPB public.css,
   header markup, menu settings or theme assets are changed. */
body.phvv-video-route .elementor-location-header,
body.phvv-video-route header.elementor-location-header {
  background:#12091f !important;
  border-bottom:1px solid rgba(255,255,255,.06) !important;
  box-shadow:0 16px 44px rgba(0,0,0,.18) !important;
}
body.phvv-video-route .elementor-location-header a,
body.phvv-video-route .elementor-location-header .elementor-nav-menu a,
body.phvv-video-route .elementor-location-header .elementor-nav-menu--main a,
body.phvv-video-route .elementor-location-header .elementor-nav-menu--dropdown a {
  color:rgba(255,255,255,.86) !important;
  text-decoration:none !important;
}
body.phvv-video-route .elementor-location-header .elementor-nav-menu a:hover,
body.phvv-video-route .elementor-location-header .elementor-nav-menu .current-menu-item > a,
body.phvv-video-route .elementor-location-header .elementor-item.elementor-item-active {
  color:#fff !important;
}
body.phvv-video-route .elementor-location-header .elementor-nav-menu a:after,
body.phvv-video-route .elementor-location-header .elementor-item:after {
  background:linear-gradient(90deg,#fff,#ff4ec8) !important;
  border-color:transparent !important;
}
body.phvv-video-route .elementor-location-header .elementor-menu-toggle {
  color:rgba(255,255,255,.92) !important;
}
body.phvv-video-route .elementor-location-header .elementor-menu-toggle svg {
  fill:currentColor !important;
}

/* Watch page: show all twelve real prepared rooms and let the room cards share
   the available player height. The background is not artificially left empty:
   the cards expand moderately, then the CTA occupies the true bottom edge. */
.phvv-video-layout--single .phvv-watch-row {
  align-items:stretch !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar,
.phvv-video-layout--single .phvv-watch-row > .phvv-right-sidebar {
  align-self:stretch !important;
  display:flex !important;
  height:auto !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar > .phspb-sidebar-panel {
  display:flex !important;
  min-height:100% !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar .phspb-nav-sidebar-inner {
  display:flex !important;
  flex:1 1 auto !important;
  min-height:0 !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar .phspb-sidebar-recommended {
  display:flex !important;
  flex:1 1 auto !important;
  min-height:0 !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar .phspb-sidebar-recommended-list {
  display:flex !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  flex-direction:column !important;
  justify-content:space-between !important;
  gap:7px !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar .phspb-sidebar-room {
  grid-template-columns:50px minmax(0,1fr) !important;
  flex:1 1 0 !important;
  min-height:64px !important;
  max-height:78px !important;
  padding:9px 9px !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar .phspb-sidebar-room-media {
  width:50px !important;
  height:50px !important;
  flex-basis:50px !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar .phspb-sidebar-room-name {
  font-size:11.5px !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar .phspb-sidebar-room-meta {
  font-size:9.5px !important;
}
.phvv-video-layout--single .phvv-watch-row > .phvv-live-streams-sidebar .phvv-live-rail-cta {
  flex:0 0 auto !important;
  margin-top:10px !important;
}
@media (max-width:1259px) {
  body.phvv-video-route .elementor-location-header,
  body.phvv-video-route header.elementor-location-header { box-shadow:none !important; }
}



/* v0.8.2 — Single page left navigation: explicit readable typography, scoped only to Video Hub. */
.phvv-video-hub .phvv-left-sidebar .phvv-nav-group > h2 {
  color:#fff !important;
  font-size:16px !important;
  line-height:1.35 !important;
  font-weight:800 !important;
  letter-spacing:.01em;
  margin:0 0 10px !important;
}
.phvv-video-hub .phvv-left-sidebar .phvv-nav-link,
.phvv-video-hub .phvv-left-sidebar .phvv-term-link {
  min-height:40px !important;
  padding:10px 11px !important;
  color:rgba(255,255,255,.96) !important;
  font-size:14px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
}
.phvv-video-hub .phvv-left-sidebar .phvv-nav-icon { font-size:15px; flex:0 0 auto; }
.phvv-video-hub .phvv-left-sidebar .phvv-term-name { min-width:0; overflow-wrap:anywhere; }
.phvv-video-hub .phvv-left-sidebar .phvv-term-count {
  color:rgba(255,255,255,.76) !important;
  font-size:12px !important;
  font-weight:800 !important;
  flex:0 0 auto;
  padding-left:8px;
}
.phvv-video-hub .phvv-left-sidebar .phvv-left-tag-list a {
  color:rgba(255,255,255,.90) !important;
  font-size:13px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
}
.phvv-video-hub .phvv-left-sidebar .phvv-nav-link.is-active,
.phvv-video-hub .phvv-left-sidebar .phvv-term-link.is-active {
  color:#fff !important;
  border-color:rgba(239,84,176,.72) !important;
  background:linear-gradient(180deg,rgba(222,60,159,.30),rgba(105,41,120,.32)) !important;
}
@media (min-width:1260px) and (max-width:1499px) {
  .phvv-video-hub .phvv-video-layout--single .phvv-left-sidebar { display:block !important; }
  .phvv-video-hub .phvv-video-layout--single { grid-template-columns:190px minmax(0,1fr) !important; gap:18px !important; }
}
@media (max-width:1259px) {
  .phvv-video-hub .phvv-left-sidebar { display:none !important; }
}


/* v0.8.2 quality badges are qualitative only: provider view totals never appear as PlayHard counts. */
.phvv-video-hub .phvv-card-badge,
.phvv-video-hub .phvv-rail-badge {
  display:inline-flex; align-items:center; min-height:18px; padding:2px 6px;
  border:1px solid rgba(244,97,193,.38); border-radius:999px;
  color:rgba(255,228,247,.96); background:rgba(172,48,136,.24);
  font-size:9px; font-weight:850; letter-spacing:.025em; line-height:1;
}
.phvv-video-hub .phvv-rail-meta { display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
.phvv-video-hub .phvv-left-sidebar .phvv-sidebar-inner { background:rgba(12,8,24,.86); }
@media (min-width:1260px) and (max-width:1499px) {
  .phvv-video-hub .phvv-video-layout--single .phvv-left-sidebar .phvv-sidebar-inner { min-width:190px !important; }
  .phvv-video-hub .phvv-video-layout--single .phvv-left-sidebar .phvv-term-link { padding-inline:10px !important; }
}


/* -------------------------------------------------------------------------
   PH Video Hub 0.8.7 — integrated live tiles.
   Live rooms are real cards inside the same grids as videos. There is no
   framed promotion section, no detached row and no empty panel between rows.
   Wide archive: 30 video + 5 live = 35 exact five-column tiles.
   Compact archive: 30 video + 6 live = 36 exact three/two-column tiles.
   Related: 12 video + 4 live = 16 exact four/two-column tiles.
   ------------------------------------------------------------------------- */
.phvv-video-hub .phvv-grid--live-mix { align-items:stretch; }
.phvv-video-hub .phvv-live-grid-card {
  border-color:rgba(242,97,187,.46);
  background:
    radial-gradient(circle at 12% 0%,rgba(244,93,181,.18),transparent 48%),
    linear-gradient(180deg,rgba(52,20,69,.98),rgba(20,8,32,.99));
}
.phvv-video-hub .phvv-live-grid-card:hover { border-color:rgba(255,147,213,.86); }
.phvv-video-hub .phvv-live-grid-thumb img {
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .22s ease;
}
.phvv-video-hub .phvv-live-grid-card:hover .phvv-live-grid-thumb img { transform:scale(1.04); }
.phvv-video-hub .phvv-live-grid-live {
  position:absolute;
  top:7px;
  left:7px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:19px;
  padding:3px 6px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(22,5,20,.80);
  color:#fff;
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1;
}
.phvv-video-hub .phvv-live-grid-live i {
  width:6px;
  height:6px;
  border-radius:50%;
  background:#ff4e83;
  box-shadow:0 0 0 3px rgba(255,78,131,.16);
}
.phvv-video-hub .phvv-live-grid-badge {
  border-color:rgba(255,112,192,.55) !important;
  background:rgba(222,57,151,.30) !important;
  color:#fff !important;
}
/* The sixth archive live card exists only where 36 cards make complete
   three/two-column rows. Keep exactly five live cards on wide five-column. */
@media (min-width:1500px) {
  .phvv-video-hub .phvv-grid--live-mix--archive .phvv-live-grid-card--tablet-fill { display:none !important; }
}
@media (max-width:820px) {
  .phvv-video-hub .phvv-live-grid-live { top:5px; left:5px; min-height:17px; padding:3px 5px; font-size:7px; }
  .phvv-video-hub .phvv-live-grid-live i { width:5px; height:5px; }
}

/* v0.8.9: reserve tiles are server-rendered but invisible unless the browser
   confirms a visible source thumbnail has exhausted every alternate preview. */
.phvv-video-hub .phvv-card--reserve { display:none !important; }
.phvv-video-hub .phvv-card--reserve.phvv-card--reserve-revealed { display:block !important; }
.phvv-video-hub .phvv-card--reserve.phvv-card--reserve-revealed.is-thumb-failed { display:none !important; }
