medium-bento-box {
  position: relative;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-flow: row wrap;
  background-color: var(--grey-200);

  @media (min-width: 700px) {
    display: grid;
    grid-template-columns: repeat(6, 0.166);
    grid-template-rows: repeat(5, 0.2);
    grid-template-areas:  "a b b b c c"
                          "d b b b e f"
                          "g g h i i i"
                          "j k k l m m";
    border-radius: 50px;
    overflow: hidden;
    aspect-ratio: 6/4;
    max-width: calc(6 * 210px);
    max-height: calc(4 * 210px);
  }

  bento-box-slot {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;

    @media (max-width: 699px) {
      height: 210px;
    }

    &[slot="a"] {
      width: 33.33%;
      order: 1;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: a;
      }
    }
    &[slot="b"] {
      width: 66.66%;
      order: 2;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: b;
      }
    }
    &[slot="c"] {
      width: 66.66%;
      order: 3;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: c;
      }
    }
    &[slot="d"] {
      width: 33.33%;
      order: 5;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: d;
      }
    }
    &[slot="e"] {
      width: 33.33%;
      order: 4;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: e;
      }
    }
    &[slot="f"] {
      display: none;

      @media (min-width: 700px) {
        display: inline-block;
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: f;
      }
    }
    &[slot="g"] {
      width: 66.33%;
      order: 6;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: g;
      }
    }
    &[slot="h"] {
      width: 33.33%;
      order: 8;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: h;
      }
    }
    &[slot="i"] {
      width: 66.66%;
      order: 7;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: i;
      }
    }
    &[slot="j"] {
      width: 33.33%;
      order: 9;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: j;
      }
    }
    &[slot="k"] {
      width: 66.66%;
      order: 10;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: k;
      }
    }
    &[slot="l"] {
      width: 33.33%;
      order: 12;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: l;
      }
    }
    &[slot="m"] {
      width: 66.66%;
      order: 11;

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: m;
      }
    }

    box-arrow {
      position: absolute;
      width: 30px;
      height: 30px;
      z-index: 10;
      display: none;

      @media (min-width: 700px) {
        display: inline-block;
      }

      &[direction="up"] {
        top: -15px;
        left: 50%;
        transform: translateX(-50%) rotate(45deg);
      }

      &[direction="right"] {
        top: 50%;
        right: -15px;
        transform: translateY(-50%) rotate(45deg);
      }

      &[direction="left"] {
        top: 50%;
        left: -15px;
        transform: translateY(-50%) rotate(45deg);
      }

      &[direction="down"] {
        bottom: -15px;
        left: 50%;
        transform: translateX(-50%) rotate(45deg);
      }
    }


    a,
    button{
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1.5rem;
    }

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      position: absolute;
      top: 0;
      left: 0;
    }
  }

  bento-box-overlay {
    img {
      opacity: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
      transition: all 700ms ease-in-out;
      filter: blur(8px);
      transform: scale(1.25);

      &.visible {
        animation: bentoBoxFadeIn 700ms 150ms ease-in-out forwards;
      }
    }
  }
}

@keyframes bentoBoxFadeIn {
  from {
    opacity: 0;
    filter: blur(8px);
    transform: scale(1.25);
  }
  to {
    opacity: 1;
    filter: blur(4px);
    transform: scale(1);
  }
}
