/* Carousel styles: responsive, simple transitions */
:root{
  --accent:#2c5364;
}
.carousel{
  position:relative;
  width:100%;
  max-width:var(--max-width,1000px);
  margin:20px auto;
  overflow:hidden;
  background:transparent;
  border-radius:12px;
}
.carousel-track{
  display:flex;
  transition:transform 400ms ease;
  will-change:transform;
}
.carousel-slide{
  flex:0 0 100%;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  aspect-ratio: 4 / 3; /* fuerza la misma relación de aspecto para cada captura */
  padding:0;
}
.carousel-slide img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain; /* mostrar enteras */
  border-radius:10px;
  box-shadow:0 8px 30px rgba(0,0,0,0.12);
  max-width:100%;
}
.carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(12,18,20,0.6);
  color:white;
  border:0;
  width:44px;
  height:44px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:26px;
  cursor:pointer;
}
.carousel-btn:hover{ background:rgba(12,18,20,0.85); }
.carousel-btn.prev{ left:12px; }
.carousel-btn.next{ right:12px; }
.carousel-indicators{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:12px;
  display:flex;
  gap:8px;
}
.carousel-indicators .indicator{
  width:10px;
  height:10px;
  background:rgba(255,255,255,0.6);
  border-radius:50%;
  border:0;
  cursor:pointer;
}
.carousel-indicators .indicator.active{
  background:var(--accent);
  box-shadow:0 2px 6px rgba(44,83,100,0.45);
}

@media (max-width:640px){
  .carousel-btn{ width:38px; height:38px; font-size:22px; }
  .carousel-slide{ padding:8px; }
}

/* Responsive adjustments: adapt aspect ratio and object-fit on smaller viewports */
@media (max-width:900px){
  .carousel{ max-width:95%; margin:16px auto }
  .carousel-slide{ aspect-ratio: 16 / 9 }
  .carousel-slide img{ object-fit:contain }
}

@media (max-width:480px){
  .carousel{ margin:12px auto }
  .carousel-slide{ aspect-ratio: 4 / 3 }
  .carousel-btn{ width:34px; height:34px; font-size:18px }
  .carousel-slide img{ width:100%; height:100%; object-fit:contain }
}

/* Modal styles for download instructions */
.modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.5);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1200;
}
.modal{
  background:#fff;
  width:min(920px, 94%);
  max-height:90vh;
  overflow:auto;
  border-radius:12px;
  padding:22px;
  box-shadow:0 20px 60px rgba(0,0,0,0.35);
}
.modal h3{ margin-top:0; color:var(--accent) }
.modal .actions{ display:flex; gap:10px; margin-top:18px }
.modal .small{ font-size:14px; color:#555 }
.modal .close-btn{ background:transparent; border:0; font-size:20px; position:absolute; right:18px; top:14px; cursor:pointer }
.modal .download-link{ text-decoration:none }

