/* Make the page content centered horizontally while keeping text left-aligned */
html {
  box-sizing: border-box;
}
*, *::before, *::after {
  box-sizing: inherit;
}
body {
  font-family: Arial, sans-serif;
  margin: 2rem auto; /* center the page container */
  padding: 0 1rem;   /* small horizontal padding for narrow viewports */
  line-height: 1.6;
  max-width: 900px;  /* container width — adjust for a modern look */
  text-align: left;  /* ensure text remains left-aligned */
}

header {
  display: flex;
  align-items: center;
  margin-bottom: 2rem;
}

header img {
  height: 60px;
  margin-right: 1rem;
}

nav.top-nav {
  display: flex;
  gap: 1rem;
  margin-bottom: 2rem;
  justify-content: center; /* center nav items */
}

nav.top-nav a {
  text-decoration: none;
  color: #0055aa;
  font-size: 1rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.35rem 0.6rem;
  border-radius: 6px;
  transition: background-color 150ms ease, color 150ms ease;
}

nav.top-nav a:hover {
  text-decoration: underline;
}

.icon {
  font-size: 1.2rem;
}

/* Page background and card-like sections for visual separation */
body {
  background-color: #f6f8fa; /* subtle page background */
}

section {
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.04);
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(22,28,37,0.06);
  padding: 1.25rem;
  margin-bottom: 1.75rem;
}

article {
  margin-bottom: 1rem;
}

h2 {
  margin-top: 0;
}

nav.top-nav a:hover {
  background-color: rgba(0,85,170,0.06);
}

/* Responsive: stack nav on small screens */
@media (max-width: 640px) {
  nav.top-nav {
    flex-direction: column;
    gap: 0.5rem;
    align-items: stretch; /* make links fill the container width */
  }

  nav.top-nav a {
    width: 100%;
    justify-content: center; /* center icon + label inside the full-width link */
    padding: 0.6rem 0.75rem;
  }
}

footer {
  margin-top: 3rem;
  font-size: 0.9rem;
  color: #666;
}
