/* Body styling */
body {
  font-family: Georgia, serif;
  margin: 0;
  padding: 0; /*this just says "no margins on the page"*/
}

/* Page heading */
h1 {
  text-align: center;
  margin: 40px 0 20px;  /*this says, "I want my header 40 px below the top and then I want 20 px of space below it*/
}

/* Constrain page content (not navbar) */
.page-content {
  max-width: 800px; /*this says, "The max width of any item is 800px." So no photo will exceed that.*/
  margin: auto; /*centers items on the page */
  padding: 20px;
}

/* Gallery container */
.gallery {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Each photo + caption block */
.photo-block {
  margin-bottom: 60px; /*creates space between photos */
  text-align: center;
}

/* Images */
.wildlife-photo {
  width: auto;
  height: auto;
  max-width: 90%;
  max-height: 85vh;
  object-fit: contain;
  display: block;
  margin: 0 auto 6px auto;
}

/* Captions */
.caption {
  margin: 0;
  padding: 0;
  text-align: center;
  font-size: 16px;
}

/* =========================
   NAVIGATION & DROPDOWN
   ========================= */

.navbar {
  display: flex;
  justify-content: center;   /* center the whole menu group */
  background-color: #111;
}

.menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 1.5rem;               /* controls spacing between ALL items */
}

.menu > li {
  position: relative;
}

.menu a {
  display: block;
  padding: 14px 20px;
  color: white;
  text-decoration: none;
  white-space: nowrap;
}

.menu a:hover {
  background-color: #555;
}

/* Submenu */
.dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background-color: #444;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 220px;       /* fixed rectangle */
  z-index: 1000;
}

.dropdown-menu li a {
  display: block;     /* fill full width */
  width: 100%;
  padding: 12px 16px;
  box-sizing: border-box;

  white-space: nowrap;        /* clean edges */
  overflow: hidden;
  text-overflow: ellipsis;
}

.dropdown:hover .dropdown-menu,
.dropdown:focus-within .dropdown-menu {
  display: block;
}

/* =========================
   SLIDESHOW
   ========================= */

.slideshow-container img {
  max-width: 90%;
  max-height: 70vh;
  object-fit: contain;
  opacity: 1;
  transition: opacity 1s ease-in-out;
}

#slideshow-caption {
  font-style: normal !important;
  text-align: center;
  margin-top: 10px;
}

#slideshow-caption i {
  font-style: italic; /* force italics for <i> elements */
}

.slideshow-container {
  display: flex;
  flex-direction: column; /* stack vertically */
  justify-content: center;
  align-items: center;
  margin: 60px auto;
}

/*SEARCH BOX THING */
/* Center the search box and make it look nicer */
.search-container {
  display: flex;
  flex-direction: column;  /* stack children vertically */
  justify-content: center; /* centers vertically (not really needed here) */
  align-items: center;     /* centers horizontally */
  margin: 2rem 0;
}

#searchBox {
  width: 50%;               /* half the page width */
  font-family: Georgia, serif;
  max-width: 400px;         /* optional maximum width */
  padding: 0.5rem 1rem;     /* inside spacing */
  font-size: 1rem;          /* readable text */
  border: 2px solid #ccc;   /* subtle border */
  border-radius: 8px;       /* rounded corners */
  box-shadow: 0 2px 4px rgba(0,0,0,0.1); /* subtle shadow */
  transition: border-color 0.2s, box-shadow 0.2s;
}

#searchBox:focus {
  border-color: #007BFF;    /* highlight when typing */
  box-shadow: 0 2px 8px rgba(0,123,255,0.2);
  outline: none;
}

.search-instructions {
  text-align: center;       /* center the text above the box */
  margin-bottom: 0.5rem;    /* space between text and input */
  font-size: 1rem;          /* readable size */
  color: #555;              /* subtle gray color */
}


/*Static pages - just text */
/*  */
.text-page {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
  text-align: center;
}

.text-page h1 {
  margin: 20px 0 40px;
}

.text-page p {
  margin-top: 10px;
}
