:root {
  --body-font:
    Seravek, "Gill Sans Nova", Ubuntu, Calibri, "DejaVu Sans", source-sans-pro,
    sans-serif;
  --bg-primary: #fff;
  --bg-secondary: #f1f5f9;
  --text-primary: #000;
  --text-secondary: #666;
}

html,
body {
  height: 100%;
  overflow-x: hidden;
}

body {
  font-family: var(--body-font);
  color: var(--text-primary);
}

img {
  max-width: 100%;
  height: auto;
}

.page-container {
  display: grid;
  grid-template-columns: 3.4375rem 1fr;
  height: 100%;
}

.sidebar {
  background-color: var(--bg-primary);
  box-shadow: 0 0 10px #ddd;
  z-index: 2;
  height: 100%;
}

.nav__logo {
  margin: 0.9375rem 0 0 0;
  font-size: 1rem;
  text-align: center;
}

.nav__list {
  padding: 0;
  margin: 0;
  list-style-type: none;
  gap: 0.9375rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nav__item {
  transition: transform 0.1s ease;
}

.nav__list:first-of-type {
  margin-top: 1.875rem;
}

.nav__list:last-of-type {
  margin-top: 3.125rem;
}

.nav__item:hover {
  transform: scale(1.2);
}

.nav__item:active {
  transform: scale(1.4);
}

.nav__item img {
  width: clamp(1.125rem, 2vw, 1.75rem);
}

.nav__item > span {
  display: none;
  font-size: clamp(0.875rem, 2vw, 1.125rem);
}

.main {
  background-color: var(--bg-secondary);
}

.header {
  background-color: var(--bg-primary);
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9375rem clamp(0.9375rem, 3vw, 20px);
}

.search-box > input {
  outline: none;
  border: 1px #ccc solid;
  border-radius: 10px;
  height: 2.1875rem;
  padding-left: 2.1875rem;
  background: url("../img/magnify.svg") no-repeat 0.625rem center;
  background-size: 1.125rem;
  max-width: 11.25rem;
}

.profile-container {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.profile-container > img:first-child {
  width: 1.5625rem;
}

.profile-container > img:last-child {
  width: 2.5rem;
}

.projects,
.announcements,
.trending {
  padding: 1.25rem;
  margin: 0;
}

.projects > h2,
.announcements > h2,
.trending > h2 {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
}

.project__cards {
  display: grid;
  gap: 1.875rem;
  grid-template-columns: repeat(auto-fit, minmax(min(15.625rem, 100%), 1fr));
}

.project__card {
  padding: 0.3125rem 0.9375rem;
  background-color: var(--bg-primary);
  border-radius: 10px;
  border-left: 6px solid #26a584;
  min-height: 12.5rem;
  position: relative;
  box-shadow: 6px 10px 5px 0px rgba(0, 0, 0, 0.05);
  transition: transform 0.1s ease;
  min-width: 0;
}

.project__card:hover {
  transform: scale(1.02);
  cursor: pointer;
}

.project__title {
  font-size: clamp(1.125rem, 3vw, 1.5rem);
}

.project__desc {
  color: var(--text-secondary);
  font-size: clamp(1rem, 3vw, 1.125rem);
  max-width: 55ch;
}

.project__actions {
  position: absolute;
  right: 0.75rem;
  bottom: 0.5rem;
}

.project__actions > img {
  width: 1.25rem;
}

.announcement__cards {
  padding: 0.3125rem 0.9375rem;
  background-color: var(--bg-primary);
  border-radius: 10px;
  box-shadow: 6px 10px 5px 0px rgba(0, 0, 0, 0.05);
}

.announcement__card > h4 {
  font-size: clamp(0.9375rem, 3vw, 1.125rem);
}

.announcement__card > p {
  color: var(--text-secondary);
  font-size: clamp(0.9375rem, 3vw, 1.0625rem);
}

.trending__card {
  box-shadow: 6px 10px 5px 0px rgba(0, 0, 0, 0.05);
  background-color: var(--bg-primary);
  border-radius: 10px;
  padding: 10px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  justify-items: center;
  gap: 40px;
}

.trending__topic {
  display: flex;
  align-items: center;
  gap: 5px;
}

.trending__topic > img {
  max-width: 60px;
}

.trending__desc {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.trending__desc > span:first-of-type {
  font-size: 1.125rem;
  color: #4f86c6;
}

.trending__desc > span:last-of-type {
  color: var(--text-secondary);
}

@media screen and (min-width: 48rem) {
  .page-container {
    grid-template-columns: clamp(9.375rem, 20vw, 14.375rem) 1fr;
  }

  .sidebar {
    padding: 1.25rem;
  }

  .nav__logo {
    font-size: clamp(1rem, 3vw, 1.875rem);
  }

  .nav__logo:after {
    content: "";
    display: block;
    width: 80%;
    height: 2px;
    background-color: black;
    margin: 5px auto;
  }

  .nav__list {
    align-items: start;
  }

  .nav__item {
    color: var(--text-primary);
    text-decoration: none;
    cursor: pointer;
    gap: 0.625rem;
    display: flex;
    align-items: center;
  }

  .nav__item > span {
    display: inline;
  }
}

@media screen and (min-width: 73.3125rem) {
  .content {
    display: grid;
    grid-template-columns: 2fr 1fr;
  }

  .primary-content,
  .secondary-content {
    display: flex;
    flex-direction: column;
  }

  .projects {
    flex: 1;
    display: flex;
    flex-direction: column;
  }

  .project__cards {
    flex: 1;
    align-content: stretch;
    display: grid;
    grid-template-columns: repeat(2, minmax(21.875rem, 1fr));
    gap: 1.25rem;
  }
}
