*,
*::before,
*::after {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
:root {
  --color-background-light: rgb(255, 255, 255);
  --color-background-heavy: rgb(245, 245, 245);
  --color-font-bold: rgb(0, 0, 0);
  --color-font-light: rgba(0, 0, 0, 0.8);
  --color-shadow: rgba(0, 0, 0, 0.3);
  --color-grey: rgb(241, 241, 241);
}
.dark-mode {
  --color-background-light: rgb(48, 48, 48);
  --color-background-heavy: rgb(0, 0, 0);
  --color-font-bold: rgb(255, 255, 255);
  --color-font-light: rgba(255, 255, 255, 0.7);
  --color-shadow: rgba(0, 0, 0, 0.3);
  --color-grey: rgb(64, 64, 64);
}

body {
  background-color: var(--color-background-heavy);
}
header {
  position: sticky;
  top: 0;
  z-index: 99;
}
.header {
  background-color: var(--color-background-light);
  padding: 2rem 1rem;
  box-shadow: 0 0 0.5rem var(--color-shadow);
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--color-font-bold);
  .mode {
    display: flex;
    align-items: center;
    cursor: pointer;
    img {
      height: 20px;
    }
  }
}
.search {
  background-color: var(--color-background-light);
  padding: 1rem;
  margin: 2rem;
  display: flex;
  border-radius: 0.3rem;
  box-shadow: 0 0 0.5rem var(--color-shadow);
  transition: all 0.2s;
  img {
    height: 20px;
    margin-right: 1rem;
  }
  #search-box {
    width: 100%;
    border: 0;
    outline: none;
    background-color: var(--color-background-light);
    color: var(--color-font-bold);
    padding: 0 1rem;
    transition: all 0.2s;
  }
}
.filter {
  margin: 2rem;
  color: var(--color-font-bold);
}
.original-select {
  display: none;
}

.custom-select {
  position: relative;
  width: 12rem;
}

.select-selected {
  display: flex;
  justify-content: space-between;
  background-color: var(--color-background-light);
  transition: all 0.2s;
  padding: 1rem 1.5rem;
  border-radius: 0.3rem;
  box-shadow: 0 0 0.3rem var(--color-shadow);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}

.select-items {
  position: absolute;
  bottom: -1rem;
  transform: translateY(100%);
  background-color: var(--color-background-light);
  border-radius: 0.3rem;
  box-shadow: 0 0 0.3rem var(--color-shadow);
  width: 100%;
}
.filter-text {
  padding: 0 1rem;
}
/* gpt说为了确保表单提交时数据能被正确发送到服务器，避免了完全依赖自定义元素的潜在问题 
我也不太懂 */
.select-hide {
  display: none;
}

.select-items div {
  padding: 10px;
  cursor: pointer;
}

.select-items div:hover {
  background-color: var(--color-grey);
}

.visually-hidden {
  position: absolute;
  overflow: hidden;
  border: 0;
}

.country-box {
  background-color: var(--color-background-light);
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 0 0.5rem var(--color-shadow);
  transition: all 0.2s;
  cursor: pointer;
  img {
    width: 100%;
    aspect-ratio: 3/2;
    object-fit: cover;
  }
  .info {
    padding: 1.5rem;
    h2 {
      padding: 1rem 0;
      color: var(--color-font-bold);
    }
    p {
      padding: 0.5rem 0;
      color: var(--color-font-light);
      span {
        font-weight: 500;
        color: var(--color-font-bold);
      }
    }
  }
}
.country-box:hover {
  background-color: var(--color-grey);
}

/* datails css */
.back {
  margin: 2rem;
  width: 6rem;
  height: 2rem;
  border-radius: 0.3rem;
  box-shadow: 0 0 0.3rem var(--color-shadow);
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 2rem;
  text-decoration: none;
  color: var(--color-font-bold);
  background-color: var(--color-background-light);
  img {
    height: 1rem;
  }
}

.country-info {
  display: flex;
  justify-content: center;
  margin-bottom: 3rem;
}
.details {
  color: var(--color-font-bold);
  transition: all 0.2s;
  img {
    width: 30rem;
    margin-bottom: 2rem;
  }
  .text {
    p {
      margin: 1rem 0;
      font-weight: 300;
      span {
        font-weight: 500;
      }
    }
  }
}

.info-bottom {
  display: flex;
  .border-countries {
    display: flex;
    flex-wrap: wrap;
    .borderCountry {
      height: 2rem;
      line-height: 2rem;
      border-radius: 0.3rem;
      box-shadow: 0 0 0.3rem var(--color-shadow);
      background-color: var(--color-background-light);
      padding: 0 1rem;
      margin: 0.3rem;
      cursor: pointer;
    }
    .none-text {
      font-weight: 300;
      padding-left: 1rem;
    }
  }
}
@media (min-width: 768px) {
  .flex-box {
    display: flex;
    justify-content: space-between;
  }
  .search {
    width: 30rem;
  }

  .details {
    padding: 2rem;
    display: grid;
    place-content: center;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    img {
      width: 100%;
      max-width: 40rem;
    }
    .text {
      width: 100%;
      max-width: 40rem;
      display: flex;
      flex-direction: column;
    }
  }
}

.info-middle {
  display: grid;
  @media (min-width: 768px) and(max-width:1300px) {
    grid-template-columns: 1fr;
  }
  @media (min-width: 1260px) {
    grid-template-columns: 1fr 1fr;
    .info-left {
      grid-column: 1/2;
    }
    .info-right {
      grid-column: 2/2;
    }
  }
}

.countries-container {
  display: grid;
  gap: 3rem 2rem;
  place-items: center;
  grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
  /* @media (min-width: 768px) {
    grid-template-columns: 1fr 1fr;
  }
  @media (min-width: 1024px) {
    grid-template-columns: 1fr 1fr 1fr;
  }
  @media (min-width: 1400px) {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  } */
}
