/* ═══════════════════════════════════════════
   PURO DREAMS REALTY — Property Page Design System
   realty.purodreams.com (WP Residence)
   Template: Residence Studio (Elementor, ID 33658)
   Version: 1.0.0 — 2026-03-01
   ═══════════════════════════════════════════ */


/* ─────────────────────────────────────────
   1. GLOBAL RESETS & DESIGN TOKENS
   ───────────────────────────────────────── */

body.single-estate_property {
  /* Color tokens */
  --navy:       #001a33;
  --navy-deep:  #000f1f;
  --navy-mid:   #0a2a47;
  --gold:       #c4a872;
  --stone:      #8a8580;
  --sand:       #d4cfc8;
  --ivory:      #f8f6f2;
  --white:      #ffffff;

  /* Font tokens */
  --font-serif: 'Cormorant Garamond', 'Georgia', serif;
  --font-sans:  'Outfit', 'Helvetica Neue', sans-serif;

  /* Spacing */
  --section-gap:   80px;
  --section-pad:   60px 0;
  --content-max:   1200px;

  font-family: var(--font-sans) !important;
  color: var(--navy) !important;
  background-color: var(--white) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Kill all border-radius globally */
body.single-estate_property *,
body.single-estate_property *::before,
body.single-estate_property *::after {
  border-radius: 0 !important;
}

/* Base typography reset */
body.single-estate_property h1,
body.single-estate_property h2,
body.single-estate_property h3,
body.single-estate_property h4,
body.single-estate_property h5,
body.single-estate_property h6 {
  font-family: var(--font-serif) !important;
  color: var(--navy) !important;
  font-weight: 300 !important;
}

body.single-estate_property p,
body.single-estate_property span,
body.single-estate_property a,
body.single-estate_property li,
body.single-estate_property label,
body.single-estate_property input,
body.single-estate_property textarea,
body.single-estate_property select,
body.single-estate_property button,
body.single-estate_property div {
  font-family: var(--font-sans) !important;
}

/* Link defaults */
body.single-estate_property a {
  color: var(--navy) !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

body.single-estate_property a:hover {
  color: var(--gold) !important;
}


/* ─────────────────────────────────────────
   2. TITLE / HEADER AREA
   ───────────────────────────────────────── */

body.single-estate_property .wpresidence_property_page_title_area {
  padding: 40px 0 30px !important;
  border-bottom: 1px solid var(--sand) !important;
  background: var(--white) !important;
}

body.single-estate_property .entry-title.entry-prop {
  font-family: var(--font-serif) !important;
  font-size: 38px !important;
  font-weight: 300 !important;
  color: var(--navy) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.2 !important;
  margin-bottom: 12px !important;
}

/* Price */
body.single-estate_property .price_area {
  margin-top: 8px !important;
}

body.single-estate_property .price_area .price_label {
  font-family: var(--font-serif) !important;
  font-size: 34px !important;
  font-weight: 400 !important;
  color: var(--navy) !important;
  letter-spacing: -0.01em !important;
}

/* Price on Request */
body.single-estate_property .price_area .price_label[class*="request"],
body.single-estate_property .price_area .wpestate_price_on_request {
  font-family: var(--font-serif) !important;
  font-style: italic !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  color: var(--stone) !important;
}

/* Status label (For Sale) */
body.single-estate_property .property_categs,
body.single-estate_property .single_property_labels {
  margin-top: 12px !important;
}

body.single-estate_property .property_title_label,
body.single-estate_property .property_categs a {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.2em !important;
  color: var(--navy) !important;
  background: rgba(0, 26, 51, 0.08) !important;
  padding: 5px 14px !important;
  display: inline-block !important;
  border: none !important;
}

/* Share / social buttons */
body.single-estate_property .prop_social {
  border: none !important;
  padding: 10px 0 !important;
}

body.single-estate_property .share_unit {
  color: var(--stone) !important;
  transition: color 0.3s ease !important;
}

body.single-estate_property .share_unit:hover {
  color: var(--navy) !important;
}

/* Hide Facebook & Twitter share — keep Email, WhatsApp, Copy */
body.single-estate_property .share_unit[data-social="facebook"],
body.single-estate_property .share_unit[data-social="twitter"],
body.single-estate_property .share_unit.share_facebook,
body.single-estate_property .share_unit.share_twitter,
body.single-estate_property .prop_social a[href*="facebook"],
body.single-estate_property .prop_social a[href*="twitter"] {
  display: none !important;
}


/* ─────────────────────────────────────────
   3. GALLERY / SLIDER
   ───────────────────────────────────────── */

body.single-estate_property .wpestate_property_media_section_wrapper {
  margin-bottom: 0 !important;
  overflow: hidden !important;
}

body.single-estate_property .classic-carousel,
body.single-estate_property .carousel-inner {
  width: 100% !important;
  max-height: 75vh !important;
}

body.single-estate_property .carousel-item img,
body.single-estate_property .carousel-inner img {
  width: 100% !important;
  height: 75vh !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* Carousel controls */
body.single-estate_property .carousel-control-prev,
body.single-estate_property .carousel-control-next {
  width: 48px !important;
  height: 48px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background: rgba(255, 255, 255, 0.85) !important;
  opacity: 0 !important;
  transition: opacity 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  bottom: auto !important;
}

body.single-estate_property .wpestate_property_media_section_wrapper:hover .carousel-control-prev,
body.single-estate_property .wpestate_property_media_section_wrapper:hover .carousel-control-next {
  opacity: 1 !important;
}

body.single-estate_property .carousel-control-prev-icon,
body.single-estate_property .carousel-control-next-icon {
  filter: invert(1) brightness(0) !important;
  width: 16px !important;
  height: 16px !important;
}

/* Carousel indicators */
body.single-estate_property .carousel-indicators {
  bottom: 20px !important;
  margin-bottom: 0 !important;
}

body.single-estate_property .carousel-indicators [data-bs-target],
body.single-estate_property .carousel-indicators li,
body.single-estate_property .carousel-indicators button {
  width: 8px !important;
  height: 8px !important;
  border: none !important;
  background: rgba(255, 255, 255, 0.5) !important;
  margin: 0 4px !important;
  opacity: 1 !important;
}

body.single-estate_property .carousel-indicators .active,
body.single-estate_property .carousel-indicators [aria-current="true"] {
  background: var(--gold) !important;
}

/* Media buttons (view all photos, etc.) */
body.single-estate_property .wpestate_control_media_buttons_wrapper {
  background: rgba(0, 0, 0, 0.5) !important;
  backdrop-filter: blur(4px) !important;
}

body.single-estate_property .wpestate_control_media_buttons_wrapper a,
body.single-estate_property .wpestate_control_media_buttons_wrapper span {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
}


/* ─────────────────────────────────────────
   4. OVERVIEW (Beds · Baths · m²)
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_overview_section {
  padding: 30px 0 !important;
  border-bottom: 1px solid var(--sand) !important;
}

body.single-estate_property .single-overview-section {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0 !important;
}

body.single-estate_property .overview_element {
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--navy) !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: none !important;
}

/* Separator dots between overview items */
body.single-estate_property .overview_element + .overview_element::before {
  content: '\00B7' !important;
  margin: 0 14px !important;
  color: var(--stone) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

/* Overview icons: subtle */
body.single-estate_property .overview_element i,
body.single-estate_property .overview_element svg {
  color: var(--stone) !important;
  font-size: 16px !important;
  margin-right: 8px !important;
}


/* ─────────────────────────────────────────
   5. DESCRIPTION
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_description_section {
  padding: var(--section-pad) !important;
}

body.single-estate_property .wpestate_property_description,
body.single-estate_property #wpestate_property_description_section {
  max-width: 800px !important;
}

body.single-estate_property .wpestate_property_description p,
body.single-estate_property #wpestate_property_description_section p {
  font-family: var(--font-sans) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  line-height: 1.8 !important;
  color: var(--navy) !important;
  margin-bottom: 1.4em !important;
}

/* Read more / less toggle */
body.single-estate_property .wpestate_property_description a.wpestate_read_more,
body.single-estate_property .wpestate_ellipsis_read_more {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--gold) !important;
  border-bottom: 1px solid var(--gold) !important;
  padding-bottom: 2px !important;
}


/* ─────────────────────────────────────────
   6. ADDRESS
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_address_section {
  padding: 30px 0 !important;
}

body.single-estate_property #accordion_prop_addr .listing_detail {
  font-family: var(--font-sans) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--navy) !important;
  padding: 6px 0 !important;
  border: none !important;
}

/* Hide country and zip */
body.single-estate_property .listing_detail.wpresidence-detail-country,
body.single-estate_property .listing_detail.wpresidence-detail-zip,
body.single-estate_property .listing_detail[data-field="country"],
body.single-estate_property .listing_detail[data-field="zip"] {
  display: none !important;
}

/* Detail labels in address */
body.single-estate_property #accordion_prop_addr .listing_detail strong {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--stone) !important;
}


/* ─────────────────────────────────────────
   7. DETAILS
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_details_section {
  padding: var(--section-pad) !important;
  background: var(--ivory) !important;
}

body.single-estate_property #accordion_prop_details .listing_detail,
body.single-estate_property .wpresidence-listing-fields-wrapper .listing_detail {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  padding: 14px 0 !important;
  border-bottom: 1px solid var(--sand) !important;
  margin: 0 !important;
}

body.single-estate_property .prop_new_details,
body.single-estate_property #accordion_prop_details .listing_detail strong {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--stone) !important;
}

body.single-estate_property .prop_new_details_back,
body.single-estate_property #accordion_prop_details .listing_detail span:not(.prop_new_details) {
  font-family: var(--font-sans) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--navy) !important;
}


/* ─────────────────────────────────────────
   8. FEATURES
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_features_section {
  padding: var(--section-pad) !important;
}

body.single-estate_property #accordion_prop_features .feature_chapter_name {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.25em !important;
  color: var(--gold) !important;
  margin-bottom: 20px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--sand) !important;
}

/* Feature items grid */
body.single-estate_property #accordion_prop_features .panel-body {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px 40px !important;
}

body.single-estate_property #accordion_prop_features .listing_detail {
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--navy) !important;
  padding: 8px 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  border: none !important;
}

/* Replace check-circle icon with gold dot */
body.single-estate_property #accordion_prop_features .far.fa-check-circle,
body.single-estate_property #accordion_prop_features .fa-check-circle,
body.single-estate_property #accordion_prop_features .fa-check {
  font-size: 0 !important;
  width: 4px !important;
  height: 4px !important;
  min-width: 4px !important;
  background: var(--gold) !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

body.single-estate_property #accordion_prop_features .far.fa-check-circle::before,
body.single-estate_property #accordion_prop_features .fa-check-circle::before,
body.single-estate_property #accordion_prop_features .fa-check::before {
  display: none !important;
}


/* ─────────────────────────────────────────
   9. VIDEO
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_video_section {
  padding: var(--section-pad) !important;
  background: var(--ivory) !important;
}

body.single-estate_property #accordion_video .property_video_wrapper,
body.single-estate_property .property_video_wrapper {
  position: relative !important;
  padding-bottom: 56.25% !important; /* 16:9 */
  height: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--sand) !important;
}

body.single-estate_property .property_video_wrapper iframe,
body.single-estate_property .property_video_wrapper video {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
}


/* ─────────────────────────────────────────
   10. MAP
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_map_section {
  padding: var(--section-pad) !important;
}

body.single-estate_property #accordion_prop_map .acc_google_maps,
body.single-estate_property .google_map_shortcode_wrapper,
body.single-estate_property .acc_google_maps {
  height: 400px !important;
  filter: grayscale(1) opacity(0.8) !important;
  transition: filter 0.4s ease !important;
  border: 1px solid var(--sand) !important;
}

body.single-estate_property #accordion_prop_map .acc_google_maps:hover,
body.single-estate_property .google_map_shortcode_wrapper:hover,
body.single-estate_property .acc_google_maps:hover {
  filter: grayscale(0) opacity(1) !important;
}


/* ─────────────────────────────────────────
   11. AGENT / CONTACT FORM
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-Agent_Contact_Form {
  padding: var(--section-pad) !important;
  background: var(--ivory) !important;
}

body.single-estate_property .wpestate_contact_form_parent {
  background: var(--white) !important;
  padding: 40px !important;
  border: 1px solid var(--sand) !important;
  box-shadow: none !important;
}

/* Agent photo */
body.single-estate_property .agentpict img {
  width: 80px !important;
  height: 80px !important;
  border-radius: 50% !important; /* Exception: circular agent photo */
  border: 2px solid var(--sand) !important;
  object-fit: cover !important;
}

/* Agent name */
body.single-estate_property .wpestate_single_agent_details_header_wrapper h3,
body.single-estate_property .wpestate_single_agent_details_header_wrapper h4,
body.single-estate_property .agent_details h3,
body.single-estate_property .agent_details h4 {
  font-family: var(--font-serif) !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  color: var(--navy) !important;
  margin-bottom: 4px !important;
}

/* Agent role / position */
body.single-estate_property .agent_position,
body.single-estate_property .agent_details .agent_position {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--stone) !important;
}

/* Agent contact buttons — all 4 in a uniform flex row */
body.single-estate_property .realtor-contact-buttons {
  display: contents !important;
}

body.single-estate_property .agent_contanct_form .wpresidence_button.agent_submit_class,
body.single-estate_property .agent_contanct_form .realtor-contact-buttons a,
body.single-estate_property .agent_contanct_form .wpresidence_button.message_submit {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  padding: 14px 20px !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  flex: 1 !important;
  min-height: 48px !important;
}

/* Primary buttons: SEND + SEND PRIVATE MESSAGE */
body.single-estate_property .agent_contanct_form .wpresidence_button.agent_submit_class,
body.single-estate_property .agent_contanct_form .wpresidence_button.message_submit {
  background: var(--navy) !important;
  color: var(--white) !important;
  border: 1px solid var(--navy) !important;
}

body.single-estate_property .agent_contanct_form .wpresidence_button.agent_submit_class:hover,
body.single-estate_property .agent_contanct_form .wpresidence_button.message_submit:hover {
  background: var(--gold) !important;
  border-color: var(--gold) !important;
  color: var(--white) !important;
}

/* Secondary buttons: CALL + WHATSAPP */
body.single-estate_property .realtor-contact-buttons a {
  color: var(--stone) !important;
  border: 1px solid var(--sand) !important;
  background: transparent !important;
  text-decoration: none !important;
}

body.single-estate_property .realtor-contact-buttons a:hover {
  color: var(--navy) !important;
  border-color: var(--navy) !important;
}

/* Hide phone number in Call button — number only triggers on click via tel: */
body.single-estate_property .agent_call_no {
  display: none !important;
}

/* Contact form inputs */
body.single-estate_property .contactformwrapper input[type="text"],
body.single-estate_property .contactformwrapper input[type="email"],
body.single-estate_property .contactformwrapper input[type="tel"],
body.single-estate_property .contactformwrapper textarea {
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  border: none !important;
  border-bottom: 1px solid var(--sand) !important;
  background: transparent !important;
  padding: 12px 0 !important;
  color: var(--navy) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.3s ease !important;
}

body.single-estate_property .contactformwrapper input:focus,
body.single-estate_property .contactformwrapper textarea:focus {
  border-bottom-color: var(--navy) !important;
}

body.single-estate_property .contactformwrapper input::placeholder,
body.single-estate_property .contactformwrapper textarea::placeholder {
  color: var(--stone) !important;
  font-weight: 300 !important;
}

/* Submit button — styles now defined in Agent contact buttons section above */
/* (kept for contactformwrapper fallback only) */
body.single-estate_property .contactformwrapper .wpresidence_button {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  background: var(--navy) !important;
  color: var(--white) !important;
  border: 1px solid var(--navy) !important;
  padding: 14px 20px !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
}

body.single-estate_property .contactformwrapper .wpresidence_button:hover {
  background: var(--gold) !important;
  border-color: var(--gold) !important;
  color: var(--white) !important;
}

/* Non-button elements in contact form: take full width */
body.single-estate_property .contact_form_flex_wrapper .contact_form_flex_input_wrapper,
body.single-estate_property .contact_form_flex_wrapper textarea,
body.single-estate_property .contact_form_flex_wrapper .gpr_wrapper,
body.single-estate_property .contact_form_flex_wrapper .message_explaining {
  width: 100% !important;
  flex-basis: 100% !important;
}


/* ─────────────────────────────────────────
   12. SIMILAR LISTINGS
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_similar_section {
  padding: var(--section-pad) !important;
  background: var(--ivory) !important;
}

body.single-estate_property .agent_listings_title_similar {
  font-family: var(--font-serif) !important;
  font-size: 32px !important;
  font-weight: 300 !important;
  color: var(--navy) !important;
  margin-bottom: 40px !important;
  text-align: center !important;
}

body.single-estate_property #property_similar_listings {
  display: grid !important;
  gap: 30px !important;
}

/* Property cards */
body.single-estate_property .property_listing.property_card_default {
  background: var(--white) !important;
  border: 1px solid var(--sand) !important;
  overflow: hidden !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  box-shadow: none !important;
}

body.single-estate_property .property_listing.property_card_default:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 32px rgba(0, 26, 51, 0.08) !important;
}

/* Card image */
body.single-estate_property .listing-unit-img-wrapper {
  aspect-ratio: 16 / 10 !important;
  overflow: hidden !important;
}

body.single-estate_property .listing-unit-img-wrapper img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.5s ease !important;
}

body.single-estate_property .property_listing:hover .listing-unit-img-wrapper img {
  transform: scale(1.03) !important;
}

/* Card info */
body.single-estate_property .property-unit-information-wrapper {
  padding: 24px !important;
}

body.single-estate_property .property-unit-information-wrapper h4,
body.single-estate_property .property-unit-information-wrapper h4 a {
  font-family: var(--font-serif) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  color: var(--navy) !important;
  line-height: 1.3 !important;
  margin-bottom: 8px !important;
}

/* Card price */
body.single-estate_property .listing_unit_price_wrapper,
body.single-estate_property .listing_unit_price_wrapper .price_unit {
  font-family: var(--font-serif) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: var(--navy) !important;
}

/* Card details (beds, baths, etc.) */
body.single-estate_property .property_listing_details {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  color: var(--stone) !important;
}


/* ─────────────────────────────────────────
   13. ACCORDION OVERRIDES (all sections)
   ───────────────────────────────────────── */

body.single-estate_property .panel-group.property-panel {
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
}

body.single-estate_property .panel.panel-default {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  margin: 0 !important;
}

body.single-estate_property .panel-heading {
  background: transparent !important;
  border: none !important;
  padding: 0 0 20px 0 !important;
}

body.single-estate_property .panel-title,
body.single-estate_property .panel-title a,
body.single-estate_property .panel-heading a {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.25em !important;
  color: var(--gold) !important;
  text-decoration: none !important;
  background: transparent !important;
}

body.single-estate_property .panel-body {
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

/* Remove accordion arrows/icons — sections open by default */
body.single-estate_property .panel-title a::after,
body.single-estate_property .panel-title a::before,
body.single-estate_property .panel-heading .accordion-toggle::after,
body.single-estate_property .panel-heading .accordion-toggle::before,
body.single-estate_property .panel-heading i,
body.single-estate_property .panel-title .pull-right {
  display: none !important;
}

/* Force all panels open */
body.single-estate_property .panel-collapse {
  display: block !important;
  height: auto !important;
  visibility: visible !important;
  overflow: visible !important;
}

body.single-estate_property .panel-collapse.collapse:not(.show) {
  display: block !important;
}


/* ─────────────────────────────────────────
   14. SECTION BACKGROUNDS — alternating rhythm
   ───────────────────────────────────────── */

/* Details, Video, Agent, Similar get ivory background (set above individually) */
/* Description, Features, Map, Address stay white (default) */

/* Extra breathing room between Elementor sections */
body.single-estate_property .elementor-section,
body.single-estate_property .elementor-element.e-con {
  margin-bottom: 0 !important;
}

body.single-estate_property .elementor-widget {
  margin-bottom: 0 !important;
}

/* Elementor section inner padding */
body.single-estate_property .elementor-section > .elementor-container,
body.single-estate_property .e-con-inner {
  max-width: var(--content-max) !important;
}


/* ─────────────────────────────────────────
   15. MORTGAGE CALCULATOR
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_mortgage_calculator {
  padding: var(--section-pad) !important;
}

body.single-estate_property .mortgage_calculator_wrapper {
  background: var(--ivory) !important;
  padding: 40px !important;
  border: 1px solid var(--sand) !important;
}

body.single-estate_property .mortgage_calculator_wrapper label {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--stone) !important;
}

body.single-estate_property .mortgage_calculator_wrapper input {
  font-family: var(--font-sans) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  border: none !important;
  border-bottom: 1px solid var(--sand) !important;
  background: transparent !important;
  padding: 10px 0 !important;
  color: var(--navy) !important;
}

body.single-estate_property .mortgage_calculator_wrapper input:focus {
  border-bottom-color: var(--navy) !important;
  outline: none !important;
  box-shadow: none !important;
}

body.single-estate_property .mortgage_result {
  font-family: var(--font-serif) !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  color: var(--navy) !important;
}


/* ─────────────────────────────────────────
   16. FLOOR PLANS
   ───────────────────────────────────────── */

body.single-estate_property .elementor-widget-property_show_floor_plans {
  padding: var(--section-pad) !important;
  background: var(--ivory) !important;
}

body.single-estate_property .floor_plan_wrapper {
  border: 1px solid var(--sand) !important;
  background: var(--white) !important;
  overflow: hidden !important;
}

body.single-estate_property .floor_plan_wrapper img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}

body.single-estate_property .floor_plan_details {
  padding: 24px !important;
}

body.single-estate_property .floor_plan_details h4 {
  font-family: var(--font-serif) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  color: var(--navy) !important;
}

body.single-estate_property .floor_plan_details span {
  font-family: var(--font-sans) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  color: var(--stone) !important;
}


/* ─────────────────────────────────────────
   17. MISC THEME OVERRIDES
   ───────────────────────────────────────── */

/* Breadcrumbs */
body.single-estate_property .breadcrumb_filter,
body.single-estate_property .wpestate_breadcrumbs {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  color: var(--stone) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

body.single-estate_property .breadcrumb_filter a,
body.single-estate_property .wpestate_breadcrumbs a {
  color: var(--stone) !important;
}

body.single-estate_property .breadcrumb_filter a:hover,
body.single-estate_property .wpestate_breadcrumbs a:hover {
  color: var(--navy) !important;
}

/* Print button */
body.single-estate_property .property_print_but,
body.single-estate_property .print_page {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--stone) !important;
}

/* Favorite / save button */
body.single-estate_property .property-action-save,
body.single-estate_property .icon-fav {
  color: var(--stone) !important;
}

body.single-estate_property .property-action-save:hover,
body.single-estate_property .icon-fav:hover {
  color: var(--gold) !important;
}

/* Property ID */
body.single-estate_property .property_id_display {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  color: var(--stone) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

/* WP Residence buttons global */
body.single-estate_property .wpresidence_button {
  font-family: var(--font-sans) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  font-weight: 400 !important;
  transition: all 0.3s ease !important;
}

/* Elementor button overrides */
body.single-estate_property .elementor-button {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.2em !important;
  background: var(--navy) !important;
  color: var(--white) !important;
  border: 2px solid var(--navy) !important;
  padding: 14px 40px !important;
  transition: all 0.3s ease !important;
}

body.single-estate_property .elementor-button:hover {
  background: var(--gold) !important;
  border-color: var(--gold) !important;
}

/* Hide unnecessary default WP Residence elements */
body.single-estate_property .property_energy_star,
body.single-estate_property .wpestate_walkscore_wrapper {
  display: none !important;
}

/* Scrollbar styling */
body.single-estate_property::-webkit-scrollbar {
  width: 8px;
}

body.single-estate_property::-webkit-scrollbar-track {
  background: var(--ivory);
}

body.single-estate_property::-webkit-scrollbar-thumb {
  background: var(--sand);
}

body.single-estate_property::-webkit-scrollbar-thumb:hover {
  background: var(--stone);
}


/* ─────────────────────────────────────────
   18. RESPONSIVE — TABLET (≤1024px)
   ───────────────────────────────────────── */

@media (max-width: 1024px) {
  body.single-estate_property {
    --section-gap: 60px;
    --section-pad: 40px 0;
  }

  body.single-estate_property .entry-title.entry-prop {
    font-size: 32px !important;
  }

  body.single-estate_property .price_area .price_label {
    font-size: 28px !important;
  }

  body.single-estate_property .carousel-item img,
  body.single-estate_property .carousel-inner img {
    height: 60vh !important;
  }

  body.single-estate_property .agent_listings_title_similar {
    font-size: 28px !important;
  }

  body.single-estate_property #accordion_prop_features .panel-body {
    grid-template-columns: 1fr 1fr !important;
  }

  body.single-estate_property .wpestate_contact_form_parent {
    padding: 30px !important;
  }
}


/* ─────────────────────────────────────────
   19. RESPONSIVE — MOBILE (≤768px)
   ───────────────────────────────────────── */

@media (max-width: 768px) {
  body.single-estate_property {
    --section-gap: 40px;
    --section-pad: 30px 0;
  }

  body.single-estate_property .entry-title.entry-prop {
    font-size: 26px !important;
    line-height: 1.25 !important;
  }

  body.single-estate_property .price_area .price_label {
    font-size: 24px !important;
  }

  body.single-estate_property .carousel-item img,
  body.single-estate_property .carousel-inner img {
    height: 50vh !important;
  }

  /* Overview stacks vertically on mobile */
  body.single-estate_property .single-overview-section {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }

  /* Similar listings: 1 column on mobile */
  body.single-estate_property #property_similar_listings {
    grid-template-columns: 1fr !important;
  }

  body.single-estate_property .overview_element + .overview_element::before {
    display: none !important;
  }

  /* Description full width */
  body.single-estate_property .wpestate_property_description,
  body.single-estate_property #wpestate_property_description_section {
    max-width: 100% !important;
  }

  body.single-estate_property .wpestate_property_description p,
  body.single-estate_property #wpestate_property_description_section p {
    font-size: 15px !important;
    line-height: 1.7 !important;
  }

  /* Features single column on mobile */
  body.single-estate_property #accordion_prop_features .panel-body {
    grid-template-columns: 1fr !important;
  }

  /* Map shorter on mobile */
  body.single-estate_property #accordion_prop_map .acc_google_maps,
  body.single-estate_property .google_map_shortcode_wrapper,
  body.single-estate_property .acc_google_maps {
    height: 280px !important;
  }

  /* Agent form full width */
  body.single-estate_property .wpestate_contact_form_parent {
    padding: 24px 20px !important;
  }

  body.single-estate_property .agentpict img {
    width: 60px !important;
    height: 60px !important;
  }

  body.single-estate_property .wpestate_single_agent_details_header_wrapper h3,
  body.single-estate_property .wpestate_single_agent_details_header_wrapper h4,
  body.single-estate_property .agent_details h3,
  body.single-estate_property .agent_details h4 {
    font-size: 18px !important;
  }

  /* Similar listings title */
  body.single-estate_property .agent_listings_title_similar {
    font-size: 24px !important;
    margin-bottom: 24px !important;
  }

  /* Mortgage calculator */
  body.single-estate_property .mortgage_calculator_wrapper {
    padding: 24px 20px !important;
  }

  body.single-estate_property .mortgage_result {
    font-size: 22px !important;
  }

  /* Cards */
  body.single-estate_property .property-unit-information-wrapper {
    padding: 16px !important;
  }

  body.single-estate_property .property-unit-information-wrapper h4,
  body.single-estate_property .property-unit-information-wrapper h4 a {
    font-size: 18px !important;
  }
}


/* ─────────────────────────────────────────
   PHASE 2 — VISUAL IDENTITY (v2 adjustments)
   ───────────────────────────────────────── */

/* --- Y-04: Fix Similar Listings grid — 2+ columns, not 1 per row --- */
body.single-estate_property #property_similar_listings {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 32px !important;
}

/* --- Y-19: Favorite icon — sand default, gold on hover/active (NO PINK) --- */
body.single-estate_property .icon-fav,
body.single-estate_property .icon-fav.icon-fav-off,
body.single-estate_property .property_listing .icon-fav,
body.single-estate_property .listing-unit-img-wrapper .icon-fav {
  color: var(--sand) !important;
  transition: color 0.3s ease !important;
}

body.single-estate_property .icon-fav:hover,
body.single-estate_property .icon-fav.icon-fav-off:hover {
  color: var(--gold) !important;
}

body.single-estate_property .icon-fav.icon-fav-on,
body.single-estate_property .property_listing .icon-fav.icon-fav-on {
  color: var(--gold) !important;
}

/* Favorite icon in title area */
body.single-estate_property #add_favorites,
body.single-estate_property .title_share.isnotfavorite,
body.single-estate_property .title_share.isfavorite {
  color: var(--sand) !important;
  transition: color 0.3s ease !important;
}

body.single-estate_property #add_favorites:hover,
body.single-estate_property .title_share.isnotfavorite:hover {
  color: var(--gold) !important;
}

body.single-estate_property .title_share.isfavorite {
  color: var(--gold) !important;
}

/* --- Card redesign: hide mini slider, description truncated, Details button --- */
body.single-estate_property .property_listing .listing_unit_description,
body.single-estate_property .property_listing .property_unit_button,
body.single-estate_property .property_listing .read_more_button {
  display: none !important;
}

/* Card badge — consistent with design system */
body.single-estate_property .property_listing .status-label,
body.single-estate_property .property_listing .featured_label,
body.single-estate_property .property_listing .featured_div {
  background: rgba(0, 26, 51, 0.9) !important;
  color: var(--white) !important;
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  padding: 6px 14px !important;
}

/* Card location */
body.single-estate_property .property_listing .property_location_image,
body.single-estate_property .property_listing .listing_location {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--stone) !important;
  margin-top: 16px !important;
}

/* Card price — gold accent */
body.single-estate_property .listing_unit_price_wrapper,
body.single-estate_property .listing_unit_price_wrapper .price_unit {
  color: var(--gold) !important;
}

/* --- Y-12: Hide "Updated On" in Overview --- */
body.single-estate_property .overview_element.overview_updatd_on {
  display: none !important;
}

/* --- Y-13: Hide Property ID --- */
body.single-estate_property .listing_detail.property_internal_id {
  display: none !important;
}

body.single-estate_property .property_id_display {
  display: none !important;
}

/* --- Y-14: Hide zip, state, country from address --- */
body.single-estate_property .listing_detail.wpresidence-detail-state-county {
  display: none !important;
}

/* --- Y-15: Hide empty "Year Built" in overview --- */
/* Year Built is in an overview_element with no value — hide via
   the parent section if empty. Specific class-based targeting
   if WP Residence outputs a class; otherwise needs JS. */

/* --- Y-09: Hide Print button --- */
body.single-estate_property #print_page {
  display: none !important;
}


/* ─────────────────────────────────────────
   PHASE 1 — STRUCTURAL FIXES (v2 adjustments)
   ───────────────────────────────────────── */

/* --- Y-01: Hide thumbnail filmstrip under gallery --- */
body.single-estate_property ol.carousel-indicators.carousel-indicators-classic {
  display: none !important;
}

/* --- Y-02: Fix description width + remove blue shadow --- */
body.single-estate_property .wpestate_property_description,
body.single-estate_property #wpestate_property_description_section,
body.single-estate_property .elementor-widget-property_show_description_section .elementor-widget-container {
  max-width: var(--content-max) !important;
  box-shadow: none !important;
}

/* Kill any inherited blue/colored shadow on content wrappers */
body.single-estate_property .container.content_wrapper,
body.single-estate_property .wpestate_content_wrapper_custom_template,
body.single-estate_property .elementor-widget-container {
  box-shadow: none !important;
}

/* --- Y-03: Hide POI icons everywhere --- */
body.single-estate_property .google_map_poi_marker {
  display: none !important;
}

/* Also hide POI inside the slider map overlay */
body.single-estate_property .google_map_slider_wrapper .google_map_poi_marker {
  display: none !important;
}


/* ─────────────────────────────────────────
   20. RESPONSIVE — SMALL MOBILE (≤480px)
   ───────────────────────────────────────── */

@media (max-width: 480px) {
  body.single-estate_property .entry-title.entry-prop {
    font-size: 22px !important;
  }

  body.single-estate_property .price_area .price_label {
    font-size: 20px !important;
  }

  body.single-estate_property .carousel-item img,
  body.single-estate_property .carousel-inner img {
    height: 40vh !important;
  }

  body.single-estate_property .wpresidence_button.agent_submit_class,
  body.single-estate_property .wpresidence_button.message_submit,
  body.single-estate_property .contactformwrapper .wpresidence_button {
    width: 100% !important;
    text-align: center !important;
  }
}

/* ═══════════════════════════════════════════
   PHASE 3 — BRIEFING FIXES (2026-03-01)
   Ref: BRIEFING_CODE_TEMPLATE_PROPERTY_PAGES_FIXES_FINAL.md
   ═══════════════════════════════════════════ */

/* --- FIX 9: Description "Read More" truncation --- */
body.single-estate_property .wpestate_property_description,
body.single-estate_property #wpestate_property_description_section {
  position: relative !important;
}

/* Truncate description by default */
body.single-estate_property .wpestate_property_description:not(.puro-expanded) {
  max-height: 220px !important;
  overflow: hidden !important;
}

/* Gradient fade at the bottom */
body.single-estate_property .wpestate_property_description:not(.puro-expanded)::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 80px !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1)) !important;
  pointer-events: none !important;
}

/* Expanded state — remove constraints */
body.single-estate_property .wpestate_property_description.puro-expanded {
  max-height: none !important;
  overflow: visible !important;
}

body.single-estate_property .wpestate_property_description.puro-expanded::after {
  display: none !important;
}


/* --- FIX 11: Amenities alignment — consistent sub-headers --- */
/* Ensure features panel uses proper grid */
body.single-estate_property #accordion_prop_features .panel-body {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 40px !important;
  align-items: start !important;
}

/* Feature category blocks span full width */
body.single-estate_property #accordion_prop_features [class*="feature_block_"] {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 40px !important;
  margin-bottom: 24px !important;
}

/* Category sub-headers — full width, consistent spacing */
body.single-estate_property #accordion_prop_features .feature_chapter_name {
  grid-column: 1 / -1 !important;
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.2em !important;
  color: var(--stone) !important;
  margin-top: 8px !important;
  margin-bottom: 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--sand) !important;
}

/* First category doesn't need top margin */
body.single-estate_property #accordion_prop_features [class*="feature_block_"]:first-child .feature_chapter_name {
  margin-top: 0 !important;
}

/* Individual features with gold dot */
body.single-estate_property #accordion_prop_features .listing_detail.col-md-4 {
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--navy) !important;
  padding: 10px 0 10px 16px !important;
  border-bottom: 1px solid rgba(212, 207, 200, 0.5) !important;
  position: relative !important;
  width: auto !important;
  max-width: none !important;
}

body.single-estate_property #accordion_prop_features .listing_detail.col-md-4::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 4px !important;
  height: 4px !important;
  background: var(--gold) !important;
  border-radius: 50% !important;
}

/* Hide the check-circle icons */
body.single-estate_property #accordion_prop_features .far.fa-check-circle,
body.single-estate_property #accordion_prop_features i.far {
  display: none !important;
}


/* --- FIX 13: Similar Listings — clean card redesign --- */
/* Grid: 3 columns desktop, already 2 via Y-04, push to 3 */
@media (min-width: 1024px) {
  body.single-estate_property #property_similar_listings {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

/* Similar title spans full grid */
body.single-estate_property #property_similar_listings .agent_listings_title_similar {
  grid-column: 1 / -1 !important;
}

/* Hide the mini carousel/slider inside cards */
body.single-estate_property #property_similar_listings .property_unit_carousel .carousel-control-prev,
body.single-estate_property #property_similar_listings .property_unit_carousel .carousel-control-next,
body.single-estate_property #property_similar_listings .carousel-indicators {
  display: none !important;
}

/* Card image — single image, editorial aspect ratio */
body.single-estate_property #property_similar_listings .listing-unit-img-wrapper {
  aspect-ratio: 16 / 10 !important;
  overflow: hidden !important;
}

body.single-estate_property #property_similar_listings .listing-unit-img-wrapper img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.5s ease !important;
}

body.single-estate_property #property_similar_listings .property_listing:hover .listing-unit-img-wrapper img {
  transform: scale(1.03) !important;
}

/* Card body — clean layout */
body.single-estate_property #property_similar_listings .property-unit-information-wrapper {
  padding: 20px !important;
}

/* Card title */
body.single-estate_property #property_similar_listings .property-unit-information-wrapper h4,
body.single-estate_property #property_similar_listings .property-unit-information-wrapper h4 a {
  font-family: var(--font-serif) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  color: var(--navy) !important;
  line-height: 1.3 !important;
  margin: 0 0 8px !important;
}

/* Card price */
body.single-estate_property #property_similar_listings .listing_unit_price_wrapper {
  font-family: var(--font-serif) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: var(--gold) !important;
  margin-bottom: 12px !important;
}

/* Card specs — beds/baths */
body.single-estate_property #property_similar_listings .property_listing_details {
  font-family: var(--font-sans) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  color: var(--stone) !important;
  border-top: 1px solid var(--sand) !important;
  padding-top: 12px !important;
  margin-top: 12px !important;
}

/* Hide description excerpt in cards */
body.single-estate_property #property_similar_listings .listing_details.the_grid_view,
body.single-estate_property #property_similar_listings .listing_details.the_list_view {
  display: none !important;
}

/* Hide share/compare/favorite/action buttons in similar listing cards */
body.single-estate_property #property_similar_listings .share_unit,
body.single-estate_property #property_similar_listings .share_list,
body.single-estate_property #property_similar_listings .title_share,
body.single-estate_property #property_similar_listings .single_property_action,
body.single-estate_property #property_similar_listings .property_action_wrapper,
body.single-estate_property #property_similar_listings .add_favorites,
body.single-estate_property #property_similar_listings .action_tag_wrapper,
body.single-estate_property #property_similar_listings .actioncat,
body.single-estate_property #property_similar_listings .property_compare_wrapper,
body.single-estate_property #property_similar_listings .compare-action {
  display: none !important;
}

/* Multiple stacked badges — limit to 1, clean style */
body.single-estate_property #property_similar_listings .tag-wrapper {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

body.single-estate_property #property_similar_listings .tag-wrapper .status-wrapper {
  display: none !important;
}

body.single-estate_property #property_similar_listings .tag-wrapper .featured_div {
  background: rgba(0, 26, 51, 0.9) !important;
  color: var(--white) !important;
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  padding: 6px 14px !important;
}

/* Location overlay on image */
body.single-estate_property #property_similar_listings .property_location_image {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--white) !important;
}

body.single-estate_property #property_similar_listings .property_location_image a {
  color: var(--white) !important;
}

/* Card hover effect */
body.single-estate_property #property_similar_listings .property_listing {
  border: none !important;
  box-shadow: none !important;
  overflow: hidden !important;
  transition: transform 0.4s ease, box-shadow 0.4s ease !important;
}

body.single-estate_property #property_similar_listings .property_listing:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08) !important;
}

/* Column widths — make them proper inside grid */
body.single-estate_property #property_similar_listings .listing_wrapper {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

/* Card media count overlay */
body.single-estate_property #property_similar_listings .property_media {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  color: var(--white) !important;
}

/* Hide the prop_new_details_back dark overlay */
body.single-estate_property #property_similar_listings .prop_new_details_back {
  background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 60%) !important;
}


/* --- FIX 14: Favorites — already handled by Y-19 (gold, not pink) --- */
/* Extra specificity for heart icon inside similar listings */
body.single-estate_property #property_similar_listings .icon-fav,
body.single-estate_property #property_similar_listings .add_to_fav {
  color: var(--sand) !important;
}

body.single-estate_property #property_similar_listings .icon-fav:hover,
body.single-estate_property #property_similar_listings .add_to_fav:hover {
  color: var(--gold) !important;
}


/* ═══════════════════════════════════════════
   PHASE 3b — LIVE FEEDBACK FIXES (2026-03-01)
   ═══════════════════════════════════════════ */

/* --- FIX: Read More link alignment with Description heading --- */
body.single-estate_property .puro-readmore-toggle {
  display: inline-block !important;
  margin-top: 16px !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
  text-align: left !important;
}

/* Ensure the description wrapper and toggle share same left alignment */
body.single-estate_property .elementor-widget-property_show_description_section .elementor-widget-container {
  position: relative !important;
}


/* --- FIX: Map hover green → navy/gold --- */
/* Price-pin hover state */
body.single-estate_property .hover_z_pin,
.hover_z_pin {
  background-color: #001a33 !important;
  color: #ffffff !important;
}

.hover_z_pin:before,
body.single-estate_property .hover_z_pin:before {
  border-top: 6px solid #001a33 !important;
}

/* Sales marker green override */
.wpestate_marker.sales {
  background-color: #001a33 !important;
}

.wpestate_marker.sales:before {
  border-top: 10px solid #001a33 !important;
}

/* All marker states — unified stone default, navy hover */
.wpestate_marker {
  background-color: #8a8580 !important;
  color: #ffffff !important;
}

.wpestate_marker:before {
  border-top: 6px solid #8a8580 !important;
}

.wpestate_marker:hover,
.wpestate_marker.hover_z_pin {
  background-color: #001a33 !important;
}

.wpestate_marker:hover:before,
.wpestate_marker.hover_z_pin:before {
  border-top: 6px solid #001a33 !important;
}


/* --- FIX: Similar Listings — 2 columns, not 3. Centered. --- */
body.single-estate_property #property_similar_listings {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 32px !important;
  max-width: var(--content-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Title spans full grid */
body.single-estate_property #property_similar_listings .agent_listings_title_similar {
  grid-column: 1 / -1 !important;
  text-align: center !important;
}

/* Cards fill their grid cell */
body.single-estate_property #property_similar_listings .listing_wrapper {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: none !important;
}

/* Override the 3-column rule from Phase 3 */
@media (min-width: 1024px) {
  body.single-estate_property #property_similar_listings {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* Mobile: 1 column */
@media (max-width: 768px) {
  body.single-estate_property #property_similar_listings {
    grid-template-columns: 1fr !important;
  }
}


/* --- FIX: Favorites global (not scoped to property page) --- */
/* Realty version — applies everywhere */
.icon-fav,
.icon-fav.icon-fav-off,
.property_listing .icon-fav,
.listing-unit-img-wrapper .icon-fav,
#add_favorites,
#add_favorites.isnotfavorite,
.title_share.isnotfavorite {
  color: #d4cfc8 !important;
  transition: color 0.3s ease !important;
}

.icon-fav:hover,
.icon-fav.icon-fav-off:hover,
.property_listing .icon-fav:hover,
#add_favorites:hover,
.title_share.isnotfavorite:hover {
  color: #c4a872 !important;
}

.icon-fav.icon-fav-on,
.property_listing .icon-fav.icon-fav-on,
#add_favorites.isfavorite,
.title_share.isfavorite {
  color: #c4a872 !important;
}

/* Heart icon inside font-awesome */
.icon-fav i.fa-heart,
.icon-fav i.far.fa-heart,
#add_favorites i.fa-heart,
#add_favorites i.far.fa-heart {
  color: inherit !important;
}



/* ═══════════════════════════════════════════
   PHASE 4 — CLEAN FIXES (replaces 3h/3h-fix/3i)
   ═══════════════════════════════════════════ */

/* --- Similar Listings: cards fill their grid cells --- */
/* The grid is already set by Y-04 (2-col) and FIX 13 (3-col desktop).
   Bootstrap .row has negative margins + col-* has width:50%.
   Override both to let CSS grid control layout. */
body.single-estate_property #property_similar_listings.row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.single-estate_property #property_similar_listings > .listing_wrapper[class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}

/* Title spans full grid */
body.single-estate_property #property_similar_listings > .agent_listings_title_similar {
  grid-column: 1 / -1 !important;
}

/* --- Read More toggle: align with Description heading --- */
/* The toggle is appended to .elementor-widget-container (parent of desc).
   The Description heading h4.panel-title sits inside .wpestate_property_description.
   Both share the same .elementor-widget-container, so horizontal alignment matches. */
body.single-estate_property .puro-readmore-toggle {
  display: block !important;
  margin-top: 16px !important;
}

/* ═══════════════════════════════════════════
   FIX 14: Read More — align with Description text
   FIX 15: Similar Listings — center cards in container
   ═══════════════════════════════════════════ */

/* --- FIX 14: Read More toggle left-aligned with description text --- */
body.single-estate_property .puro-readmore-toggle {
  display: inline-block !important;
  margin-top: 20px !important;
  font-family: var(--font-sans, 'Outfit', sans-serif) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--gold, #c4a872) !important;
  border-bottom: 1px solid var(--gold, #c4a872) !important;
  padding-bottom: 2px !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

/* --- FIX 15: Similar Listings — center the grid when cards don't fill the row --- */
body.single-estate_property #property_similar_listings {
  display: grid !important;
  gap: 30px !important;
  grid-template-columns: repeat(2, 1fr) !important;
  justify-items: center !important;
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}

/* Override Bootstrap .row negative margins */
body.single-estate_property #property_similar_listings.row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Override Bootstrap col widths — let grid handle sizing */
body.single-estate_property #property_similar_listings > .listing_wrapper {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Title spans full grid */
body.single-estate_property #property_similar_listings > .agent_listings_title_similar {
  grid-column: 1 / -1 !important;
  width: 100% !important;
}

@media (min-width: 1024px) {
  body.single-estate_property #property_similar_listings {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 767px) {
  body.single-estate_property #property_similar_listings {
    grid-template-columns: 1fr !important;
  }
}

/* --- FIX 16: Similar Listings — force hide carousel arrows and controls --- */
body.single-estate_property #property_similar_listings .carousel-control-prev,
body.single-estate_property #property_similar_listings .carousel-control-next,
body.single-estate_property #property_similar_listings .carousel-control-prev-icon,
body.single-estate_property #property_similar_listings .carousel-control-next-icon,
body.single-estate_property #property_similar_listings .carousel-indicators,
body.single-estate_property #property_similar_listings .listing_wrapper .carousel-control-prev,
body.single-estate_property #property_similar_listings .listing_wrapper .carousel-control-next {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}
