#cluster-map {
  width: 100%;
  height: 500px;
  border-radius: 1rem;
}

#map {
  width: 100%;
  height: 300px;
  border-radius: 1rem;
}

#card-container {
  display: flex;
  flex-wrap: wrap;
  gap: 3.3%;
}

.card-rounded {
  width: 22.5%;
  border-radius: 1rem;
  box-shadow: 6px 6px 15px 0px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  display: flex;
}

.card-rounded .card-text {
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
  overflow-wrap: break-word;
}

.btn {
  width: 100%;
  height: 1.75rem;
  padding-block: 0.2rem;
  line-height: 1.2;
  background: #212529bb;
  color: white;
  border-radius: 0.5rem;
}

.btn:hover {
  background: #212529cc;
  color: #ddd;
}

#campgroundCarousel {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  overflow: hidden;
}

#show-card {
  background: #ddd;
  border-bottom-left-radius: 1rem; 
  border-bottom-right-radius: 1rem;
}

.card-body-buttons {
  display: flex;
}

.card-body a {
  width: 5rem;
  margin-right: 0.5rem;
  border: none;
}

.card-body form button {
  width: 5rem;
  border: none;
}

.validated-form button {
  display: block;
  width: 7rem;
  margin-left: auto;
  border: none;
}

.index-card-body a {
  width: 100%;
}

textarea.form-control {
  border-radius: 1rem;
}

#register-form button {
  width: 6rem; 
}

#edit-form div button {
  width: 12rem;
}

#new-campground-form div button {
  width: 10rem;
}

.review-card {
  border: 1px solid #aa9;
  border-radius: 1rem;
}

.review-card h5 {
  margin-bottom: 0;
}

.starability-result {
  scale: 0.6;
  left: -1.9rem;
  margin-bottom: 0;
}

.card-body h5 span {
  float: right;
  font-size: 1rem;
}

.card-body h5 span::before {
  position: absolute;
  top: 17px;
  right: 41px;
  content: "";
  width: 1rem;
  height: 1rem;
  background-image: url("../heroku-imgs/star.png");
  background-size: contain;
  background-repeat: no-repeat;
}

#index-card {
  transition: transform 200ms ease-out;
}

#index-card:hover {
  transform: scale(1.02);
  transition: transform 200ms ease-out;
}

#index-card span {
  position: absolute;
  bottom: 0;
  right: 10px;
  font-weight: 700;
  color: #fff;
}
  
#index-card .img-container {
  position: relative;
  width: fit-content;
  height: fit-content;
}

#index-card span::before {
  position: absolute;
  top: 3px;
  right: 26px;
  content: "";
  width: 1rem;
  height: 1rem;
  color: white;
  background-image: url("../heroku-imgs/star_white.png");
  background-size: contain;
  background-repeat: no-repeat;
}

#darker-bg {
  background: linear-gradient(330deg, rgba(0, 0, 0, 0.7) 0 -16%, rgba(255, 255, 255, 0.0) 24% 100%);
  width: 100%;
  position: absolute;
  top: 0;
  aspect-ratio: 3 / 2;
}

#index-location {
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

#index-topbar {
  display: flex;
  justify-content: space-between;
}

#index-topbar input {
  width: 15rem;
  height: 1.6rem;
  margin-bottom: 3rem;
  padding-left: 0.4rem;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  border: 1px solid #aaa;
  color: #777;
}

#index-topbar input::placeholder {
  padding-bottom: 0.8rem;
  font-size: 0.9rem;
}

#index-topbar input:focus {
  outline: 1px solid #888;
}

@media screen and (max-width: 1200px) {
  .index-card-body .card-title {
    font-size: 0.95rem;
  }

  .index-card-body .card-text {
    font-size: 0.85rem;
  }

  .index-card-body a {
    padding-inline: 0.1rem;
    font-size: 0.7rem;
    height: fit-content;
  }

  #index-card span {
    right: 5px;
    font-size: 0.9rem;
  }

  #index-card span:before {
    top: 4px;
    right: 22px;
    height: 0.8rem;
  }
}

@media screen and (max-width: 1000px) {
  #index-card {
    width: 31.1%;
  }
}

@media screen and (max-width: 768px) {
  #index-card {
    width: 48.3%;
  }
}

@media screen and (max-width: 575px) {
  main.container {
    margin-top: 1rem !important;
  }

  #index-topbar {
    gap: 1rem;
  }
}

@media screen and (max-width: 550px) {
  #index-card span {
    bottom: 0vw;
  }
}

@media screen and (max-width: 500px) {
  .index-card-body .card-title {
    font-size: 0.9rem;
  }

  .index-card-body .card-text {
    font-size: 0.8rem;
  }
}

@media screen and (max-width: 460px) {
  #index-topbar {
    display: block;
  }

  #index-topbar p {
    margin-bottom: 1rem !important;
  }

  #index-topbar input {
    margin-bottom: 2rem;
  }

  .index-card-body .card-title {
    font-size: 0.8rem;
  }

  .index-card-body .card-text {
    font-size: 0.7rem;
  }
}

@media screen and (max-width: 420px) {
  .index-card-body .card-title {
    font-size: 0.75rem;
  }

  .index-card-body .card-text {
    font-size: 0.7rem;
  }
}

@media screen and (max-width: 400px) {
  #index-card {
    width: 100%;
  }

  .index-card-body .card-title {
    font-size: 0.95rem;
  }

  .index-card-body .card-text {
    font-size: 0.9rem;
  }
}
