.places-grid-container { display: grid; }
.place-card { position: relative; overflow: hidden; border-radius: 8px; background-color: #333; }
.place-card-link { display: block; width: 100%; height: 100%; text-decoration: none; }
.place-card-background { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center center; transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.place-card:hover .place-card-background { transform: scale(1.05); }
.place-card-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 40%, rgba(0,0,0,0.9) 100%); transition: background 0.3s ease; }
.place-card-content { position: relative; z-index: 2; padding: 15px; height: 100%; min-height: 180px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; }
.place-card-title { margin: 0 0 10px 0; line-height: 1.2; }
.place-card-content-hover { max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out; background-color: rgba(0,0,0,0.75);margin: 15px -15px -15px; padding: 15px; }
.place-card:hover .place-card-content-hover { max-height: 100%; opacity: 1; }
.place-card-summary { margin: 0 0 10px 0; line-height: 1.5; }
.amenities-list { margin-bottom: 15px; font-style: italic; line-height: 1.4; opacity: 0.8; }
.place-card-pricing { margin-bottom: 20px; line-height: 1.6; }
.place-card-pricing .price-item { display: block; font-size: 0.9em; }
.place-card-pricing .price-item strong { opacity: 0.8; }
.place-card-button { display: inline-block; padding: 10px 20px; border-radius: 4px; background-color: transparent; border: 1px solid #fff; color: #fff; text-align: center; font-weight: bold; text-decoration: none; transition: background-color 0.3s ease, color 0.3s ease; align-self: flex-start; }
.place-card-button:hover { background-color: #fff; color: #000; }
/* Static pricing on filter page card */
.place-card-static-content { flex-grow: 1; }
.place-card-pricing-static { padding-top: 15px; margin-top: auto; border-top: 1px solid rgba(255, 255, 255, 0.2); }

.place-card-info {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 25px;
  font-size: 1.0em;
  margin: 15px -15px -15px;
  padding: 5px 0px;
  background-color: #D09E9E; /*rgba(255,255,255,0.75);*/
  color: #000;
}
.place-card-info span span {
  display: inline-block;
  height: 18px;
  width: 18px;
  margin-right: 5px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  border-radius: 5px;
  padding: 5px;
}
.place-card-info .place-card-guests span {
  background-image: url(../icons/svg/other/people.svg);
}
.place-card-info .place-card-bedrooms span {
  background-image: url(../icons/svg/other/bed.svg);
}
.place-card-info .place-card-bathrooms span {
  background-image: url(../icons/svg/other/bathroom.svg);
}