/*styles for Floor Plan Nexus*/

.controls {
    padding: 1rem;
    font-size: 0.1px;
}

.control {
/*    position: relative;
    display: inline-block;
    width: 2.7rem;
    height: 2.7rem;
    background: #444;
    cursor: pointer;
    font-size: 0.1px;
    color: white;
    transition: background 150ms;*/
    transition: background-color 0.8s ease;
}

.control:hover {
    background: #212529;
}

.control[data-filter]:after {
    /*content: '';
    position: absolute;
    width: 10px;
    height: 10px;
    top: calc(50% - 6px);
    left: calc(50% - 6px);
    border: 2px solid currentColor;
    border-radius: 2px;
    background: currentColor;
    transition: background-color 150ms, border-color 150ms;*/
}

.control[data-sort]:after {
    content: '';
    position: absolute;
    width: 10px;
    height: 10px;
    border-top: 2px solid;
    border-left: 2px solid;
    top: calc(50% - 6px);
    left: calc(50% - 6px);
    transform:  translateY(1px) rotate(45deg);
}

.control[data-sort*=":desc"]:after {
    transform:  translateY(-4px) rotate(-135deg);
}

.mixitup-control-active {
    background: #212529;
}

.mixitup-control-active[data-filter]:after {
    background: transparent;
}

/*.control:first-of-type {
    border-radius: 3px 0 0 3px;
}

.control:last-of-type {
    border-radius: 0 3px 3px 0;
}
*/
.control[data-filter] + .control[data-sort] {
    margin-left: .75rem;
}

.control[data-filter=".green"] {
/*    color: #91e6c7;*/
}

.control[data-filter=".blue"] {
/*    color: #5ecdde;*/
}

.control[data-filter=".pink"] {
/*    color: #d595aa;*/
}

.control[data-filter="none"] {
    color: #2f2f2f;
}

/* Pagination Controls
---------------------------------------------------------------------- */

.controls-pagination {
    padding: 1rem;
    font-size: 0.1px;
    text-align: justify;
}

.controls-pagination:after {
    content: '';
    display: inline-block;
    width: 100%;
}

.mixitup-page-list,
.mixitup-page-stats {
    display: inline-block;
    vertical-align: middle;
}

.mixitup-page-list {
    text-align: left;
}

.mixitup-page-stats {
    font-size: .9rem;
    color: #333;
    font-weight: bold;
    font-family: 'helvetica', arial, sans-serif;
}

.mixitup-control {
    position: relative;
    display: inline-block;
    text-align: center;
    width: 2.7rem;
    height: 2.7rem;
    background: #fff;
    border-top: 3px solid transparent;
    border-bottom: 3px solid transparent;
    margin-right: 1px;
    cursor: pointer;
    font-size: .9rem;
    color: #333;
    font-weight: bold;
    font-family: 'helvetica', arial, sans-serif;
    transition: color 150ms, border-color 150ms;
    vertical-align: middle;
}

.mixitup-control:first-child {
    border-radius: 3px 0 0 3px;
}

.mixitup-control:last-child {
    border-radius: 0 3px 3px 0;
}

.mixitup-control:not(.mixitup-control-active):hover {
    color: #91e6c7;
}

.mixitup-control-active {
    border-bottom-color: #91e6c7;
    cursor: default;
}

.mixitup-control:disabled {
    background: #eaeaea;
    color: #aaa;
    cursor: default;
}

.mixitup-control-truncation-marker {
    background: transparent;
    pointer-events: none;
    line-height: 2.2em;
}

/* Container
---------------------------------------------------------------------- */

.container {
    padding: 1rem;
    text-align: justify;
    font-size: 0.1px;
}

.container:after {
    content: '';
    display: inline-block;
    width: 100%;
}

/* Target Elements
---------------------------------------------------------------------- */

.mix {
    width: 100% !important;
}

.mix,
.gap {
    display: inline-block;
    vertical-align: top;
}

.mix {
    background: #fff;
/*    border-top: .5rem solid currentColor;*/
    border-radius: 2px;
    margin-bottom: 1rem;
    position: relative;
}

.mix:before {
    content: '';
    display: inline-block;
/*    padding-top: 56.25%;*/
}

.mix.green {
/*    color: #91e6c7;*/
}

.mix.pink {
/*    color: #d595aa;*/
}

.mix.blue {
/*    color: #5ecdde;*/
}

/* Grid Breakpoints & Column Counts
---------------------------------------------------------------------- */

/* 2 Columns */

.mix,
.gap {
    width: calc(100%/2 - (((2 - 1) * 1rem) / 2));
}

/**
 * NB: The `font-size` property on the hidden `.column-counter` element is set to
 * a value representing the number of columns. We will parse this value on init and
 * on resize, which avoids the need to track viewport width and define
 * breakpoints in our JavaScript which can also be unreliable when scrollbars
 * are added/removed. Any CSS property which supports a numeric value could
 * be used instead of font-size.
 */

.column-counter {
    font-size: 2px;
}

/* 3 Columns */

@media screen and (min-width: 541px) {
    .mix,
    .gap {
        width: calc(100%/3 - (((3 - 1) * 1rem) / 3));
    }

    .column-counter {
        font-size: 3px;
    }
}

/* 4 Columns */

@media screen and (min-width: 961px) {
    .mix,
    .gap {
        width: calc(100%/4 - (((4 - 1) * 1rem) / 4));
    }

    .column-counter {
        font-size: 4px;
    }
}

/* 5 Columns */

@media screen and (min-width: 1281px) {
    .mix,
    .gap {
        width: calc(100%/5 - (((5 - 1) * 1rem) / 5));
    }

    .column-counter {
        font-size: 5px;
    }
}

/*Start my custom styles*/

/*flex that holds the floorplan information*/
 
.bedroom-typeFlex {

}

.bedroom-typeFlex-container {
    display: flex;
    flex-wrap: wrap;
}

.mySwiperfpn {

}

.fpn-name {
   width: 100%;
}

.fpn-name p {
   font-size: 16px;
   padding-bottom: 5px !important;
   color: #212529;
}

@media screen and (min-width: 1024px) {

  .fpn-name p {
     font-size: 17px;
  }
}

.fpn-name h4 {
   font-size: 35px;
   color: #212529;
   font-weight: 400;
}

.fpn-price {
  width: 100%;
  color: #212529;
  text-align: center;
}

.fpn-price span {
  width: 100%;
  color: #212529;
  text-align: center;
}

.fpn-image {
  width: 100%;
  padding: 20px 0 45px;
}

.fpn-image img {
  max-width: 520px;
  margin: 0 auto;
}

@media only screen and (min-width: 998px) {
    
    .fpn-image img {
        margin: 0;
    }
}

.fpn-button {
  width: 100%;
  padding-bottom: 20px;  
}

.fpn-breakHideMobile {
  display: none;
}

.fpn-price-starting {
  font-size: 15px;
  color: #212529;
}

.fpn-price-starting span {
  font-size: 25px;
}

@media only screen and (min-width: 998px) {
    
    .fpn-breakHideMobile {
        display: block;
    }
}

/*hide ascending and descending on mobile*/
.fpn-asc {
   display: none;
}

@media only screen and (min-width: 768px) {
    
    .fpn-asc {
/*        display: block;*/
    }
}

/*description only used on mobile more info and desktop*/
.fpn-description {
    display: none;
}

@media only screen and (min-width: 768px) {
    
    .fpn-description {
        display: block;
    }
}

/*THIS IS WHAT YOU RESIZE FOR HEIGHT ANIMATION ISSUES*/
.mixContainerHelp {
  width: 100% !important;
  padding: 0 !important;
  height: 550px;
}

@media only screen and (min-width: 500px) {
    
    .mixContainerHelp {
        height: 650px;
    }
}

@media only screen and (min-width: 998px) {
    
    .mixContainerHelp {
        height: 580px;
    }
}

.fpn-filterTitle p {
  color: #969494;
  font-size: 19px;
  text-align: center;
  padding-bottom: 15px !important; 
}

.fpnFilterButton {
  font-weight: normal;
      font-style: normal;
      text-transform: uppercase;
      text-decoration: none;
      color: #FFFFFF !important;
      font-size: 12px;
      border: none;
      padding: 15px;
      border-radius: 25px !important;
      margin: 0 5px;
      min-width: 80px;
      margin: 5px;
      cursor: pointer;
      min-width: 140px;
}

@media screen and (min-width: 899px) {

  .fpnFilterButton {
    border-radius: 25px !important;
    font-size: 15px;
  }
}

.fpnControls {
  padding: 10px 5px 45px;
}

.fpnFilterContainer {
  text-align: center;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

/*arrow changes*/
/*.mySwiperfpn .swiper-button-next, .swiper-button-prev {
  color: #969494 !important;*/
}

/*arrow changes*/
/*.mySwiperfpn .swiper-button-next:after, .swiper-button-prev:after {
  font-size: 28px;
  opacity: .5;
}
*/
.fpnArrows {
  color: #969494 !important;
}

.fpnArrows:after {
  font-size: 28px !important;
/*  opacity: .5 !important;*/
}

/*.swiper-button-next.fpnArrows:after {
  position: relative;
  right: -10px;
}

.swiper-button-prev.fpnArrows:after {
  position: relative;
  right: 10px;
}
*/
body .fpnArrows {
  color: #969494 !important;
}

/*popup specific styles*/

#fpnPopupOverlay {
    position: fixed; /* Cover the whole screen */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7); /* Darker background */
    z-index: 1050; /* Ensure it's above most things */
    display: none; /* Start hidden */
    overflow-y: auto;
}

#fpnPopupBox {
    position: fixed; /* Stay in place on screen */
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%); /* Center it */
    width: 100%;
    max-width: 500px;
    background-color: white;
    padding: 0 20px 20px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    z-index: 1051; /* Above the overlay */
    display: none; /* Start hidden */
    overflow-y: auto;
    height: 73vh;
}

@media screen and (min-width: 500px) {

  #fpnPopupBox {
      padding: 20px;
  }
}

@media screen and (min-width: 1200px) {

  #fpnPopupBox {
      max-width: 1000px;
      padding: 30px 20px;
      height: auto;
      width: 100%;
  }
}

.fpnClosePopup {
    position: absolute; /* Positioning relative to the popup */
    top: 10px; /* Close button position from top */
    right: 15px; /* Close button position from right */
    cursor: pointer;
    z-index: 1052; /* Ensures it's clickable and above the popup content */
    color: #969494 !important;
}

.fpnPopupContent {
    padding-top: 20px;
}

.fpnStage {

}

.fpnStageContainer {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
}

.fpnStage-image {
  width: 100%; 
  max-width: 300px;
  margin: 0 auto;
}

@media screen and (min-width: 750px) {

  .fpnStage-image {
      max-width: none;
  }
}

@media screen and (min-width: 1200px) {

  .fpnStage-image {
      width: 50%;
      max-width: none;
  }
}

.fpnStage-info {
  width: 100%;
  text-align: center;
}

@media screen and (min-width: 1024px) {

  .fpnStage-info {
    justify-items: left;
    flex-direction: column;
    justify-content: center;
    display: flex;
  }
}

.fpnStage-info h2 {
  line-height: 22px;
}

@media screen and (min-width: 1200px) {

  .fpnStage-info {
      width: 50%;
  }
}

.fpnStage-info h2 {
  padding-top: 20px;
  font-weight: 400;
  padding-bottom: 20px;
}

@media screen and (min-width: 1200px) {

  .fpnStage-info h2 {
    padding-top: 0;
    font-weight: 400;
    padding-bottom: 20px;
  }
}

.fpnDescript {
  padding-bottom: 10px;
  color: #212529;
  font-size: 14px;
}

.fpnSpecs {
  color: #212529 !important;
  padding-bottom: 0 !important;
}

.fpn-price-starting-popup {
  font-size: 13px;
  padding-top: 0;
}

@media screen and (min-width: 500px) {

  .fpn-price-starting-popup {
    padding-top: 25px;
  }
}

.fpn-price-starting-popup span {
  font-size: 35px;
  padding-left: 10px;
  position: relative;
  top: 7px;
}

.fpnButtonWrangler {
  padding-top: 20px;
  padding-bottom: 15px;
}

@media screen and (min-width: 500px) {

  .fpnButtonWrangler {
    padding-top: 40px;
  }
}

.fpnButtonWrangler .fpn-detailButtonStyle {
  font-size: 13px;
  padding: 10px 20px !important;
  display: inline-block;
  width: 160px;
}

.fpnButtonWrangler .fpn-detailButtonStyle:hover {
  padding: 10px 20px !important;
  width: 160px;
}

.fpnButtonWrangler .fpn-detailButtonStyle-apply {
  margin: 10px auto 0;
  display: block;
  max-width: 320px;
}

@media screen and (min-width: 500px) {

  .fpnButtonWrangler {
    margin: 10px auto 30px;
  }
}

.fpnButtonWrangler .fpn-detailButtonStyle-apply:hover {
  padding: 10px 20px !important;
  max-width: 320px;
}

.fpn-callOrShare {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  padding-top: 10px;
}

/*.fpn-callOrShare a img {
  max-width: 30px;
}*/

.fpn-call {
  width: 100%;
}

.fpn-call a { 
  color: #212529;
  position: relative;
  bottom: -1px;
  font-size: 20px;
}

.fpn-shareWrangler {
  width: 50%;
  display: none;
}

.fpn-shareWrangler a {
  padding: 0 5px 0;
}

.fpn-shareWrangler a img {
  width: 27px;
}

.fpnCallTitle {
  font-size: 13px;
  color: #212529;
}

.no-scroll {
  position: fixed; /* Keep the body in place */
  width: 100%; /* Prevent width changes */
  overflow-y: scroll; /* Keep scrollbar to prevent width reflow */
  height: 100%; /* Limit body height to viewport */
}

.et_pb_section_0_tb_header {
    opacity: 1 !important;
    transition: none !important; /* Prevent any transitions */
}

.fpnDisclaimer {
  font-size: 13px;
  color: #969494;
  font-style: italic;
  display: none;
}

@media screen and (min-width: 1200px) {

  .fpnDisclaimer {
    font-size: 11px;
    color: #969494;
    font-style: italic;
    max-width: 440px;
    line-height: 14px;
    text-align: center;
    margin: 0 auto;
    padding-top: 20px;
    display: block;
  }
}

.non-clickable {
  pointer-events: none;
  opacity: 0.5 !important;
}

.swiper-button-prev.fpnArrows {
  left: 0 !important;
}

.swiper-button-next.fpnArrows {
  right: var(--swiper-navigation-sides-offset, 0px);
}

.swiper-button-prev.fpnArrows {
  right: var(--swiper-navigation-sides-offset, 0px);
}

.fpn-button .fpn-detailButton {
 padding: 10px 50px !important; 
}