.main-footer-wrap {
  /* background-color: yellow; */
  width: 100vw;
  height: 100vh;
  margin-left: var(--headerWidth);

  position: fixed;
  overflow-y: scroll;
  scroll-snap-type: y proximity;
  scroll-snap-stop: always;

  display: block;
}

main {
  width: 100%;
  height: 100%;
}

main section {
  position: relative;
  width: 100vw;
  height: var(--sectionHeight);

  overflow: hidden;
  scroll-snap-align: start;
}

main section:first-child {
  height: calc(var(--sectionHeight) + 10px);
}

footer {
  position: relative;
  width: 100vw;
  height: calc(var(--sectionHeight) * 2);
}

.categoryTag {
  box-sizing: content-box;
  position: absolute;
  bottom: 20px;
  z-index: 2;

  background-color: white;
  border: 3px solid #cdcdcd;
  width: auto;
  height: 60px;
  margin-left: 28px;
  padding: 2px 18px;

  filter: drop-shadow(2px 0.5px 2px rgba(0, 0, 0, 0.5));
}

.categoryTag h2 {
  font-family: "hobeaux", sans-serif;
  font-weight: 450;
  font-style: normal;

  white-space: nowrap;
  font-size: 16pt;
  text-align: center;

  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.shelf {
  position: absolute;
  bottom: 24px;
  z-index: 0;

  width: 100vw;
  height: var(--shelfHeight);
  background-color: rgb(214, 99, 57);

  display: grid;
  grid-template-rows: 66% 34%;
}

.shelf-top {
  outline: solid 1px rgb(65, 44, 30);

  background-color: rgb(139, 60, 14);
  background-image: url("../images/shelf-texture.jpg");
  background-size: cover;
  filter: brightness(1);
}
.shelf-front {
  outline: solid 1px rgb(65, 44, 30);

  background-color: rgb(139, 60, 14);
  background-image: url("../images/shelf-texture.jpg");
  background-size: cover;
  filter: brightness(1.5);
}

.cans {
  box-sizing: border-box;
  position: absolute;
  left: 0;
  bottom: 68px;
  z-index: 1;

  padding-left: 15vw;
  padding-right: 15vw;

  width: 100vw;
  overflow-x: scroll;
  white-space: nowrap;
  scroll-snap-type: x proximity;
}

.can {
  display: inline-block;
  width: var(--canWidth);
  height: var(--canHeight);
  margin-right: calc(var(--canWidth) * 0.22);

  scroll-snap-align: left;

  -webkit-box-reflect: below calc(var(--canWidth) * -0.55) -webkit-gradient(linear, left
        top, left bottom, from(transparent), color-stop(0.5, transparent), to(rgba(255, 255, 255, 0.35)));
}

.can img {
  width: var(--canWidth);
  height: var(--canHeight);
  position: absolute;

  filter: drop-shadow(0 0.2rem 0.1rem rgba(0, 0, 0, 0.3));
}

.can-close {
  opacity: 1;
  z-index: 0;
}

.can-open {
  opacity: 0;
  z-index: -1;
}

.can:hover {
  transition: all 0.3s ease;
}

.can:active {
  cursor: url("../images/cursor/cursor-hover-60px.png") 20 -10, auto;
}

.can:active .can-open {
  opacity: 1;
  z-index: 1;
  filter: drop-shadow(0 0.2rem 0.1rem rgba(0, 0, 0, 0));
  transition: all 0.3s ease;
}

.cursor {
  font-family: "ONE-Mobile-POP";
  font-weight: 400;
  font-size: 24pt;

  opacity: 0;
  visibility: hidden;
  position: absolute;
  z-index: 15;

  background-color: #ffffff00;
  width: auto;
  height: auto;

  box-sizing: content-box;
  text-align: center;
  align-items: center;
  display: block;
  margin: auto;
}

#zoom-btn {
  all: unset;
  position: fixed;
  right: 0px;
  bottom: calc(var(--zoomBtnSize) * 0.5);

  background: url("../images/icons/zoom.png") no-repeat center;
  background-size: calc(var(--zoomBtnSize) * 0.7);
  width: var(--zoomBtnSize); /* 55px */
  height: var(--zoomBtnSize);

  background-color: white;
  border-radius: 12px;
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.1);

  transform-origin: center, center;
  transform: translate(-50%, 0%) scale(1);
  z-index: 100;
}

#zoom-btn:hover {
  background-image: url("../images/icons/zoom-hover.png");
}

#zoom-btn:active {
  transform: translate(-50%, 0%) scale(1.1);
  cursor: url("../images/cursor/cursor-hover-60px.png") 20 -10, auto;
  transform: all 0.2s ease;
}
