@font-face {
  font-family: f-r;
  src: url("./fellini-regular.woff2");
  font-display: swap;
}
@font-face {
  font-family: f-l;
  src: url("./fellini-light.woff2");
  font-display: swap;
}
@font-face {
  font-family: f-b;
  src: url("./fellini-bold.woff2");
  font-display: swap;
}
@font-face {
  font-family: f-xb;
  src: url("./fellini-extrabold.woff2");
  font-display: swap;
}
@font-face {
  font-family: f-i;
  src: url("./fellini-italic.woff2");
  font-display: swap;
}
@font-face {
  font-family: f-l-i;
  src: url("./fellini-light-italic.woff2");
  font-display: swap;
}
@font-face {
  font-family: f-b-i;
  src: url("./fellini-bold-italic.woff2");
  font-display: swap;
}
@font-face {
  font-family: f-xb-i;
  src: url("./fellini-extrabold-italic.woff2");
  font-display: swap;
}
@font-face {
  font-family: f-symbols;
  src: url("./fellini-symbols.woff2");
  font-display: swap;
}

:root {
  --gap: var(--s0);
  --mult-factor: 1.4;
  --s9: calc(var(--s8) * var(--mult-factor));
  --s8: calc(var(--s7) * var(--mult-factor));
  --s7: calc(var(--s6) * var(--mult-factor));
  --s6: calc(var(--s5) * var(--mult-factor));
  --s5: calc(var(--s4) * var(--mult-factor));
  --s4: calc(var(--s3) * var(--mult-factor));
  --s3: calc(var(--s2) * var(--mult-factor));
  --s2: calc(var(--s1) * var(--mult-factor));
  --s1: calc(var(--s0) * var(--mult-factor));
  --s0: clamp(1rem, 1.25vw, 2.5rem);
  --s-1: calc(var(--s0) / var(--mult-factor));
  --s-2: calc(var(--s-1) / var(--mult-factor));
  --s-3: calc(var(--s-2) / var(--mult-factor));
  --s-4: calc(var(--s-3) / var(--mult-factor));
  --s-5: calc(var(--s-4) / var(--mult-factor));
  --s-6: calc(var(--s-5) / var(--mult-factor));
  --s-7: calc(var(--s-6) / var(--mult-factor));
  --s-8: calc(var(--s-7) / var(--mult-factor));
  --font-size: var(--s0);
  --max-width: 96%;
  --navbar-height: var(--s4);
  --line-height: calc(var(--mult-factor) * 1em);
  --font-size: var(--s0);
  --line-height: var(--mult-factor);
  --color-bg: #fff;
  --measure: 76ch;
  --color-text: #231f20;
  --blue: #4A7B9C;
  --brown: #5E252C;
  --green: #84B66F;
  --red: #D45C4B;
  --grey: #f8f8fc;
}

html {
  background-color: var(--color-bg);
}

* {
  padding: 0;
  max-height: 100%;
}

body {
  height: 100%;
  margin: 0;
  color: var(--color-text);
  font-family: f-r, system-ui, sans-serif;
  font-weight: normal;
  font-size: var(--font-size);
  line-height: var(--line-height);
}

header {
  max-width: 100% !important;
}

picture {
  display: inline-block;

  width: 100%;

  height: auto;
}

picture img {
  display: block;

  width: 100%;

  height: auto;
}

h1,
h2,
h3,
h4 {
  margin-block-start: var(--s2);
  margin-block-end: 0;
  font-family: f-xb, system-ui, sans-serif;
  text-transform: uppercase;
}

h1,
h2,
h3,
h4 {
  font-weight: normal;
}

h1 {
	margin-block: 0;
	font-size: var(--s2);
}

h2 {
	font-size: var(--s1);
}

h3 {
  text-decoration: underline;
}

h5 {
  font-size: var(--s0);
}

p {
	margin-block-end: 0;
}

li {
  list-style: none;
}

a,
a:visited {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: lightgray;
}

img {
  max-width: 100%;
}

footer {
  display: grid;
  width: 100%;
}

small {
  display: block;
}

strong,
b {
  font-family: f-b, system-ui, sans-serif;
}

.f-i {
  font-family: f-i, system-ui, sans-serif;
}

.f-l-i {
  font-family: f-l-i, system-ui, sans-serif;
}

.f-xb {
  font-family: f-xb, system-ui, sans-serif;
}

.font-s1 {
  font-size: var(--s1);
}

.font-s2 {
  font-size: var(--s2);
}

.wrapper {
  min-height: 100vh;
}

.header {
  width: 100%;
}

#logo {
	padding-inline-start: var(--s-4);
}

.business-name {
  text-transform: uppercase;
}

#hero {
  object-fit: cover;
  padding-block-start: var(--s5);
  aspect-ratio: 4/3;
  max-height: calc(var(--s8)*var(--mult-factor));
}

.promotion {
  position: absolute;
  width: var(--s6);
  height: var(--s6);
  top: var(--s8);
  right: var(--s0);
  border-radius: 50%;
  background-color: var(--red);
  color: var(--color-bg);
  text-align: center;
  padding: var(--s1);
  box-shadow: 5px 5px 5px gray;
  z-index: 0;
  opacity: 0.95;
  animation: promotion-animation 2s ease-in-out;
}

@keyframes promotion-animation {
  0% {
    top: -10rem;
  }
  50% {
    top: var(--s9);
}
  75% {
    top: var(--s7);
  }
  100% {
    top: var(--s8);
  }
}

.promotion p {
  margin-block: 0;
}

div#title h2 {
  margin-block: var(--s-3);
}

.flex {
  display: flex;
  gap: var(--gap);
}

.grid-two {
  display: grid;
  grid-template-columns: 1fr 1.618fr;
  /* grid-template-columns: 1.67fr 1fr; */
  /* grid-template-columns: repeat(2, 1fr); */
  column-gap: var(--gap);
}

.grid-three {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: var(--gap);
}

.card {
  max-width: var(--measure-card);
  display: flex;
  flex-direction: column;
  text-align: center;
}

.card-text {
  margin-block-end: auto;
}

#mission-statement {
  font-family: f-l, system-ui, sans-serif;
}

#opening-time p {
  text-transform: uppercase;
}

.text-align\:center {
  text-align: center;
}

.text-align\:right {
  text-align: right;
}

.container {
  display: grid;
  justify-items: stretch;
  grid-template-areas:
    "header"
    "main"
    "footer";
  max-width: var(--max-width);
  margin-inline: auto;
}

.container > * {
  display: grid;
  justify-self: center;
}

.container > * > * {
  max-width: var(--measure);
}

.navbar {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  height: var(--navbar-height);
  position: fixed;
  top: 0;
  width: 100%;
  max-width: 100vw;
  padding-block: var(--s-1);
  background-color: var(--color-bg);
}

 #myNavbar {
   position: fixed;
   z-index: 1;
   top: 0;
   transition: top 0.3s ease-in-out;
 }

 #myNavbar.hide {
   top: calc(-1.4*var(--navbar-height));
 }


.mobile-menu {
  padding-inline-end: var(--s-4);
}

.hamburger {
  display: none;
  padding-inline-end: var(--s-3);
}

.bar {
  display: block;
  width: 25px;
  height: 3px;
  margin: 5px auto;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  background-color: #101010;
}

.nav-menu {
  display: flex;
  justify-content: space-between;
  text-transform: uppercase;
}

.nav-item {
  padding-inline-start: var(--s-1);
}

.buttons {
	margin-block: var(--s-1);
}

.button {
  padding: var(--s-1);
  margin-block: var(--s1);
  border: 1px solid;
  width: fit-content;
  justify-self: center;
  width: 20ch;
  text-transform: uppercase;
  cursor: pointer;
}

.button:hover {
  background-color: var(--color-text);
  color: white;
}

#menus {
  margin-block: var(--s2);
  padding-block-end: var(--s2);
  border-block: 1px solid lightgray;
}

.menu-title h2 {
  width: min-content;
}

summary {
  font-size: var(--s0);
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
  margin-block-start: var(--s2);
}

summary::-webkit-details-marker {
  display: none;
}

summary {
  outline: none;
}

.symbol {
  font-family: f-symbols;
  font-size: var(--s2);
  margin-inline-start: var(--s-8);
}

.vegetarian {
  color: forestgreen;
}

.spicy {
  color: firebrick;
}

div.dish-header h4 {
	margin-block-end: var(--s0);
}

div.dish-header p {
	white-space: nowrap;
}

.dish-title {
  font-family: f-xb-i, system-ui, sans-serif;
  width: 100%;
}

.dish-title-notes {
  color: firebrick;
  font-size: var(--s-1);
}

.menu-category li:not(:last-child) {
  border-bottom: 1px solid #ccc;
}

.menu-item {
  margin-block-start: var(--s1);
}

.menu-item-img {
  margin-block-start: var(--s-2);
}

.dish-header {
  display: flex;
  justify-content: space-between;
  align-items: first baseline;
}

.dish-header > * {
  margin-block-start: 0;
}

.dish-name {
  text-align: left;
}

.dish-description {
  font-family: f-i;
  margin-block-start: 0;
  padding-block-end: var(--s0);
}

.price {
  float: right;
}

.price {
  text-align: right;
}

.price-tag {
	font-family: f-l-i;
}

.extra-toppings {
  font-family: f-l-i;
}

.blue {
  color: var(--blue);
}

.brown {
  color: var(--brown);
}

.green {
  color: var(--green);
}

.red {
  color: var(--red);
}

.bullet {
  font-family: f-xb, system-ui, sans-serif;
}

.wine-data {
  font-family: f-l-i;
}

.footer {
  max-width: 100vw;
  background-color: var(--color-text);
  color: var(--color-bg);
  margin-block-start: var(--s2);
}

footer {
  width: var(--measure);
  margin-inline: auto;
  max-width: var(--max-width);
}

footer h2 {
  font-family: f-b;
}


 li.social a, li.social a:visited {
	  min-height: 48px;
	  display: block;
  }

footer img {
  width: 100%;
  aspect-ratio: 2/3;
}

/* *********** FROM MEDIUM SCREENS *********** */
@media (max-width: 90ch) {
  .grid-two,
  .grid-three {
    grid-template-columns: 1fr;
    row-gap: var(--gap);
  }

  .grid-two,
  .grid-three > * > * {
    margin-top: var(--gap);
    margin-bottom: var(--gap);
  }
}

/* *********** FROM SMALL SCREENS *********** */
@media only screen and (max-width: 50ch) {
 /*  .nav-menu {
    position: fixed;
    left: -200%;
    top: var(--s1);
    flex-direction: column;
    background-color: var(--grey);
    width: 100%;
    transition: 0.3s;
    box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05);
    padding: 0;
  }

  .nav-menu.active {
    left: 0;
    top: var(--s4);
    max-width: 100vw;
  }

  .nav-item {
    padding-block: var(--s2);
  }

 .hamburger {
    display: block;
    cursor: pointer;
  }

  .hamburger.active .bar:nth-child(2) {
    opacity: 0;
  }

  .hamburger.active .bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }

  .hamburger.active .bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
  */

  .promotion {
	  transform: scale(0.8);
  }
 
  .socials {
    padding: 0;
  }

  .text-transform\:uppercase {
    text-transform: uppercase;
  }

  .margin-inline-end\:auto {
    margin-inline-end: auto;
  }

  .text-decoration\:underline {
    text-decoration: underline;
  }
} 
