.menu { padding: 1em; position: fixed; top: 0; right: 0; width: 100%; height: 80vh; transform: translateY(calc(-100% - 2em)); transition: transform var(--animation-speed-fast) ease-in-out; z-index: var(--z-index-menu); pointer-events: none; } .menu:focus { outline: none; } .is-menu-open .menu { transform: translateY(0); } .menu-area { background-color: rgb(var(--gray-01)); border-radius: var(--radius); width: 100%; height: 100%; overflow-y: auto; pointer-events: all; transition: background-color var(--animation-speed-fast) ease-in-out; } .menu-nav { display: flex; flex-direction: column-reverse; flex-direction: row; } .menu-nav-area { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-start; } .menu-nav-area-grow { flex-grow: 1; } .menu-nav:not(:last-child) { margin: 0; } .menu-content { padding-bottom: 40vh; } .menu-content-area { display: grid; grid-template-columns: 1fr; } .menu-item { padding: 2em; position: relative; z-index: 1; } .menu-item:not(:last-child) { border-bottom: var(--menu-border); } .menu-close { background-color: transparent; margin: 0; padding-top: 0.75em; padding-bottom: 0.75em; border-radius: 0 var(--radius) 0 0; } .menu-nav-button { background-color: transparent; margin: 0; padding-top: 1em; padding-bottom: 1em; border-radius: 0; flex-grow: 1; flex-basis: 33%; } .menu-nav-button:first-child { border-radius: var(--radius) 0 0 0; } .menu-nav-button [class^="icon-"], .menu-nav-button [class*=" icon-"] { line-height: 1; padding-top: 1.5em; padding-bottom: 1.5em; } @media (min-width: 550px) { .menu-nav-button { flex-basis: 0; } } @media (min-width: 700px) { .menu { width: 90vw; height: 100%; overflow-y: inherit; max-height: inherit; } .menu-area { overflow-y: inherit; display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr; grid-column-gap: 0px; grid-row-gap: 0px; justify-items: stretch; align-items: stretch; } .menu-content { overflow-y: auto; } .menu-content-area { grid-template-columns: repeat(2, 1fr); grid-gap: 4em; padding: 2em; } .menu-item:not(:last-child) { border-bottom: 0; } .menu-item:nth-child(odd):after { content: ""; width: 0; height: 100%; position: absolute; top: 0; right: calc(-2em - calc(var(--menu-border-width) / 2)); border-radius: 1em; border-right: var(--menu-border); } .menu-item:not(:nth-last-child(2)):not(:last-child):before { content: ""; width: 100%; height: 0; position: absolute; left: 0; bottom: calc(-2em - calc(var(--menu-border-width) / 2)); border-radius: 1em; border-bottom: var(--menu-border); } .menu-item { padding: 1em 0; } } @media (min-width: 900px) { .menu { width: 80vw; } } @media (min-width: 1600px) { .menu { width: 70vw; } .menu-content-area { grid-template-columns: repeat(3, 1fr); } .menu-item:nth-child(odd):after { content: none; } .menu-item:not(:nth-child(3n+3)):after { content: ""; width: 0; height: 100%; position: absolute; top: 0; right: calc(-2em - calc(var(--line-width) / 2)); border-radius: 1em; border-right: var(--menu-border); } .menu-item:not(:nth-last-child(2)):not(:last-child):before { content: none; } .menu-item:not(:nth-last-child(1)):not(:nth-last-child(2)):not(:nth-last-child(3)):before { content: ""; width: 100%; height: 0; position: absolute; left: 0; bottom: calc(-2em - calc(var(--line-width) / 2)); border-radius: 1em; border-bottom: var(--menu-border); } }