body {
  margin: 0;
  font-family: Arial, sans-serif;
  color: #333;
  background-color: #fff;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
}

.top-line {
  background-color: #000;
  height: 20px; /* half of nav bar height */
  width: 100%;
}

header .banner img {
  width: 100%;
  height: auto;
  display: block;
}

nav {
  background-color: #111;
  text-align: center;
}

nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: inline-flex;
}

nav ul li {
  margin: 0;
}

nav ul li a {
  display: block;
  color: #fff;
  padding: 14px 20px;
  text-decoration: none;
  font-weight: bold;
}

nav ul li a:hover,
nav ul li a.active {
  background-color: #444;
}

.gallery {
  text-align: center;
  padding: 40px 10px;
}

.gallery h2 {
  margin-bottom: 20px;
}

.gallery-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.gallery-container img {
  width: 300px;
  height: 200px;
  object-fit: cover;
  border-radius: 4px;
}

footer {
  background-color: #494949;
  color: #fff;
  text-align: center;
  padding: 10px;
}
/* center the banner contents */
.banner { display: flex; justify-content: center; }

/* make the map center and scale */
header .banner iframe,
.map {
  width: 100% !important;   /* override 640px */
  max-width: 800px;         /* optional cap */
  aspect-ratio: 4 / 3;      /* keeps shape */
  height: auto;
  display: block;
  margin: 0 auto;
  border: 0;
}

/* ensure main text is centered */
main, .content, h1, p { text-align: center; }

.gallery-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 10px;
  justify-items: center;
}
.gallery-container img {
  width: 260px;               /* uniform width */
  height: 180px;              /* uniform height */
  object-fit: cover;          /* crops instead of distorting */
  border: 4px solid #ccc;
  border-radius: 6px;
  padding: 6px;
  background-color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transition: transform 0.2s ease;
}

.gallery-container {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 2px;
  justify-items: center;
  padding: 20px;
}

/* frame and spacing */
.gallery-container a {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #333;
  position: relative;
}

/* Video overlay indicator */
.gallery-container a.video-item::after {
  content: "▶";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 48px;
  color: rgba(255, 255, 255, 0.7);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  pointer-events: none;
  z-index: 1;
}

.gallery-container a.video-item:hover::after {
  color: rgba(255, 255, 255, 0.9);
}

.gallery-container img {
  width: 187px;
  height: 187px;
  object-fit: cover;
  border: 4px solid #000;
  border-radius: 6px;
  padding: 6px;
  background-color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transition: transform 0.2s ease;
}

.gallery-container img:hover {
  transform: scale(1.03);
  border-color: #111;         /* highlight on hover */
}

/* caption under image */
.gallery-title {
  margin-top: 8px;
  font-size: 0.95rem;
  font-weight: bold;
  text-align: center;
}

.link-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 2px;
  max-width: 1300px;
  margin: 40px auto;
  text-align: center;
  justify-content: center;
}

/* fixed frame */
.link-grid a {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #000;
  margin: 0 auto;    /* center each tile in its grid cell */
}

.image-frame:hover {
  transform: scale(1.05);
}

/* image fills frame */
.image-frame {
  position: relative;
  width: 200px;
  height: 200px;
  overflow: hidden;
  border: 4px solid #000;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  transition: transform .2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
}

.image-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.link-grid a span {
  margin-top: 8px;
  font-weight: bold;
  color: #000;
  text-align: center;
  max-width: 300px;
  word-wrap: break-word;
}