/* Galería de fotos, video y lightbox compartidos por todas las páginas */

.photo-carousel{position:relative; background:var(--paper-dim, #EEF1F5);}
.photo-carousel .track{
  display:flex; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.photo-carousel .track::-webkit-scrollbar{display:none;}
.photo-carousel .item{flex:0 0 100%; scroll-snap-align:start; position:relative; cursor:zoom-in;}
.photo-carousel .item img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block;}
.photo-carousel .item .cap{
  position:absolute; left:14px; bottom:14px; right:14px;
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  font-size:0.76rem; color:#FFFFFF; pointer-events:none;
}
.photo-carousel .item .cap span{
  background:rgba(11,31,56,0.72); padding:6px 11px; border-radius:100px; backdrop-filter:blur(4px);
}
.photo-carousel .nav{
  position:absolute; top:50%; left:0; right:0; transform:translateY(-50%);
  display:flex; justify-content:space-between; padding:0 10px; pointer-events:none;
}
.photo-carousel .nav button{
  pointer-events:auto; width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,0.92); border:1px solid rgba(0,0,0,0.06); cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:0 6px 14px rgba(0,0,0,0.18);
  font-size:1.15rem; color:#0B1F38; transition:background 0.2s, color 0.2s;
}
.photo-carousel .nav button:hover{background:#0F2A4A; color:#FFFFFF;}
.photo-carousel .dots{
  position:absolute; left:0; right:0; bottom:52px; display:flex; justify-content:center; gap:5px; pointer-events:none;
}
.photo-carousel .dots i{width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.5); transition:background 0.2s, transform 0.2s;}
.photo-carousel .dots i.on{background:#FFFFFF; transform:scale(1.25);}

/* grilla de fotos (fichas de cada local) */
.photo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:36px;}
@media(max-width:640px){ .photo-grid{grid-template-columns:repeat(2,1fr);} }
.photo-grid a{
  display:block; aspect-ratio:4/3; border-radius:10px; overflow:hidden; cursor:zoom-in;
  background:var(--paper-dim, #EEF1F5);
}
.photo-grid a:first-child{grid-column:span 2; aspect-ratio:auto;}
.photo-grid img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.5s cubic-bezier(.22,1,.36,1);}
.photo-grid a:hover img{transform:scale(1.04);}

/* video */
.video-wrap{
  border-radius:14px; overflow:hidden; background:#0B1F38; margin-bottom:24px;
  box-shadow:0 20px 40px -24px rgba(11,31,56,0.5);
}
.video-wrap video{width:100%; display:block; max-height:640px; background:#0B1F38;}
.video-wrap.portrait{max-width:380px;}
.video-wrap.portrait video{aspect-ratio:9/16;}
.video-row{display:flex; gap:24px; align-items:flex-start; flex-wrap:wrap; margin-bottom:36px;}
.video-row .video-wrap{margin-bottom:0;}
.video-note{font-size:0.8rem; color:var(--ink-soft, #5B6472); margin:-14px 0 30px;}

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:500; background:rgba(11,31,56,0.94);
  display:none; align-items:center; justify-content:center; padding:24px;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:min(96vw, 1400px); max-height:88vh; object-fit:contain; border-radius:8px; box-shadow:0 30px 80px rgba(0,0,0,0.5);}
.lightbox .lb-cap{
  position:absolute; bottom:22px; left:0; right:0; text-align:center;
  color:rgba(255,255,255,0.8); font-size:0.82rem;
}
.lightbox button{
  position:absolute; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.25);
  color:#FFFFFF; width:44px; height:44px; border-radius:50%; cursor:pointer; font-size:1.3rem;
  display:flex; align-items:center; justify-content:center; transition:background 0.2s;
}
.lightbox button:hover{background:rgba(255,255,255,0.25);}
.lightbox .lb-close{top:18px; right:18px;}
.lightbox .lb-prev{left:18px; top:50%; transform:translateY(-50%);}
.lightbox .lb-next{right:18px; top:50%; transform:translateY(-50%);}
@media(max-width:640px){
  .lightbox{padding:0;}
  .lightbox img{max-width:100vw; border-radius:0;}
  .lightbox .lb-prev, .lightbox .lb-next{top:auto; bottom:52px; transform:none;}
}
