* {
  margin:0;
  padding:0;
}

body {
  background: #232f3e;
   /*#003366;*/
  /*color: #181636;*/
  font-family: 'Trebuchet MS';
  font-size: 14px;
  overflow-x: hidden;
  padding: 0;
  position: relative;
  width: 100%;
}

#photoside {
  background: #232f3e; url('https://cdn.pixabay.com/photo/2020/02/15/14/33/network-4851119_960_720.jpg') no-repeat 0 0;
  left: 0;
 height: calc(100%);
  position: fixed;
  top: 0;
  transition: width .5s linear;
  width: 250px;
}

header {
  background: #fff;
  margin-left: 252px;
  position: fixed;
  width: calc(100% - 252px);
  z-index: 10;
}

footer {
  background: #003366;
  clear: both;
  color: #9AB3CD;
  padding: 5px 20px;
  width: 100%;
}

h1 {
  color: white;
  font-size: 26px;
  margin: 10px 0 0 10px;
}

h2, 
h3 {
  color: white;
  margin: 0px;
}

h2 {
  font-size: 22px;
}

h3 {
  clear: left;
  flex-basis: 100%;
  font-size: 16px;
}

p {
  flex-basis: 100%;
  margin: 0 0 12px 0;
}

header > p {
  margin: 0 0 26px 10px;
}

.btn-close,
.btn-open {
  display: none;
}

img {
  float: left;
  margin: 0 12px 12px 0;
  width: 150px;
}

header img {
  border: 1px solid #003366;
  height: 70px;
  position: absolute;
  right: 5px;
  top: 5px;
  width: 70px;
}

img.icon {
  width: 15px;
  float: none;
  margin: 0 5px 0 0;
}

img.phot {
  float: left;
  margin: 0 5px 5px 0;
}

img.slide {
  display: block;
  float: none;
  margin: 10px 0 0 0;
  max-width: 530px;
  width: 100%;
}

img.map {
  display: block;
  float: none;
  margin: 0 auto;
  max-width: 530px;
  width: 100%;
}

#content {
  background: #fff;
  bottom: 0;
  color: #003366;
  left: 252px;
  margin: 0;
  position: absolute;
  top: 133px;
}

h1 a {
  color: #B3CD9A;
  /*#181636;*/
  text-decoration: none;
}

a, 
nav.slide a {
  color: #536f3f;
  text-decoration: underline;
}

a:hover, 
nav.slide a:hover {
  color: #B3CD9A;
}

a img {
  border:0 none;
}

.left {
  float: left;
}

.right {
  float: right;
}

.clear {
  clear: both;
}

.hidden {
  display: none;
}

/* general nav styles */
nav {
  background-color: #e47911; 
/*#004D9A; */
  border-top: 1px solid #003366;
  color: #B3CD9A;
  height: 50px;
  font-size: 14px;
  line-height: 18px;
  margin: 0;
  padding: 0;
}

nav a {
  color: #B3CD9A;
  cursor: default;
  text-decoration:none;
}

nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

nav ul li.on, 
nav ul li.on a {
  background: #B3CD9A;
  color: #181636;
}

nav ul li:last-child {
  border-right: none;
}

/* specific top level nav styles */
nav ul > li {
  border-right: 1px solid #003366;
  display: inline-block;
  height: 45px;
  margin: 0;
  padding:10px 10px 0 105px;
  text-transform: uppercase;
  vertical-align: top;
}

/* specific sub level nav styles */
nav ul.sub {
  height: 0;
  line-height: 0;
  padding: 0;
  visibility: hidden;
}

nav ul.sub li {
  border-right: 0 none;
  height: 16px;
  line-height: 16px;
  padding: 5px 0 0;
  text-transform: none;
}

nav ul.sub li a:hover {
  cursor: pointer;
  text-decoration: underline;
}

nav ul.sub li:after {
  content: "|";
  padding-left: 5px;
  text-decoration: none;
}

nav ul.sub li.last-child:after {
  content: "";
  padding-left: 0;
}

#fam:hover .sub, 
#int:hover .sub, 
#proj:hover .sub, 
#res:hover .sub {
  visibility: visible;
}

/* specific sub level "ON" nav styles */
nav ul li.on ul.sub {
  visibility: visible;
}

nav ul li.on ul.sub li a {
  color: #004D9A;
}

nav ul li.on ul.sub li a:hover {
  color: #181636;
}

#main {
  background: #afeeee;
   /*  #e47911; */
  
  float: left;
  /*margin: 20px;*/
  min-height: 518px;
  min-width: calc(100% - 390px);
  padding: 10px 20px;
  width: calc(100% - 390px);
}

.side {
  background: #9AB3CD;
  float: left;
  margin: 20px 20px 0 0;
  padding: 10px 20px;
  width: 250px;
}

.side p {
  margin: 0 0 7px 0;
}

.side ul {
  padding: 0 0 12px 12px;
}

video {
  border: 1px solid #003366;
  margin: 0 0 15px;
  max-width: 530px;
  width: 95%;
}

.side video {
  max-width: 350px;
  width: 95%;
}

/* slide nav styles */
nav.slide {
  background: #fff;
  border-top: 0px none;
  color: #003366;
  height: 18px;
  margin: 0 0 4px 0;
  max-width: 530px;
  width: 100%;
}

nav.slide span {
  color: #b3cd9a;
  text-decoration: none;
}

nav.slide span.link {
  color: #536f3f;
  cursor:pointer;
  text-decoration: underline;
}

#main ul.photos {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

#main ul.photos li {
  height: 160px;
  margin: 0 10px 20px 0;
  max-width: 165px;
  padding: 0;
  width: calc(50% - 20px);
}

#main ul.photos li img {
  max-width: 165px;
  margin: 0;
  width: 100%;
}

/* section based styles */
section {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
}

.piece, 
.relateds {
  margin-top: 20px;
}

#main > section > h3 {
  margin: 10px 0 5px 0;
}

section ul {
  padding: 0 12px 12px 15px;
}

section ul li ul {
  margin:0;
}

section > div {
  flex-basis: 100%;
  margin-bottom: 10px;
}

.piece > div,
.relateds > div {
  flex-basis: 50%;
  margin-bottom: 0;
  padding-right: 5px;
}

section > div:last-child {
  margin-bottom: 15px;
}

#main section .courses + ul {
  display:none;
  padding-bottom:0;
}

.years {
  font-style:italic;
  font-size:12px;
}
.mat {
  font-style:italic;
}
.courses {
  font-size:10px;color:#536f3f;text-decoration:underline;
}
.courses:hover {
  cursor:pointer;color:#B3CD9A;
}
dl {
  margin:0;padding:0;
}
dd {
  margin:0 10px 10px 10px;
}

#thumbcont {max-width:530px;height:40px;margin:5px 0;padding:0;overflow:hidden;position:relative;width: 100%;}
#thumbs {width:3500px;position:relative;top:0;left:0;}
#thumbs ul {list-style-type:none;margin:0;padding:0;}
#thumbs ul li {float:left;width:50px;margin:0 3px 0 0;padding:0;opacity:.75;}
#thumbs ul li img {width:50px;border:1px solid #fff;margin:0;padding:0;} 
#thumbs ul li img:hover {border:1px solid #536f3f;cursor:pointer;}

#slideloc, #slidedate {font-style:italic;}

/* figure styles */
figure {
  flex-basis: 100%;
  margin: 0 auto;
  max-width: 320px;
}

figure img {
  border: 1px solid #d3d3d3;
  max-width: 320px;
  margin: 0 auto;
  width: 100%;
}

figure.vertical {
  width:240px;
}

figure.vertical img {
  max-width:240px;
}

figure.gen {
  display: flex;
  /*flex-basis: 50%;*/
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 auto 12px;
  max-width: 275px;
  order: 2;
}

figure.gen img {
  height: auto;
  max-width: 275px;
  width: auto;
}

figcaption {
  font-style: italic;
  font-size: 12px;
}

.surnames {
  align-content: space-between;
  align-items: flex-start;
  display: flex;
  flex-basis: 50%;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: space-between;
  max-height: 300px;
  order: 1;
  padding: 0 0 0 14px;
}

.surnames li {
  flex-basis: 25%;
}

/* sortable table styles */
table.sortable {
  width: 100%;
}

table.sortable thead th {background-color:#eee;color:#004D9A;font-weight:bold;text-align:left;cursor:pointer;}

table.sortable thead th:nth-child(1) {
  width: 30%;
}

table.sortable thead th:nth-child(2) {
  width: auto;
}

table.sortable thead th:nth-child(3) {
  width: 15%;
}

table.sortable thead th:nth-child(4) {
  width:40px;
}

table.sortable thead th span {
  font-size:12px;
}

table.sortable thead th.sorttable_nosort {
  cursor:default;
}

table.sortable tbody td {
  border-bottom:1px dashed #eee;
  padding-right:5px;
}

table.sortable tbody td:nth-child(4) {
  padding-right:0;
  text-align:center;
}

table.sortable tbody td a {
  border:1px solid;
  text-decoration:none;
  padding:0 1px;
}

.side ul.slides li span {
  color:#536f3f;
  cursor:pointer;
  text-decoration:underline;
}

.thumb,
ul.videos img {
  border:1px solid #9ab3cd;
  height:45px;
  margin:0;
  width:60px;
}

.side ul.videos {
  margin:0;
  padding:0;
}

.side ul.videos a {
  margin: 0 0 2px 0;
}

ul.videos li {
  list-style-type:none;
  float:left;
}

ul.videos li img:hover {
  border:1px solid #536f3f;
  cursor:pointer;
}

/* Media Queries */

@media (max-width: 1300px) {
  .piece > div, 
  .relateds > div {
    flex-basis: 100%;
    margin-bottom: 0;
    padding-right: 0;
  }
}

@media (max-width: 1220px) {
  figure.gen {
    flex-basis: 100%;
    float: none;
    order: 1;
  }

  .surnames {
    flex-basis: 100%;
    margin-top: 20px;
    order: 2;
  }
}

@media (max-width: 1013px) {
  #photoside {
    background-size: contain;
    transition: width .5s linear;
    width: 100px;
  }

  header {
    margin-left: 102px;
    width: calc(100% - 102px);
  }

  #content {
    left: 102px;
  }

  .surnames li {
    flex-basis: 50%;
  }
}

@media (max-width: 768px) {
  #photoside {
    background-position: 0 100%;
    background-size: cover;
    min-height: 0;
    opacity: .5;
    position: fixed;
    top: 0;
    left: 0;
    width: 250px;
    z-index: 0;
  }

  header {
    border-bottom: 1px solid #181636;
    height: 90px;
    left: 0;
    margin: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 10;
  }

  .nav-animate header {
    z-index: 1;
  }

  footer {
    width: calc(100% - 20px);
  }

  .btn-close,
  .btn-open {
    cursor: pointer;
    height: 40px;
    left: 17px;
    position: absolute;
    top: 32px;
    width: 40px;
    z-index: 5;
  }

  .btn-open,
  .nav-open .btn-close {
    display: block;
  }

  .nav-open .btn-open {
    display: none;
  }

  .btn-close img,
  .btn-open img {
    border: 0 none;
    height: 22px;
    opacity: .75;
    position: static;
    width: 22px;
  }

  header img {
    float: none;
    height: 70px;
    margin: 0;
    width: 65px;
  }

  h1 {
    padding: 10px 0 0;
    margin: 0 85px 0 55px;
  }

  header > p {
    margin: 0 87px 0 55px;
  }

  nav {
    border-top: none;
    display: none;
    font-size: 15px;
    height: auto;
    line-height: 30px;
    position: fixed;
    top: 105px;
    transition: all .5s linear;
    z-index: 1;
  }

  nav.slide {
    display: block;
    position: static;
  }

  .nav-animate nav {
    display: block;
  }

  .nav-open nav {
    background-color: transparent;
    display: block;
    transition: all .5s linear;
    width: 250px;
  }

  nav ul > li {
    background: none;
    height: auto;
    margin: 0;
    padding: 0 10px;
    border-right: none;
    float: none;
    text-transform: uppercase;
    width: 210px;
  }

  nav ul li.on, 
  nav ul li.on a,
  nav ul li.on ul.sub li a,
  nav ul li.on ul.sub li a:hover {
    background: transparent;
    color: #B3CD9A;
  }

  nav ul.sub {
    visibility: visible;
    height: auto;
    padding: 0 0 0 10px;
  }

  nav ul.sub li {
    border-right: none;
    height: 24px;
    padding: 5px 10px;
  }

  nav ul.sub li:after {
    content: "";
  }

  #content {
    border-top: 1px solid #181636;
    left: 0;
    margin: 90px 0 0 0;
    position: relative;
    top: 0;
    transition: all .5s linear;
    width: 100%;
    z-index: 5;
  }

  .nav-animate #content {
    position: fixed;
  }

  .nav-open #content {
    background: #fff;
    left: 250px;
    margin: 90px 0 0 0;
    position: fixed;
    transition: all .5s linear;
  }

  #main {
    border: 10px solid #003366;
    float: none;
    margin: 0;
    min-height: 0;
    width: calc(100% - 60px);
  }

  .side {
    border: 10px solid #003366;
    margin: 0;
    width: calc(100% - 60px);
  }
}

@media (max-width: 320px) {
  h1 {
    font-size: 22px;
  }

  h2 {
    font-size: 20px;
  }
}