@import url('https://fonts.googleapis.com/css?family=Overpass');
@import url('https://fonts.googleapis.com/css?family=Montserrat');
@import url('https://fonts.googleapis.com/css?family=Lobster');


* {
  margin: 0;
  padding: 0;
}


html {
  font-size: 16px;
  font-family:"Montserrat";
} /*I'm setting the font size in the root element (<html>) so that I can use units of rem later. Although I'm pretty sure 16px is the default, but I'm not sure if that is true for all situations.*/


body{
  min-height: 100vh;
  display: flex;
  justify-content: center;
  flex-wrap:wrap;
}

div.everythingcontainer{
  display: flex;
  justify-content: center;
  flex-wrap:wrap;
}

nav{
  width:100vw;
}

ul.navflexcontainer {
  justify-content: space-around;
  display: flex;
  align-items: center;
  height: 9vh;
  width: 100%;
  padding: 0px;
  margin: 0px;
  background-color: white; /*rgb(173, 216, 230,0.6);*/
}



@media only screen and (max-width: 600px) {
  .navflexcontainer{
    display:block;
    text-align: center;
    padding: 10px;
    line-height: 200%;
  }
}



li {
  list-style-type: none;
  padding:5px;
}



a.nav {
  text-decoration: none;
  box-sizing: border-box;
  /*border: 1px solid transparent;*/
  color:#292929;
  padding:0.6em;
}

@media only screen and (max-width: 525px) {
  a.nav{
    font-size: 80%;
    margin-left: -0.5em;
  }
}


a.nav:hover {
  /*border-bottom: 1px solid #292929;*/
}



div.namepiccontainer{
  position:relative;
  text-align:center;
  color:white;
  width:100%;
  height:auto;
  display:flex;
  overflow: hidden;
}



img.namepic{
  width:100%;
  height:91vh;
  object-fit: cover;
}

@media only screen and (max-width: 475px) {
  img.namepic{
    height:50vh;
    width: 100%;
    overflow:hidden;
  }
}





div.nametext{
  position:absolute;
  top:24%;
  left:50%;
  transform:translate(-50%,-50%);
  width: 100%;
}

h1.name{
  font-size:11vw; /*6rem*/
}

@media only screen and (min-width: 800px) {
  h1.name{
    font-size:100px;
  }
}

@media only screen and (max-width: 475px) {
  h1.name{
    font-size:8vw;
  }
}

div.undernametext{
  position:absolute;
  top:45%;
  left:50%;
  transform:translate(-50%,-50%);
  width: 100%;
}

h2.undername{
  font-size:8vw;  /*4.5rem*/
  font-style: oblique;
  font-family:"Lobster";
  border-top: 0.15rem;
  border-bottom: 0.15rem;
  border-right: 0;
  border-left:0;
  border-style: solid;
  border-color: white;
}

@media only screen and (min-width: 800px) {
  h2.undername{
    font-size:80px;
  }
}


@media only screen and (max-width: 475px) {
  h2.undername{
    font-size:7vw;
  }
}

div.maincontentcontainer{
  position:relative;
  text-align: center;
  width: 65%;
  height: auto;
  background-color: white;
  font-family:"Montserrat";
  margin-top:7%;
  margin-bottom: 7%;
  line-height: 2rem;
}

@media only screen and (max-width: 525px) {
  div.maincontentcontainer{
    width: 85%;
  }
}

h2.maincontentheader{
  margin-bottom: 5.5%;
  font-size:150%;
  line-height: 2.5rem;
}



@media only screen and (max-width: 525px) {
  h2.maincontentheader{
    margin-top:5%;
    margin-bottom: 10%;
    font-size: 115%;
  }
}


p.maincontentp{
  text-align: left;
}

div.bottompic{
margin-bottom: 10%;
}

img.bottompic{
  border-radius:50%;
  width:25%;
  height:auto;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

img.bottompiclarge{
  border-radius:50%;
  width:50%;
  max-width: 500px;
  height:auto;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

div.formcontainer{
  width:100%;
}

fieldset{
  text-align: left;
  width:auto;
  border:none;
  margin-left: 13%;
  margin-right: 13%;
}

@media only screen and (max-width: 525px) {
  fieldset{
    margin-left: 5%;
    margin-right: 5%;
  }
}

input.shortinput{
  width:100%;
  height:2rem;
  box-sizing: border-box;         /* box-sizing property allows you to include the padding and border in an element's total width and height */
  border:0.09rem solid grey;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
  font-family:"Montserrat";
  padding:0.5rem;
}

textarea.longinput{
  width:100%;
  height:6rem;
  box-sizing: border-box;
  border:0.09rem solid grey;
  font-size: 0.9rem;
  font-family:"Montserrat";
  padding:0.5rem;
}

input.submitbutton{
background-color: #4CAF49;
border: none;
color: white;
padding: 0.9rem 1.75rem;
margin-top: 2%;
text-decoration: none;
cursor: pointer;
font-size: 0.9rem;
font-family:"Montserrat";
}

input.submitbutton:hover{
  animation-name:swell;
  animation-duration:2s;
}

@keyframes swell{
  50%{
    transform:scale(1.1);
  }
  100%{
    transform:scale(1);
  }
}

div.submitwrapper{
  text-align: center;
  margin-top:1.5%;
}

div.footercontainer{
  width:100%;
  background-color: white;
  position:absolute:
  bottom:0;
  min-height:9vh;
  display:flex;
  justify-content: space-between;
  margin-left: 2%;
  margin-right: 2%;
  align-items:center;
}

div.footercolumn{
  width: 25%;
  text-align:center;
  font-size: 0.75rem;
}

p.footer{
}

img.footerimage{
  width: 60%;
  height:auto;
}

/*------ Collapsible navigation ------*/
@media only screen and (min-width: 526px) {
  a.expandnav{
    display: none;
  }
}

a.expandnav{
  float: left;
  width:100%;
}

  a.closenav{
    display: none;
  }

@media only screen and (max-width: 525px) {
  ul.navflexcontainer{
    display: block;
    text-align: left;
  }
}

@media only screen and (max-width: 525px) {
  nav.navigation {
    z-index:1;
    /* Collapsed */
    width: 0;
    overflow: hidden;
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    padding-top:10vh;
    transition: width 0.3s ease;

  }
}

div.everythingcontainer{
  width: 100%;
}

#main-navigation:target {
  width: 35%;
  background-color: white;
  visibility:
}

@media only screen and (min-width: 526px) {
  #main-navigation:target{
width:100%;

}
}

@media only screen and (max-width: 525px) {
#main-navigation:target + .everythingcontainer {
  width: 65%;
  float: right;
  transition: width .4s ease;}}

  @media only screen and (max-width: 525px) {
  #main-navigation:target + .everythingcontainer .expandnav {
     display: none;
  }}

  @media only screen and (max-width: 525px) {
  #main-navigation:target + .everythingcontainer
.closenav {
   display: block;
   text-align: left;
   float: left;
   width:110%;
   margin-left: -99%;
   position: relative;
   z-index: 5;
}}







/* ----- hamburger menu ----- */

div.barcontainer {
  position: relative; /*remember, z-index only works with position*/
  display: inline-block; /*i google this every time, so I'll just leave this here https://stackoverflow.com/questions/450903/how-can-i-make-a-div-not-larger-than-its-contents */
  cursor: pointer;
  align-items: left;
  z-index: 2;
  padding:0px;
  border: 2px solid lightgreen;
  margin:5px;
  margin-bottom: 1px;
  border-radius: 3px;
}

div.bars{
  display: inline-block;
  background-color: ;
  width: 100%;
}

.bar1, .bar2, .bar3 {
  width: 35px;
  height: 5px;
  background-color: #333;
  margin: 5px 0;
  transition: 0.4s;
}

/* Rotate first bar */
.change .bar1i {
  -webkit-transform: rotate(-46deg) translate(-7.5px, 6px) ;
  transform: rotate(-46deg) translate(-7.5px, 6px) ;
}

/* Fade out the second bar */
.change .bar2i {
  opacity: 0;
}

/* Rotate last bar */
.change .bar3i {
  -webkit-transform: rotate(45deg) translate(-7px, -7px) ;
  transform: rotate(45deg) translate(-7px, -7px) ;
}


/* ----- close menu ----- */

.bar1x, .bar2x, .bar3x {
  width: 35px;
  height: 5px;
  background-color: black;
  margin: 5px 0;
  transition: 0.4s;
}

/* Rotate first bar */
.bar1x {
  -webkit-transform: rotate(-46deg) translate(-7.5px, 6px) ;
  transform: rotate(-46deg) translate(-7.5px, 6px) ;
}

/* Fade out the second bar */
.bar2x {
  opacity: 0;
}

/* Rotate last bar */
.bar3x {
  -webkit-transform: rotate(45deg) translate(-7px, -7px) ;
  transform: rotate(45deg) translate(-7px, -7px) ;
}



/* ------ Gallery ----- https://www.w3schools.com/howto/howto_js_slideshow_gallery.asp */
* {
  box-sizing: border-box;
}

/* Position the image container (needed to position the left and right arrows) */
.container {
  position: relative;

}

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

display:block;
margin:auto;
}

.gallerypic {
width:100%;}

/* Add a pointer when hovering over the thumbnail images */
.cursor {
  cursor: pointer;
}

/* Next & previous buttons */
.prev,
.next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -50px;
  color: white;
  font-weight: bold;
  font-size: 20px;
  border-radius: 0 3px 3px 0;
  user-select: none;
  -webkit-user-select: none;
}

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

/* Position the "next button" to the right */
.prev {
  left: 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.5);
}

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

/* Container for image text */
.caption-container {
  text-align: center;
  background-color: white;
  padding: 1% ;
  color: white;
}

.row:after {
  content: "";
  display: table;
  clear: both;
}

/* Seven columns side by side */
.column {
  float: left;
  width: calc(100%/7);
}

/* Add a transparency effect for thumnbail images */
.demo {
  opacity: 0.6;
}

.active,
.demo:hover {
  opacity: 1;
}
