/* Property Page Styles */
.property-container {
  margin-top: 100px;
}

/* Property Header */
.property-header {
  margin-bottom: 24px;
}

div.green-bg {
  font-size: 19px;
  margin-bottom: 12px;
  font-weight:600;
  color: var(--primary-color);
    background: #6a9976;
	font-family: 'DejaVu Serif Condensed';
	padding:24px 0
	
}
.green-bg.rounde {border-radius:50px; margin-top:20px; padding:15px 30px}
.articul {font-size:12px; font-weight:400}
.property-meta {
  font-size: 0.95rem;
  color: var(--dark-gray);
}
.property-meta .rating {display:unset}
.green-bg {    background: linear-gradient(253.58deg, #317f60 1.55%, #006039 66.84%);
color:#fff!important; font-weight:bold; padding:15px; 
-webkit-background-clip: unset;
    -webkit-text-fill-color: unset;
    background-clip: unset;
-webkit-text-fill-color: unset!important;
}

.property-meta > span {
  margin-right: 20px;
}

.property-meta i {
  color: var(--primary-color);
  margin-right: 5px;
}
.property-meta i.icon-star {color:var(--secondary-color)}
.property-actions .btn-link {
  color: var(--primary-color);
  text-decoration: none;
  padding: 8px 12px;
}

.property-actions .btn-link:hover {
  background-color: var(--light-gray);
  border-radius: 8px;
}

/* Property Gallery */
.property-gallery {
  position: relative;
  margin-bottom: 48px;
}

.property-gallery img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  border-radius: 12px;
  transition: var(--transition);
}

.property-gallery .main-image {
  height: 612px;
}

.property-gallery img:hover {
  opacity: 0.9;
  cursor: pointer;
}

.btn-gallery {
  width: 300px;
  position: absolute;
  bottom: 20px;
  right: 10px;
  background-color: var(--white);
  border-radius: 8px;
  padding: 8px 16px;
  font-weight: 500;
  border:0;
  z-index: 99;
  transition: var(--transition);
}
.btn-gallery:hover {background:#6a9976; color:var(--white)}
/* Property Details */
.property-details {
  padding-right: 48px;
}

.host-image {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
}

.features {
  margin: 32px 0;
}

.feature-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 24px;
}

.feature-item i {
  font-size: 1.5rem;
  color: var(--primary-color);
  margin-right: 16px;
  margin-top: 4px;
}

.feature-item h3 {
  font-size: 1rem;
  margin-bottom: 4px;
}

.feature-item p {
  color: var(--dark-gray);
  margin-bottom: 0;
  font-size: 0.9rem;
}

/* Amenities */
.amenity-item {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.amenity-item i {
  width: 24px;
  color: var(--primary-color);
  margin-right: 12px;
}

.imp-amenities .amenity-item {flex-direction:unset; min-height:unset; font-size:14px; justify-content:unset}
.imp-amenities .amenity-item:hover {border-color: #e0e0e0;
    background: unset;
    color: unset;}
.property-amenities-readonly .amenity-item {
    cursor: default;
    pointer-events: none;
}
.property-amenities-readonly .amenity-item.active {
    border-color: #e0e0e0;
    color: inherit;
}
#moreAmenities .amenity-item {height:calc(100% - 22px)}
/* Booking Card */
.booking-card {
  position: sticky;
  top: 100px;
  background-color: var(--white);
  border: 1px solid var(--medium-gray);
  border-radius: 12px;
  padding: 24px;
  box-shadow: var(--shadow);
}

.booking-card .price {
  font-size: 1.5rem;
  margin-bottom: 8px;
}

.booking-card .price .amount {
  font-weight: 600;
}

.booking-card .rating-reviews {
  color: var(--dark-gray);
  margin-bottom: 24px;
}


.booking-form label {
  font-size: 0.9rem;
  margin-bottom: 4px;
}

.booking-form .btn-primary {
  background-color: var(--primary-color);
  border: none;
  padding: 12px;
  margin-top: 16px;
}

.booking-additional-services {
  padding-top: 8px;
  margin-bottom: 12px;
}

.booking-additional-services-title {
  font-weight: 600;
  margin-bottom: 10px;
}

.booking-service-option {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.booking-service-option:last-child {
  border-bottom: 0;
}

.booking-service-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  cursor: pointer;
}

.booking-service-main {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  line-height: 1.35;
}

.booking-service-name {
  font-weight: 500;
}

.booking-service-price {
  white-space: nowrap;
}

.booking-service-count {
  max-width: 120px;
}

.booking-service-invalid .booking-service-check {
  color: var(--danger);
}

.price-details {
  margin-top: 24px;
}

.price-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 12px;
}

.price-item.total {
  font-weight: 600;
  font-size: 1.1rem;
}

.additional-service-summary span:first-child {
  max-width: 65%;
}

.booking-confirm-step {
  position: relative;
  padding-top: 2px;
}

.booking-confirm-back {
  width: 34px;
  height: 34px;
  border: 1px solid #dde5e2;
  border-radius: 50%;
  background: var(--white);
  color: var(--primary-color);
  font-size: 26px;
  line-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  cursor: pointer;
  transition: background-color .2s, border-color .2s, transform .2s;
}

.booking-confirm-back:hover {
  background: #f4faf8;
  border-color: var(--primary-color);
  transform: translateX(-2px);
}

.booking-confirm-title {
  font-size: 1.18rem;
  font-weight: 700;
  margin-bottom: 16px;
  text-align: center;
  color: #182a26;
}

.recurring-payment-method {
    margin-bottom: 18px;
    padding: 14px 16px;
    border: 1px solid #eadede;
    border-radius: 10px;
    background: #fffafa;
}

.recurring-payment-method-title {
    margin-bottom: 12px;
    color: #2f2f2f;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}

.recurring-payment-method-option {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-bottom: 9px;
    color: #333;
    font-size: 14px;
    line-height: 1.4;
    cursor: pointer;
}

.recurring-payment-method-option:last-of-type {
    margin-bottom: 0;
}

.booking-box .recurring-payment-method-option input[type="radio"] {
    appearance: none;
    width: 17px;
    height: 17px;
    min-width: 17px;
    margin-top: 1px;
    border: 2px solid #6f9f68 !important;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
}

.booking-box .recurring-payment-method-option input[type="radio"]:checked {
    box-shadow: inset 0 0 0 4px #fff;
    background: #6f9f68 !important;
}

.recurring-payment-method-error {
    margin-top: 8px;
    color: #dc3545;
    font-size: 13px;
}

.recurring-payment-card-selector {
    margin: 12px 0 4px 26px;
    padding: 12px;
    border: 1px solid #eadede;
    border-radius: 8px;
    background: #fff;
}

.recurring-payment-card-title {
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 600;
}

.recurring-payment-card-option {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 13px;
    cursor: pointer;
}

.recurring-payment-card-option input {
    accent-color: #6f9f68;
}

.recurring-payment-new-card-note {
    color: #666;
    font-size: 13px;
}

.booking-test-payment-note {
  padding: 10px 12px;
  margin-top: -2px;
  border-radius: 8px;
  background: #fff7e6;
  color: #8a5a00;
  font-weight: 600;
  font-size: 0.9rem;
}

.booking-confirm-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.booking-confirm-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 12px 14px;
  border: 1px solid #e6eeeb;
  border-radius: 8px;
  background: #fbfdfc;
  text-align: center;
}

.booking-box .booking-confirm-row {
  display: block;
  text-align: center;
}

.booking-confirm-row span {
  color: #687873;
  font-size: 0.82rem;
  font-weight: 600;
  text-transform: uppercase;
}

.booking-box .booking-confirm-row span {
  display: block;
}

.booking-confirm-row strong {
  text-align: center;
  color: #17231f;
  font-weight: 700;
  max-width: 100%;
  word-break: break-word;
}

.booking-box .booking-confirm-row strong {
  display: block;
  margin-top: 5px;
}

.booking-confirm-total {
  border-color: #bfd9cf;
  background: #f1faf6;
  font-size: 1.05rem;
}

.booking-test-payment-row {
  border: 1px dashed rgba(138, 90, 0, 0.35);
  background: #fffaf0;
  color: #8a5a00;
}

.booking-card-selector {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e6eeeb;
}

.booking-card-selector-title {
  font-weight: 700;
  margin-bottom: 12px;
  text-align: center;
  color: #182a26;
}

.booking-card-option {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  padding: 11px 12px;
  border: 1px solid #dde5e2;
  border-radius: 8px;
  background: var(--white);
  cursor: pointer;
  transition: background-color .2s, border-color .2s, box-shadow .2s;
}

.booking-card-option:hover {
  background: #fbfdfc;
  border-color: #b8d4ca;
}

.booking-card-option:has(input:checked) {
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(22, 160, 133, .12);
}

.booking-card-option input {
  flex: 0 0 auto;
}

.booking-confirm-error {
  margin-top: 14px;
  font-size: 0.92rem;
  font-weight: 600;
}

/* Reviews Section */
.reviews-section h2 {
  font-size: 1.5rem;
}

.review-card {
  background-color: var(--white);
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 24px;
}

.review-header {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.review-header img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  margin-right: 12px;
  object-fit: cover;
}
.review-avatar-fallback { width:40px; height:40px; border-radius:50%; margin-right:12px; display:inline-flex; align-items:center; justify-content:center; background:var(--primary-color); color:var(--white); font-weight:700; text-transform:uppercase; }

.review-header h5 {
  margin-bottom: 0;
  font-size: 1rem;
}

.review-header p {
  color: var(--dark-gray);
  margin-bottom: 0;
  font-size: 0.9rem;
}

/* Location Section */
.location-section h2 {
  font-size: 1.5rem;
}

.map-container {
  border-radius: 12px;
  overflow: hidden;
}

.location-map {
  width: 100%;
  height: 400px;
  object-fit: cover;
}

.location-details h3 {
  font-size: 1.2rem;
  margin-bottom: 8px;
}

/* Responsive Adjustments */
@media (max-width: 991.98px) {
  .property-details {
    padding-right: 0;
    margin-bottom: 48px;
  }

  .booking-card {
    position: static;
    margin-bottom: 48px;
  }
}

@media (max-width: 767.98px) {
  .property-gallery .main-image {
    height: 300px;
  }

  .property-gallery img {
    height: 200px;
  }
}
/* Apartment review form */
.apartment-reviews { scroll-margin-top: 120px; }
.reviews-title-row { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; width:100%; }
.reviews-title-row .review-open-btn { margin-left:auto; flex:0 0 auto; }
.reviews-subtitle { color:var(--dark-gray); margin:8px 0 0; font-size:0.95rem; }
.reviews-empty { color:var(--dark-gray); margin:0; padding:8px 0 16px; font-size:1rem; }
.reviews-summary { min-width:170px; border:1px solid var(--medium-gray); border-radius:18px; padding:14px 18px; box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; gap:7px; background:var(--white); }
.reviews-summary .icon-star, .review-stars { color:var(--secondary-color); }
.review-form-card { border:1px solid var(--medium-gray); border-radius:22px; padding:24px; box-shadow:var(--shadow); background:linear-gradient(180deg, #ffffff 0%, #fbfcfa 100%); }
.apartment-review-form .form-control { border:1px solid var(--medium-gray); border-radius:14px; padding:12px 14px; }
.apartment-review-form .form-control:focus { border-color:var(--primary-color); box-shadow:0 0 0 0.2rem rgba(116,153,101,0.18); }
.apartment-review-form .form-control.is-invalid { border-color:#dc3545; box-shadow:0 0 0 .18rem rgba(220,53,69,.12); }
.review-error { color:#dc3545; font-size:.85rem; font-weight:600; min-height:20px; margin-top:6px; }
.star-rating-input { display:flex; align-items:center; gap:7px; min-height:54px; }
.star-rating-input .star-btn { border:0; background:transparent; color:#d4d8cf; font-size:34px; line-height:1; opacity:1; padding:0 1px; text-shadow:none; transform:translateY(0); transition:color .18s ease, text-shadow .18s ease, transform .18s ease; }
.star-rating-input .star-btn:hover, .star-rating-input .star-btn.active { color:#f4c542; text-shadow:0 0 10px rgba(244,197,66,.55), 0 2px 5px rgba(132,91,0,.2); transform:translateY(-1px) scale(1.04); }
.rating-text { margin-left:10px; font-weight:600; color:var(--black); }
.review-form-footer { display:flex; justify-content:flex-end; align-items:center; gap:16px; margin-top:18px; color:var(--dark-gray); font-size:0.9rem; }
.review-form-footer .review-submit-btn { margin-left:auto; }
.review-card { border:1px solid var(--medium-gray); box-shadow:var(--shadow); }
.review-stars { font-size:0.95rem; margin-bottom:10px; letter-spacing:1px; }
.review-stars span { color:var(--black); letter-spacing:0; margin-left:6px; font-weight:600; }
@media (max-width: 767.98px) { .reviews-title-row { flex-direction:column; align-items:stretch; } .reviews-summary { width:100%; } }
.review-cta-card { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.review-cta-card h6 { margin:0 0 6px; font-weight:700; color:var(--black); }
.review-cta-card p { margin:0; color:var(--dark-gray); font-size:0.95rem; }
.review-modal .modal-content { border:0; border-radius:24px; box-shadow:0 25px 60px rgba(0,0,0,.18); overflow:hidden; }
.review-modal .modal-header { padding:22px 24px 16px; border-bottom:1px solid var(--medium-gray); }
.review-modal .modal-title { font-weight:700; color:var(--black); }
.review-modal .modal-subtitle { color:var(--dark-gray); font-size:.9rem; margin-top:4px; }
.review-modal .modal-body { padding:22px 24px; }
.review-modal .modal-footer { padding:16px 24px 22px; border-top:1px solid var(--medium-gray); margin-top:0; }
.review-modal .btn-close:focus { box-shadow:0 0 0 0.2rem rgba(116,153,101,0.18); }
@media (max-width: 767.98px) { .review-cta-card { flex-direction:column; align-items:stretch; } }
