@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Outfit:wght@200;300;400;500&display=swap');

/* === ROOT VARIABLES === */
:root {
  --pd-charcoal: #1a1a1a;
  --pd-navy: #001a33;
  --pd-navy-mid: #0a2a47;
  --pd-smoke: #2a2a2a;
  --pd-stone: #8a8580;
  --pd-warm-grey: #b5b0aa;
  --pd-sand: #d4cfc8;
  --pd-cream: #f0ece6;
  --pd-ivory: #f8f6f2;
  --pd-white: #ffffff;
  --pd-serif: 'Cormorant Garamond', Georgia, serif;
  --pd-sans: 'Outfit', 'Helvetica Neue', Arial, sans-serif;
}

/* === GLOBAL RESET === */
body {
  font-family: var(--pd-sans) !important;
  font-weight: 300 !important;
  color: var(--pd-charcoal) !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

/* === PAGE BACKGROUND === */
.advanced_search_results-php,
.page-template-advanced_search_results-php {
  background: var(--pd-ivory) !important;
}

/* ================================================================
   SEARCH BAR / FILTERS
   ================================================================ */

.header_media,
.header_media.d-flex {
  background: var(--pd-white) !important;
  border-bottom: 1px solid var(--pd-sand) !important;
  box-shadow: none !important;
}

/* Tab navigation (Sales / Invest etc.) */
.adv_search_tab,
.wpestate_show_advanced_search_tabs_function {
  background: transparent !important;
  border: none !important;
}

.adv_search_tab_item,
.nav-link.adv_search_tab_item {
  font-family: var(--pd-sans) !important;
  font-weight: 400 !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--pd-stone) !important;
  border: none !important;
  background: transparent !important;
  padding: 8px 16px !important;
  border-bottom: 2px solid transparent !important;
  transition: all 0.2s ease !important;
  border-radius: 0 !important;
}

.adv_search_tab_item:hover {
  color: var(--pd-charcoal) !important;
}

.adv_search_tab_item.active {
  color: var(--pd-navy) !important;
  border-bottom-color: var(--pd-navy) !important;
  background: transparent !important;
}

/* Filter dropdowns */
.filter_menu_trigger,
.btn.dropdown-toggle.filter_menu_trigger {
  font-family: var(--pd-sans) !important;
  font-weight: 300 !important;
  font-size: 13px !important;
  color: var(--pd-charcoal) !important;
  background: var(--pd-ivory) !important;
  border: 1px solid var(--pd-sand) !important;
  border-radius: 4px !important;
  padding: 10px 16px !important;
  transition: border-color 0.2s ease !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}

.filter_menu_trigger:hover,
.filter_menu_trigger:focus {
  border-color: var(--pd-stone) !important;
  box-shadow: none !important;
}

/* Filter dropdown menu */
.dropdown-menu.filter_menu {
  font-family: var(--pd-sans) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  border: 1px solid var(--pd-sand) !important;
  border-radius: 4px !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.06) !important;
  padding: 8px 0 !important;
  max-height: 280px !important;
  overflow-y: auto !important;
}

.dropdown-menu.filter_menu li,
.dropdown-menu.filter_menu li a {
  font-family: var(--pd-sans) !important;
  font-weight: 300 !important;
  font-size: 13px !important;
  color: var(--pd-charcoal) !important;
  padding: 8px 16px !important;
}

.dropdown-menu.filter_menu li a:hover,
.dropdown-menu.filter_menu li.selected a {
  background: var(--pd-ivory) !important;
  color: var(--pd-navy) !important;
}

/* Bedrooms / Size fields */
.property_bedrooms .filter_menu_trigger,
.property_size .filter_menu_trigger {
  font-size: 13px !important;
}

/* Search button — NAVY for Realty */
.adv_search_1 .advanced_search_submit_button,
.wpresidence_search_button,
#adv_submit {
  font-family: var(--pd-sans) !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  background: var(--pd-navy) !important;
  color: var(--pd-white) !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 12px 28px !important;
  transition: background 0.2s ease !important;
}

.adv_search_1 .advanced_search_submit_button:hover,
#adv_submit:hover {
  background: var(--pd-navy-mid) !important;
}

/* Price slider */
.adv_search_slider .ui-slider,
.noUi-target {
  background: var(--pd-sand) !important;
  border: none !important;
  height: 3px !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

.adv_search_slider .ui-slider .ui-slider-range,
.noUi-connect {
  background: var(--pd-navy) !important;
}

.adv_search_slider .ui-slider .ui-slider-handle,
.noUi-handle {
  background: var(--pd-white) !important;
  border: 2px solid var(--pd-navy) !important;
  border-radius: 50% !important;
  width: 16px !important;
  height: 16px !important;
  top: -7px !important;
  cursor: pointer !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1) !important;
}

.noUi-handle::before,
.noUi-handle::after {
  display: none !important;
}

/* Filter labels */
.search_form_label,
.wpestate-field-on-mainform label,
.filter_label {
  font-family: var(--pd-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--pd-stone) !important;
}

/* ================================================================
   PROPERTY CARDS
   ================================================================ */

.property_listing,
.property_listing.property_card_default {
  background: var(--pd-white) !important;
  border: 1px solid rgba(212,207,200,0.5) !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  box-shadow: none !important;
  transition: box-shadow 0.3s ease, transform 0.2s ease !important;
}

.property_listing:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.06) !important;
  transform: translateY(-2px) !important;
}

/* Card image */
.listing-unit-img-wrapper {
  border-radius: 6px 6px 0 0 !important;
  overflow: hidden !important;
}

.listing-unit-img-wrapper img {
  transition: transform 0.5s ease !important;
}

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

/* Carousel arrows */
.property_unit_carousel .carousel-control-prev,
.property_unit_carousel .carousel-control-next {
  background: rgba(255,255,255,0.85) !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  opacity: 0 !important;
  transition: opacity 0.2s ease !important;
}

.property_listing:hover .carousel-control-prev,
.property_listing:hover .carousel-control-next {
  opacity: 1 !important;
}

/* Property title */
.listing_name h4,
.listing_name h4 a {
  font-family: var(--pd-serif) !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  color: var(--pd-charcoal) !important;
  text-decoration: none !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.listing_name h4 a:hover {
  color: var(--pd-navy) !important;
}

/* Price */
.listing_unit_price_wrapper,
.price_unit,
.listing_unit_price_wrapper .price_unit {
  font-family: var(--pd-sans) !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  color: var(--pd-navy) !important;
  letter-spacing: 0.02em !important;
}

/* Property meta (beds, baths, sqm) */
.property_listing_details,
.property-unit-information-wrapper,
.listing_details {
  font-family: var(--pd-sans) !important;
  font-weight: 300 !important;
  font-size: 12px !important;
  color: var(--pd-stone) !important;
  border-top: 1px solid var(--pd-sand) !important;
}

.inforoom_unit_type,
.property_listing_details span {
  color: var(--pd-stone) !important;
  font-family: var(--pd-sans) !important;
}

/* Property description snippet */
.property_listing .listing_details .the_grid_view,
.property_listing .listing_details .the_list_view {
  font-family: var(--pd-sans) !important;
  font-weight: 300 !important;
  font-size: 13px !important;
  line-height: 1.7 !important;
  color: #666 !important;
}

/* Location badge */
.property_location_image {
  font-family: var(--pd-sans) !important;
  font-weight: 400 !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: rgba(0,26,51,0.8) !important;
  color: var(--pd-white) !important;
  border-radius: 3px !important;
  padding: 4px 10px !important;
  backdrop-filter: blur(4px) !important;
}

/* Sale/Rent badge */
.property_listing .action_tag_wrapper .property_status {
  font-family: var(--pd-sans) !important;
  font-size: 9px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  background: var(--pd-navy) !important;
  color: var(--pd-white) !important;
  border-radius: 3px !important;
  padding: 4px 10px !important;
}

/* Details button */
.property_listing a.property_unit_details_button,
.property_listing .wpresidence_button {
  font-family: var(--pd-sans) !important;
  font-weight: 400 !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--pd-stone) !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.property_listing a.property_unit_details_button:hover {
  color: var(--pd-navy) !important;
}

/* ================================================================
   RESULTS LAYOUT
   ================================================================ */

.listing_wrapper,
.col-lg-6.listing_wrapper {
  padding: 12px !important;
}

/* Results bar */
.listing_actions,
.adv_listing_filters_head {
  font-family: var(--pd-sans) !important;
  font-weight: 300 !important;
  font-size: 13px !important;
  color: var(--pd-stone) !important;
  padding: 16px 12px !important;
  border-bottom: 1px solid var(--pd-sand) !important;
  margin-bottom: 8px !important;
}

/* Sort dropdown */
.listing_actions .dropdown .filter_menu_trigger,
.wpresidence_wrap_a_filter_order .filter_menu_trigger {
  font-size: 12px !important;
  padding: 6px 12px !important;
  background: transparent !important;
  border: 1px solid var(--pd-sand) !important;
}

/* Grid/List view toggle */
.listing_filter_views,
.grid_filter_wiew,
.list_filter_wiew {
  opacity: 0.5 !important;
  transition: opacity 0.2s ease !important;
}

.listing_filter_views:hover { opacity: 0.8 !important; }
.listing_filter_views.active_filter,
.listing_filter_views.active { opacity: 1 !important; }

/* ================================================================
   MAP
   ================================================================ */

.gm-style {
  font-family: var(--pd-sans) !important;
}

.gm-style-iw {
  font-family: var(--pd-sans) !important;
  border-radius: 6px !important;
}

/* ================================================================
   PAGINATION
   ================================================================ */
.pagination_numb .pagination li a,
.pagination_numb .pagination li span,
.page-numbers {
  font-family: var(--pd-sans) !important;
  font-weight: 400 !important;
  font-size: 13px !important;
  border: 1px solid var(--pd-sand) !important;
  color: var(--pd-stone) !important;
  border-radius: 4px !important;
  padding: 8px 14px !important;
  transition: all 0.2s ease !important;
  background: var(--pd-white) !important;
  text-decoration: none !important;
}

.pagination_numb .pagination li.active a,
.pagination_numb .pagination li.active span,
.pagination_numb .pagination li a:hover,
.page-numbers.current,
.page-numbers:hover {
  background: var(--pd-navy) !important;
  color: var(--pd-white) !important;
  border-color: var(--pd-navy) !important;
}

/* ================================================================
   SAVE SEARCH / LOGIN PROMPTS
   ================================================================ */
.latest_listings .login_to_save_search {
  font-family: var(--pd-sans) !important;
  font-size: 12px !important;
  color: var(--pd-warm-grey) !important;
}

.latest_listings .login_to_save_search a {
  color: var(--pd-navy) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--pd-sand) !important;
  text-underline-offset: 2px !important;
}

/* ================================================================
   PERFORMANCE
   ================================================================ */

.property_listing,
.half_map_results_wrapper,
.header_media {
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}

.listing-unit-img-wrapper img {
  image-rendering: auto;
  will-change: transform;
}

.property_listing {
  contain: layout style;
}

/* Reduce animation jank */
.property_listing,
.property_listing * {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 768px) {
  .filter_menu_trigger,
  .btn.dropdown-toggle.filter_menu_trigger {
    font-size: 12px !important;
    padding: 8px 12px !important;
  }

  .listing_wrapper,
  .col-lg-6.listing_wrapper {
    padding: 8px !important;
  }

  .listing_name h4,
  .listing_name h4 a {
    font-size: 16px !important;
  }

  .adv_search_tab_item,
  .nav-link.adv_search_tab_item {
    font-size: 10px !important;
    padding: 6px 10px !important;
  }
}

/* ================================================================
   FAVORITE HEART ICON — match property-page design system style
   Overrides parent theme default colors for icon-fav
   ================================================================ */

/* Heart icon color — sand default, gold on hover/active */
.icon-fav,
.icon-fav.icon-fav-off,
.property_listing .icon-fav,
.listing-unit-img-wrapper .icon-fav {
  color: var(--pd-sand, #d4cfc8) !important;
  transition: color 0.3s ease !important;
  border: none !important;
}

.icon-fav:hover,
.icon-fav.icon-fav-off:hover,
.property_listing .icon-fav:hover {
  color: var(--pd-stone, #8a8580) !important;
  border: none !important;
}

.icon-fav.icon-fav-on,
.property_listing .icon-fav.icon-fav-on {
  color: var(--pd-stone, #8a8580) !important;
}

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

/* === SPACING BEFORE FOOTER === */
.advanced_search_results-php #content,
.advanced_search_results-php .content_wrapper,
.page-template-advanced_search_results-php #content,
.page-template-advanced_search_results-php .content_wrapper {
  padding-bottom: 120px !important;
}
