.psg-event-bar{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 2px;
  padding:13px 18px;
  border-radius:12px;
  background:linear-gradient(90deg,#a3162a,#d53a4c);
  color:#fff;
  box-shadow:0 7px 20px rgba(163,22,42,.18);
}
.psg-event-dot{
  width:8px;height:8px;border-radius:50%;
  background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.15);
  flex:none;
}
.psg-event-title{
  font:700 18px/1.3 Arial,sans-serif;
  letter-spacing:.1px;
}
.psg-gallery{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin:20px 0;
}
.psg-card{
  position:relative;
  padding:0;
  border:0;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  cursor:pointer;
  aspect-ratio:4/3;
  box-shadow:0 8px 28px rgba(0,0,0,.08);
  transition:transform .25s ease,box-shadow .25s ease;
}
.psg-card:hover{transform:translateY(-5px);box-shadow:0 16px 38px rgba(0,0,0,.16)}
.psg-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s ease}
.psg-card:hover img{transform:scale(1.06)}
.psg-card-overlay{
  position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;
  padding:14px;background:linear-gradient(transparent 50%,rgba(0,0,0,.42));
  opacity:0;transition:opacity .25s ease;
}
.psg-card:hover .psg-card-overlay{opacity:1}
.psg-zoom{
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  color:#fff;background:rgba(160,20,35,.92);font-size:25px;font-weight:300;
}
.psg-lightbox{
  position:fixed;inset:0;z-index:999999;display:none;
  align-items:center;justify-content:center;padding:24px;
}
.psg-lightbox.psg-open{display:flex}
.psg-backdrop{position:absolute;inset:0;background:rgba(8,8,12,.94);backdrop-filter:blur(7px)}
.psg-viewer{position:relative;z-index:2;width:min(1200px,96vw);height:min(92vh,900px);display:flex;align-items:center;justify-content:center}
.psg-figure{margin:0;max-width:calc(100% - 130px);max-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.psg-main-image{max-width:100%;max-height:calc(92vh - 75px);object-fit:contain;border-radius:8px;box-shadow:0 18px 60px rgba(0,0,0,.45)}
.psg-caption{color:#fff;text-align:center;font:500 14px/1.5 Arial,sans-serif;padding:10px 50px 0;min-height:18px}
.psg-close,.psg-arrow{
  position:absolute;border:0;cursor:pointer;color:#fff;background:rgba(255,255,255,.12);
  backdrop-filter:blur(8px);z-index:5;transition:background .2s ease,transform .2s ease;
}
.psg-close{top:10px;right:10px;width:46px;height:46px;border-radius:50%;font-size:30px;line-height:1}
.psg-fullscreen{position:absolute;top:10px;right:66px;width:46px;height:46px;border:0;border-radius:50%;font-size:24px;line-height:1;color:#fff;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);z-index:5;cursor:pointer;transition:background .2s ease,transform .2s ease}
.psg-fullscreen:hover,.psg-fullscreen-active{background:rgba(160,20,35,.9)}
.psg-arrow{top:50%;transform:translateY(-50%);width:56px;height:74px;border-radius:14px;font-size:58px;font-weight:200;line-height:1}
.psg-arrow:hover,.psg-close:hover{background:rgba(160,20,35,.9)}
.psg-arrow:active{transform:translateY(-50%) scale(.94)}
.psg-prev{left:0}.psg-next{right:0}
.psg-counter{
  position:absolute;bottom:8px;left:50%;transform:translateX(-50%);
  color:#fff;background:rgba(0,0,0,.45);padding:7px 13px;border-radius:30px;
  font:600 12px Arial,sans-serif;letter-spacing:.5px;
}
.psg-empty{padding:25px;border:1px dashed #ccc;border-radius:12px}
@media(max-width:900px){.psg-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){
  .psg-gallery{grid-template-columns:repeat(2,1fr);gap:10px}
  .psg-card{border-radius:11px}
  .psg-viewer{width:100%;height:90vh}
  .psg-figure{max-width:100%}
  .psg-arrow{width:44px;height:58px;font-size:44px;background:rgba(255,255,255,.08)}
  .psg-prev{left:3px}.psg-next{right:3px}
  .psg-close{top:0;right:0}.psg-fullscreen{top:0;right:50px;width:42px;height:42px}
  .psg-main-image{max-height:calc(88vh - 55px);border-radius:4px}
  .psg-caption{padding:8px 45px 0;font-size:13px}
}
