@font-face {
  font-family: 'Mashiro';
  src: url('../fonts/mashiro/MashiroDemoRegular-V4jyw.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --color-bg: #16130f;
  --color-text: #efe6d6;
  --color-border: rgb(from var(--color-text) r g b / 0.25);
  --color-accent: #e0a43c;
  --font-sans-serif: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;  
  --section-max-width: 1000px;

}

body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif;
  font-size: 15px;
  line-height: 1.5;

  .section-container {
    margin-inline: auto;
  }
}

main > .section-container + .section-container {
  margin-block-start: 2rem;
}

/***************
** COMPONENTS **
***************/


.nav-container {
  display: none;

  @media (width >= 600px) {
    & {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      padding-block: 0.5rem;
      position: fixed;
      width: 100%;
      top: 0;
      background-color: var(--color-bg);
      z-index: 1;
    }

    &.scrolled {
      border-block-end: 1px solid var(--color-border);
      background-color: rgb(var(--color-bg) r g b / 80%);
      backdrop-filter: blur(10px);
    }

  }
}

.nav-box {
  width: 100%;
  max-width: var(--section-max-width);
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: space-between;

  & > .sitetitle {
    font-size: 1.2rem;
    font-weight: 600;
  }
}

.nav-links {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;

  & > a[href] {
    color: var(--color-text);
    text-decoration: none;
    font-family: var(--font-sans-serif);

    &:hover {
      text-decoration: underline;
      text-decoration-color: var(--color-accent);
      text-underline-offset: 4px;
      text-decoration-thickness: 2px;
    }
  }
}

.hero-container {
  background-image:
    linear-gradient(
      180deg,
      rgb(22 19 15 / 40%),
      rgb(22 19 15 / 72%) 45%,
      rgb(22 19 15 / 65%) 75%,
      var(--color-bg)
    ),
    url("../images/hero-noodles.webp");
  background-size: cover;
  background-position: center;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
}

.hero-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;


  & > .logo {
    width: min(70vw, 440px);
    filter: drop-shadow(0 8px 24px rgb(0 0 0 / 30%));
  }

  & > .subtitle {
    font-family: 'Mashiro', var(--font-sans-serif);
    font-size: 2rem;
    max-width: 300px;
  }

  & > .est {
    font-size: 0.8rem;
    font-variant-caps: small-caps;
  }
}

.section-container {
  padding-inline: 1rem;
  max-width: var(--section-max-width);
}

.section-header {
  padding-block: 1rem;

  & > .title {
    font-size: 2rem;
    font-weight: 400;
    max-width: 30ch;
    margin-block-end: 1rem;
    line-height: 1;
    color: var(--color-accent);
  }
}

.section-content {
  display: flex;
  flex-wrap: wrap-reverse;
  gap: 2rem;
  align-items: start;

  & > .main {
    flex: 1 1 60%;
  }

  & > .illustration {
    border-radius: 8px;
    margin-block-start: 1rem;
    flex: 1 1 35%;
    min-width: 200px;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
  }

  & > .illustration.-portrait {
    height: auto;
    aspect-ratio: 3 / 4;
  }

  &.-reversed > .illustration {
    order: -1;
  }

}


@property --v-stack-space {
  syntax: "<length>";
  inherits: false;
}

.v-stack {
  display: flex;
  flex-direction: column;
  gap: var(--v-stack-space, 1rem);
}

.menu-sectionname {
  display: block;
  font-family: var(--font-sans-serif);
  font-variant-caps: small-caps;
  font-weight: 500;
  opacity: 0.7;
  padding-block-start: 20px;
}

.topping-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  column-gap: 2rem;
  margin-top: 0.5rem;
}

.menu-item {
  &.-compact {
    padding-block: 0.55rem;
    row-gap: 0;

    & > .itemname {
      font-weight: 400;
    }
  }

  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  column-gap: 1rem;
  padding-block: 1rem;
  border-block-end: 1px solid var(--color-border);
  row-gap: 0.4rem;

  & > .itemname {
    grid-column: 1;
    grid-row: 1;
    font-weight: 700;
  }

  & > .description {
    grid-column: 1 / -1;
    grid-row: 2;
    opacity: 0.8;
  }

  & > .price {
    grid-column: 2;
    grid-row: 1;
    text-align: right;
    white-space: nowrap;
  }
}

.location-copy {
  display: flex;
  flex-direction: column;
  gap: 1rem;

  & > .signoff {
    font-size: 1.3rem;
    font-family: 'Mashiro', var(--font-sans-serif);
    font-weight: 400;
    align-self: flex-end;
  }
}

.location-details {
  & > .name {
    font-weight: 600;
  }

  & > .address {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--color-accent);
    text-underline-offset: 4px;
  }
}

.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem 2rem;
  margin-block-start: 3rem;
  padding-block: 2rem;
  border-top: 1px solid var(--color-border);

  & > .brand {
    & > .name {
      font-weight: 600;
    }

    & > .tagline {
      opacity: 0.8;
    }
  }
}

.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  color: var(--color-text);

  & > .icon {
    display: block;
  }

  &:hover {
    color: var(--color-accent);
  }

  &:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
  }
}
