/* styles.css 
   Project: 
   Author: 
   Date: 
	
*/

/*google font*/

@import url('https://fonts.googleapis.com/css2?family=Lato&family=Montserrat&family=Open+Sans&family=Raleway&family=Roboto&display=swap');

/*main css*/

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}


img, video {
  width: 100%;
  display: block;
}

audio {
  display: block;
}

/*link style*/

a {
  text-decoration: none;
  color: whte;
}

a:visited {
  color: gray;
}

a:hover, a:active {
  color: darkgray;
} 

body, html {
  font-family: 'Lato', sans-serif; 
}

h1, h2, h3, .pullquote {
  font-family: 'Open Sans', sans-serif;
  color: rgb(245,245,245);

}

header {
  width: 100%;
  position: sticky;
  top: 0;
  z-index: -1;
  background-color: black;
  /*max-height: 600px;*/
}

header img {
  /* this opacity makes the header image dark so you can read the headline text more easily. remove the opacity if you do not have your headline on top of the image.*/
  opacity: 0.6;
}

.title1 {
  position: absolute;
  width: 100%;
  top: 20%;
  color: rgb(245,245,245);
  text-align: center;
  padding: 3%;
}

.title1 h1 {
  font-size: 4.7em;
  margin-bottom: -4px;
  color: rgb(245, 245, 245);
}


.title1 h2 {
  font-size: 2em;
  color: rgb(245, 245, 245);
}


.title1 h3 {
/*  margin-top: 10%;*/
  font-size: 1.2em;
  font-style: italic;
  color: rgb(245, 245, 245);
}

.title2 {
  width: 100%;
  color: rgb(245, 245, 245);
  text-align: center;
  padding: 3% 10%;
}

.title2 h1 {
  font-size: 2.2em;
  margin-bottom: -4px;
  line-height: 1.5em;
  color: rgb(245, 245, 245);
}

.title2 h2 {
  font-size: 1.2em;
  color: rgb(245, 245, 245);
  line-height: 1.5em;
}

.title2 h3 {
  margin-bottom: 0;
  font-size: .8em;
  font-style: italic;
  color: rgb(245, 245, 245);
}


.content {
  width: 100%;
  background-color: rgb(96,96,96);

}

.maintext {
  max-width: 640px;
  margin: auto;
  color: rgb(245,245,245);
  font-size: 1.2em;
  line-height: 1.7em;
  text-align: justify;
  padding: 1%;
}

.nextpage{

  background-color: grey;
  color: rgb(245,245,245);
  padding: 15px 25px;
  border-radius: 10px;
  text-align: center;
  width: fit-content;
  margin: 20px auto;
  font-family: sans-serif;
  font-size: 16px;
  cursor: pointer;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: background-color 0.3s ease;

}

/*video1*/

.video1 {
  float: right;
  width: 250px;
  margin: 0 0 1rem 1rem;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.video1 video {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/*endvideo1*/



/*quiz*/

.quiz-container {
  background-color: white;
  width: auto; /* Make the width responsive to screen size */
  max-width: auto; /* Max width for larger screens */
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  font-size: 14px;
  overflow-y: auto; /* Allow scrolling if needed */
  max-height: autopx;
  box-sizing: border-box; /* Ensures padding doesn't overflow */
}

.quiz-container h1 {
  font-size: 20px;
  text-align: center;
  margin-bottom: 15px;
  color: #333;
}

.quiz-container p {
  text-align: center;
  margin-bottom: 15px;
  font-size: 14px;
  width: auto;
  color: black;
  font-weight: bold;
}

.question {
  margin-bottom: 10px; /* Reduced margin for better compactness */
}

.question p {
  font-size: 16px;
  margin-bottom: 8px; /* Adjusted margin for compactness */
  color: #333;
}

input[type="radio"] {
  margin-right: 8px;
}

label {
  font-size: 14px;
  color: #333;
}

button {
  background-color: #007BFF;
  color: white;
  font-size: 14px;
  border: none;
  padding: 8px 20px;
  border-radius: 5px;
  width: 100%;
  cursor: pointer;
  margin-top: 15px;
}

button:hover {
  background-color: #0056b3;
}

.feedback {
  font-size: 12px;
  display: none;
  margin-top: 5px;
}

.feedback.correct {
  color: green;
}

.feedback.incorrect {
  color: red;
}

#results {
  font-size: 14px;
  text-align: center;
  margin-top: 10px;
}

/* end quiz*/

/* FLIPCARD GALLERY CODE */

.gallery2 {
  float: left;
  width: 100%;
  max-width: 300px; /* keep the size manageable */
  aspect-ratio: 1 / 1; /* keep the flip card square */
  margin: 0 20px 20px 0;
  text-align: center; /* center-align the caption and instructions */
}

.gallery {
  float: right;      
  width: 30vw;             
  max-width: 300px;          
  margin: 0 10px 10px 0;   
  aspect-ratio: 1 / 1;      
  text-align: center; 
  padding-left: 20px;
}

.flip-card2 {
  width: 100%;
  height: 100%;
  perspective: 1000px;
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

.flip-card2:hover .flip-card-inner {
  transform: rotateY(180deg);
}

.flip-card-front,
.flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}

.flip-card-front img,
.flip-card-back img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.flip-card-front {
  background-color: transparent;
}

.flip-card-back {
  background-color: transparent;
  transform: rotateY(180deg);
  top: 0;
  left: 0;
}

/* Caption styles */
.caption {
  margin-top: 10px;  /* Space between the image and the caption */
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.7em;
  color: rgb(245,245,245);
  text-align: center;


}

/* Instruction styles */
.instructions {
  margin-top: 5px;  /* Space between caption and instructions */
  font-size: 0.8em;
  color: rgb(245,245,245);
  text-align: center;
}

.text-wrap {
  max-width: 60ch;  /* limits line length to about 60 characters */
  line-height: 1.5; /* optional: improves readability */

.text-wrap {
  text-align: justify;
}

}

/* END FLIPCARD GALLERY CODE */

.pullquote {
  width: 50%;
  font-size: 1.4em;
  line-height: 1.6em;
  font-style: italic;
  text-align: left;
}

.name {
  font-size: 0.7em;
  text-align: center;
  line-height: 0.1em;
  padding-bottom: 30px;
}

.left {
  float: left;
  padding-right: 20px;
  margin-left: -40px;
}

.right {
  float: right;
  padding-left: 20px;
  margin-right: -40px;
}

/*floating*/

/* For images floating left and right on large screens */
.floatingpic.left {
  position: relative;  /* Keeps it in the flow */
  float: left;
  width: 300px;
  left: 60px;  /* Nudge it left */
  margin: 1rem 2rem 1rem 0;
  background-color: rgb(245, 245, 245);
  padding: 0.75rem;
  border-radius: 1rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  transition: transform 0.3s ease;
}

.floatingpic.right {
  position: relative;
  float: right;
  width: 300px;
  left: -60px;  /* Nudge it left */
  margin: 1rem 2rem 1rem 0;
  background-color: rgb(245, 245, 245);
  padding: 0.75rem;
  border-radius: 1rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  transition: transform 0.3s ease;
}

.floatingpic.right:hover {
  transform: scale(1.03);
}
.piccaption {
  color: rgb(24,24,24)
  margin-top: 10px;  /* Space between the image and the caption */
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.7em;
  text-align: center;
}

.floatingpic audio {
  width: 100%;
  margin-top: 5px;
}

.floatingcap {
  margin-top: 0px;
  font-size:  1em;
  text-align: center;
}

.sectionhead {
  text-align: justify;
  color: white;
}

.bigphoto {
  position: relative;
}

.photocaption {
  position: absolute;
  font-size: .7em;
  bottom: 0px;
  width: 100%;
  padding-left: 1%;
  color: rgb(245,245,245);
  background-color: rgba(0,0,0,0.4);
}

.sidebyside {
  display: flex;
}

.photoleft {
    flex-direction: row;
}

.photoright {
    flex-direction: row-reverse;
}

.sidephoto {
  flex: 2;
}

.sidecaption {
  flex: 1;
  background-color: black;
  color: white;
  font-size: 1.2em;
  display: grid;
  align-items: center;
  text-align: center;
  padding: 20px 40px;
}

.photogrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 5px;
}

.gridpic {
  position: relative;
}

.gridpic .photocaption {
  display: none;
}

.cycle-slideshow {
  max-width: 700px;
  margin: auto;
}

.knightlab {
  max-width: 700px;
  margin: auto;
}

.slidewrapper {
  position: relative;
}

.slides {
  position: sticky;
  position: -webkit-sticky;
  top: 0px;
  z-index: -1;
}

.mySlides {
  position: relative;
}

.slideshow-caption {
  text-align: center;
  font-size: 20px;
  line-height: 1.5;
  color: rgb(245, 245, 245);
  margin-top: 20px;
  margin-bottom: 30px;
  padding: 10px;
}

.bottomcredit {
  position: absolute;
  right: 0px;
  bottom: 0px;
  background-color: rgba(255, 255, 255, 0.2);
  padding: 10px;
  color: white;
}

.backgroundimage {
  height: 100vh;
  position: sticky;
  position: -webkit-sticky;
  top: 0px;
  z-index: -1;
}

.backgroundimage img {
  height: 100%;
  object-fit: cover;
}

.textbox {
  max-width: 640px;
  margin: 100vh auto;
  background-color: white;
  color: darkslategray;  
  padding: 20px;
}

.googlemap {
  overflow:hidden;
  padding-bottom:56.25%;
  position:relative;
  height:0;
  max-width: 700px;
  margin: auto;
}

.googlemap iframe {
  left:0;
  top:0;
  height:100%;
  width:100%;
  position:absolute;
}

.youtube {
  max-width: 700px;
  margin: auto;
}

.responsivecontainer {
  position: relative; 
  padding-bottom: 56.25%; 
  padding-top: 30px; 
  height: 0; 
  overflow: hidden;
}

.responsivecontainer iframe, .responsivecontainer object, .responsivecontainer embed { 
  position: absolute; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%;
}

.clickhere {
  font-style: italic;
  font-size: 0.7em;
  text-align: right;
  padding-right: 1%;
}

.voxpop {
  max-width: 700px;
  margin: auto;
}

.voxgrid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-gap: 10px;
}

.person {
  border-radius: 5px;
  box-shadow: 2px 3px 3px lightslategrey;
  overflow: hidden;
}

.person audio {
  width: 100%;
  display: block;
}

.headshot {
  position: relative;
  text-align: center;

}

.popup {
  cursor: pointer;
}

.infographic {
  max-width: 700px;
  margin: auto;
}

/* Slideshow container */
.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
}

/* Hide the images by default */
.mySlides {
    display: none;
}

.mySlides img {
    width: 100%;
}

/* Next & previous buttons */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  margin-top: -22px;
  padding: 16px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
}

/* Position the "next button" to the right */
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}

/* Caption text */
.slidetext {
  color: #f2f2f2;
  font-size: 15px;
  padding: 12px;
  position: absolute;
  bottom: 0px;
  width: 100%;
  text-align: center;
  background-color: rgba(0, 0, 0, 0.7);
}

/* Number text (1/3 etc) */
.numbertext {
  color: #f2f2f2;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}

/* The dots/bullets/indicators */
.dots {
  margin-top: 10px;
  width: 100%;
  display: flex;
  justify-content: center;
}

.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
  text-align: center;
}

.active, .dot:hover {
  background-color: #717171;
}

 
.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 1.5s;
  animation-name: fade;
  animation-duration: 1.5s;
}

@-webkit-keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}


/*footer */

footer {
  background-color: rgb(40,40,40);
  color: rgb(245,245,245);;
  padding: 1%;
  text-align: right;
}

/*popup modal*/

.overlay {
  position: fixed;
  top: 0px;
  left: 0px;
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  overflow-y: scroll;
  display: none;
  z-index:  10;
}

.modal {
  width: 70%;
  margin: 2% auto;
}

.closer {
  position: absolute;
  right: 1vh;
  top:  1vh;
  width: 10%;
  cursor: pointer;
}

/*media query for responsive design */

@media only screen and (max-width: 900px) {

  .title1 {
    top: 5%;
  }

  .title1 h1 {
    font-size: 3.5em;
  }

  .title1 h2 {
    font-size: 1.5em
  }

  .title1 h3 {
    font-size: 1.1em;
  }

}


@media only screen and (max-width: 800px) {

  .pullquote {
    width: 100%;
    margin: 0px;
    padding: 0px;
    text-align: center;
    display: none; /* remove this line if you want the pullquotes to display on mobile*/ 
  }

  .left, .right {
    margin: 0px;
    padding: 10px;
  }

  .floatingpic {
    width:  100%;
    margin: 0px;
    padding:  0px;
  }

  .popup {
    margin-bottom: 15px;
  }

  .popup .floatingcap {
    display: none;
  }  

}


@media only screen and (max-width: 640px) {

  .title1 {
    top: 1%;
  }

  .title1 h1 {
    font-size: 3em;
  }

  .title1 h2 {
    display: none;
  }

  .title1 h3 {
    font-size: 0.9em;
  }

  .title2 h1 {
    font-size: 2em;
  }

  .title2 h2 {
    font-size: 1.3em;
  }

  .title2 h3 {
    font-size: 1em;
  }

  .maintext {
    font-size: 1.4em;
    line-height: 1.6em;
    text-align: left;
    margin: 0px 15px;
  }

  .voxgrid {
    grid-template-columns: 1fr 1fr;
  }

  .person audio {
    background-color: black;  
  }

  .modal {
    width: 97%;
    margin: 10% auto;
  }

  .sidebyside {
    display: block;
  }

  .sidecaption {
    font-size: 1em;
    padding: 10px 20px;
  }

  .textbox {
    margin: 100vh 20px;
  }

}


@media (max-width: 1024px) {
  .floatingpic.left,
  .floatingpic.right {
    float: none;
    position: relative;
    width: 90%;
    max-width: 100%;
    left: 0;
    margin: 1.5rem auto;
    box-sizing: border-box;
  }

  .floatingpic img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 0.75rem;
  }

  .piccaption {
    font-size: 0.95rem;
    text-align: center;
    padding: 0 0.5rem;
  }
}

@media (max-width: 600px) {
  .gallery,
  .gallery2 {
    display: block;
    width: 100%;
    margin: 40px 0;
    padding: 0 10px 30px 10px; /* ← added bottom padding */
    float: none;
    clear: both;
    box-sizing: border-box;
  }

  .flip-card2 {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    display: block;
    aspect-ratio: 3 / 4;
  }

  .flip-card-inner {
    width: 100%;
    height: 100%;
  }

  .flip-card-front img,
  .flip-card-back img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .caption,
  .instructions {
    display: none; /* Hide caption and instructions on mobile */
  }
}




















