.pbsv{--pbsv-accent:#C8A45D;font-family:'Montserrat',system-ui,sans-serif;color:#F4EFE6}
.pbsv *{box-sizing:border-box}
.pbsv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:210px;gap:20px}
.pbsv-grid+.pbsv-grid{margin-top:20px}

/* Tile */
.pbsv-tile{position:relative;display:block;margin:0;padding:0;border-radius:6px;border:1px solid #2A2F38;overflow:hidden;cursor:pointer;background:#171C25 center/cover no-repeat;font:inherit;color:inherit;text-align:left;appearance:none}
button.pbsv-tile:hover,button.pbsv-tile:focus-visible{border-color:var(--pbsv-accent);outline:none}
button.pbsv-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,17,22,0) 40%,rgba(14,17,22,.88) 100%)}
.pbsv-badge{position:absolute;z-index:2;left:12px;top:12px;padding:4px 10px;border-radius:3px;background:rgba(14,17,22,.85);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#F4EFE6}
.pbsv-play{position:absolute;z-index:2;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:rgba(14,17,22,.72);border:1.5px solid var(--pbsv-accent);display:flex;align-items:center;justify-content:center}
.pbsv-play svg path{fill:var(--pbsv-accent)}
.pbsv-cap{position:absolute;z-index:2;left:14px;right:14px;bottom:14px;display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:600;line-height:1.3;color:#F4EFE6}
.pbsv-cap small{font-size:11px;font-weight:500;color:#C9C3B8}

/* Collage placement (11 tiles) */
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(1){grid-column:1;grid-row:1/span 2}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(2){grid-column:2;grid-row:1}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(3){grid-column:3;grid-row:1/span 2}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(4){grid-column:4;grid-row:1}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(5){grid-column:2;grid-row:2}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(6){grid-column:4;grid-row:2}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(7){grid-column:1;grid-row:3/span 2}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(8){grid-column:2;grid-row:3}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(9){grid-column:3;grid-row:3}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(10){grid-column:4;grid-row:3/span 2}
.pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(11){grid-column:2/span 2;grid-row:4}

/* Loading placeholder */
.pbsv-sk{background:#171C25}
.pbsv-sk::before{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(200,164,93,.10),transparent);animation:pbsv-sh 1.4s infinite}
.pbsv-sk::after{content:"";position:absolute;left:14px;bottom:14px;width:55%;height:10px;border-radius:3px;background:#2A2F38;box-shadow:0 -18px 0 -1px #2A2F38}
@keyframes pbsv-sh{to{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.pbsv-sk::before{animation:none}}

.pbsv-note{margin:16px 0 0;text-align:center;font-size:12px;color:#C9C3B8}
.pbsv-note[hidden]{display:none}

/* Lightbox */
.pbsv-modal{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.88);display:none;align-items:center;justify-content:center;padding:24px}
.pbsv-modal.open{display:flex}
.pbsv-modal .pbsv-box{position:relative;width:min(420px,100%);height:min(780px,88vh);background:#000;border-radius:8px;overflow:hidden}
.pbsv-modal .pbsv-box.fb{width:min(560px,100%);height:min(820px,92vh)}
.pbsv-modal .pbsv-box.wide{width:min(960px,100%);height:auto;aspect-ratio:16/9;max-height:88vh}
.pbsv-modal iframe,.pbsv-modal video{display:block;width:100%;height:100%;border:0;background:#000}
.pbsv-modal .pbsv-x{position:absolute;top:8px;right:12px;z-index:2;background:rgba(0,0,0,.55);border:0;color:#fff;font-size:30px;line-height:1;cursor:pointer;border-radius:4px;padding:0 8px}

/* Tablet / mobile */
@media (max-width:900px){
 .pbsv-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense}
 .pbsv-grid>.pbsv-tile:nth-child(n){grid-column:auto;grid-row:auto}
 .pbsv-grid:not(.pbsv-simple)>.pbsv-tile:nth-child(3n+1){grid-row:span 2}
}
@media (max-width:480px){.pbsv-grid{grid-auto-rows:170px;gap:12px}}
