:root {
  --primary-nav-text: #151a17;
  --primary-nav-text-secondary: #34443a;
  --primary-nav-muted: #5f6c64;
  --primary-nav-line-strong: #b7c5bc;
  --primary-nav-surface-raised: #f7f9f7;
  --primary-nav-surface-hover: #f0f5f1;
  --primary-nav-control-bg: #ffffff;
  --primary-nav-accent: #19764a;
  --primary-nav-accent-hover: #105635;
  --primary-nav-accent-ink: #105635;
  --primary-nav-accent-soft: #edf6ef;
  --primary-nav-on-accent: #ffffff;
  --primary-nav-solid-green-hover: #105635;
  --primary-nav-neutral-bg: #f0f1ef;
  --primary-nav-shadow-sm: 0 2px 5px rgba(24, 32, 27, 0.08);
  --primary-nav-shadow-md: 0 8px 22px rgba(24, 32, 27, 0.1);
  --primary-nav-accent-shadow: rgba(25, 118, 74, 0.24);
}

:root[data-theme="dark"] {
  --primary-nav-text: #f2f5f3;
  --primary-nav-text-secondary: #c5cec8;
  --primary-nav-muted: #a3afa7;
  --primary-nav-line-strong: #4a564e;
  --primary-nav-surface-raised: #151916;
  --primary-nav-surface-hover: #1a211c;
  --primary-nav-control-bg: #121613;
  --primary-nav-accent: #19764a;
  --primary-nav-accent-hover: #238b5b;
  --primary-nav-accent-ink: #75dba6;
  --primary-nav-accent-soft: #14271c;
  --primary-nav-on-accent: #ffffff;
  --primary-nav-solid-green-hover: #176b45;
  --primary-nav-neutral-bg: #1c201d;
  --primary-nav-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.3);
  --primary-nav-shadow-md: 0 10px 28px rgba(0, 0, 0, 0.38);
  --primary-nav-accent-shadow: rgba(50, 176, 109, 0.22);
}

.primary-navigation {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px;
  margin-left: auto;
}

.primary-navigation a.primary-navigation-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--primary-nav-accent-ink);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.primary-navigation a.primary-navigation-link--discover {
  min-width: 104px;
  border-color: var(--primary-nav-accent);
  background: var(--primary-nav-accent-soft);
  box-shadow: var(--primary-nav-shadow-sm);
}

.primary-navigation a.primary-navigation-link--blog {
  min-width: 92px;
}

.primary-navigation a.primary-navigation-link--blog,
.primary-navigation a.primary-navigation-link--newsletter {
  border-color: var(--primary-nav-line-strong);
  background: var(--primary-nav-surface-raised);
  box-shadow: var(--primary-nav-shadow-sm);
}

.primary-navigation a.primary-navigation-link--newsletter {
  min-width: 124px;
}

.primary-navigation a.primary-navigation-link--calorie {
  min-width: 148px;
  border-color: var(--primary-nav-text);
  background: var(--primary-nav-text);
  color: var(--primary-nav-control-bg);
  -webkit-text-fill-color: var(--primary-nav-control-bg);
  box-shadow: var(--primary-nav-shadow-sm);
}

.primary-navigation a.primary-navigation-link--feedback {
  min-width: 116px;
  border-color: var(--primary-nav-accent);
  background: var(--primary-nav-accent);
  color: var(--primary-nav-on-accent);
  -webkit-text-fill-color: var(--primary-nav-on-accent);
  box-shadow: 0 8px 18px var(--primary-nav-accent-shadow);
}

.primary-navigation a.primary-navigation-link--discover:hover,
.primary-navigation a.primary-navigation-link--blog:hover,
.primary-navigation a.primary-navigation-link--newsletter:hover {
  border-color: var(--primary-nav-accent-hover);
  background: var(--primary-nav-surface-hover);
  color: var(--primary-nav-accent-ink);
  box-shadow: var(--primary-nav-shadow-md);
  transform: translateY(-1px);
}

.primary-navigation a.primary-navigation-link--calorie:hover {
  border-color: var(--primary-nav-text-secondary);
  background: var(--primary-nav-text-secondary);
  color: var(--primary-nav-control-bg);
  -webkit-text-fill-color: var(--primary-nav-control-bg);
  box-shadow: var(--primary-nav-shadow-md);
  transform: translateY(-1px);
}

.primary-navigation a.primary-navigation-link--feedback:hover {
  border-color: var(--primary-nav-solid-green-hover);
  background: var(--primary-nav-solid-green-hover);
  color: var(--primary-nav-on-accent);
  -webkit-text-fill-color: var(--primary-nav-on-accent);
  box-shadow: 0 8px 20px var(--primary-nav-accent-shadow);
  transform: translateY(-1px);
}

.primary-navigation a.primary-navigation-link--discover:visited,
.primary-navigation a.primary-navigation-link--blog:visited,
.primary-navigation a.primary-navigation-link--newsletter:visited {
  color: var(--primary-nav-accent-ink);
}

.primary-navigation a.primary-navigation-link--calorie:visited {
  color: var(--primary-nav-control-bg);
  -webkit-text-fill-color: var(--primary-nav-control-bg);
}

.primary-navigation a.primary-navigation-link--feedback:visited {
  color: var(--primary-nav-on-accent);
  -webkit-text-fill-color: var(--primary-nav-on-accent);
}

.primary-navigation a.primary-navigation-link:focus-visible,
.primary-navigation .theme-toggle:focus-visible {
  outline: 2px solid var(--primary-nav-accent);
  outline-offset: 3px;
}

.primary-navigation a.primary-navigation-link:active {
  transform: translateY(0);
  box-shadow: var(--primary-nav-shadow-sm);
}

.primary-navigation .theme-toggle {
  width: 52px;
  min-width: 52px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border: 1px solid var(--primary-nav-line-strong);
  border-radius: 8px;
  background: var(--primary-nav-control-bg);
  color: var(--primary-nav-text);
  font: inherit;
  line-height: 1;
  box-shadow: var(--primary-nav-shadow-sm);
  cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.primary-navigation .theme-toggle:hover {
  border-color: var(--primary-nav-accent);
  background: var(--primary-nav-surface-hover);
  box-shadow: var(--primary-nav-shadow-md);
}

.primary-navigation .theme-toggle-track {
  width: 34px;
  height: 20px;
  display: block;
  position: relative;
  border: 1px solid var(--primary-nav-line-strong);
  border-radius: 999px;
  background: var(--primary-nav-neutral-bg);
  transition: background-color 160ms ease, border-color 160ms ease;
}

.primary-navigation .theme-toggle-thumb {
  width: 14px;
  height: 14px;
  position: absolute;
  top: 2px;
  left: 2px;
  border-radius: 50%;
  background: var(--primary-nav-muted);
  transition: background-color 160ms ease, transform 160ms ease;
}

.primary-navigation .theme-toggle[aria-checked="true"] .theme-toggle-track {
  border-color: var(--primary-nav-accent);
  background: var(--primary-nav-accent);
}

.primary-navigation .theme-toggle[aria-checked="true"] .theme-toggle-thumb {
  background: var(--primary-nav-on-accent);
  transform: translateX(14px);
}

@media (min-width: 761px) and (max-width: 900px) {
  .primary-navigation {
    flex-wrap: nowrap;
    gap: 8px;
  }

  .primary-navigation a.primary-navigation-link {
    min-width: 0;
    padding-inline: 12px;
  }
}

@media (max-width: 760px) {
  .primary-navigation {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-left: 0;
  }

  .primary-navigation a.primary-navigation-link {
    min-width: 0;
    padding: 10px 8px;
    font-size: 12px;
  }

  .primary-navigation .theme-toggle {
    min-width: 52px;
    justify-self: end;
  }
}
