@charset "UTF-8";



     
.gallery-top {
  position: relative;
  width: 1200px;
  max-width: 100%;
  height: auto; /* allow height to depend on aspect-ratio */
  aspect-ratio: 2.2 / 1; /* ensures proportional height */
  margin: 0 auto;
  overflow: hidden;
}

.main-image-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* makes image scale properly inside container */
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
  z-index: 1;
}

.main-image-top.show {
  opacity: 1;
  pointer-events: auto;
}

.gallery {
      max-width: 1000px;
      margin: 0 auto;
	  max-height: 100vh;
    }

.image-wrapper {
	display: flex;
	position: relative;
	width: 100%;
 	aspect-ratio: 4 / 3;
	justify-content: center;
 	align-items: center;
	overflow: hidden;
	transition: height 0.3s ease;
	}
	
@media (max-width: 550px) {
  .gallery {
      max-width: 100%;
    }
  .image-wrapper {
    aspect-ratio: unset; /* remove fixed aspect on small screens */
    height: auto; /* default, can be overridden in JS */
  }
}

.main-image {
  	position: absolute;
  	width: 100%;
  	height: 100%;
  	object-fit: contain;
  	opacity: 0;
  	transition: opacity 0.5s ease;
  	pointer-events: none;
	}

.main-image.show {
  	opacity: 1;
  
	}

.main-image.fade-out {
  	opacity: 0;
	}
	
  .buttons {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      font-size: 2rem;
      color: white;
      text-shadow: 0 0 5px black;
      cursor: pointer;
      padding: 0 10px;
      user-select: none;
    }

    #prevBtn { left: 10px; }
    #nextBtn { right: 10px; }

 .thumbnail-container {
  	overflow-x: hidden;
  	overflow-y: hidden;
  	white-space: nowrap;
  	max-width: 100%;       /* ensure it doesn't exceed */
  	scroll-behavior: smooth;
  	scroll-snap-type: x mandatory; /* optional enhancement */
  	height: 70px;
   	padding: 4px 0px 0px 0px;
	scroll-padding-inline: 30px;
    }

  .thumbnails {
    display: flex;
	scrollbar-width: none;
	overflow-x: auto;
    scroll-padding-inline: 30px;
	white-space: nowrap;
    }

 .thumbnail {
  width: 60px;
  aspect-ratio: 1;
  object-fit: cover;
  border: 2px solid transparent;
  cursor: pointer;
  flex: 0 0 auto;
}

.thumbnail.active {
  border: 2px solid #007bff !important;
}

    .thumbnails::-webkit-scrollbar {
      display: none;
    }

    .thumbnails {
      scrollbar-width: none;
    }
	  
  	.dot-container {
  	display: flex;
  	justify-content: center;
  	margin-top: 15px;
		z-index: 199;
	}

	.dots {
  	display: flex;
  	gap: 8px;
	}

	.dot {
  	width: 8px;
  	height: 8px;
  	background: #ccc;
  	border-radius: 50%;
  	cursor: pointer;
  	transition: background 0.3s;
	}
	  
 .dot.active {
  background: #666; /* Outer dot color */
  position: relative;
}

.dot.active::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;  /* Size of inner dot */
  height: 6px;
  background: #fff;  /* Inner dot color */
  border-radius: 50%;
  transform: translate(-50%, -50%);
}