/**
 * Pyvot Listings – front-end styles.
 *
 * Moved from the Divi child theme's style.css (Communities, Available Homes, Floor Plans sections).
 * Loaded only on listing pages and pages that use the listing shortcodes.
 */

/**--------------------------------
 * Communities CSS
 -------------------------------**/
/** Main Community **/
.communities__no-data {
  display: block;
  padding: 40px;
  text-align: center;
  width: 100%;
  font-size: 20px;
}
.communities__wrapper {
  background-color: rgb(245, 245, 246);
  display: flex;
}
.communities__left {
  width: 775px;
  padding: 15px;
  height: 945px;
  overflow-y: scroll;
}
.communities__right {
  width: 100%;
}
.community__item {
  display: flex;
  background-color: #ffffff;
  margin-bottom: 15px;
}
.community__item:last-child {
  margin-bottom: 0;
}
.community__accordion-title-mobile {
  display: none;
}
.community__img {
  width: 170px;
}
.community__img img {
  width: 170px;
  height: 150px;
  object-fit: cover;
}
.community__details {
  padding: 10px 20px;
  width: 300px;
}
.community__details h4 {
  font-weight: 700;
  font-size: 18px;
  padding-bottom: 0;
}
.community__city-state {
  display: block;
  font-size: 18px;
}
.community__price-range,
.community__sqft-range {
  display: block;
  font-size: 14px;
  line-height: 1.2em;
}
.community__link {
  background-color: #f47f22;
  color: #ffffff;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 15px;
  display: flex;
  align-items: center;
  width: fit-content;
  gap: 10px;
  padding: 7px 20px;
  margin-top: 10px;
  justify-content: space-between;
}
.gm-style-iw {
  width: 280px;
  max-width: 280px !important;
}
.info-window__img {
  margin-bottom: 10px;
}
.info-window__img img {
  max-width: 100%;
  display: block;
  height: auto;
}
.info-window__title {
  text-align: center;
  font-weight: 700;
  font-size: 22px;
}
.info-window__text {
  display: block;
  font-size: 14px;
  margin-bottom: 3px;
}
.info-window__link {
  width: 100%;
  background-color: #f47f22;
  display: flex;
  color: #ffffff;
  align-items: center;
  padding: 15px;
  font-weight: 600;
  text-transform: uppercase;
  gap: 10px;
  justify-content: center;
  margin-top: 15px;
}
.gm-ui-hover-effect {
  height: 28px !important;
}
.gm-ui-hover-effect>span {
  background-color: #000;
  height: 18px !important;
  margin: 0 0 0 24px !important;
  width: 18px !important;
}

/** Single Community **/
.single-communities .community__gallery .grid-item:nth-child(n+7),
.single-communities #see-more-photos.hidden,
.single-communities .available-homes__featured-content .available-homes__featured-item:nth-child(n+7),
.single-communities #see-more-quick-move.hidden,
.single-communities .floor-plan__featured-content .floor-plan__featured-item:nth-child(n+7),
.single-communities #see-more-floorplans.hidden {
  display: none;
}

.single-communities .community__gallery.show-all .grid-item:nth-child(n+7),
.single-communities .available-homes__featured-content.show-all .available-homes__featured-item:nth-child(n+7),
.single-communities .floor-plan__featured-content.show-all .floor-plan__featured-item:nth-child(n+7) {
  display: block;
}

.single-communities #see-more-photos,
.single-communities #see-more-quick-move,
.single-communities #see-more-floorplans,
.pyvot-link {
  border: 0 none;
  margin: 20px auto 0;
  width: fit-content;
  background-color: #f47f22;
  display: block;
  text-align: center;
  color: #ffffff;
  text-transform: uppercase;
  font-size: 20px;
  font-weight: 600;
  padding: 15px;
}
.community__section {
  padding: 50px 30px;
}
.community__heading-h2 {
  text-align: center;
  padding-bottom: 0;
  margin-bottom: 25px;
}
.single-communities #hero {
    padding-top: 0;
}
.hero__community-content {
  display: flex;
  height: 100vh;
}
.hero__community-details {
  background-color: #e7e7e7;
  width: 33.333vw;
}
.hero__community-address,
.hero__community-broker,
.hero__community-schools {
  padding: 20px 50px;
}
.hero__community-title {
  font-size: 24px;
  font-weight: 700;
  padding-bottom: 0;
}
.hero__community-price {
  background-color: #ffffff;
  padding: 20px 50px;
}
.hero__community-price-starting {
  font-size: 24px;
  font-weight: 700;
}
.hero__community-heading,
.hero__community-price-heading {
  padding-bottom: 0;
  font-weight: 700;
  font-size: 18px;
}
.hero__community-model-home,
.hero__community-sqft-range,
.hero__community-status {
  padding: 0 50px;
}
.hero__community-model-home {
  padding-top: 20px;
  margin-bottom: 20px;
}
.hero__community-sqft-range {
  margin-bottom: 5px;
}
.hero__community-status {
  padding-bottom: 5px;
}
.hero__community-sqft-range, 
.hero__community-status {
  display: flex;
  align-items: center;
  gap: 5px;
}
.hero__community-broker-img {
  max-width: 120px;
}
.hero__community-model-home a {
  display: inline-block;
  color: #740B06;
  font-weight: 700;
  font-size: 18px;
}
.hero__community-text--address {
  width: 50%;
  display: block;
}
.hero__community-text {
  font-size: 18px;
}
.hero__community-broker-content {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 10px;
}
.hero__community-broker-name {
  font-size: 18px;
  font-weight: 700;
  padding-bottom: 0;
  margin-bottom: 5px;
}
.hero__community-broker-phone {
  color: #740B06;
  font-size: 18px;
}
.hero__community-broker-schedule {
  border: 0 none;
  background-color: #f47f22;
  color: #ffffff;
  cursor: pointer;
  padding: 10px 20px;
  display: inline-block;
  font-size: 18px;
}
.hero__community-schools h3,
.hero__community-interactive-map h3 {
  margin-bottom: 10px;
  padding-bottom: 0;
  font-weight: 700;
}
.hero__community-interactive-map {
  padding: 0 50px 20px;
}
.hero__community-interactive-map a {
  border: 0 none;
  background-color: #f47f22;
  padding: 10px 20px;
  display: inline-block;
  color: #ffffff;
  font-size: 18px;
}
.hero__community-img {
  position: relative;
  width: 100%;
}
.hero__community-bg {
  background: transparent no-repeat scroll center center / cover;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
#schedule-form-popup {
  position: fixed;
  left: 0;
  top: 0;
  background-color: rgba(0, 0, 0, 0.9);
  width: 100%;
  height: 100%;
  z-index: 999999;
  padding: 50px 25px;
  overflow-y: scroll;
}
.schedule__popup-form-container {
  width: 100%;
  max-width: 650px;
  margin: 0 auto;
}
.schedule__popup-form-content {
  background-color: #ffffff;
  padding: 30px 25px;
  clear: both;
}
.popup-visible {
  display: block;
}
.popup-hidden {
  display: none;
}
#close-popup-btn {
  float: right;
  background: transparent;
  border: 0 none;
  color: #ffffff;
  cursor: pointer;
  margin-bottom: 10px;
  font-size: 20px;
}
.community__tab-nav {
  background-color: #000000;
}
.community__tab-nav.sticky-tab {
  position: sticky;
  z-index: 1;
  width: 100%;
  top: 0;
}
.community__tab-nav-list {
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: center;
}
.community__tab-nav-list li a {
  color: #ffffff;
  text-transform: uppercase;
  font-weight: 700;
  padding: 20px;
  display: block;
  -webkit-transition: all 0.5s ease-in-out 0s;
  -moz-transition: all 0.5s ease-in-out 0s;
  transition: all 0.5s ease-in-out 0s;
}
.community__tab-nav-list li a:hover {
  background-color: #e7e7e7;
  color: #000000;
}
.overview__text,
.city__text {
  max-width: 1150px;
  margin: 0 auto;
  overflow: hidden; /* clearfix so the container doesn't collapse around the float */
}

.overview__video {
  float: right;
  width: 46%;
  max-width: 480px;
  margin: 0 0 20px 40px; /* bottom + left spacing so text doesn't hug it */
}

.overview__video video {
  width: 100%;
  display: block;
  border-radius: 8px; /* optional, matches the rounded corners in your screenshot */
}

.overview__main-text {
  width: 100%;
}

.overview__text p {
  text-align: justify;
}
.community__text {
  max-width: 800px;
  margin: 0 auto;
}
.community__text p {
  text-align: center;
}
.photos__gallery {
  max-width: 1240px;
  margin: 0 auto;
}
.community__gallery,
.community__map-gallery,
.floor-plan__gallery {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
}
.grid-item {
  width: 32.2%;
  position: relative;
}
.community__map-img {
  max-width: 816px;
  margin: 0 auto;
}
.community__video {
  max-width: 705px;
  margin: 0 auto;
}
.directions__content {
  max-width: 1270px;
  margin: 0 auto;
  display: flex;
}
.directions__info {
  max-width: 408px;
  background-color: #EFEFEF;
  padding: 30px;
}
.directions__info p {
  font-size: 18px;
  margin-bottom: 20px;
}
.directions__link {
  background-color: #121212;
  display: flex;
  color: #ffffff;
  padding: 10px 20px;
  text-transform: uppercase;
  font-weight: 600;
  font-size: 20px;
  align-items: center;
  gap: 15px;
  width: fit-content;
}
.directions__map {
  width: 100%;
}
.acf-map {
  width: 100%;
  height: 400px;
}
.acf-map img {
 max-width: inherit !important;
}
.available-homes__content {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
}

/*--------------------------------
 * Available Homes - Main
 -------------------------------**/
.main-ah1 .available-homes__featured-details-list,
.main-ah2 .available-homes__featured-details-list,
.main-ah1 .available-homes__featured-property-features ul,
.main-ah2 .available-homes__featured-property-features ul {
  padding: 0 !important;
}
.main-ah1 .available-homes__featured-details-list li,
.main-ah2 .available-homes__featured-details-list li,
.main-ah1 .available-homes__featured-property-features ul li,
.main-ah2 .available-homes__featured-property-features ul li {
  list-style: none;
}
.community__section.main-ah1 {
  padding: 0 0 70px !important;
}
.community__section.main-ah2 {
  padding: 0 0 40px !important;
}
.available-homes__filters {
  padding: 0 30px;
  display: flex;
  justify-content: center;
  border-bottom: 1px solid rgba(0, 0, 0, 0.09);
  margin-bottom: 40px;
}
.filter-group {
  display: flex;
  align-items: center;
  gap: 30px;
}
.filter-dropdown {
  padding: 20px 10px;
  font-size: 18px;
  border: 0 none;
}
.filter-reset {
  background-color: #ff7f1a;
  border: 0 none;
  color: #ffffff;
  padding: 10px;
  font-weight: 600;
  cursor: pointer;
}

/*--------------------------------
 * Available Homes - Featured
 -------------------------------**/
 .available-homes__featured-content {
  display: flex;
  gap: 30px;
  width: 100%;
  max-width: 1270px;
  margin: 0 auto;
  justify-content: center;
  flex-wrap: wrap;
}
.available-homes__featured-item {
  background-color: #f3f3f3;
  width: 31.75%;
}
.main-ah1 .available-homes__featured-item {
  width: 29%;
}
.available-homes__featured-img {
  padding: 10px;
  height: 235px;
  overflow: hidden;
  margin-bottom: 10px;
}
.main-ah1 .available-homes__featured-img {
  padding-bottom: 0;
  margin-bottom: 0;
}
.available-homes__featured-address {
  background-color: #e9eaea;
  padding: 15px 25px;
}
.available-homes__featured-address-title {
  padding-bottom: 0;
  font-weight: 700;
  color: #333333;
}
.available-homes__featured-city-state {
  font-weight: 700;
  color: #333333;
  display: block;
}
.available-homes__featured-details {
  padding: 15px 25px;
  min-height: 138px;
}
.available-homes__featured-property-features {
  padding: 15px 25px;
}
.available-homes__featured-property-features ul {
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.available-homes__property-features-icon {
  max-width: 30px;
  margin: 0 auto;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.available-homes__property-features-value {
  display: block;
  font-weight: 700;
  text-align: center;
  line-height: 1.2em;
}
.available-homes__property-features-title {
  display: block;
  text-align: center;
  line-height: 1.2em;
}
.available-homes__featured-price {
  background-color: #e9eaea;
  padding: 15px 25px;
}
.available-homes__featured-price.sold {
  background-color: #b30505;
}
.available-homes__featured-price.sold span {
  color: #ffffff;
  text-align: center;
}
.available-homes__property-features-price {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: #333333;
}
.available-homes__featured-view-link {
  background-color: #f47f22;
  display: block;
  text-align: center;
  color: #ffffff;
  text-transform: uppercase;
  font-size: 20px;
  font-weight: 600;
  padding: 15px;
}

/*--------------------------------
 * Available Homes - Single
 -------------------------------**/
.single-available_homes #hero {
    padding-top: 0;
}
.single-available_homes .community__tab-nav.sticky-tab {
    top: 0;
}
.hero__available-homes-address {
  padding: 20px 25px;
}
.hero__available-homes-price {
  background-color: #ffffff;
  padding: 20px 25px;
}
.hero__available-homes-current-price {
  background-color: #dddcdc;
  padding: 20px 25px;
}
.hero__available-homes-sales-price {
  background-color: #f7f7f7;
  padding: 20px 25px;
}
.hero__available-homes-sales-price.sold {
  background-color: #b30505;
}
.hero__available-homes-sales-price.sold h3 {
  color: #ffffff;
}
.hero__available-homes-details {
  padding: 25px;
}
.hero__available-homes-details a {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.hero__available-homes-details li {
  font-size: 18px;
}
.hero__available-homes-property-features {
  border-top: 1px solid #d8d8d8;
  border-bottom: 1px solid #d8d8d8;
}
.hero__available-homes-property-features-container {
  width: 100%;
  padding: 0 25px;
}
.hero__available-homes-property-features ul {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.hero__available-homes-property-features ul li {
  border-left: 1px solid #d8d8d8;
  padding: 15px 20px;
  width: 25%;
}
.hero__available-homes-property-features ul li:first-child {
  border-left: 0 none;
}
.hero__available-homes-property-features-icon {
  max-width: 30px;
  margin: 0 auto;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero__available-homes-property-features-value {
  display: block;
  font-weight: 700;
  text-align: center;
  line-height: 1.2em;
}
.hero__available-homes-property-features-title {
  display: block;
  text-align: center;
  line-height: 1.2em;
}
.hero__available-homes-map-calculator {
  padding: 20px 25px;
}
.hero__available-homes-map-calculator ul {
  display: flex;
  align-items: center;
  gap: 20px;
}
.hero__available-homes-map-calculator ul li a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
}
.hero__available-homes-map-calculator ul li a img {
  width: 13px;
}
.hero__available-homes-broker {
  display: flex;
  padding: 20px 25px;
}
.hero__available-homes-broker-img {
  max-width: 60px;
  height: 60px;
}
.dlm-open-payment-modal {
  border: 0 none;
  border-radius: 0;
  background-color: #f47f22;
  color: #ffffff;
  padding: 12px 10px;
  display: inline-block;
  vertical-align: top; /* ADD THIS */
  font-size: 16px;
  cursor: pointer;
  transition: all 0.5s ease-out 0s;
  margin: 18px 0 10px;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.2);
}
.dlm-open-payment-modal:hover {
  border: 0 none !important;
  background-color: #f47f22 !important;
  color: #ffffff;
  padding: 12px 10px !important;
  display: inline-block;
  vertical-align: top; /* ADD THIS */
  font-size: 16px !important;
  cursor: pointer;
  transition: all 0.1s ease-out 0s;
  margin: 18px 0 10px;
  transform: translateY(5px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.2);
}
.dlm-open-payment-modal:after {
opacity: 0;
content: '' !important;
}


.hero__available-homes-broker-schedule {
  border: 0 none;
  background-color: #f47f22;
  color: #ffffff;
  padding: 22px 20px;
  display: inline-block;
  font-size: 18px;
  cursor: pointer;
  -webkit-transition: all 0.5s ease-out 0s;
  -moz-transition: all 0.5s ease-out 0s;
  transition: all 0.5s ease-out 0s;
}
.hero__available-homes-broker-schedule:hover {
  background-color: #000000;
}

.hero__floor-plan-definition {
  padding: 30px;
}
.definition-heading {
  font-weight: 700;
  font-size: 20px;
  padding-bottom: 0;
  margin-bottom: 15px;
}
.definition-subtext {
  font-style: italic;
  font-weight: 600;
}
.definition-subtext {
  font-style: italic;
  font-weight: 600;
  line-height: normal;
  padding-bottom: 0;
  margin-bottom: 5px;
  font-size: 16px;
}
.definition-description {
  line-height: normal;
  font-size: 15px;
}

/*--------------------------------
 * Floor Plans - Featured
  -------------------------------**/
.floor-plan__featured-content {
  display: flex;
  gap: 30px;
  width: 100%;
  max-width: 1270px;
  margin: 0 auto;
  justify-content: center;
  flex-wrap: wrap;
}
.floor-plan__featured-item {
  background-color: #f3f3f3;
  width: 31.75%;
}
.floor-plan__featured-img {
  padding: 10px;
  height: 235px;
  overflow: hidden;
}
.floor-plan__heading-h3 {
  font-weight: 700;
  padding: 10px 20px;
  margin-bottom: 10px;
}
.floor-plan__featured-price {
  background-color: #e9eaea;
  padding: 15px 25px;
}
.floor-plan__featured-property-features {
  border-top: 1px solid #d8d8d8;
  border-bottom: 1px solid #d8d8d8;
}
.floor-plan__featured-property-features ul {
  display: flex;
  justify-content: space-between;
}
.floor-plan__featured-property-features ul li {
  border-left: 1px solid #d8d8d8;
  padding: 15px 20px;
}
.floor-plan__property-features-icon {
  max-width: 30px;
  margin: 0 auto;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.floor-plan__property-features-value {
  display: block;
  font-weight: 700;
  text-align: center;
  line-height: 1.2em;
}
.floor-plan__property-features-title {
  display: block;
  text-align: center;
  line-height: 1.2em;
}
.floor-plan__property-features-price {
  font-size: 18px;
}
.floor-plan__property-features-price--value {
  font-weight: 700;
}
.floor-plan__featured-view-link {
  background-color: #f47f22;
  display: block;
  text-align: center;
  color: #ffffff;
  text-transform: uppercase;
  font-size: 20px;
  font-weight: 600;
  padding: 15px;
}

/*--------------------------------
 * Floor Plans - Single
  -------------------------------**/
.single-floor_plans #hero {
	padding-top: 0;
}
.single-floor_plans .community__tab-nav.sticky-tab {
	top: 0;
}
.tour__video {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}
.tour__video-content {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding-top: 56.25%; /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */
}
.tour__video-content iframe {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
}


.load-more-btn {
  background-color: #f47f22;
  border: 0 none;
  color: #ffffff;
  font-size: 18px;
  padding: 18px 20px;
  margin: 40px auto 0;
  display: block;
  cursor: pointer;
  -webkit-transition: all 0.5s ease-out 0s;
  -moz-transition: all 0.5s ease-out 0s;
  transition: all 0.5s ease-out 0s;
}
.load-more-btn:hover {
  background-color: #000000;
}


/*--------------------------------
 * Responsive
 -------------------------------**/
@media screen and (max-width: 1024px) {
  .overview__video {
    width: 50%;
    margin: 0 0 20px 30px;
  }
}
@media screen and (max-width: 992px) {
  .overview__text {
    flex-wrap: wrap;
  }
  .overview__main-text {
    max-width: 100%;
    order: 2;
  }
  .overview__video {
    order: 1;
  }
  .communities__wrapper,
  .hero__community-content {
    flex-wrap: wrap;
    height: auto;
  }
  .communities__left {
    width: 100%;
    height: auto;
  }
  .community__list {
    display: flex;
    flex-wrap: wrap;
  }
  .community__item {
    width: 50%;
  }
  .hero__community-details {
    width: 100%;
    order: 2;
  }
  .hero__community-img {
    order: 1;
    height: 33vh;
  }
  .community__tab-nav {
    display: none;
  }
  .community__section {
    padding: 0;
  }
  .community__accordion-title-mobile {
    display: block;
    padding: 15px;
    border: 0 none;
    width: 100%;
    cursor: pointer;
    font-size: 18px;
    background-color: #ffffff;
    border-top: 1px solid #e7e7e7;
  }
  .community-content-hidden {
    display: none;
  }
  .community__content {
    padding: 50px 30px;
    background-color: #e7e7e7;
  }
  .available-homes__featured-item,
  .floor-plan__featured-item {
    width: 100% !important;
  }
  .photos__gallery,
  .available-homes__featured-content,
  .floor-plan__featured-content,
  .directions__content   {
    max-width: 600px;
  }
  .community__map-img {
    max-width: 536px;
  }
  .directions__content {
    flex-wrap: wrap;
  }
  .directions__info {
    max-width: 100%;
  }
  .community__accordion-title-wrapper {
    display: flex;
    width: 100%;
    max-width: 460px;
    margin: 0 auto;
    justify-content: space-between;
    align-items: center;
  }
  .community__accordion-title-icon {
    font-size: 14px;
  }
  .grid-item {
    width: 48.75%;
    position: relative;
  }
}

@media screen and (max-width: 768px) {
  .community__item {
    width: 100%;
  }
  .grid-item {
    width: 100%;
  }
  .filter-group {
    flex-wrap: wrap;
    gap: 0;
  }
  .filter-dropdown {
    width: 100%;
    border-bottom: 1px solid rgba(0, 0, 0, 0.09);
  }
  .filter-reset {
    padding: 15px;
    width: 100%;
    margin-top: 20px;
    font-size: 16px;
  }
  .overview__video {
    float: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 25px 0;
  }

  .overview__main-text {
    width: 100%;
  }

  .overview__text p {
    text-align: left; /* justify looks bad with narrow mobile columns — creates awkward gaps */
  }
}


/*--------------------------------
 * Added by the plugin
 -------------------------------**/

/* Estimate Payment button: colours come from the per-home settings (CSS variables printed by the template). */
.dlm-open-payment-modal {
  background-color: var(--dlm-btn-bg, #f47f22) !important;
  color: var(--dlm-btn-text, #ffffff) !important;
  transition: background-color 0.2s ease, color 0.2s ease;
  animation: dlm-pulse 2s ease-in-out infinite;
}
.dlm-open-payment-modal:hover {
  background-color: var(--dlm-btn-hover-bg, #f47f22) !important;
  color: var(--dlm-btn-hover-text, #ffffff) !important;
  animation: none !important;
}
@keyframes dlm-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 6px 14px rgba(0,0,0,.2), 0 0 0 0 color-mix(in srgb, var(--dlm-btn-bg, #f47f22) 50%, transparent); }
  50% { transform: scale(1.04); box-shadow: 0 6px 14px rgba(0,0,0,.2), 0 0 0 10px color-mix(in srgb, var(--dlm-btn-bg, #f47f22) 0%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
  .dlm-open-payment-modal { animation: none; }
}

/* Estimate Payment modal (was inline in the theme footer). */
.dlm-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.6); z-index: 999999; justify-content: center; align-items: center; }
.dlm-modal-overlay.active { display: flex; }
.dlm-modal-box { background: #fff; border-radius: 8px; position: relative; width: 90%; max-width: 940px; max-height: 90vh; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.dlm-modal-close { position: absolute; top: 10px; right: 14px; background: none; border: none; font-size: 28px; cursor: pointer; color: #333; z-index: 1; line-height: 1; }
.dlm-modal-close:hover { color: #000; }
.dlm-modal-box iframe { display: block; width: 100%; height: 85vh; max-height: 900px; border: none; }

/* Schedule popup: fade in/out (replaces jQuery fadeIn/fadeOut). */
#schedule-form-popup { transition: opacity .3s ease; }
#schedule-form-popup.pvl-fading { opacity: 0; }
.schedule__popup-form-content:empty::before { content: ""; display: block; width: 32px; height: 32px; margin: 40px auto; border: 3px solid rgba(0,0,0,.12); border-top-color: #f47f22; border-radius: 50%; animation: pvl-spin .8s linear infinite; }
@keyframes pvl-spin { to { transform: rotate(360deg); } }

/* Filter loading state. */
.available-homes__featured-content.is-loading { opacity: .5; pointer-events: none; transition: opacity .2s; }