*, *::before, *::after {
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html, body {
  border:0;
  margin:0;
  font-family:verdana,arial;
  font-size:16px;
  font-weight:normal;
  line-height:1.5;
  color:#333;
  height:100%;
}

.sr-only {
  overflow: hidden;
  clip: rect(0,0,0,0);
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
}

input, select, textarea {
  font-family:verdana,arial;
  font-size:16px;
}

input[type=number] {
  -moz-appearance:textfield;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

#wrapper {
  min-height:100%;
  margin: 0 auto -40px;
  padding-top:60px;
  position:relative;
}

.maxwidth {
  width:100%;
  max-width:1000px; /* If changing, update @media */
  margin:0 auto;
}

#header {
  background-color:#333;
  color:#fff;
  width:100%;
  height:60px;
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:200;
}
#header a {
  color:#fff;
  border-radius:4px;
  transition:background-color 0.3s ease;
  text-decoration:none;
}
#header a:hover {
  background-color:#666;
}
#header #headerinner {
  display:table;
}
#header #headerleft {
  display:table-cell;
  width:50%;
  padding:10px;
  vertical-align:middle;
}
#header #headerleft a {
  padding:10px;
  font-size:1.5em;
  line-height:1;
}
#header #headerright {
  display:table-cell;
  width:50%;
  padding:10px 20px 10px 10px;
  text-align:right;
  vertical-align:middle;
}

#header #headermenutrigger {
  height: 34px;
  width: 30px;
  cursor: pointer;
  display: inline-block;
  position: relative;
}
#header #headermenutrigger span {
  margin-top: 16px;
  -webkit-transition: background-color 0.3s ease 0.3s;
  -moz-transition: background-color 0.3s ease 0.3s;
  -ms-transition: background-color 0.3s ease 0.3s;
  -o-transition: background-color 0.3s ease 0.3s;
  transition: background-color 0.3s ease 0.3s;
  position: relative;
  height: 2px;
  width: 100%;
  display: block;
  background-color: #fff;
}
#header #headermenutrigger span::before,
#header #headermenutrigger span::after {
  content: '';
  position: absolute;
  left: 0;
  height: 2px;
  width: 100%;
  background-color: #fff;
  transition-delay: 0.3s, 0s;
  transition-duration: 0.3s;
  transition-timing-function: ease;
}
#header #headermenutrigger span::before {
  top: -10px;
  transition-property: top, transform;
}
#header #headermenutrigger span::after {
  bottom: -10px;
  transition-property: bottom, transform;
}

#header #headermenu {
  display:none;
  position:fixed;
  top:60px;
  left:0;
  right:0;
  bottom:0;
  background-color:#333333;
  overflow:auto;
}
#header #headermenu ul {
  padding:0;
  margin:0;
  list-style:none;
  text-align:center;
}
#header #headermenu ul li {
  margin:10px;
}
#header #headermenu ul li.sep::after {
  content:"";
  display:block;
  width:100%;
  max-width:200px;
  border-bottom: 1px solid #888;
  margin:10px auto 0;
}
#header #headermenu ul li a {
  display:inline-block;
  padding:10px;
  width:80%;
  font-size:1.3em;
}
#header #headermenu ul ul {
  margin-bottom: 0;
}
#header #headermenu ul li ul li a {
  font-style: italic;
  font-size: 1.2em;
}


body.menuopen
{
  overflow:hidden;
}
body.menuopen #header #headermenutrigger span
{
  background-color: transparent;
  -webkit-transition-delay: 0s;
  -moz-transition-delay: 0s;
  -ms-transition-delay: 0s;
  -o-transition-delay: 0s;
  transition-delay: 0s;
}
body.menuopen #header #headermenutrigger span::before
{
  top: 0;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
body.menuopen #header #headermenutrigger span::after
{
  bottom: 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
body.menuopen #header #headermenutrigger span::before,
body.menuopen #header #headermenutrigger span::after
{
  transition-delay: 0s, 0.3s;
}
body.menuopen #header #headermenu
{
  display:block;
}


@media screen and (min-width:650px) {
  #header #headermenu {
    left: unset;
    width: 300px;
    box-shadow: 0 0 20px #000;
  }

  body.menuopen {
    overflow: unset;
  }
}

@media screen and (min-width:1000px) {
  #header #headermenu {
    right: calc((100vw - 1000px) / 2);
  }
}





#main {
  z-index:100;
}
#maininner {
  padding:20px 20px 40px;
  overflow:hidden;
}
#mainpush {
  height:40px;
}

#footer {
  width:100%;
  height:40px;
  background-color:#333;
  color:#fff;
}
#footer #footerinner {
  padding:10px;
  line-height:20px;
  font-size:0.8em;
}


a, a:hover, a:active {
  color:darkblue;
}

p {
  margin:20px 0;
}

#homepagehero {
  background-image:url('/images/hero.jpg');
  background-size:cover;
  background-position:center center;
  height:380px;
  display:flex;
  align-items: center;
  justify-content: center;
  text-align:center;
}
#homepagehero h1 {
  color:#fff;
  text-shadow:1px 1px 3px #000;
  margin:10px;
  font-size:2.5em;
  line-height:1.2em;
}


#googlemap {
  width: 100%;
  height: 400px;
  background-color: grey;
}


.youtube {
  max-width:800px;
  margin:24px auto;
}
.youtube > div {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  padding-top: 25px;
  height: 0;
}
.youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


#photogroupcontainer {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:stretch;
}
#photogroupcontainer a.photogroup {
  text-decoration:none;
  color:#333;
  outline:0;
  margin:15px;
  height:100%;
  -webkit-box-shadow: 0 0 10px rgba(0,0,0,.5);
  -moz-box-shadow: 0 0 10px rgba(0,0,0,.5);
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  -webkit-transition: box-shadow 0.1s ease;
  -moz-transition: box-shadow 0.1s ease;
  -o-transition: box-shadow 0.1s ease;
  -ms-transition: box-shadow 0.1s ease;
  transition: box-shadow 0.1s ease;
}
#photogroupcontainer .photogroupitem {
  display:inline-block;
  padding:10px;
  border:1px solid #ccc;
  width:290px;
  text-align:center;
}
#photogroupcontainer .photogroupitem h3 {
  margin:0;
}
#photogroupcontainer .photogroupitem img {
  margin:10px;
  border:0;
}
#photogroupcontainer .photogroupitem .hidden {
  color:#ff0000;
}

.photosection {
  overflow:hidden;
  margin:20px 0;
}
.photosectionitems {
  display:flex;
  flex-wrap:wrap;
}
.photosectionitem {
  display: inline-block;
  float: left;
  margin: 0 5px 10px;
  height: 100px;
}


#project21 {
  margin: 20px 0;
}
#project21 a {
  display:block;
  text-decoration:none;
  color:#333;
  outline:0;
  margin:15px;
  height:100%;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  padding:10px;
  border:1px solid #ccc;
}
#project21 h3 {
  margin: 0;
}


div.overflow {
    overflow:auto;
}


.grid {
    border-collapse: collapse;
    border: 0;
}
.grid tbody tr:hover {
    background-color: #eee;
}
.grid td, .grid th {
    vertical-align: top;
    padding: 5px;
    border: 1px solid black;
}
.grid td.c {
    text-align: center;
}
.grid td.p {
    cursor: pointer;
}
.grid td.o, .grid td.o a {
    color: red;
}
.grid td.nb {
    border: 0;
}
.grid tbody tr.total:hover {
    background-color: transparent;
}
.grid tr.firstNonRegular td {
    border-top: 3px solid #888;
}
.grid td.red,
.grid td.red a {
    color:red;
}

.scrollable {
    display: inline-flex;
    white-space: nowrap;
    overflow: auto;
    width:100%;
}
.scrollable a {
    margin: 0 5px;
}
.scrollable a:first-child {
    margin-left:0;
}
.scrollable a:last-child {
    margin-right:0;
}



@media screen and (max-width:800px)
{
  #wrapper {
    background-size:45%;
  }
  #homepagehero {
    height:300px;
  }
}

@media (prefers-color-scheme: dark)
{
    html, body {
        background-color:#222;
        color:#eee;
    }

    a, a:hover, a:active {
        color: #71a2ff;
    }
    
    #photogroupcontainer a.photogroup {
        color:#eee;
    }
    #photogroupcontainer .photogroupitem {
        border:1px solid #666;
    }

    #project21 a {
        color:#eee;
        border:1px solid #666;
    }

    .grid tbody tr:hover {
        background-color: #555;
    }
    .grid td, .grid th {
        border: 1px solid #888;
    }
}