/* body font and background properties */
body {
  /* typography Google's Roboto with sans-serif as fallback */
  font-family: "Roboto", sans-serif;
  font-weight: 300;
  color: rgba(0, 0, 0, 0.87);
  background-color: #333;
  min-height: 100vh;
}

header {
  /* hide drawer-toggle overflow */
  overflow: hidden;
}

main {
  min-height: 66vh;
  padding: 2em;
  background-color: #eee;
}

footer {
  flex-grow: 1;
  position: relative;
  color: #eee;
  padding: 2em;
  background-color: #333;
}

/* mobile navigation */
nav {
  position: absolute;
  width: 100%;
  height: 0;
  opacity: 0;
  overflow: hidden;
  z-index: 2;
  transition: 0.4s;
}

/* mobile navigation menu */
nav ul {
  background-color: #333;
  height: 100vh;
}

/* navigation menu link items */
nav li a {
  display: block;
  color: #eee;
  padding: 1em;
  text-decoration: none;
  text-transform: uppercase;
}

/* navigation selected menu link */
nav li a.active {
  background-color: #888;
}

/* navigation hovored menu link */
nav li a:hover:not(.active) {
  background-color: #111;
}

/* navigation menu image items */
.logo {
  width: auto;
  height: 56px;
  padding: 0.5rem;
}
.logo img {
  max-height: 100%;
}

/* mobile navigation drawer */
header .menu,
header .menu::before,
header .menu::after {
  display: block;
  width: 35px;
  height: 5px;
  background-color: #eee;
  transition: 0.4s;
}

header .menu {
  position: relative;
}

header .menu::before,
header .menu::after {
  content: "";
  position: absolute;
  left: 0;
}

header .menu::before {
  top: -11px;
}
header .menu::after {
  top: 11px;
}

label[for="drawer-toggle"] {
  display: block;
  cursor: pointer;
  width: 41px;
  margin: 0 0 0 auto;
  padding: 17px 0;
}

#drawer-toggle {
  display: none;
}

#drawer-toggle:checked ~ nav {
  height: auto;
  opacity: 1;
}

#drawer-toggle:checked ~ label[for="drawer-toggle"] .menu::before {
  transform: rotate(270deg) translate(-11px, 0px);
}

#drawer-toggle:checked ~ label[for="drawer-toggle"] .menu {
  transform: rotate(45deg);
}

#drawer-toggle:checked ~ label[for="drawer-toggle"] .menu::after {
  transform: rotate(-270deg) translate(-11px, 0px);
}

/* résumé table */
table,
tbody,
tr,
td {
  display: block;
}

tbody {
  font-size: 80%;
  /* clears float context */
  overflow: hidden;
}

tbody p {
  text-align: left;
}

tbody tr td {
  margin: 10px 0;
}

tbody tr td.date {
  color: #888;
}

tbody tr td.title {
  font-weight: bold;
  text-transform: uppercase;
}

tbody tr td.location {
  font-weight: normal;
}

tbody tr td.description {
  font-size: 1.17em;
}

tbody tr td.project {
  font-size: 1.2em;
  font-weight: bold;
  text-transform: uppercase;
}

/* contact form */
form input,
form textarea,
form button {
  font-family: inherit;
  font-size: 1em;
  outline: 0;
  border: 0;
  width: 100%;
  padding: 15px;
  box-sizing: border-box;
}

form input,
form textarea {
  margin: 10px 0;
}

form textarea {
  height: 10em;
}

form button {
  cursor: pointer;
  color: #fff;
  background-color: #333;
  text-transform: uppercase;
}

form button:hover,
form button:active,
form button:focus {
  background-color: green;
}

/* centering */
.centered {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

.centered img {
  margin: auto;
}

.centered p {
  text-align: center;
}

/* circular shape */
.circle {
  border-radius: 50%;
}

/* debug style */
.img-debug {
  animation: filter-animation 10s infinite;
  transform: scaleX(-1) rotate(180deg);
}

@keyframes filter-animation {
  0% {
    filter: hue-rotate(100deg) contrast(1.5);
  }
  50% {
    filter: hue-rotate(200deg) contrast(1.5);
  }
  100% {
    filter: hue-rotate(100deg) contrast(1.5);
  }
}

/* clear floating elements on both sides */
.clear {
  clear: both;
}

/* gallery grid */
.portfolio {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 10px;
  color: #eee;
  text-align: center;
  font-weight: normal;
}

.portfolio .item {
  display: flex;
  justify-content: center;
  align-items: center;
  background-size: cover;
  background-position: center;
}

.portfolio .item p {
  font-weight: normal;
  padding: 0 2em;
  transition: all ease-in-out 300ms;
}

.portfolio .item:hover p {
  opacity: 0;
}

.portfolio .item::before {
  content: "";
  padding-top: 100%;
}

.portfolio .item.large {
  grid-row: span 2;
  grid-column: span 2;
}

.portfolio .item.tall {
  grid-row: span 2;
  grid-column: span 1;
}

.portfolio .item.one {
  background-image: url(../img/gallery/stab.jpg);
}
.portfolio .item.two {
  background-image: url(../img/gallery/program.jpg);
}
.portfolio .item.three {
  background-image: url(../img/gallery/lost_city_pompeii.jpg);
}
.portfolio .item.four {
  background-image: url(../img/gallery/colosseum_rome.jpg);
}
.portfolio .item.five {
  background-image: url(../img/gallery/marseille_france.jpg);
}
.portfolio .item.six {
  background-image: url(../img/gallery/nollning.jpg);
}
.portfolio .item.seven {
  background-image: url(../img/gallery/riomaggiore_cinque_terre.jpg);
}
.portfolio .item.eight {
  background-image: url(../img/gallery/genoa_italy.jpg);
}
.portfolio .item.nine {
  background-image: url(../img/gallery/villach_austria.jpg);
}
.portfolio .item.ten {
  background-image: url(../img/gallery/trdelnik_prague.jpg);
}
.portfolio .item.eleven {
  background-image: url(../img/gallery/barcelona_spain.jpg);
}
.portfolio .item.twelve {
  background-image: url(../img/gallery/leaning_tower_pisa.jpg);
}
.portfolio .item.thirteen {
  background-image: url(../img/gallery/blue_lagoon_ayia_napa.jpg);
}
.portfolio .item.fourteen {
  background-image: url(../img/gallery/la_folie_douce_val_thorens.jpg);
}
.portfolio .item.fifteen {
  background-image: url(../img/gallery/zion_national_park.jpg);
}

/* social and resume inline links */
ul.boxes li {
  display: inline-block;
  margin: 15px 15px 30px 0;
}

ul.boxes li a {
  padding: 15px;
  background-color: white;
  color: black;
  text-decoration: none;
}

ul.boxes li a:hover {
  background-color: khaki;
}

ul.boxes li a img {
  vertical-align: middle;
}

@media (min-width: 600px) {
  /* desktop container */
  .container {
    margin: 0 auto;
    max-width: 1280px;
  }

  /* desktop navigation */
  nav {
    display: block;
    position: relative;
    height: auto;
    opacity: 1;
  }

  /* desktop navigation menu */
  nav ul {
    display: flex;
    height: auto;
  }

  /* resume table row */
  tbody.col-2 tr {
    float: left;
    width: 50%;
  }

  /* projects table row */
  tbody.col-3 tr {
    float: left;
    width: 33%;
  }

  tbody tr:nth-child(odd) td {
    margin-right: 10px;
  }

  /* desktop gallery grid */
  .portfolio {
    grid-template-columns: repeat(4, 1fr);
  }

  .portfolio .item {
    background-color: #ccc;
    background-blend-mode: multiply;
    transition: all ease-in-out 300ms;
  }

  .portfolio .item:hover {
    background-color: transparent;
    transform: scale(1.01);
  }

  .portfolio .item.ten {
    grid-row: 4 / span 2;
  }

  /* hide drawer toggle */
  label[for="drawer-toggle"] {
    display: none;
  }
}

@media print {
  html {
    font-size: 10pt;
    color: black;
    background: white;
  }

  /* Force grid to use desktop layout */
  .md\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
  }
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  .md\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
  .md\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
  .md\:col-span-1 {
    grid-column: span 1 !important;
  }
  .md\:col-span-2 {
    grid-column: span 2 !important;
  }
  .md\:col-span-3 {
    grid-column: span 3 !important;
  }
  .md\:col-span-4 {
    grid-column: span 4 !important;
  }
  .md\:text-right {
    text-align: right !important;
  }

  main,
  .container {
    margin: 0 !important;
    padding: 0 !important;
    max-width: none !important;
  }

  /* Hide unnecessary UI elements for printing */
  header,
  footer {
    display: none !important;
  }
}
