Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URLs added here will be added as <link>s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Auto Save

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <link
  href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400|Josefin+Sans:700|Open+Sans+Condensed:700|Sorts+Mill+Goudy|Zilla+Slab:600,500i"
  rel="stylesheet"
/>
<div class="menu">
<div class="menu-nugget appetizing">
  <span>.</span><span>appetizing since 1924</span>
</div>
<div class="title">
  <span>Russ</span> <span class="small-ampersand">&</span>
  <span>Daughters</span>
</div>
<div class="menu-items">
  <div class="menu-group noshes">
    <div class="menu-nugget">
      <span>small</span> <span class="vertical-bar">dishes</span>
    </div>
    <div class="menu-title brackets noshes"><h2>Noshes</h2></div>
    <div class="menu-row">
      <h3>
        russ <span class="small-ampersand">&</span> Daughters Knishes<span
          class="price"
          >8</span
        >
      </h3>
      <p class="description">Potato, carmelized onion, mustard</p>
    </div>
    <div class="menu-row">
      <h3>Hot Smoke/Cold Smoke<span class="price">13</span></h3>
      <p class="description">
        Kippered baked Salmon & Scottish smoked salmon spread, waffle-cut potato
        chips
      </p>
    </div>
    <div class="menu-row">
      <h3>Potato latkes</h3>
      <p class="description">
        - Salmon roe and creme fraiche<span class="price">9</span>
      </p>
      <p class="description">
        - Applesauce and sour cream<span class="price">9</span>
      </p>
    </div>
    <div class="menu-row">
      <h3>Kasha Varnishkas<span class="price">6</span></h3>
      <p class="description">
        buckwheat, caramelized onion, bowtie egg noodles
      </p>
    </div>
    <div class="menu-row">
      <h3>Chopped liver<span class="price">9</span></h3>
      <p class="description">Matzo, pickled red onion</p>
    </div>
    <div class="menu-row">
      <h3>Super heebster<span class="price">10</span></h3>
      <p class="description">
        whitefish & baked salmon salad, wasabi-infused fish roe, horseradish
        dill cream cheese, bagel toast
      </p>
    </div>
    <div class="menu-row">
      <h3>Pastrami russ<span class="price">12</span></h3>
      <p class="description">
        pastrami-cured salmon, muenster cheese, sauerkraut, mustard, pickle,
        pretzel roll
      </p>
    </div>
    <div class="menu-row">
      <h3>sours<span class="price">7</span></h3>
      <p class="description">pickled vegetables, pickles from the barrel</p>
    </div>
  </div>
  <div class="menu-group boards">
    <div class="menu-nugget">
      <span>open-faced</span> <span class="vertical-bar">sandwiches</span>
    </div>
    <div class="menu-title brackets"><h2>boards</h2></div>
    <div class="menu-row">
      <h3>the classic<span class="price">16</span></h3>
      <p class="description">
        gaspe nova smoked salmon, cream cheese, bagel-bialy, tomato, onion,
        capers
      </p>
    </div>
    <div class="menu-row">
      <h3>mensch<span class="price">22</span></h3>
      <p class="description">
        sturgeon, butter, bagel/bialy, tomato, onion, capers
      </p>
    </div>
    <div class="menu-row">
      <h3>shtetl<span class="price">18</span></h3>
      <p class="description">
        smoked sable, goat cream cheese, bagel-bialy, tomato, onion, capers
      </p>
    </div>
    <div class="menu-row">
      <h3>yum kippered<span class="price">16</span></h3>
      <p class="description">
        kippered (baked) salmon, cream cheese, bagel/bialy, tomato, onion,
        capers
      </p>
    </div>
  </div>
  <div class="menu-group platters">
    <div class="menu-nugget">
      <span>to be</span> <span class="vertical-bar">shared</span>
    </div>
    <div class="menu-title brackets"><h2>platters</h2></div>
    <div class="smoked-fish">
      <h3>smoked fish</h3>
      <p>
        <span class="serves">| Serves 3 - 4 people |</span
        ><span class="italic">with</span> cream cheese, onion, tomato, capers &
        new potato salad <span class="italic">and</span> russ
        <span class="small-ampersand">&</span> daughters bread basket
      </p>
    </div>
    <div class="menu-row">
      <h3>
        <span class="italic">the</span> hattie<span class="price">80</span>
      </h3>
      <p class="description">
        smoked whitefish, kippered (baked) salmon, gaspe nova smoked salmon,
        sable
      </p>
    </div>
    <div class="menu-row">
      <h3><span class="italic">the</span> ida<span class="price">70</span></h3>
      <p class="description">
        scottish smoked salmon, gaspe nova smoked salmon, pastrami-cured salmon,
        gravlox
      </p>
    </div>
    <div class="menu-row">
      <h3><span class="italic">the</span> anne<span class="price">90</span></h3>
      <p class="description">
        western nova smoked salmon, private stock sturgeon, sable, smoked brook
        trout, wild alaskan salmon roe
      </p>
    </div>
  </div>
  <div class="menu-group eggs">
    <div class="menu-nugget">
      <span>served</span> <span class="vertical-bar">all the time</span>
    </div>
    <div class="quote-grid">
      <div class="menu-title brackets"><h2>eggs</h2></div>
      <div class="quote">
        <h3>"Ess gezinter hayt."</h3>
        <p>Eat in good health.</p>
        <p><span class="italic">— Yiddish idiom</span></p>
      </div>
    </div>
    <div class="menu-row">
      <h3>Lox, eggs & onions<span class="price">15</span></h3>
      <p class="description">
        <span class="italic">with</span> toasted shissel rye
      </p>
    </div>
    <div class="menu-row">
      <h3>sturgeon, eggs & onion<span class="price">19</span></h3>
      <p class="description">
        <span class="italic">with</span> toasted pumpernickel
      </p>
    </div>
    <div class="menu-row">
      <h3>bella's matzo brei<span class="price">12</span></h3>
      <p class="description">matzo, egg, applesauce, sour cream</p>
    </div>
    <div class="menu-row">
      <h3>lower sunny side<span class="price">16</span></h3>
      <p class="description">
        sunny side up eggs, gaspe nova smoked salmon, potato latkes
      </p>
    </div>
    <div class="menu-row">
      <h3>eggs benny<span class="price">18</span></h3>
      <p class="description">
        poached eggs, scottish smoked salmon, sautéed spinach, hollandaise,
        challah
      </p>
    </div>
    <div class="menu-row">
      <h3>farm egg omelette<span class="price">15</span></h3>
      <p class="description">gaspe nova smoked salmon, cream cheese</p>
    </div>
    <div class="menu-row">
      <h3>soft scrambled eggs & caviar</h3>
      <p class="description">
        custard-like egg, caviar <span class="italic">with</span> challah
      </p>
      <p class="description">
        - American transmontanus<span class="price">180</span>
      </p>
      <p class="description">- paddlefish<span class="price">60</span></p>
    </div>
    <div class="bread">
      <div class="menu-row">
        <h3>
          russ <span class="small-ampersand">&</span> Daughters Bread basket
          <span class="price">7</span>
        </h3>
        <p class="description">
          bagel, bialy, shissel rye, onion roll, pumpernickel
        </p>
      </div>
    </div>
  </div>
  <hr class="tablet-rule" />
  <div class="menu-group soup-salad">
    <div class="soup">
      <div class="menu-title"><h2>soups</h2></div>
      <div class="menu-row">
        <h3>Matzo Ball<span class="price">8</span></h3>
        <p class="description">chicken, vegetables, matzo ball</p>
      </div>
      <div class="menu-row">
        <h3>Mushroom Barley<span class="price">8</span></h3>
        <p class="description">
          mushrooms, barley <span class="italic">w/</span> shissel rye bread
        </p>
      </div>
      <div class="menu-row">
        <h3>Borscht<span class="price">8</span></h3>
        <p class="description">
          served chilled: beets, sour cream, dill
          <span class="italic">w/</span> pumpernickel
        </p>
      </div>
      <div class="menu-row">
        <h3>Smoked Whitefish Chowder<span class="price">10</span></h3>
        <p class="description">dill, esplette pepper, matzo</p>
      </div>
    </div>
    <div class="salad">
      <div class="menu-title"><h2>salads</h2></div>
      <div class="menu-row">
        <h3>Mixed Green<span class="price">9</span></h3>
        <p class="description">greens, fennel, dill, capers, citrus dressing</p>
      </div>
      <div class="menu-row">
        <h3>Chopped Salad<span class="price">14</span></h3>
        <p class="description">
          smoked whitefish, avocado, beets, egg, apple, mixed greens, matzo,
          buttermilk dressing
        </p>
      </div>
      <div class="menu-row">
        <h3>
          Smoked Trout<span class="small-ampersand">&</span> Potato<span
            class="price"
            >14</span
          >
        </h3>
        <p class="description">
          smoked trout, watercress, caper mustard dressing
        </p>
      </div>
    </div>
  </div>
  <hr class="tablet-rule" />
  <div class="menu-group herring">
    <div class="menu-title brackets"><h2>herring</h2></div>
    <div class="menu-row">
      <h3>pickled herring trio<span class="price">9</span></h3>
      <p class="description">canapes of pickled herring on pumpernickel</p>
    </div>
    <div class="menu-row">
      <h3>schmaltz & a shot<span class="price">12</span></h3>
      <p class="description">
        schmaltz herring, boiled potato, raw onion, shot of vodka
      </p>
    </div>
    <div class="menu-row">
      <h3>herring plate<span class="price">20</span></h3>
      <p class="description">an assortment of russ & daughters herring</p>
    </div>
  </div>
  <hr class="tablet-rule" />
  <div class="menu-group caviar">
    <div class="menu-title brackets"><h2>caviar</h2></div>
    <p class="description">blini, creme fraiche, accoutrement</p>
    <div class="caviar-grid">
      <p>Grams</p>
      <p>50</p>
      <p>125</p>
      <p>250</p>
      <p>500</p>
      <p>american transmontanus</p>
      <p class="dot">175</p>
      <p class="dot">345</p>
      <p class="dot">650</p>
      <p>1125</p>
      <p>siberian baerri</p>
      <p class="dot">175</p>
      <p class="dot">345</p>
      <p class="dot">650</p>
      <p>1125</p>
      <p>ostetra gueldenstaedtii</p>
      <p class="dot">255</p>
      <p class="dot">550</p>
      <p class="dot">1045</p>
      <p>1970</p>
      <p>paddlefish</p>
      <p class="dot">105</p>
      <p class="dot">175</p>
      <p class="dot">305</p>
      <p>470</p>
      <p>hackleback</p>
      <p class="dot">115</p>
      <p class="dot">200</p>
      <p class="dot">355</p>
      <p>570</p>
    </div>
  </div>
  <hr class="tablet-rule" />
  <div class="menu-group sweets">
    <div class="quote-grid">
      <div class="menu-title"><h2>sweet</h2></div>
      <div class="quote">
        <h3>"A moltsayt on a tsimes iz via a mayse on a moshl."</h3>
        <p>A meal without a sweet dish is like a story without a moral.</p>
        <p><span class="italic">— Yiddish idiom</span></p>
      </div>
    </div>
    <div class="menu-row">
      <h3>blintzes<span class="price">8</span></h3>
      <p class="description">fruit compote, sour cream</p>
    </div>
    <div class="menu-row">
      <h3>babka french toast<span class="price">10</span></h3>
      <p class="description">chocolate babka, sour cream, berries</p>
    </div>
    <div class="menu-row">
      <h3>noodle kugel<span class="price">7</span></h3>
      <p class="description">farmer cheese, raisins, egg noodles</p>
    </div>
    <div class="menu-row">
      <h3>challah bread pudding<span class="price">9</span></h3>
      <p class="description">dried apricots, caramel sauce</p>
    </div>
    <div class="menu-row">
      <h3>halvah ice cream<span class="price">8</span></h3>
      <p class="description">halvah, sesame, salted caramel</p>
    </div>
    <div class="menu-row">
      <h3>grandpa's grapefruit<span class="price">6</span></h3>
      <p class="description">grapefruit, white germ, maple syrup</p>
    </div>
    <div class="menu-row">
      <h3>baked farmer cheese<span class="price">7</span></h3>
      <p class="description">
        blueberry, walnut & honey <span class="italic">w/</span> pumpernickel
      </p>
    </div>
    <div class="menu-row">
      <h3>cookie plate<span class="price">8</span></h3>
      <p class="description">russ & daughters cookies & sweets</p>
    </div>
  </div>
</div>
</div>
              
            
!

CSS

              
                :root {
  --gray: rgb(65, 65, 64);
  --blue: rgb(43, 161, 224);
  --body: rgb(125, 126, 120);
  overflow-x: hidden;
}

body {
  font-family: "Source Sans Pro";
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 1.1px;
  color: var(--body);
}
p {
  line-height: 1.25;
}
.title {
  font-family: Josefin Sans;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 24px -1.15vw 0;
  font-size: 10.65vw;
  color: var(--gray);
}

.small-ampersand {
  font-size: 0.7em;
}

.menu-nugget {
  text-align: center;
  position: relative;
  display: grid;
  justify-items: center;
  margin-bottom: 8px;

  span:first-of-type {
    color: var(--blue);
    font-family: "Zilla Slab";
    font-style: italic;
    letter-spacing: 2px;
    font-size: 12px;
    text-transform: initial;
    display: block;
    background: white;
    z-index: 2;
    white-space: nowrap;
  }
  span:last-of-type {
    font-family: "Josefin Sans";
    text-transform: uppercase;
    color: var(--gray);
    letter-spacing: 2px;
    font-size: 0.9em;
    background: white;
    padding: 6px 12px 0;
    z-index: 2;
    display: block;
    white-space: nowrap;
  }
}

.appetizing {
  span:first-child {
    color: white;
  }
}

.menu-nugget:after,
.menu-nugget:before {
  content: "";
  border-bottom: 5px double var(--blue);
  position: absolute;
  top: 19px;
}

.menu-nugget:after {
  left: 0;
  right: 50%;
}

.menu-nugget:before {
  right: 0;
  left: 50%;
}

.menu-title {
  color: var(--blue);
  font-family: "Open Sans Condensed";
  text-transform: uppercase;
  font-size: 64px;
  letter-spacing: 0.025em;
  display: flex;
  margin-bottom: 24px;
  h2 {
    display: inline;
    position: relative;
    margin: auto;
  }
}

.brackets h2:before {
  content: "";
  position: absolute;
  height: 115%;
  width: 4px;
  border-top: 1px solid var(--gray);
  border-left: 1px solid var(--gray);
  border-bottom: 1px solid var(--gray);
  top: -4px;
  left: -8px;
}

.brackets h2:after {
  content: "";
  position: absolute;
  height: 115%;
  width: 4px;
  border-top: 1px solid var(--gray);
  border-right: 1px solid var(--gray);
  border-bottom: 1px solid var(--gray);
  top: -4px;
  right: -8px;
}

.vertical-bar:after {
  content: "•";
  display: block;
  height: 6px;
  padding: 24px 0 0 3px;
  margin-top: 4px;
  font-size: 0.75em;
  background-image: radial-gradient(circle, black 1px, transparent 1px);
  background-repeat: repeat-y;
  background-size: 1px 4px;
  background-position: center;
}

.menu-row,
.smoked-fish {
  padding: 12px 0;
  margin: 0 16px;
}

.smoked-fish h3 {
  font-size: 16px;
  font-family: "josefin sans";
  text-transform: uppercase;
  text-align: center;
  letter-spacing: 0.25em;
  padding-bottom: 8px;
  margin-top: -16px;
  color: var(--gray);
}

.serves {
  color: var(--gray);
  font-family: "zilla slab";
  text-transform: none;
  padding-right: 6px;
}

.menu-row {
  border-bottom: 1px dotted var(--body);
  h3,
  .price {
    font-family: "Josefin Sans";
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 1px;
    color: var(--gray);
  }
  .price {
    line-height: 0;
  }
  .price:before {
    content: "";
    border-left: 1px solid var(--body);
    margin-left: 12px;
    padding-left: 12px;
  }
}

.menu-row p,
.smoked-fish p {
  padding-top: 6px;
}

.menu-row:last-child {
  border-bottom: none;
  padding-bottom: 24px;
}

.italic {
  font-family: "Zilla Slab";
  text-transform: lowercase;
  font-style: italic;
}

.caviar {
  margin: 0 16px;
  .description {
    text-align: center;
    padding-bottom: 16px;
  }
}

.caviar-grid {
  display: grid;
  grid-gap: 12px;
  text-align: right;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  font-family: "Josefin Sans";
  color: var(--gray);
  align-items: center;
  max-width: 300px;
  margin: auto;

  .dot {
    position: relative;
    place-self: center stretch;
  }

  .dot:after {
    content: "•";
    color: var(--blue);
    position: absolute;
    font-size: 0.75em;
    right: -12px;
  }
}

.caviar-grid p:nth-child(-n + 5) {
  border-bottom: 3px solid var(--blue);
  place-self: end;
}

.caviar-grid p:nth-child(5n + 6) {
  font-family: "source sans pro";
  color: var(--body);
  font-size: 11px;
}

.caviar-grid p:first-child {
  color: var(--blue);
  border: 2px solid var(--blue);
  display: inline;
  line-height: 1;
  padding: 3px 3px 0 3px;
  place-self: end;
}

.menu-items {
  display: grid;
}

.quote-grid {
  display: grid;
  grid-auto-flow: column;
  align-items: center;
  margin: 0 16px;
  grid-gap: 24px;
  margin-bottom: 24px;
  .menu-title {
    margin-bottom: 0;
  }
}

.tablet-rule {
  border-top: none;
  border-bottom: 6px double var(--blue);
  width: 100%;
  margin: 24px 0;
}

.quote {
  color: var(--gray);
  font-size: 12px;
  text-transform: initial;
  display: inline-grid;
  grid-gap: 4px;
  h3 {
    color: var(--blue);
    font-family: "Zilla Slab";
    font-style: italic;
    font-size: 16px;
    text-transform: initial;
  }
  p {
    font-size: 12px;
    letter-spacing: 0;
    font-style: italic;
  }
  .italic {
    text-transform: initial;
  }
}

.soup-salad {
  text-align: center;

  h2 {
    font-size: 48px;
  }

  h3 {
    font-family: "Sorts Mill Goudy";
    text-transform: none;
    font-size: 18px;
    font-weight: 600;
  }

  .price:before {
    border-left: none;
    padding-left: 0;
    margin-left: 6px;
  }
}

.bread {
  padding: 0 48px;
  position: relative;
  margin: 24px 0 36px;
  .menu-row {
    padding: 16px 0 4px 0;
  }

  .menu-row:before,
  .menu-row:after {
    content: "";
    position: absolute;
    height: 14px;
    margin: 0 24px;
    left: 0;
    right: 0;
  }

  .menu-row:before {
    top: -6px;
    border-left: 1px solid var(--gray);
    border-top: 1px solid var(--gray);
    border-right: 1px solid var(--gray);
  }

  .menu-row:after {
    bottom: -14px;
    border-left: 1px solid var(--gray);
    border-bottom: 1px solid var(--gray);
    border-right: 1px solid var(--gray);
  }
}

.eggs {
  .menu-row:nth-last-child(2) {
    border-bottom: none;
  }
}

.bread:before,
.bread:after {
  content: "";
  position: absolute;
  height: 8px;
  margin: 0 16px;
  left: 0;
  right: 0;
}

.bread:before {
  border-left: 1px solid var(--gray);
  border-top: 1px solid var(--gray);
  border-right: 1px solid var(--gray);
}
.bread:after {
  border-left: 1px solid var(--gray);
  border-bottom: 1px solid var(--gray);
  border-right: 1px solid var(--gray);
}

@media (min-width: 600px) {
  .menu-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding-bottom: 16px;
  }

  .herring {
    grid-template-columns: 1fr 1fr 1fr;
    .menu-row {
      border-bottom: none;
    }
  }
  .menu-nugget,
  .menu-title,
  .quote-grid,
  .smoked-fish {
    grid-column: 1 / -1;
  }

  .caviar .menu-title,
  .caviar .description {
    grid-column: 1 / 2;
  }

  .caviar-grid {
    grid-column: 2 / 3;
    grid-row: 1 / 3;
  }

  .soup-salad {
    position: relative;
  }
  .soup-salad:before {
    content: "&";
    position: absolute;
    left: 50%;
    top: 50%;
    bottom: 50;
    transform: scale(16);
    font-family: "Josefin Sans";
    color: var(--blue);
    opacity: 0.4;
  }

  .tablet-rule {
    display: block;
  }
}

@media (min-width: 1000px) {
  .tablet-rule {
    grid-column: 1 / -1;
  }
  
  .menu-items hr:nth-of-type(2),
  .menu-items hr:last-of-type {
    display: none;
  }
  .menu-items {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: start;
    grid-auto-flow: dense;
  }
  
  .eggs {
    grid-column: 2 / 3;
    grid-row: 1 / 2;
  }

  .soup-salad {
    grid-row: 6 / 7;
  }
  
  .herring,
  .caviar {
    display: block;
    .menu-row:not(:last-of-type) {
      border-bottom: 1px dotted var(--body);
    }
  }
}

@media (min-width: 1300px) {
  
  .tablet-rule {
    display: none;
  }
  
  .menu {
    display: grid;
    grid-template-columns: 1.35fr 1.35fr 1fr 1.35fr 1.35fr;
    grid-auto-rows: auto;
  }

  .menu-items {
    display: contents;
  }

  .menu-group {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 0;
    .menu-title {
      justify-self: left;
    }
  }

  .title {
    grid-column: 1 / -1;
    grid-row: 1 / 2;
  }
  .noshes {
    grid-column: 1 / 2;
    grid-row: 2 / 5;
  }

  .platters {
    grid-column: 4 / 5;
    grid-row: 2 / 4;
  }

  .bread {
    margin-bottom: 16px;
  }

  .boards {
    grid-column: 2 / 3;
    grid-row: 2 / 4;
  }

  .soup-salad {
    grid-column: 3/ 4;
    grid-row: 3 / 5;

    .soup {
      margin-bottom: auto;
    }

    .soup,
    .salad {
      padding-top: 36px;
      display: flex;
      flex-direction: column;
      .menu-title {
        margin-bottom: 0;
      }
      h2 {
        font-size: 36px;
      }
    }

    .soup .menu-row {
      margin-bottom: auto;
    }
  }

  .soup-salad:before {
    top: 54%;
    transform: scale(20);
    opacity: 0.15;
  }

  .caviar,
  .herring {
    padding-top: 48px;
  }

  .caviar {
    grid-column: 2 / 3;
    grid-row: 4 / 5;

    .h2 {
      padding-bottom: 16px;
    }
  }

  .herring {
    grid-column: 4 / 5;
    grid-row: 4 / 5;
  }

  .eggs {
    grid-column: 5 / 6;
    grid-row: 2 / 5;

    .menu-nugget {
      span {
        transform: translateX(-30px);
      }
    }

    .quote {
      margin: -12px 0;
    }
  }

  .sweets {
    grid-column: 1 / 6;
    grid-row: 5 / 6;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    grid-auto-rows: auto;
    margin: 36px 16px 24px;
    position: relative;
    .quote-grid {
      grid-column: 1 / 2;
      grid-row: 1 / 3;
    }

    .menu-row:nth-last-child(-n + 4) {
      border-bottom: none;
    }
  }
  .sweets:before {
    content: "";
    position: absolute;
    height: 100%;
    width: 4px;
    border-top: 1px solid var(--gray);
    border-left: 1px solid var(--gray);
    border-bottom: 1px solid var(--gray);
    left: 0;
  }

  .sweets:after {
    content: "";
    position: absolute;
    height: 100%;
    width: 4px;
    border-top: 1px solid var(--gray);
    border-right: 1px solid var(--gray);
    border-bottom: 1px solid var(--gray);
    right: 0;
  }

  .appetizing {
    grid-column: 3 / 4;
    grid-row: 2 / 3;
  }

  .menu-row {
    flex-grow: 3;
  }

  .menu-row:last-child {
    padding-bottom: 0;
  }
}

              
            
!

JS

              
                
              
            
!
999px

Console