@layer components {
  /* ==========================================================================
     Site Logo
     ========================================================================== */

  .site-logo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--font-size-xl);
    color: var(--color-primary);
    text-decoration: none;

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

    img {
      display: block;
      border-radius: 4px;
    }
  }

  /* ==========================================================================
     Navigation Links
     ========================================================================== */

  .nav-links {
    display: none;

    @media (min-width: 48rem) {
      display: flex;
      gap: var(--spacing-md);
      align-items: center;
    }
  }

  .nav-links.is-open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: var(--header-height);
    left: 0;
    right: 0;
    background: var(--color-white);
    border-bottom: 1px solid #E5E5E5;
    padding: var(--spacing-sm) var(--container-padding);
    z-index: 99;
  }

  .nav-links a {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: var(--font-size-base);
    color: var(--color-primary);
    text-decoration: none;
    padding: var(--spacing-xs) 0;
    position: relative;
    transition: color var(--transition-base);

    &::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 2px;
      background: var(--color-accent);
      transition: width var(--duration-base) var(--ease-out-expo);
    }

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

      &::after {
        width: 100%;
      }
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .nav-links a::after {
      transition: none;
    }
  }

  /* ==========================================================================
     Mobile Menu Toggle (Hamburger)
     ========================================================================== */

  .mobile-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--spacing-xs);

    @media (min-width: 48rem) {
      display: none;
    }
  }

  .hamburger-icon {
    display: block;
    width: 1.5rem;
    height: 2px;
    background: var(--color-primary);
    position: relative;

    &::before,
    &::after {
      content: "";
      position: absolute;
      width: 100%;
      height: 2px;
      background: var(--color-primary);
      left: 0;
    }

    &::before {
      top: -0.5rem;
    }

    &::after {
      top: 0.5rem;
    }
  }
}
