:root {
  font-size: 62.5%;
  scroll-behavior: smooth;

  --font-light: #ebe4e4;

  --layer-widget-loader: 10;
  --layer-header: 2;
  --layer-scroll-to-top: 2;

  /* shadows */
  /* offset-x offset-y blur spread color */
  --shadow-box-inset: 0 0 0.05rem 0.05rem inset black;

  /* mixins */
  --solid-dark: #161616;
  --alpha-dark: #161616ee;
  --solid-light: #ffffff;
  --alpha-light: #ffffff98;
}

html {
  scroll-padding-top: 11rem;
  max-width: 100%;
  background-image: url("img/pattern.jpg");
}
.frame {
  margin: 4rem;
}
.grid {
  display: grid;
}
.container {
  font-size: 175%;
  margin: 0;
  display: grid;
  padding-top: 10rem;
  grid-template-areas: "banner" "title" "main" "footer";
}
.title {
  background-image: url("img/pattern2.jpg");
  grid-area: title;
  margin: 0;
  margin-left: 2rem;
  margin-right: 2rem;
  padding-top: 2rem;
}

body {
  color: rgb(19, 19, 19);
  height: 100%;
  border-top: none;
  border-bottom: none;
}
header {
  z-index: 2;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: red;
  background-image: url("img/pattern3.jpg");
  background-repeat: repeat;
  margin: 0;
  border-bottom: 2px outset black;
  box-shadow: 0rem 1rem 1rem rgba(0, 0, 0, 0.637);
}
main {
  background-color: aliceblue;
  background-image: url("img/pattern2.jpg");
  margin-left: 2rem;
  margin-right: 2rem;
  grid-area: main;
  max-width: 100%;
  min-height: 64rem;
}
main h1,
main h2,
main h3,
main h4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
footer {
  background-color: var(--solid-dark);
  background-image: url("img/chalkboard.jpg");
  color: var(--font-light);
  margin-left: 2rem;
  margin-right: 2rem;
  grid-area: footer;
  padding-bottom: 12rem;
}
p {
  text-align: left;
  padding-left: 2rem;
  padding-right: 2rem;
}
@font-face {
  font-family: "blackout-2am";
  src: url("font/blackout-2am.ttf") format("truetype");
}
@font-face {
  font-family: "blackout-sunrise";
  src: url("font/blackout-sunrise.ttf") format("truetype");
}
@font-face {
  font-family: "blackout-midnight";
  src: url("font/blackout-midnight.ttf") format("truetype");
}
@font-face {
  font-family: "LTLemon-Regular";
  src: url("font/LTLemon-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "Quickens";
  src: url("font/Quickens.otf") format("opentype");
}
@font-face {
  font-family: "Quickens-Rough";
  src: url("font/Quickens\ Rough.otf") format("opentype");
}

/* utility classes */
.full-width {
  width: 100%;
}
.border-bottom {
  border-bottom: #191919 0.25rem solid;
}
.font-midnight {
  font-family: "blackout-midnight", sans-serif;
}
.block {
  display: block;
}
.no-borders {
  border: none;
}
.grid-2x1 {
  display: grid;
  grid-template-areas: "1 2";
}
.shrink {
  max-width: max-content;
}
.email-link::before {
  content: "Email: ";
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.text-muted {
  color: darkslategray;
}
.rounded {
  border-radius: 2rem;
}
.center-x {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: fit-content;
}
.padding-top {
  padding-top: 16rem;
}
.padding-top-small {
  padding-top: 6rem;
}
.unstyled-list {
  list-style: none;
  padding: 0;
}

.split-list {
  display: grid;
  grid-template-areas: "left right";
}
.grid-media-2 {
  display: grid;
  grid-template-columns: auto auto;
}
.grid-media-2 div:first-of-type {
  text-align: right;
}
.grid-media-2 div:last-of-type {
  margin-left: 0;
  margin-right: auto;
}
.form-grid {
  display: grid;
  grid-template-areas: "title title" "top top" "form form" "bottom bottom";
}
.form-grid h1 {
  grid-area: title;
}
.form-text-top {
  grid-area: top;
}
.form-grid form {
  grid-area: form;
}
.form-text-bottom {
  grid-area: bottom;
}

.max-content {
  width: max-content;
}
/* classes */

.order-form {
  font-family: Quickens, sans-serif;
  padding: 4rem;
  border-radius: 2rem;
}
.order-form select {
  margin-bottom: 1rem;
}
#order-sum {
  text-align: right;
  margin: 1rem;
}
#order-sum::before {
  content: "Estimated Total = ";
}

.field {
  display: flex;
  flex-direction: column;
  row-gap: 0.5rem;
}
.input,
.select {
  appearance: none;
  border-width: 0;
  box-shadow: var(--color-border-default) 0 0 0 1px inset;
  height: 3rem;
  line-height: 1.5rem;
  outline: none;
  padding-left: 1rem;
  padding-right: 1rem;
  margin: 2rem;
  margin-top: 1rem;
}
.select {
}
.label {
  color: var(--color-text-default);
  display: block;
  font-size: 80%;
  line-height: 1.25rem;
}

.fc-view-harness {
}
.fc-event:hover {
  cursor: pointer;
}

.map-iframe {
  display: block;
  margin: auto;
  outline: 10px solid #131313;
}
.navbar {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-areas: "brand . button" "nav nav nav";
  grid-template-columns: max-content auto 8rem;
}
.navbar-brand {
  margin-top: 1rem;
  margin-bottom: 1rem;
  color: var(--font-light);
  font-family: "blackout-midnight", serif;
  grid-area: brand;
  display: grid;
  grid-template-areas: "logo title";
  grid-template-columns: min-content auto;
  text-decoration: none;
}
.navbar-brand h1 {
  display: block;
  margin: auto;
}

.navbar-brand img {
  max-height: 8rem;
}

.navbar-nav-frame {
  background-image: url("img/chalkboard-red.jpg");
  grid-area: nav;
}
.navbar-nav {
  transition: all 0.5s;
  font-family: "blackout-sunrise", sans-serif;
  font-size: 125%;
  overflow: hidden;
  padding: 0;
  padding-top: 1rem;
  padding-bottom: 1rem;
  text-align: center;
  border-top: 2px inset;
  border-bottom: 2px inset;
}
.nav-item {
  padding: 0.25rem;
}
.nav-item a {
  color: var(--font-light);
}
.navbar-nav a:hover {
  font-family: "blackout-midnight", sans-serif;
}
.nav-link {
}
.navbar-button {
  font-size: 4rem;
  color: var(--font-light);
  background-color: transparent;
  grid-area: button;
  border: none;
}
.navbar-button:hover {
  cursor: pointer;
  transition: all;
  font-weight: bolder;
  text-shadow: none;
}

#scroll-to-top-btn {
  display: none; /* Hi
dden by default */
  position: fixed; /* Fixed/sticky position */
  bottom: 2rem; /* Place the button at the bottom of the page */
  right: 2rem; /* Place the button 30px from the right */
  z-index: var(--layer-scroll-to-top); /* Make sure it does not overlap */
  outline: none; /* Remove outline */
  width: 6rem;
  height: 6rem;
  border: 0.25rem solid black;
  border-radius: 10px; /* Rounded corners */
  font-size: 18px; /* Increase font size */
}

#scroll-to-top-btn:hover {
  cursor: pointer;
}

.layer-box {
  background-color: #632e2e2d;
}
.menu {
  font-family: "Quickens", sans-serif;
  padding: 1rem;
  max-width: 86rem;
  margin: auto;
  margin-top: 1rem;
  border: 0.5rem inset black;
  border-radius: 2rem;
}
.menu h1,
.menu h2 {
  font-family: "blackout-2am", sans-serif;
}
.menu-section {
  padding: 1rem;
}
.menu-section:first-of-type {
  border-top-right-radius: 2rem;
  border-top-left-radius: 2rem;
}
.menu-section:last-of-type {
  border-bottom-right-radius: 2rem;
  border-bottom-left-radius: 2rem;
  padding-bottom: 2rem;
}
.menu-item {
  overflow: hidden;
  padding: 1rem;
}
.menu-price {
  display: grid;
  grid-template-areas: ". price ." ". rule .";
  grid-template-columns: 1px auto min-content 1px;
  font-weight: bold;
}
.menu-price hr {
  width: 100%;
  margin-top: 0;
  grid-area: rule;
}
.menu-price span:first-of-type {
  text-align: left;
}
.menu-price span:last-of-type {
  text-align: right;
}

.menu-line {
  outline: none;
  border: none;
  border-style: solid;
  border-bottom: 1rem;
}

.menu img {
  height: 12rem;
  width: 12rem;
  margin-left: 2rem;
  margin-bottom: 2rem;
  object-fit: cover;
  border-radius: 2rem;
}

.hours {
  max-width: fit-content;
  padding: 1rem;
  margin: auto;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.hours li {
  display: grid;
  grid-template-columns: auto auto;
  border-bottom: 1px dotted;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.hours li span {
  padding-left: 1rem;
  padding-right: 1rem;
}
.hours li span:first-of-type {
  text-align: left;
  padding-right: 2rem;
}
.hours li span:last-of-type {
  text-align: right;
  padding-left: 2rem;
}

.skip-to-main-content-link {
  position: absolute;
  left: -9999px;
  z-index: 999;
  padding: 1em;
  background-color: black;
  color: white;
  opacity: 0;
}

.skip-to-main-content-link:focus {
  left: 50%;
  transform: translateX(-50%);
  opacity: 1;
}

/* visual classes */
.glamor {
  width: 100%;
  max-height: 26rem;
  object-fit: cover;
}
.banner {
  background-color: black;
  grid-area: banner;
}

.geo-tag {
  padding: 1rem;
}

.chalk {
  color: var(--font-light);
  background-color: var(--solid-dark);
  background-image: url("img/chalkboard.jpg");
}

/* animation classes */
.closed {
  transition: all 0.5s;
  height: 0;
  color: #191919;
  background-color: #191919;
  background-color: black;
  height: 0;
  padding: 0;
}

.closed * {
  opacity: 0;
}

/* widget loader */

#widget-loader {
  position: fixed;
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: var(--layer-widget-loader);
  background-color: black;
  align-content: center;
}
#widget-loader hgroup {
  font-family: monospace;
  width: max-content;
  height: max-content;
}
#widget-loader .text-x-center {
  width: max-content;
  height: max-content;
  margin: auto;
}
#widget-loader svg {
  width: 7rem;
  height: 7rem;
  margin: auto;
}
#widget-loader h3 {
  color: var(--font-light);
}
#widget-loader h3::after {
  position: absolute;
  content: "";
  animation: ellipses 2s linear infinite;
}

/* animations */

@keyframes fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes ellipses {
  0% {
    content: "";
  }
  25% {
    content: ".";
  }
  50% {
    content: "..";
  }
  75% {
    content: "...";
  }
}
@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}

/* classes: animated */
.spin-clockwise {
  animation: spin 2s linear infinite;
}
.fade {
  animation: fade 0.25s forwards;
}
.pulse {
  animation: pulse 0.75s;
}

.filter-grey {
  filter: var(--filter-grey);
}

.event {
  padding: 2rem;
  margin: 2rem;
  grid-template: "image text";
  border: 0.5rem inset black;
  border-radius: 2rem;
}
.event-image {
  max-width: 100%;
  max-height: 62.5vh;
  grid-area: image;
}
.event-text {
  grid-area: text;
}

#calendar {
  max-width: 50rem;
  margin: auto;
  margin-top: 2rem;
  margin-bottom: 2rem;
  font-size: clamp(1rem, 2vw, 2rem);
}
#calendar h2 {
  font-family: "blackout-sunrise", sans-serif;
}

.fc-toolbar-chunk {
  text-align: center;
}

@media screen and (max-width: 800px) {
  html {
    padding: 0;
  }
  header {
    font-size: 80%;
  }

  main,
  footer {
    margin-left: 0;
    margin-right: 0;
  }
  #scroll-to-top-btn {
    right: calc(50% - 4rem);
  }
  .navbar-nav {
    overflow-y: scroll;
    font-size: 150%;
  }
  .navbar-nav span {
    display: block;
    padding-top: 2rem;
  }
  .grid-media-2 {
    display: grid;
    grid-template-columns: auto;
    grid-template-rows: auto auto;
  }
  .grid-media-2 div:first-of-type {
    text-align: center;
  }
  .grid-media-2 div:last-of-type {
    margin-left: auto;
    margin-right: auto;
  }
  .form-grid {
    grid-template-areas: "title title" "top top" "form form" "bottom bottom";
  }
  .order-form {
    margin: auto;
  }
  .event {
    grid-template-areas: "image" "text";
  }
  .event-image {
    display: block;
    margin: auto;
  }
  .fc-header-toolbar {
    display: grid;
  }
  #calendar {
    max-width: 90vw;
  }
  .event h2,
  .event h3 {
    text-align: center;
  }
}
