large-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 c d d"
                          "e b b f f g"
                          "h i j j j k"
                          "l m n o o p"
                          "q q q r s t";
    border-radius: 50px;
    overflow: hidden;
    aspect-ratio: 6/5;
    max-width: calc(6 * 210px);
    max-height: calc(5 * 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: 33.33%;
      order: 4;

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

      @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"] {
      width: 66.66%;
      order: 5;

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

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

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

      @media (min-width: 700px) {
        width: auto;
        grid-column: auto;
        grid-row: auto;
        grid-area: i;
      }
    }
    &[slot="j"] {
      width: 66.66%;
      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: 11;

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

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

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

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

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

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

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

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

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

    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 {
      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;
    }
  }
}
