.logo {
  width: 30%;
  height: auto;
  margin: auto 0;
  padding: 0.25em 0 0.25em 2em;
}

.logo a {
  text-decoration: none;
}

.grid-container {
  display: grid;
  grid-template-columns: 1fr 3fr;
  grid-gap: var(--gap);
  margin: 0 auto;
  width: var(--w);
  max-width: var(--mw);
}

nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
  background: var(--accent);
  padding: 0 2em;
  box-shadow: 0 0.25em 1em #aaa;
}

.hamburger {
  display: none;
  position: relative;
  z-index: 1;

  user-select: none;
  appearance: none;
  border: none;
  outline: none;
  background: none;
  cursor: pointer;
}

.hamburger span {
  display: block;
  width: 33px;
  height: 4px;
  margin-bottom: 5px;
  position: relative;
  background: var(--text-clr);
  border-radius: 6px;
  z-index: 1;
  transform-origin: 0 0;
  transition: 0.4s;
}

.hamburger:hover span:nth-child(2) {
  transform: translateX(10px);
  background: var(--accent);
}

.hamburger.is-active span:nth-child(1) {
  transform: translate(0px, -2px) rotate(45deg);
}

.hamburger.is-active span:nth-child(2) {
  opacity: 0;
  transform: translateX(15px);
}

.hamburger.is-active span:nth-child(3) {
  transform: translate(-3px, 3px) rotate(-45deg);
}

.hamburger.is-active:hover span {
  background: var(--text-clr);
}

.menu {
  display: flex;
  flex: 1 1 0%;
  justify-content: flex-end;
  margin: 0 -16px;
  font-family: var(--ff-mr);
}

.menu ul {
  display: flex;
  list-style: none;
  font-size: 1em;
  font-weight: 500;
  text-transform: uppercase;
  text-decoration: none;
  transition: 0.4s;
  padding: 0 2em;
}

.menu li {
  display: flex;
  width: 100%;
  text-align: center;
  margin: 0 .25em;
}

.menu a,
.footer a {
  display: flex;
  justify-content: center;
  place-items: center;
  line-height: 2em;
  width: 10em;
  height: 5.5em;
  margin: 0 auto;
  text-decoration: none;
  color: var(--text-clr);
}

.menu a:hover::before,
.menu a:hover::after {
  content: "";
  position: absolute;
  background: var(--accent);
  bottom: 0;
  height: 2em;
  width: 15px;
  box-shadow: 0 15px 0 0 var(--accent);
}

.menu a:hover::before {
  left: -15px;
  border-bottom-right-radius: 15px;
}

.menu a:hover::after {
  right: -15px;
  border-bottom-left-radius: 15px;
  transform: scale(1, 1);
}

.menu a:hover {
  background: var(--bg);
  color: var(--text-clr);
}

/* Extra small devices (phones, 601px and down) */
@media only screen and (min-width: 600px) {
  .grid {
    display: grid;
    grid-template-columns: 1fr;
  }
  
  .logo {
    height: auto;
    width: auto;
    max-height: 100px;
    max-width: 100px;
    grid-column: 1;
  }
}

@media screen and (max-width: 768px) {
  .container, .container * {
    all: unset;
  }
  
  .grid-container-home,
  .footer-listing {
    display: grid;
    grid-template-columns: 1fr;
  }
  
  nav {
    display: inline-grid;
    width: var(--w);
    margin: 0;
    padding: 0;
    height: 96px;
  }
  
  .logo {
    height: auto;
    width: auto;
    max-height: 100px;
    max-width: 100px;
    grid-column: 1;
  }
  
  .hamburger {
    display: block;
    position: absolute;
    right: var(--gap);
    top: calc(var(--gap)/2.5);
    cursor: pointer;
    top: 2.5em;
  }
  
  .menu {
    display: none;
  }

  .menu.show {
    display: grid;
    grid-template-columns: 1fr;
    grid-column: 1 / span 2;
    margin: auto 0;
    padding: 0;
    border-top: 2px solid var(--text-clr);
  }

  .menu.show ul {
    display: inline-grid;
    margin: 0;
    padding: 0;
    width: 100%;
  }
  
  .menu.show li {
    display: inline-table;
    background: var(--bg);
    margin: auto 0;
    padding: 0;
    width: 100%;
    grid-auto-flow: column;
    cursor: pointers;
    border-bottom: 1px solid var(--font);
  }
  
  .menu.show a {
    display: table-cell;
    width: 100%;
    font-family: var(--ff-mr);
    font-size: calc(var(--fs-menu)*1.25);
    vertical-align: middle;
  }
  
  .menu.show li a:hover {
    background: var(--accent);
    width: 100%;
    color: var(--bg);
    cursor: pointer;
  }
}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {
  .grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  }
  
  .logo {
    height: auto;
    width: auto;
    max-height: 100px;
    max-width: 100px;
    grid-column: 1;
  }
}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {
  .grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  }
  
  .logo {
    height: auto;
    width: auto;
    max-height: 100px;
    max-width: 100px;
    grid-column: 1;
  }
}
