@import url("https://fonts.googleapis.com/css?family=Lato&display=swap");

body {
  margin: auto;
  padding: inherit;
  background-color: #f4f4f4;
  font-family: "Lato", sans-serif;
}

body {
  display: grid;
  height: 100vh;
  align-content: stretch;
  align-items: stretch;
  grid-template-columns: 1fr minmax(auto, 700px) minmax(auto, 300px) 1fr;
  grid-template-rows: auto auto 1fr auto;
  grid-template-areas:
    "navBar navBar navBar navBar"
    " . header header ."
    " . main aside . "
    " footer footer footer footer ";
}

a {
  color: #53b758;
  text-decoration: none;
}

a:hover {
  color: #3c853f;
  text-decoration: underline;
}

a.wslink {
  color: black;
  text-decoration: none;
}

a.wslink:hover {
  color: black;
  text-decoration: underline;
}

.navBar {
  width: 100%;
  position: sticky;
  background-color: #252832;
  grid-area: navBar;
  display: grid;
  grid-template-columns: 1fr minmax(auto, 700px) minmax(auto, 300px) 1fr;
  grid-template-rows: auto;
  grid-template-areas: ". nav nav .";
  position: sticky;
  top: 0;
  -webkit-box-shadow: 0px 7px 13px -6px rgba(0, 0, 0, 0.54);
  -moz-box-shadow: 0px 7px 13px -6px rgba(0, 0, 0, 0.54);
  box-shadow: 0px 7px 13px -6px rgba(0, 0, 0, 0.54);
}

.upNav {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  background-color: #252832;
  grid-area: nav;
  width: 100%;
}

.upNav div {
  list-style-type: none;
}

.upNav div a {
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.15em;

  display: inline-block;
  position: relative;
}

.upNav div a.active {
  font-weight: 900;
}

.upNav div a:after {
  background: none repeat scroll 0 0 transparent;
  bottom: 0;
  content: "";
  display: block;
  height: 3px;
  left: 50%;
  top: 0;
  position: absolute;
  background: #53b758;
  transition: width 0.3s ease 0s, left 0.3s ease 0s;
  width: 0;
}

.upNav div a:hover:after {
  width: 100%;
  left: 0;
  top: 0;
}

.upNav div a {
  color: white;
  text-decoration: none;
  font-weight: initial;
  display: block;
  width: 100px;
  height: 60px;
  text-align: center;
  line-height: 60px;
}

header {
  background-color: #93c693;
  height: 239px;
  grid-area: header;
  justify-self: stretch;
}

.site-bkg-small {
  display: none;
}

main {
  background-color: white;
  grid-area: main;
  padding-left: 25px;
  padding-right: 35px;
  padding-bottom: 30px;
  font-size: 1.15rem;
}

main .important {
  color: red;
}

main .online {
  color: dodgerblue;
  font-style: italic;
}

main table,
td,
th {
  border: 1px solid rgba(0, 0, 0, 0.1);
}

main table th {
  background: rgba(54, 58, 71, 0.9);
  color: white;
  height: 50px;
}

main table {
  border-collapse: collapse;
}

main p {
  text-align: left;
}
main article {
  padding: 1%;
}

main table tbody a {
  font-weight: initial;
  text-decoration: none;
}

main table tbody a:hover {
  color: #3c853f;
  text-decoration: underline;
}

main table tbody th,
main table tbody td {
  padding: 8px;
}

main table tbody tr:nth-child(odd) {
  background-color: rgba(38, 41, 51, 0.1);
}

main table.program {
  width: 100%;
}

main table.program tbody tr:nth-child(odd) {
  background-color: white;
}

main table.program tbody tr td.ws1 {
  background-color: hsl(208, 95%, 92%);
}
main table.program tbody tr td.ws2 {
  background-color: hsl(145, 95%, 92%);
}
main table.program tbody tr td.ws3 {
  background-color: hsl(82, 95%, 92%);
}
main table.program tbody tr td.ws4 {
  background-color: hsl(34, 95%, 92%);
}
main table.program tbody tr td.ws5 {
  background-color: hsl(5, 95%, 92%);
}
main article p {
  text-align: justify;
}

main article .lfloat {
  float: left;
  padding-right: 17px;
  padding-bottom: 5px;
}

main article .rfloat {
  float: right;
  padding-left: 17px;
  padding-bottom: 5px;
}

main #workshop-ul {
  display: flex;
  list-style-type: none;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}

main article p.cv {
  font-style: italic;
}

main article h2 strong {
  font-style: italic;
}

main article .break,
main article .meal {
  font-style: italic;
  padding: 10px 0;
  display: block;
}

main #workshop-ul li {
  display: block;
  background-color: #53b758;
  height: 150px;
  width: 150px;
  margin: 5px;
  padding: 15px;
  cursor: pointer;
  text-align: center;
  position: relative;
}

main #workshop-ul li:hover {
  background: #3c853f;
}

main #workshop-ul li a {
  text-decoration: none;
  color: white;
  display: block;
  top: 50%;
  left: 50%;
  position: absolute;
  transform: translate(-50%, -50%);
}
main .skrt {
  text-decoration: line-through;
}

aside#sidebar {
  background-color: white;
  grid-area: aside;
}

aside#sidebar h2 {
  color: #252832;
  margin: 0;
}

aside#sidebar .sponzors-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 150px;
}

aside#sidebar .sponzors {
  width: 100%;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 10px;
}

aside #navigation nav.sideNav button {
  display: none;
}

aside #navigation nav.sideNav {
  background: #252832;
}

aside #navigation nav.sideNav ul {
  margin: auto;
  padding: 0;
  list-style-type: none;
  display: flex;
  text-align: center;
  flex-direction: column;
}

aside #navigation nav.sideNav ul li a {
  list-style-type: none;
  display: block;
  padding: 12px 20px;
  text-decoration: none;
  color: white;
  font-weight: initial;
  transition: all 0.2s ease;
}

aside #navigation nav.sideNav ul li a.active {
  font-weight: 900;
}

aside #navigation nav.sideNav ul li a.important {
  color: #fa8a8a;
}

aside #navigation nav.sideNav ul li a:hover {
  color: #53b758;
}

footer {
  text-align: center;
  background-color: #16181e;
  grid-area: footer;
  height: 65px;
}

footer p {
  padding-top: 0.5%;
  color: white;
}
footer p > a {
  color: #53b758;
  font-weight: initial;
}

@media print {
  header {
    display: none;
  }

  aside {
    display: none;
  }
}

@media (max-width: 1000px) {
  body {
    display: grid;
    grid-template-columns: 75% 25%;
    grid-template-areas:
      "navBar navBar"
      "header header"
      "main aside"
      "footer footer";
  }
}

@media (max-width: 830px) {
  header {
    height: 100px;
  }

  .site-bkg {
    display: none;
  }

  .site-bkg-small {
    display: block;
  }
}

@media (max-width: 735px) {
  body {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 3fr;
    grid-template-areas:
      "navBar navBar"
      "header header"
      "aside aside"
      "main main"
      "footer footer";
  }

  .navBar {
    position: initial;
  }

  main table.table-previous th:first-child,
  main table.table-previous td:first-child {
    display: none;
  }

  aside #navigation nav.sideNav button {
    display: block;
    border: none;
    padding: 0;
    background: none;
    height: 60px;
    padding: 12px 16px; /* Some padding */
    cursor: pointer;
  }

  aside #navigation nav.sideNav button svg {
    fill: white;
  }

  aside #navigation nav.sideNav ul {
    display: none;
    flex-direction: column;
  }
}
