/*!
  * Milligram v1.4.1
  * https://milligram.io
  *
  * Copyright (c) 2020 CJ Patoilo
  * Licensed under the MIT license
 */

:root {
  --obv-primary: #3f78e0;
  --obv-primary-cs: #3f78e0;
  --obv-secondary: #033979;
  --obv-secondary-cs: #033979;
  --obv-tertiary: #198d75;
  --obv-tertiary-cs: #198d75;
  --om-red: #d14261;
  --em-very-dark-bg: #0c0d0e;
  --em-dark-text: #515962;
}

*,
*:after,
*:before {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

body .lx {
  color: #3a3a3a;
  font-weight: 400;
  line-height: 1.6;
}

.lx blockquote {
  border-left: 0.3rem solid #d1d1d1;
  margin-left: 0;
  margin-right: 0;
  padding: 1rem 1.5rem;
}

blockquote *:last-child {
  margin-bottom: 0;
}

.lx-flex-form {
  display: flex;
  flex-direction: column;
}

.lx-form-wrapper {
  justify-content: center;
}

.lx .button,
.lx input[type="button"],
.lx input[type="reset"],
.lx input[type="submit"] {
  background-color: var(--obv-primary);
  border: 1px solid var(--obv-primary);
  border-radius: 8px !important;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  height: 2.6rem;
  line-height: 2.5rem;
  letter-spacing: 0 !important;
  padding: 0 0.7rem;
  margin-top: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  width: 100%;
}

.lx .button:focus,
.lx .button:hover,
.lx input[type="button"]:focus,
.lx input[type="button"]:hover,
.lx input[type="reset"]:focus,
.lx input[type="reset"]:hover,
.lx input[type="submit"]:focus,
.lx input[type="submit"]:hover {
  background-color: var(--obv-secondary) !important;
  border: 1px solid var(--obv-secondary) !important;
  color: #fff !important;
  outline: 0;
}

.lx .button[disabled],
.lx input[type="button"][disabled],
.lx input[type="reset"][disabled],
.lx input[type="submit"][disabled] {
  cursor: default;
  opacity: 0.5;
}

.lx .button[disabled]:focus,
.lx .button[disabled]:hover,
.lx input[type="button"][disabled]:focus,
.lx input[type="button"][disabled]:hover,
.lx input[type="reset"][disabled]:focus,
.lx input[type="reset"][disabled]:hover,
.lx input[type="submit"][disabled]:focus,
.lx input[type="submit"][disabled]:hover {
  background-color: var(--obv-primary);
  border-color: var(--obv-primary);
}

.lx .button.button-outline,
.lx button.button-outline,
.lx input[type="button"].button-outline,
.lx input[type="reset"].button-outline,
.lx input[type="submit"].button-outline {
  background-color: var(--om-red);
  border: 1px solid var(--om-red);
}

.lx .button.button-outline:focus,
.lx .button.button-outline:hover,
.lx button.button-outline:focus,
.lx button.button-outline:hover,
.lx input[type="button"].button-outline:focus,
.lx input[type="button"].button-outline:hover,
.lx input[type="reset"].button-outline:focus,
.lx input[type="reset"].button-outline:hover,
.lx input[type="submit"].button-outline:focus,
.lx input[type="submit"].button-outline:hover {
  background-color: var(--obv-secondary);
  border-color: var(--obv-secondary);
  color: #fff;
}

.lx .button.button-outline[disabled]:focus,
.lx .button.button-outline[disabled]:hover,
.lx button.button-outline[disabled]:focus,
.lx button.button-outline[disabled]:hover,
.lx input[type="button"].button-outline[disabled]:focus,
.lx input[type="button"].button-outline[disabled]:hover,
.lx input[type="reset"].button-outline[disabled]:focus,
.lx input[type="reset"].button-outline[disabled]:hover,
.lx input[type="submit"].button-outline[disabled]:focus,
.lx input[type="submit"].button-outline[disabled]:hover {
  border-color: inherit;
  color: var(--obv-primary);
}

.lx .button.button-clear,
.lx button.button-clear,
.lx input[type="button"].button-clear,
.lx input[type="reset"].button-clear,
.lx input[type="submit"].button-clear {
  background-color: transparent;
  border-color: transparent;
  color: var(--obv-primary);
}

.lx .button.button-clear:focus,
.lx .button.button-clear:hover,
.lx button.button-clear:focus,
.lx button.button-clear:hover,
.lx input[type="button"].button-clear:focus,
.lx input[type="button"].button-clear:hover,
.lx input[type="reset"].button-clear:focus,
.lx input[type="reset"].button-clear:hover,
.lx input[type="submit"].button-clear:focus,
.lx input[type="submit"].button-clear:hover {
  background-color: transparent;
  border-color: transparent;
  color: var(--obv-secondary);
}

.lx .button .lx .button-clear[disabled]:focus,
.lx .button .lx .button-clear[disabled]:hover,
button .lx .button-clear[disabled]:focus,
button .lx .button-clear[disabled]:hover,
.lx input[type="button"] .lx .button-clear[disabled]:focus,
.lx input[type="button"] .lx .button-clear[disabled]:hover,
.lx input[type="reset"] .lx .button-clear[disabled]:focus,
.lx input[type="reset"] .lx .button-clear[disabled]:hover,
.lx input[type="submit"] .lx .button-clear[disabled]:focus,
.lx input[type="submit"] .lx .button-clear[disabled]:hover {
  color: var(--obv-primary);
}

code {
  background: #f4f5f6;
  border-radius: 0.2rem;
  font-size: 86%;
  margin: 0 0.2rem;
  padding: 0.2rem 0.5rem;
  white-space: nowrap;
}

pre {
  background: #f4f5f6;
  border-left: 0.3rem solid var(--obv-primary);
  overflow-y: hidden;
}

pre > code {
  border-radius: 8px;
  display: block;
  padding: 1rem 1.5rem;
  white-space: pre;
}

hr {
  border: 0;
  border-top: 1px solid #f4f5f6;
  margin: 0.5rem 0;
}

/* Pagecounter */
.pagecount {
  position: relative;
  z-index: 99;
  -webkit-transform: translate3d(0, 0, 0) !important;
  /*right: 72px;
    top: 20px;
    background: #ddf1f5; */
  padding: 10px;
  /*   border: 1px solid #8ab3bc;*/
  font-size: 1em;
}

.pagecount .callout {
  padding-right: 0;
}

.lx input[type="color"],
.lx input[type="date"],
.lx input[type="datetime"],
.lx input[type="datetime-local"],
.lx input[type="email"],
.lx input[type="month"],
.lx input[type="number"],
.lx input[type="password"],
.lx input[type="search"],
.lx input[type="tel"],
.lx input[type="text"],
.lx input[type="url"],
.lx input[type="week"],
.lx input:not([type]),
.lx textarea,
.lx select {
  -webkit-appearance: none;
  background-color: transparent;
  border: 1px solid #a5bac5;
  box-shadow: none;
  box-sizing: inherit;
  height: 2.6rem;
  font-size: 1.1rem;
  padding: 0.2rem 0.5rem;
  width: 100%;
  background-color: #fff;
}

#homepage-search-form button[type="submit"] {
  background-color: #006ce4;
}

.lx input[type="color"]:focus,
.lx input[type="date"]:focus,
.lx input[type="datetime"]:focus,
.lx input[type="datetime-local"]:focus,
.lx input[type="email"]:focus,
.lx input[type="month"]:focus,
.lx input[type="number"]:focus,
.lx input[type="password"]:focus,
.lx input[type="search"]:focus,
.lx input[type="tel"]:focus,
.lx input[type="text"]:focus,
.lx input[type="url"]:focus,
.lx input[type="week"]:focus,
.lx input:not([type]):focus,
.lx textarea:focus,
.lx select:focus {
  border-color: var(--obv-primary);
  outline: 0;
}

.lx select {
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 8" width="18"><path fill="%23117ad6" d="M0,0l6,8l6-8"/></svg>')
    center right no-repeat;
  padding-right: 1.4rem;
  background-color: #fff;
}

.lx select:focus {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 8" width="18"><path fill="%230E65B1" d="M0,0l6,8l6-8"/></svg>');
}

.lx select[multiple] {
  background: none;
  height: auto;
}

.lx textarea {
  min-height: 6.5rem;
}

label,
legend {
  display: block;
  font-size: 12px;
  font-weight: 400;
  margin-bottom: 0.5rem;
}

fieldset {
  border-width: 0;
  padding: 0;
}

.lx input[type="checkbox"],
.lx input[type="radio"] {
  display: inline;
}

.label-inline {
  display: inline-block;
  font-weight: normal;
  margin-left: 0.5rem;
}

.lx-container {
  margin: 0 2rem;
  padding: 0;
  position: relative;
  max-width: 1920px;
}

.lx-row {
  display: flex;
  flex-direction: column;
  padding: 0;
  width: 100%;
}

.lx-row.lx-row-no-padding {
  padding: 0;
}

.lx-row.lx-row-no-padding > .lx-column {
  padding: 0;
}

.lx-row.lx-row-wrap {
  flex-wrap: wrap;
}

.lx-row.lx-row-top {
  align-items: flex-start;
}

.lx-row.lx-row-bottom {
  align-items: flex-end;
}

.lx-row.lx-row-center {
  align-items: center;
}

.lx-row.lx-row-stretch {
  align-items: stretch;
}

.lx-row.lx-row-baseline {
  align-items: baseline;
}

.lx-row .lx-column {
  display: block;
  flex: 1 1 auto;
  margin-left: 0;
  max-width: 100%;
  padding: 0 0.2rem;
  width: 100%;
}

.lx-row .lx-column.lx-column-offset-10 {
  margin-left: 10%;
}

.lx-row .lx-column.lx-column-offset-20 {
  margin-left: 20%;
}

.lx-row .lx-column.lx-column-offset-25 {
  margin-left: 25%;
}

.lx-row .lx-column.lx-column-offset-33,
.lx-row .lx-column.lx-column-offset-34 {
  margin-left: 33.3333%;
}

.lx-row .lx-column.lx-column-offset-40 {
  margin-left: 40%;
}

.lx-row .lx-column.lx-column-offset-50 {
  margin-left: 50%;
}

.lx-row .lx-column.lx-column-offset-60 {
  margin-left: 60%;
}

.lx-row .lx-column.lx-column-offset-66,
.lx-row .lx-column.lx-column-offset-67 {
  margin-left: 66.6666%;
}

.lx-row .lx-column.lx-column-offset-75 {
  margin-left: 75%;
}

.lx-row .lx-column.lx-column-offset-80 {
  margin-left: 80%;
}

.lx-row .lx-column.lx-column-offset-90 {
  margin-left: 90%;
}

.lx-row .lx-column.lx-column-10 {
  flex: 0 0 10%;
  max-width: 10%;
}

.lx-row .lx-column.lx-column-20 {
  flex: 0 0 20%;
  max-width: 20%;
}

.lx-row .lx-column.lx-column-25 {
  flex: 0 0 25%;
  max-width: 25%;
}

.lx-row .lx-column.lx-column-33,
.lx-row .lx-column.lx-column-34 {
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
}

.lx-row .lx-column.lx-column-40 {
  flex: 0 0 40%;
  max-width: 40%;
}

.lx-row .lx-column.lx-column-50 {
  flex: 0 0 50%;
  max-width: 48%;
}

.lx-row .lx-column.lx-column-60 {
  flex: 0 0 60%;
  max-width: 60%;
}

.lx-row .lx-column.lx-column-66,
.lx-row .lx-column.lx-column-67 {
  flex: 0 0 66.6666%;
  max-width: 66.6666%;
}

.lx-row .lx-column.lx-column-75 {
  flex: 0 0 75%;
  max-width: 75%;
}

.lx-row .lx-column.lx-column-80 {
  flex: 0 0 80%;
  max-width: 80%;
}

.lx-row .lx-column.lx-column-90 {
  flex: 0 0 90%;
  max-width: 90%;
}

.lx-row .lx-column .lx-column-top {
  align-self: flex-start;
}

.lx-row .lx-column .lx-column-bottom {
  align-self: flex-end;
}

.lx-row .lx-column .lx-column-center {
  align-self: center;
}

@media (min-width: 961px) {
  .lx-row {
    flex-direction: row;
    width: calc(100%);
  }
  .lx-row .lx-column {
    margin-bottom: inherit;
  }
  .lx-flex-form {
    flex-direction: row;
  }
}

.lx a {
  color: var(--obv-secondary);
  text-decoration: none;
}

.lx a:focus,
.lx a:hover {
  color: var(--obv-tertiary);
}
.lx .fas {
  font-size: 1.1rem;
  color: var(--obv-tertiary);
}

.lx dl,
.lx ol,
.lx ul {
  list-style: none;
  margin-top: 0;
  padding-left: 0;
}

.lx dl dl,
.lx dl ol,
.lx dl ul,
.lx ol dl,
.lx ol ol,
.lx ol ul,
.lx ul dl,
.lx ul ol,
.lx ul ul {
  font-size: 90%;
  margin: 1.5rem 0 1.5rem 3rem;
}

.lx ol {
  list-style: decimal inside;
}

.lx ul {
  list-style: circle inside;
}

.lx .button,
.lx button,
.lx dd,
.lx dt,
.lx li {
  margin-bottom: 1rem;
}

.lx fieldset,
.lx input,
.lx select,
.lx textarea {
  margin-bottom: 0.5rem;
}

.lx blockquote,
.lx dl,
.lx figure,
.lx form,
.lx ol,
.lx p,
.lx pre,
.lx table,
.lx ul {
  margin-bottom: 2.5rem;
}

.lx table {
  border-spacing: 0;
  overflow-x: auto;
  text-align: left;
  width: 100%;
}

.lx td,
.lx th {
  border-bottom: 1px solid #e1e1e1;
  padding: 0.4rem 1.2rem 0.2rem;
}

@media (min-width: 961px) {
  .lx table {
    display: table;
    overflow-x: initial;
  }
}

.lx b,
.lx strong {
  font-weight: bold;
}

.lx p {
  margin-top: 0;
}

.lx h1,
.lx h2,
.lx h3,
.lx h4,
.lx h5,
.lx h6 {
  font-weight: 400;
  margin-bottom: 2rem;
  margin-top: 0;
}

.lx h1 {
  font-size: 2.2rem;
  line-height: 1.2;
}

.lx h2 {
  font-size: 1.6rem;
  line-height: 1.25;
}

.lx h3 {
  font-size: 1.4rem;
  line-height: 1.3;
}

.lx h4 {
  font-size: 1rem;
  letter-spacing: -0.08rem;
  line-height: 1.35;
}

.lx h5 {
  font-size: 0.8rem;
  letter-spacing: -0.05rem;
  line-height: 1.5;
}

.lx h6 {
  font-size: 0.6rem;
  letter-spacing: 0;
  line-height: 1.4;
}

.lx img {
  max-width: 100%;
}

.lx-image-container {
  position: relative;
}

.lx-image-container img {
  object-fit: cover;
  width: 100%;
  height: 300px;
}

.lx-image-container .results-pet-icon {
  transition: 0.3s;
  cursor: pointer;
  position: absolute;
  bottom: 0px;
  right: 14px;
  text-align: right;
  padding: 0px 5px 13px 5px;
  z-index: 1;
  display: flex;
}

.lx-image-container .results-pet-icon i {
  color: var(--obv-tertiary);
  font-size: 1.1rem;
  background-color: #fff;
  padding: 6px;
  border-radius: 50px;
}

.lx .clearfix:after {
  clear: both;
  content: " ";
  display: table;
}

.lx .float-left {
  float: left;
}

.lx .float-right {
  float: right;
}

#search-wrap .lx-container form {
  max-width: 1200px !important;
  margin: 0 auto;
}

.attr-item label,
.type-item label {
  display: inline;
  font-size: 14px;
}

/* Toggle Map */
.switch {
  position: relative;
  display: inline-block;
  width: 56px;
  height: 30px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #6ec1e4;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 22px;
  width: 22px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

input:checked + .slider {
  background-color: var(--obv-primary);
}

input:focus + .slider {
  box-shadow: 0 0 1px var(--obv-primary);
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Rounded sliders */
.slider.round {
  border-radius: 34px;
  border: 1px solid #6ec1e4;
}

.slider.round:before {
  border-radius: 50%;
}

.lx-map-activator .heading {
  display: block;
  float: left;
  font-size: 14px;
  padding: 11px 8px 0 0;
}
/* end of toggle map */

/* Results page */
.lx-results > div {
  flex-wrap: wrap;
  justify-content: space-evenly;
}

.lx-results {
  justify-content: center;
  padding: 0 1%;
}
.lx-results.map-active {
  padding: 0 1.55% 0 1%;
  /*padding-right: 23px!important;*/
}

#abe-map-results {
  background: #19334626;
}

.lx-row .lx-column.lx-column-50#abe-map-results {
  flex: 0 0 50%;
  max-width: 48%;
  margin-left: 0.5%;
}

.lx .button#abe-filters-activator {
  line-height: 2.5rem;
  margin-bottom: 0.5rem;
  background: #f4f9fb !important;
  color: #3f78e0;
}
.lx .button#abe-filters-activator:hover {
  color: #fff !important;
  background: var(--obv-primary) !important;
  border-color: var(--obv-primary) !important;
}
.hasDatepicker {
  background: #fff url(../images/cal.png)
    right no-repeat;
}
#abe-filters-activator .fas {
  color: var(--obv-primary);
}
#abe-filters-activator:hover .fas {
  color: #fff;
}

#abe-map-results {
  position: sticky !important;
  max-height: 92.5vh;
  top: 100px;
}

.lx-fixed-w-500-700 {
  min-width: 500px;
  max-width: 700px;
}

.lx-item h2 {
  font-size: 1.1rem;
  margin: 12px 0 4px 4px;
  line-height: 1;
  letter-spacing: -1px;
}
.lx-item h2 a {
  font-weight: 500;
  color: #6ec1e4;
}
.lx-item strong {
  color: var(--obv-primary);
}
.icons-info {
  font-size: 16px;
  margin-left: 6px;
}
.icons-info span {
  display: inline-block;
  line-height: 1.4rem;
  color: #262626;
  padding: 0 6px 0 2px;
  margin-right: 1px;
  border-right: 1px solid #98a6ad;
}
.icons-info span:nth-of-type(4) {
  padding-right: 0;
  margin-right: 0;
  border-right: none;
}
.icons-info span .fas {
  font-size: 1rem;
}
.lx-item .lx-rate {
  font-size: 16px;
  color: #333;
  padding-left: 1px;
  margin: 0 0 2px 5px;
}
.lx-item .stars {
  margin-left: 5px;
}

.fa-star.checked {
  color: orange;
}

.star-rating,
.back-stars,
.front-stars {
  display: flex;
}

.star-rating {
  font-size: 1em;
  height: 18px;
}

.back-stars {
  color: #dfe7ef;
  position: relative;
}

.front-stars {
  color: #ffb200;
  overflow: hidden;
  position: absolute;
  top: 0;
  transition: all 0.5s;
}

.lx-cd-pagination {
  text-align: center;
  margin: 3% auto 0 !important;
  display: block;
  list-style: none;
  padding-left: 0;
}

.lx-cd-pagination li {
  display: inline-block;
  margin: 0 4px 8px;
}
/* Items are rendered as <a> (links) or <span> (current / disabled) by
   generateList(); style both so the current page and the disabled Prev/Next
   ends get the same chip treatment. */
.lx-cd-pagination li a,
.lx-cd-pagination li span {
  display: inline-block;
  font-weight: 400;
  color: var(--obv-primary);
  padding: 0.25rem 1rem 0.2rem;
  background: #e2ebf0;
  border-radius: 6px;
  text-decoration: none;
}
.lx-cd-pagination li a:hover {
  color: #000;
  background: #fff;
}

.lx-cd-pagination li .current {
  font-weight: 600;
  color: #262626;
  background: #fff;
}
.lx-pagination-btn .disabled {
  color: #99a2a9;
  pointer-events: none;
  background: #f4f6f7;
}
.marker-infobox img {
  max-width: 160px;
}
.marker-infobox a:hover,
.marker-infobox a:hover h5 {
  color: var(--obv-primary);
}
.marker-infobox h5 {
  font-size: 1.1em;
  font-weight: 500;
  line-height: 1rem;
  letter-spacing: 0;
  width: 160px;
  margin-top: 20px;
  margin-bottom: 15px;
}
.marker-infobox p {
  margin-bottom: 10px;
}
.icons-map {
  margin-left: 1px;
}
.icons-map span {
  display: inline-block;
  padding-right: 6px;
  margin-right: 5px;
  border-right: 1px solid #98a6ad;
}
.icons-map span:nth-of-type(3) {
  padding-right: 0;
  margin-right: 0;
  border: none;
}
.icons-map .fas {
  font-size: 13px;
}
#abe-map-results .gm-ui-hover-effect {
  top: 2px !important;
  right: 2px !important;
  width: 18px !important;
  height: 18px !important;
  background: #fff !important;
  border: 2px solid #b2bcc3 !important;
  border-radius: 8px !important;
  opacity: 1 !important;
}
#abe-map-results .gm-ui-hover-effect:hover {
  border: 2px solid #bd0707 !important;
}
#abe-map-results .gm-ui-hover-effect img,
#abe-map-results .gm-ui-hover-effect span {
  margin: 0 !important;
}

/* end of Results page */

/* Unit page */
#abe-slider {
  margin-left: 0;
  margin-bottom: 0;
}
#abe-slider li {
  list-style: none;
  margin-bottom: 0;
  height: 70vmin;
  position: relative;
}
#abe-slider img {
  width: 100%;
  height: 100%;
  position: relative;
  object-fit: cover;
  display: block;
  margin: 0px auto 0px;
  border-radius: 8px;
  /*max-height: 400px;*/
}

/*.lSSlideWrapper {
	max-width: 845px;
	margin: auto;
	height: 81%;
}*/
.lSSlideOuter {
  margin-bottom: 1.4em;
}
.lSPager.lSGallery {
  margin-top: 5px !important;
}
.lSPager.lSGallery li {
  list-style-type: none;
  margin-bottom: 0;
  height: 100%;
  border-radius: 3px;
}
.lSPager.lSGallery img {
  min-height: 100%;
}

#abe-slider .lsAction > a {
  z-index: 2;
}

#abe-tabs .ui-widget-header {
  border: none;
  background: initial;
  padding: 0px;
}

#abe-tabs {
  padding: 0px;
  border: none;
  width: 100%;
  max-width: 1400px;
  margin: 30px auto;
}

#abe-tabs .ui-widget.ui-widget-content {
  border: none;
  padding: 0px;
}

#abe-tabs .ui-tabs,
#abe-tabs .ui-tabs-nav {
  /*border-bottom: 2px solid var(--obv-tertiary);*/
  border-radius: 0;
}

#abe-tabs .ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default,
.ui-button,
html .ui-button.ui-state-disabled:hover,
html .ui-button.ui-state-disabled:active {
  border: 2px solid var(--obv-primary);
  border-bottom: none;
  background: var(--obv-primary);
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
  font-weight: 500;
}

#abe-tabs ul li:focus,
#abe-tabs ul li a:focus {
  outline: none;
}

#abe-tabs .ui-state-active.ui-state-default {
  background: var(--obv-tertiary);
  border: 2px solid var(--obv-tertiary);
  border-bottom: none;
}

#abe-tabs .ui-state-active a,
#abe-tabs .ui-state-default a,
#abe-tabs .ui-state-default a:link {
  color: #fff;
}

#abe-tabs .ui-tabs-panel {
  padding: 2em 1em 1em;
  overflow: auto;
}

.lx h1 {
  font-weight: 700 !important;
  text-align: center;
  line-height: 1;
  margin-bottom: 8px;
  color: #6ec1e4;
}

#rates {
  max-width: 900px;
}
#rates tbody tr:nth-child(even) {
  background: #f3f7fa;
}
#rates tr th:nth-child(3),
#rates tr td:nth-child(3) {
  text-align: right;
}
#rates tr th:nth-child(4),
#rates tr td:nth-child(4) {
  text-align: center;
}
#rates th,
#rates td {
  border-bottom: none;
}
#rates td {
  font-size: 16px;
}

.lx-icons {
  margin: 0 10px 20px;
}

.lx-icons span {
  margin: 0 6px 2px 0;
  padding-right: 10px;
  display: inline-block;
  line-height: 1.4;
  border-right: 1px solid #98a6ad;
}

.lx-icons-override {
  margin: 0 6px 2px 0 !important;
  padding-right: 10px !important;
  border-right: 1px solid #98a6ad !important;
}

.lx-icons span:nth-of-type(4) {
  padding-right: 0;
  margin-right: 0;
  border-right: none;
}

.lx-checkavail .buttons-wrap {
  padding: 0 0.6em;
}

.lx-amen-name {
  float: left;
  font-size: 16px;
  min-width: 23%;
  margin-right: 2%;
  border-bottom: 1px dashed #5d70796b;
  margin-bottom: 5px !important;
  padding-bottom: 5px;
}

#abe-review-activator {
  width: auto;
  padding: 0 25px;
}
/*
#abe-review {
  display: none;
} */

/* Review form styling block */
#abe-tabs #reviews .review.lx-container {
  width: 100%;
  margin: 0 0 20px;
}
#rating {
  float: left;
  margin-left: 10em;
  margin-bottom: 15px;
}
.rating {
  /*width:100%;
    display: inline-block;
    height: 50px;
    padding: 5px;
    margin: 0px 0px 0px 0px;*/
  left: 0px;
  margin-left: 0px;
  margin: 0;
  position: relative;
}
.rating span {
  float: right;
  right: 80% !important;
  position: relative;
  padding-left: 2px;
}
.rating span input {
  position: absolute;
  top: 0px;
  left: 0px;
  opacity: 0;
}
.rating span label {
  display: inline-block;
  width: 30px;
  height: 30px;
  text-align: center;
  color: #bdbdbd;
  /* background:#999999; */
  font-size: 30px;
  margin-right: 2px;
  line-height: 30px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
}
.rating span:hover ~ span label,
.rating span:hover label,
.rating span.checked label,
.rating span.checked ~ span label {
  color: #f90;
}

#reviews label.fa {
  font-size: 30px !important;
}

.checked {
  color: F90;
}

#abeSubmitReviewForm {
  padding: 10px;
  background: var(--obv-primary) 05;
}

.review {
  padding: 23px;
  background: #5d70790f;
  border-radius: 8px.2rem;
  margin-bottom: 30px;
}

.review-title h3 {
  display: inline-block;
  font-weight: 500 !important;
  margin-bottom: 20px;
  margin: 10px 0px;
}

.review-date {
  color: #5d7079;
  font-size: 16px;
}

.review-response {
  margin-left: 30px;
  padding: 20px;
  background: #fdfdfd;
  margin-top: 20px;
  border-radius: 8px.2rem;
  border-left: 2px solid #5d7079;
}

.review .star-rating {
  margin-top: 12px;
}

.lx #calendar .lx-container {
  width: 100%;
  margin: 0;
}

.lx #calendar table {
  width: 48%;
  float: left;
  height: 320px;
  text-align: center;
  margin: 0 2% 2% 0;
}

#calendar table td {
  font-size: 16px;
  font-weight: 500;
  border: 1px solid #5d707930 !important;
}

#calendar table td .cal-rate {
  color: #333;
  font-size: 12px;
  font-weight: 400;
  display: none;
}

#calendar table thead {
  background: #f5fafc;
  border-bottom: 2px solid var(--obv-tertiary);
  font-size: 14px;
}

.lx-calendar .dDate,
.lx-calendar .highlighted.dDate,
.calkey .isavailable.dDate {
  background: #fff0f5;
  background: -moz-linear-gradient(to left bottom, #fff 50%, #d6d6d6 50%);
  background: -webkit-gradient(
    linear,
    left bottom,
    color-stop(50%, #fff),
    color-stop(50%, #d6d6d6)
  );
  background: -webkit-linear-gradient(to left bottom, #fff 50%, #d6d6d6 50%);
  background: -o-linear-gradient(to left bottom, #fff 50%, #d6d6d6 50%);
  background: -ms-linear-gradient(to left bottom, #fff 50%, #d6d6d6 50%);
  background: linear-gradient(to left bottom, #fff 50%, #d6d6d6 50%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0f5',endColorstr='#7fffd4',GradientType=1);
}

.lx-calendar .aDate,
.lx-calendar .highlighted.aDate,
.calkey .isavailable.aDate {
  background: #7fffd4;
  background: -moz-linear-gradient(to right top, #fff 50%, #d6d6d6 50%);
  background: -webkit-gradient(
    linear,
    right top,
    color-stop(50%, #fff),
    color-stop(50%, #d6d6d6)
  );
  background: -webkit-linear-gradient(to right top, #fff 50%, #d6d6d6 50%);
  background: -o-linear-gradient(to right top, #fff 50%, #d6d6d6 50%);
  background: -ms-linear-gradient(to right top, #fff 50%, #d6d6d6 50%);
  background: linear-gradient(to right top, #fff 50%, #d6d6d6 50%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7fffd4',endColorstr='#fff0f5',GradientType=1);
}

/* #calendar .calendar .highlighted, #calendar .calendar .aDate.dDate, #calendar .calkey .highlighted {
  background: rgb(155 77 202);
  color: rgb(255 255 255 / 25%);
} */

.lx-calendar .highlighted,
.lx-calendar .aDate.dDate,
.calkey .highlighted {
  background: #d6d6d6;
  color: #838383;
}

#calendar td.passed,
#calendar td.today.highlighted.aDate {
  background: #dadada;
  color: #ababab;
}

#calendar td.today {
  -webkit-box-shadow: inset 0px 0px 0px 2px rgba(225, 174, 127, 1);
  -moz-box-shadow: inset 0px 0px 0px 2px rgba(225, 174, 127, 1);
  box-shadow: inset 0px 0px 0px 2px rgba(225, 174, 127, 1);
}

.lx #calendar td,
.lx #calendar th {
  border: none;
  padding: 0;
  vertical-align: middle;
}

.lx #calendar .calendar {
  width: 32%;
  display: inline-block;
  vertical-align: text-top;
}

.calkey {
  clear: both;
  font-size: 16px;
  padding-top: 18px;
}
.calkey .key-item,
.calkey .key,
.calkey span {
  display: inline-block;
}
.calkey .key-item {
  margin: 0 16px 2px 0;
}
.calkey .key {
  width: 15px;
  height: 15px;
  border: 1px solid #404040;
}

.lx-checkavail-wrapper.fixed {
  position: sticky !important;
  top: 175px;
  z-index: 1;
}

.lx-unit-features span {
  display: inline-block;
  width: 100%;
  margin-top: 0.4rem;
  margin-right: 2%;
}

.lx-checkavail form label {
  font-size: 15px;
  display: none;
}

.lx-checkavail {
  max-width: 390px;
  padding: 0 0 0 1% !important;
  margin: 10px auto;
}

.lx-unit-info {
  flex-basis: 300% !important;
}

.lSAction > a {
  background-image: none;
  cursor: pointer;
  color: #fff;
  font-size: 3rem;
  text-align: center;
  width: auto;
}
.lSAction > a i {
  color: #fff !important;
  border: 2px solid #fff;
  padding: 3px;
}
#vrpinquire {
  margin-bottom: 0;
}
#vrpinquire label {
  font-size: 1rem;
  color: #7a7a7a;
}

#vrpinquire h2 {
  margin: 30px 0px;
}

#vrpinquire input[type="submit"] {
  width: auto;
}

#rates thead {
  border-bottom: 2px solid var(--obv-tertiary);
  background: #f5fafc;
  font-size: 14px;
}

.ui-datepicker-calendar td a,
.ui-datepicker-calendar td .ui-state-default {
  border: 1px solid #5d70792e !important;
  padding: 7px;
  color: #fff;
}

.ui-datepicker-calendar td a:hover {
  background: #cddbe4;
}

.ui-datepicker-calendar .ui-state-active {
  color: #000 !important;
  background: #c5d4dd !important;
}

#ratebreakdown {
  display: none;
  margin-bottom: 16px;
}

#ratebreakdown td {
  padding: 2px;
}

#ratebreakdown td:last-child {
  text-align: right;
}

#booklink-quote, #booklink-main {
  display: none;
  background-color: var(--om-red);
  border: 1px solid var(--om-red);
  color: #ffffff;
}
/* End of review styling block */
#errormsg {
  transition: 0.3s;
  display: none;
  padding: 8px 12px;
  font-size: 18px;
  line-height: 1.4em;
  background: #fff9c9;
  margin-bottom: 10px;
}

/* Loading circle */
.loader {
  width: 120px;
  height: 120px;
  transform: rotate(-90deg);
  stroke-linecap: round;
  stroke-width: 4;
  fill: none;
}

.loader .internal-circle {
  stroke: var(--obv-secondary);
  stroke-dashoffset: 0;
  transform-origin: center;
}

.loader .internal-circle {
  stroke-dasharray: 187;
  -webkit-animation: internal 1s ease-in-out infinite;
  animation: internal 1s ease-in-out infinite;
  opacity: 0.4;
}

@-webkit-keyframes internal {
  0% {
    stroke-dashoffset: 187;
  }
  25% {
    stroke-dashoffset: 80;
  }
  100% {
    stroke-dashoffset: 187;
    transform: rotate(360deg);
  }
}

@keyframes internal {
  0% {
    stroke-dashoffset: 187;
  }
  25% {
    stroke-dashoffset: 80;
  }
  100% {
    stroke-dashoffset: 187;
    transform: rotate(360deg);
  }
}

#loadingicons {
  display: none;
  text-align: center;
}
/* End of loading circle */

.share-form-wrapper,
.inquiry-form-wrapper {
  position: fixed;
  top: 19%;
  width: 800px;
}
.lx-share-close,
.lx-inquiry-close,
.lx-quote-close,
.lx-filter-close {
  cursor: pointer;
  display: inline-block;
  float: right;
  color: #fff;
  background: #bd0707;
  font-size: 14px;
  margin: -40px -40px 20px 0;
  padding: 4px 8px 0;
}
.lx-share-close:hover,
.lx-inquiry-close:hover,
.lx-quote-close:hover,
.lx-filter-close:hover {
  background: #a40505;
}
.lx-share-close .fas,
.lx-inquiry-close .fas,
.lx-quote-close .fas,
.lx-filter-close .fas {
  color: #fff;
}

.lx-unit-features a {
  color: var(--obv-tertiary);
}

.lx-detailed-quote,
#abe-quote-activator {
  display: none;
}
#abe-quote-activator {
  margin-bottom: 0.5rem;
}
.lx-detailed-quote {
  position: fixed;
  top: 19%;
  background: rgb(255, 255, 255);
  padding: 40px 40px 36px;
  box-shadow: 0px 0px 20px rgba(25, 51, 70, 0.3);
  border-radius: 8px.2rem;
  width: 350px;
  margin: 0 auto;
  left: 0;
  right: 0;
  z-index: 99;
}

.lx-quote-info {
  text-align: center;
  margin-bottom: 6px;
}
.lx-quote-info span {
  font-weight: 500;
}
.share-form-wrapper #shareForm {
  margin-bottom: 0;
}
.share-form-wrapper label {
  font-size: 1rem;
  text-align: left;
  display: none;
}

#share-response p {
  padding: 0px 3px !important;
  text-align: left;
  margin: 0px;
  font-size: 13px;
}

.share-form-wrapper .disclaimer span {
  width: 100%;
  display: block;
  font-size: 14px;
  text-align: left;
  line-height: 1;
  margin: 0 0 22px 4px;
}

#share-response.alert.alert-danger {
  background: #ff00000a;
  border-radius: 8px.2rem;
  margin-bottom: 20px;
}

/* end of unit page */

/* Booking Page */
#vrpbookform {
  margin-right: 3%;
}
#vrpbookform h3 {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}
#vrpbookform .lx-terms-input {
  font-size: 16px;
  padding-left: 8px;
  margin-bottom: 20px;
}
#vrpbookform label {
  margin-top: 4px;
  margin-bottom: 0;
}

.lx-card-wrapper {
  position: relative;
  min-height: 300px;
}

.lx-card {
  position: absolute;
  width: 60%;
  margin-left: 20%;
  padding: 20px;
  border-radius: 8px.5rem;
  background: rgb(135, 0, 218);
  background: linear-gradient(
    313deg,
    rgba(135, 0, 218, 1) 0%,
    rgba(75, 0, 83, 1) 37%,
    rgba(217, 128, 255, 0.9668242296918768) 100%
  );
  color: #fff;
  box-shadow: 0px 0px 2px 2px #b1b1b159;
}

.lx-card-number {
  padding: 40px 40px 10px 40px;
  text-shadow: 0px 2px 2px black;
  letter-spacing: 0.3rem;
}

.lx-card-dates {
  padding: 0px 40px 0px 70px;
  text-shadow: 0px 2px 2px black;
  letter-spacing: 0.2rem;
}

.lx-card-holder {
  padding: 0px 40px 10px 40px;
  text-shadow: 0px 2px 2px black;
  letter-spacing: 0.2rem;
}

.lx-card-logo {
  text-align: right;
}

.lx-card-logo img {
  width: 150px;
}

.lx-travel-ins {
  text-align: center;
  padding: 20px;
  background: #5d70790d;
  margin-bottom: 20px;
  border-radius: 8px.2rem;
}
.lx-travel-ins p {
  margin-bottom: 8px;
}
.lx-travel-ins span {
  font-weight: 500;
}

.lx-booking-details {
  border-left: 2px solid #899faa;
  padding: 2% 0 0 2% !important;
}
.lx-booking-details p {
  margin-bottom: 2px;
}

.lx-booking-background {
  overflow: hidden;
  background-size: cover;
  background-repeat: no-repeat;
  height: 400px;
  width: 100%;
  text-align: center;
  color: #fff;
  text-shadow: 1px 2px 1px #10101040;
  padding-top: 20%;
  border-radius: 8px.2rem;
  margin-top: 15px;
  box-shadow: inset 0 0 0 2000px rgba(17, 122, 214, 0.35);
}

.lx-booking-background h1 {
  color: #ffffff !important;
  font-size: 1.8rem !important;
  padding: 0 10px;
}

.lx-booking-background p {
  font-weight: 400;
  color: #ffffff;
}

/* .lx-booking-background {
  background: rgb(135,0,218);
  background: linear-gradient(254deg, rgba(135,0,218,1) 0%, rgba(75,0,83,1) 33%, rgba(79,4,88,1) 61%, rgba(217,128,255,0.9668242296918768) 100%);
  -webkit-transform: skew(0deg, -10deg);
  transform: skew(0deg, -10deg);
  padding: 200px 0;
  margin-top: -190px;
} */

#abe-province-wrapper,
#abe-othercountry-wrapper,
#abe-region-wrapper {
  display: none;
}

.lx-ratebreakdown {
  display: block;
  width: 80%;
  margin: 0 auto;
  margin-top: 40px;
}

.lx-ratebreakdown table {
  margin-top: 40px;
}
.lx-ratebreakdown thead {
  background: #5d70790d;
}
.lx-ratebreakdown tr th,
.lx-ratebreakdown tr td {
  padding: 4px 8px;
}
.lx-ratebreakdown tr th:last-child,
.lx-ratebreakdown tr td:last-child {
  text-align: right;
}

.lx-bold {
  font-weight: 700;
}

.lx-book-info i {
  margin-right: 10px;
}

.lx-terms {
  cursor: pointer;
  display: none;
  position: fixed;
  top: 10%;
  width: 50%;
  left: 25%;
  background: white;
  bottom: 10%;
  padding: 10px;
  border-radius: 8px.2rem;
  box-shadow: 0px 0px 3px 3px #94949414;
  z-index: 101;
}
/* End of Booking page */

/* Favorites page */
.lx-favorites {
  flex-wrap: wrap;
}
/* End of Favorites page */

/* Multi range slider */
[slider] {
  position: relative;
  height: 14px;
  border-radius: 10px;
  text-align: left;
  margin: 15px 10px 10px;
}

[slider] > div {
  position: absolute;
  left: 13px;
  right: 15px;
  height: 16px;
  border: 1px solid #eee;
  border-radius: 6px;
}

[slider] > div > [inverse-left] {
  position: absolute;
  left: 0;
  height: 14px;
  border-radius: 10px;
  background-color: #fff;
  margin: 0 7px;
}

[slider] > div > [inverse-right] {
  position: absolute;
  right: 0;
  height: 14px;
  border-radius: 10px;
  background-color: #fff;
  margin: 0 7px;
}

[slider] > div > [range] {
  position: absolute;
  left: 0;
  height: 14px;
  border-radius: 14px;
  background-color: var(--obv-primary);
}

[slider] > div > [thumb] {
  position: absolute;
  top: -7px;
  z-index: 2;
  height: 28px;
  width: 28px;
  text-align: left;
  margin-left: -11px;
  cursor: pointer;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.4);
  background-color: #fff;
  border-radius: 50%;
  outline: none;
}

[slider] > input[type="range"] {
  position: absolute;
  pointer-events: none;
  -webkit-appearance: none;
  z-index: 3;
  height: 14px;
  top: -2px;
  width: 100%;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -moz-opacity: 0;
  -khtml-opacity: 0;
  opacity: 0;
  cursor: pointer;
}

div[slider] > input[type="range"]::-ms-track {
  -webkit-appearance: none;
  background: transparent;
  color: transparent;
}

div[slider] > input[type="range"]::-moz-range-track {
  -moz-appearance: none;
  background: transparent;
  color: transparent;
}

div[slider] > input[type="range"]:focus::-webkit-slider-runnable-track {
  background: transparent;
  border: transparent;
}

div[slider] > input[type="range"]:focus {
  outline: none;
}

div[slider] > input[type="range"]::-ms-thumb {
  pointer-events: all;
  width: 28px;
  height: 28px;
  border-radius: 8pxpx;
  border: 0 none;
  background: red;
}

div[slider] > input[type="range"]::-moz-range-thumb {
  pointer-events: all;
  width: 28px;
  height: 28px;
  border-radius: 8pxpx;
  border: 0 none;
  background: red;
}

div[slider] > input[type="range"]::-webkit-slider-thumb {
  pointer-events: all;
  width: 28px;
  height: 28px;
  border-radius: 8pxpx;
  border: 0 none;
  background: red;
  -webkit-appearance: none;
}

div[slider] > input[type="range"]::-ms-fill-lower {
  background: transparent;
  border: 0 none;
}

div[slider] > input[type="range"]::-ms-fill-upper {
  background: transparent;
  border: 0 none;
}

div[slider] > input[type="range"]::-ms-tooltip {
  display: none;
}

[slider] > div > [sign] {
  opacity: 0;
  position: absolute;
  margin-left: -11px;
  top: -39px;
  z-index: 3;
  background-color: #54b3eb;
  color: #fff;
  width: 28px;
  height: 28px;
  border-radius: 28px;
  -webkit-border-radius: 28px;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  text-align: center;
}

[slider] > div > [sign]:after {
  position: absolute;
  content: "";
  left: 0;
  border-radius: 16px;
  top: 19px;
  border-left: 14px solid transparent;
  border-right: 14px solid transparent;
  border-top-width: 16px;
  border-top-style: solid;
  border-top-color: #54b3eb;
}

[slider] > div > [sign] > span {
  font-size: 12px;
  font-weight: 700;
  line-height: 28px;
}

[slider]:hover > div > [sign] {
  opacity: 1;
}

.price-range-wrapper {
  font-weight: 700;
  padding: 10px 0;
}
.price-range-wrapper span {
  color: var(--obv-primary);
}
.price-range-wrapper p {
  font-size: 18px;
  margin-bottom: 8px;
}

.row-fee,
.row-tax {
  display: none;
}

/* end of multi range slider */

.lx-jumbo,
.lx-sort-wrapper {
  width: 97%;
  margin-left: auto;
  margin-right: auto;
}
.lx-jumbo .lx-form-wrapper,
.lx-sort-wrapper > .lx-row {
  max-width: 1440px;
  margin: 0 auto;
}
.lx-sort-wrapper > .lx-row {
  padding: 0 0.7em;
}
.lx-sort-wrapper {
  padding-top: 1em;
  margin-bottom: 1.5em;
}
.lx-sort-wrapper .lx-column.no-padding {
  padding: 0;
}
.lx-form-wrapper form {
  width: 100%;
  padding: 0.8em 0.7em 0.4em;
  margin-bottom: 0px;
}
.lx-form-wrapper .lx-column.group {
  display: flex;
  padding: 0;
}
.lx-sort select {
  font-size: 14px;
  height: unset;
  border: 1px solid #fff;
  padding: 0.4rem 0.6rem;
}
.lx-sort select:hover {
  border-color: #6ec1e4;
}
.lx-sort select:active,
.lx-sort select:focus {
  border-color: #3f78e0;
}
.lx-sort option {
  font-size: 14px;
}
/* .lx-sort .lx-column:last-child {
  padding-right: 0px;
} */

.lx-jumbo {
  background: var(--obv-secondary);
}

/*#bookingform input[type="text"],
#bookingform select*/
.lx-jumbo input[type="text"],
.lx-jumbo select,
.lx-jumbo #abe-filters-activator {
  border-color: #fff;
}
.lx .lx-jumbo input[type="submit"] {
  background-color: var(--om-red);
  border-color: var(--om-red);
}
.lx .lx-jumbo input[type="submit"]:hover {
  background-color: var(--obv-primary) !important;
  border-color: var(--obv-primary) !important;
}
/*
#bookingform input[type="text"]:focus,
#bookingform select:focus {
  border-color: var(--obv-primary);
}

#bookingform {
  display: block;
  background-color: #e0e9fa;
  padding: 20px;
  margin: 0 auto 1em;
  border-radius: 8px;
}
#bookingform h2 {
  text-align: center;
  text-transform: uppercase;
  margin-bottom: 10px;
  color: #fff;
}
#bookingform .lx-column.no-margin {
  margin-bottom: 0;
}

#bookingform input#checkbutton {
  float: none !important;
  line-height: 1.5;
}
*/
.lx-filters-wrapper select {
  border-color: #a5bac5;
}

.lx-results-info {
  font-size: 14px;
  text-align: center;
  line-height: 1em;
  padding-top: 14px;
  margin-bottom: 0.5rem;
  border: 1px solid #fff;
}

.lx-title-wrapper {
  text-align: center;
}

.full-width .fusion-row {
  max-width: 1920px !important;
  margin: 0 auto;
}

.lx-apply-promo {
  margin-top: 27px;
}

body #wp_access_helper_container button.aicon_link {
  top: 210px;
}

.lx-results.floating-map {
  justify-content: left;
}
.lx-results.floating-map .lx-column-50 {
  width: 50%;
}

#n2-ss-2 .n2-ss-layer.n2-ow.n-uc-wMIGL7MC8Gr2 > div > div {
  max-width: 1170px;
  margin: 0 auto;
}

.front-page-1 .lx {
  background-color: rgba(0, 0, 0, 0.35);
  z-index: 11;
  padding: 8px;
}

.front-page-1 .lx-container {
  margin: 0;
  width: auto;
}

.front-page-1 .button,
.front-page-1 .lx-column input,
.front-page-1 .lx-column select {
  margin-bottom: 0;
}

.front-page-1 .smaller-column {
  max-width: 150px;
}

.front-page-1 .lx-column {
  padding: 0;
}

.front-page-1 .lx form {
  margin-bottom: 0;
}

.front-page-1 .lx input,
.front-page-1 .lx select {
  height: 55px;
  background-color: #fff;
  border: 1px solid #dddddd;
  border-radius: 8px;
  color: #333;
  padding: 0 20px;
  font-family: "Montserrat", sans serif;
  font-weight: 500;
  font-size: 14px;
}

.front-page-1 .lx select option {
  color: #333;
}

.front-page-1 button {
  height: 55px !important;
  font-size: 13px;
}

.front-page-1 .search-btn-container {
  margin-left: 8px;
}

.front-page-1 ::placeholder {
  color: #333;
  font-family: "Montserrat", sans serif;
  font-weight: 500;
  font-size: 14px;
}

.front-page-1 .lx-filters-wrapper {
  padding: 1rem;
  width: 110%;
  max-width: 1170px;
  background-color: rgba(0, 0, 0, 0.35);
  color: #fff;
  top: 5.95rem;
  left: -8px;
}

@media only screen and (max-width: 1210px) {
  .front-page-1 .lx-filters-wrapper {
    width: auto;
  }
}

.front-page-1 .lx-filter-close {
  margin: -1rem -1rem 20px 0;
}

.front-page-1 .lx-filters-wrapper select {
  height: 30px;
}

.front-page-1 .amenities-row .lx-column {
  display: flex;
  flex-direction: column;
  height: auto;
}

.front-page-1 .attr-item,
.front-page-1 .type-item {
  display: flex;
  justify-content: left;
  align-items: center;
  font-size: 13px !important;
  height: 22px;
}

.front-page-1 .attr-item input {
  height: 22px;
}

.front-page-1 .attr-item label,
.front-page-1 .type-item label {
  margin-left: 0.75rem;
  margin-bottom: 0;
}

.front-page-1 .lx-filter-title {
  font-size: 16px;
  color: #fff;
  border-bottom: 1px dashed #fff;
}

#content {
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.adv-search .quick-toggle {
  font-weight: 700;
  text-transform: uppercase;
  font-size: 16px;
  letter-spacing: 1px;
  margin-left: 10px;
  cursor: pointer;
  float: none;
  color: #fff;
}

.adv-search {
  margin-top: 1rem;
}

@media only screen and (max-width: 1023px) {
  body #wp_access_helper_container button.aicon_link {
    top: unset;
    bottom: 0;
  }
}

@media only screen and (max-width: 960px) {
  .front-page-1 .lx {
    background-color: rgba(255, 255, 255, 0.95);
    bottom: 0;
    padding: 1rem 0;
  }

  .front-page-1 .lx-container {
    padding: 0 0.5rem;
  }

  .front-page-1 .lx .lx-column {
    margin: 0.5rem 0;
  }

  .front-page-1 .smaller-column {
    max-width: unset;
  }

  .front-page-1 .lx input,
  .front-page-1 .lx select,
  .front-page-1 .lx input::placeholder {
    color: var(--obv-primary);
    border-color: var(--obv-primary);
  }

  #n2-ss-2 .n-uc-o1ORRqWmh37T {
    padding-top: 15rem !important;
  }

  .front-page-1 .lx-filters-wrapper {
    padding: 1rem;
    background-color: rgba(255, 255, 255, 0.95);
    color: #333;
    top: -100px;
    left: 0;
  }

  .front-page-1 .lx-filter-close {
    margin: -1rem -1rem 20px 0;
  }

  .front-page-1 .lx-filters-wrapper select {
    height: 40px;
  }

  .front-page-1 .amenities-row .lx-column {
    display: flex;
    flex-direction: column;
    height: auto;
  }

  .front-page-1 .attr-item,
  .front-page-1 .type-item {
    display: flex;
    justify-content: left;
    align-items: center;
    font-size: 13px !important;
    height: 22px;
  }

  .front-page-1 .attr-item label,
  .front-page-1 .type-item label {
    margin-left: 0.75rem;
    margin-bottom: 0;
  }

  .front-page-1 .lx-filter-title {
    color: #333;
    border-bottom: 1px dashed #333;
  }

  .adv-search .quick-toggle {
    color: #333;
  }
}

@media only screen and (max-width: 480px) {
  #n2-ss-2 .n-uc-o1ORRqWmh37T {
    padding-top: 10rem !important;
  }
}

/* responsive */


@media all and (max-width: 1440px) {
  .lx #calendar table {
    width: 48%;
  }
  .lSSlideOuter {
    margin-bottom: 1em;
  }
  .lx-amen-name {
    min-width: 31.3%;
  }
  .lx-item {
    flex-basis: 32.3%;
  }
  .lx-checkavail .flex-switch.promo-pets {
    flex-direction: column;
  }
  .lSAction > a {
    font-size: 2rem;
  }
}

@media all and (max-width: 1280px) {
  .lx-container {
    width: 98%;
    margin-left: 1%;
    margin-right: 1%;
  }
  .lx #calendar table {
    float: none;
    width: 100%;
    margin: 0 0 5% 0;
  }
  .lx-results.map-active .lx-item {
    flex-basis: 98%;
  }
}

@media all and (max-width: 1200px) {
  .lx-checkavail .flex-switch {
    flex-direction: column;
  }
}

@media all and (max-width: 1024px) {
  .lx-item {
    flex-basis: 49%;
  }
}

@media all and (max-width: 960px) {
  .lx-checkavail {
    max-width: 460px !important;
    padding: 0 !important;
    margin: 0 auto !important;
  }
  .buttons-wrap .lx-row {
    flex-direction: row;
  }
  .lx-unit-info {
    flex-basis: 300% !important;
    max-width: 100% !important;
  }

  .lx-image-container .lx-favorite {
    width: auto;
  }

  .lx-terms {
    width: 90%;
    left: 5%;
  }

  .lx-fixed-w-500-700 {
    min-width: auto;
    max-width: auto;
  }

  #abe-tabs {
    margin-bottom: 2em;
    border-bottom: 2px solid var(--obv-tertiary);
  }
  .share-form-wrapper,
  .inquiry-form-wrapper,
  .lx-detailed-quote {
    top: 22%;
    left: 2%;
    right: 2%;
    width: 96%;
    padding: 40px 30px 30px;
  }
  .lx-filters-wrapper {
    width: 98%;
    padding: 40px 30px 30px;
    left: 1%;
    right: 1%;
  }
  .lx-filters-wrapper .attr-item,
  .lx-filters-wrapper .type-item {
    width: unset;
  }
  .lx-sort-wrapper > .lx-row {
    flex-direction: column-reverse;
  }
  .lx-sort-wrapper .flex-switch {
    margin-bottom: 0.2rem;
  }
  .lx-sort-wrapper .flex-switch,
  .lx-sort {
    flex-direction: row;
  }
  .lx-sort .wrap {
    width: 100%;
  }
  .lx-sort select {
    border-left-color: #fff;
    border-bottom-color: #6ec1e4;
  }
  .lx-results.map-active {
    padding: 0 0.5%;
  }
  .lx-results.map-active .lx-item,
  .lx-item {
    margin-bottom: 4%;
  }
  .lx-row .lx-column.lx-column-50#abe-map-results {
    flex: 1 1 auto;
    max-width: 100%;
    height: 400px;
    margin: 0 0 20px 0;
  }
  .lx-image-container img {
    height: 430px;
  }
  .lx-payment .lx-book {
    flex-direction: column-reverse;
  }
  .lx-booking-details {
    padding: 0 !important;
    margin-bottom: 2%;
    border-left: none;
    border-bottom: 2px solid #5d7079;
  }
  #vrpbookform {
    margin: 0 2%;
  }
  #vrpbookform .lx-row {
    flex-direction: row;
  }
  .lx-share-close,
  .lx-inquiry-close,
  .lx-quote-close,
  .lx-filter-close {
    margin: -40px -30px 30px 0;
  }
}

@media all and (max-width: 768px) {
  .lx-icons {
    font-size: 16px;
  }
  .lx-amen-name {
    min-width: 100%;
    margin-bottom: 3px !important;
    padding-bottom: 3px;
  }
  .topBanner h1 {
    font-size: 36px !important;
  }
  .lSAction > a {
    font-size: 1rem;
  }
}

@media all and (max-width: 560px) {
  .rating span {
    float: right;
    right: 20% !important;
    position: relative;
    padding-left: 2px;
  }
  #rating {
    float: initial;
    margin-left: initial;
  }
  #bookingbuttonvrp,
  .lx-book-submit {
    padding: 0 1rem;
  }
  .lx-book {
    flex-direction: column-reverse;
  }
  .lx-booking-details {
    border-left: initial !important;
  }
  .lx-ratebreakdown {
    width: 94%;
  }
  .lx-booking-background {
    height: 260px;
  }
  .lx-booking-details h1 {
    margin-bottom: 22px;
    font-size: 1.7rem;
    font-weight: 500 !important;
  }
  .lx-booking-details p {
    margin-bottom: 0.5rem;
  }
  .lx-terms-input {
    text-align: center;
    margin-bottom: 30px;
  }
  .lx-travel-ins {
    padding: 20px 0px;
  }
  /*
  .lx-sort-wrapper .flex-switch .lx-column:nth-of-type(3) { display: none; }
  .lx-sort { flex-direction: column; }
  .lx-sort-wrapper .lx-favorite-show { margin-bottom: 0.5rem; }
  .lx-results-info { padding: 4px 6px 2px; }
  .lx-item, .lx-results.map-active .lx-item { margin-bottom: 5%; }
*/
  #abe-map-results {
    /*
	  flex: none;
    max-width: 100%;
    height: 500px;
	  */
    display: none;
  }
  .lx-map-activator {
    display: none;
  }
  .lx-image-container img {
    height: 300px;
  }
  #rates table th,
  #rates table td {
    font-size: 14px;
  }
  #vrpbookform .lx-row {
    flex-direction: column;
  }
}

@media all and (max-width: 480px) {
  .lx-form-wrapper .lx-column.group:nth-of-type(1) {
    flex-direction: column;
  }
  .lx-item h2 {
    margin: 0px 0 2px 4px;
  }
  #abe-tabs .ui-tabs-panel {
    padding: 1.5em 0.4em 1em;
  }
  .lx td,
  .lx th {
    padding: 0.3rem;
  }
  .lSPager.lSGallery {
    height: 90px;
  }
  #vrpinquire .lx-row {
    flex-direction: column;
  }
  #abe-slider img {
    max-height: 220px;
  }
}

@media all and (max-width: 380px) {
  .lx-form-wrapper .lx-column.group {
    flex-direction: column;
  }
  .lx-filters-wrapper,
  .share-form-wrapper,
  .inquiry-form-wrapper,
  .lx-detailed-quote {
    padding: 40px 20px 20px;
  }
  .lx-share-close,
  .lx-inquiry-close,
  .lx-quote-close,
  .lx-filter-close {
    margin: -40px -20px 10px 0;
  }
  #shareForm .lx-row {
    flex-direction: column;
  }
}

@media all and (max-width: 360px) {
  #abe-tabs .ui-tabs-panel {
    padding: 1.5em 0.2 1em;
  }
  .lx-filters-wrapper,
  .share-form-wrapper,
  .inquiry-form-wrapper,
  .lx-detailed-quote {
    left: 1%;
    right: 1%;
    width: 98%;
    padding: 40px 10px 20px;
  }
  .lx-share-close,
  .lx-inquiry-close,
  .lx-quote-close,
  .lx-filter-close {
    margin: -40px -10px 10px 0;
  }
}

.lx-quote-info {
  margin-bottom: 10px;
  font-size: 1.1rem;
}

/* ── OTA channel comparison (booking widget) ───────────────────────────────
   Deliberately quieter than the direct total above it. The strikethrough sits
   on OUR rate on that channel, not on a competitor's price — the copy in
   .lx-quote-ota__basis says so, and that disclosure is styled to be legible
   rather than buried, because it is what makes the comparison honest.
   Rows only exist when the manager configured a markup; see
   templates/partials/checkavailForm.php. */
.lx-quote-ota {
  margin: -4px 0 12px;
  padding: 8px 10px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.03);
}

.lx-quote-ota .lx-quote-info {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 4px;
  font-size: 0.95rem;
}

/* An empty row is what JS writes when a multiplier resolves to nothing
   usable — collapse it so no stray padding hints at missing content. */
.lx-quote-ota .lx-quote-info:empty {
  display: none;
  margin: 0;
}

.lx-quote-ota__label {
  color: #555;
}

.lx-quote-ota__was {
  color: #777;
  text-decoration: line-through;
}

.lx-quote-ota__save {
  margin-left: auto;
  font-weight: 700;
  color: var(--obv-primary, #1f7a6f);
}

.lx-quote-ota__basis {
  margin: 6px 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: #666;
}

.lx-confirm {
  padding: 3rem 0;
}

.lx-confirm .lx-column {
  flex: 0.5;
  margin: 0 auto;
  border: 1px solid var(--obv-primary);
  text-align: center;
  color: #333;
  padding: 3rem;
}

.lx-confirm h3 {
  font-weight: 700;
  font-size: 1.5rem;
}

.lx_main .page-title {
  /*margin-left: 5%;*/
  margin-bottom: 2rem;
}

/*.results-content, .lx_main .entry-content p {padding: 0 5%;}*/
.lodingImage {
  height: 560px;
}

.lx-amen-title {
  margin: 15px 0 8px 0 !important;
}

.gallery-wrapper {
  position: relative;
}
#fullscreen-cta {
  position: absolute;
  right: 20px;
  top: 20px;
  color: #fff;
  z-index: 9;
  font-size: 1.3em;
  line-height: 1em;
  padding: 8px 10px;
  background-color: var(--default_color);
  border-radius: 4px;
  -webkit-box-shadow: 0px 0px 15px 5px rgba(0, 0, 0, 0.4);
  -moz-box-shadow: 0px 0px 15px 5px rgba(0, 0, 0, 0.4);
  box-shadow: 0px 0px 24px 8px rgb(0 0 0 / 20%);
}
#fullscreen-cta:hover {
  transition-property: color, background-color, border-color;
  transition-duration: 0.25s;
  background-color: rgba(255, 255, 255, 0.8);
  cursor: zoom-in;
  color: var(--default_color);
}

p.lx-amen-title {
  color: #198d75 !important;
  font-size: 1.2em;
}
.lx-amen-name {
  list-style: none;
  border: none;
  font-size: 14px;
}
#amenities .lx-column {
  border-bottom: 1px solid #c6d2e1;
}
.lx-image-container img {
  transition: all 0.3s ease-in-out;
}

.lx-unit .lx-container {
  max-width: 100%;
}

.lx-item:hover {
  border: 2px solid #fcd703;
  box-shadow: 4px 6px 9px 4px rgba(0, 0, 0, 0.15);
}
.lx-item h2 a {
  color: #666;
}
.lx-item:hover h2 a,
.icons-info span .fas,
.lx-item .lx-rate strong {
  color: #198d75;
}

.lx-item {
  transition: all 0.3s ease;
  border: 2px solid transparent;
}

.lx-image-container .results-pet-icon > * {
  transition: all 0.3s ease-in-out;
}
.lx-image-container .results-pet-icon img {
  margin-left: 3px;
}
section.entry-content.cf {
  padding-top: 90px;
}

@media all and (max-width: 768px) {
  #featured-units button.slick-next.slick-arrow {
    right: calc(50% - 50px);
  }
  #featured-units button.slick-prev.slick-arrow {
    left: calc(50% - 50px);
  }
}

@media (min-width: 961px) {
  .lx-title-wrapper,
  .lx-title-wrapper h1 {
    text-align: left;
  }
  .lx-title-wrapper .lx-icons {
    margin: 0;
  }
  .lx-column.lx-checkavail {
    margin-top: 0;
  }
  .lx-checkavail-wrapper {
    position: sticky;
    top: 175px;
  }
}

@media all and (max-width: 960px) {
  .lx-unit .lx-container .lx-row {
    flex-direction: column-reverse;
  }
  #checkavail-dates-row {
    flex-direction: column !important;
  }
}
/*
.booking-form {
  background-color: white !important;
  box-shadow: 0 3px 10px rgb(0 0 0 / 0.2);
  padding: 1.5rem;
}

@media all and (max-width: 960px) {
  .booking-form {
    margin-top: 2rem !important;
  }
}
*/
ul.lSPager.lSGallery li a {
  height: 0px !important;
  padding-bottom: 66%;
  position: relative;
  width: 100% !important;
  display: flex;
}
ul.lSPager.lSGallery li a img {
  object-fit: cover;
  width: 100%;
  height: 100% !important;
  position: absolute;
}

@media (min-width: 1921px) {
  /* Widen BOTH unit-page wrappers together on ultra-wide monitors. Previously
     only `.lx.lx-unit` (the body wrapper) grew to 1400 while the hero+tabs
     wrapper (a bare `.max-width-container`) stayed at 1225 — a 175px mismatch
     that read as the images/content being different widths on 2560px+ screens. */
  .max-width-container {
    max-width: 1400px;
    margin: 0 auto;
  }
}
#featured-units .star-rating.mt-2.mb-2 {
  justify-content: center;
  margin-top: 10px;
}

button.slick-prev.slick-arrow,
button.slick-next.slick-arrow {
  z-index: 1;
}

.max-width-container {
  max-width: 1225px;
  width: calc(100% - 40px);
  margin: 0 auto;
}


/* Booking Form */
.booking-form {
  background-color: white !important;
  box-shadow: 0 3px 10px rgb(0 0 0 / 0.2);
  padding: 2rem;
  margin: 2rem auto; /* center horizontally */
  border-radius: 8px;
}

@media all and (max-width: 960px) {
  .booking-form {
    margin-top: 2rem !important;
    padding: 1.5rem;
  }
}

.lx-jumbo input[type="text"],
.lx-jumbo select,
.lx-jumbo #abe-filters-activator,
#bookingform input[type="text"],
#bookingform select {
  border: 1px solid #ccc; /* changed from white to visible border */
  padding: 0.5rem;
  border-radius: 4px;
  background-color: #fff;
  color: #333; /* make text readable */
  width: 100%;
  box-sizing: border-box;
}

#bookingform input[type="text"]:focus,
#bookingform select:focus {
  border-color: var(--obv-primary);
  outline: none;
  box-shadow: 0 0 5px rgba(0,123,255,0.3);
}

.lx .lx-jumbo input[type="submit"] {
  background-color: var(--om-red);
  border-color: var(--om-red);
  color: #fff;
  padding: 0.7rem 1.5rem;
  border-radius: 5px;
  cursor: pointer;
}
.lx .lx-jumbo input[type="submit"]:hover {
  background-color: var(--obv-primary) !important;
  border-color: var(--obv-primary) !important;
}

#bookingform h2,
#bookingform h3 {
  color: #222;
}

#bookingform h2 {
  text-align: center;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

#bookingform .lx-column.no-margin {
  margin-bottom: 0;
}

#bookingform input#checkbutton {
  float: none !important;
  line-height: 1.5;
}

.confirm-form-page, .payment-form-page {

  width:100%;
  padding:2rem;
}

.confirm-form-page .lx-row, .payment-form-page .lx-row  {
  display:flex;
  padding: .8rem 0;
}

.confirm-form-page .lx-col, .payment-form-page .lx-col  {
  flex: 1 1 50%;
}


.confirm-form-page .lx-col input, .payment-form-page .lx-col input  {
  border:1px solid #05047E !important;
  font-size:15px !important;
}

.payment-form-page .form-inner {
  display:flex;
  padding:1rem;
  column-gap:1rem;
}

.payment-form-page .form-inner .left {
  flex:1 1 55%;
}

.payment-form-page .form-inner .right {
  flex:1 1 45%;

}

/* Responsive rows and columns */
#bookingform .lx-row {
  display: flex;
  /*flex-wrap: wrap;*/
  margin-bottom: 1rem;
}
#bookingform .lx-column {
  flex: 1;
  /*min-width: 200px;*/
  /*margin-right: 1rem;*/
}
#bookingform .lx-column:last-child {
  margin-right: 0;
}

/* Buttons inside the form */
#bookingform button,
#bookingform .btn {
  display: inline-block;
  padding: 0.7rem 1.5rem;
  font-size: 1rem;
  border: none;
  border-radius: 5px;
  background-color: #28a745;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.2s, transform 0.1s;
}
#bookingform button:hover,
#bookingform .btn:hover {
  background-color: #218838;
  transform: translateY(-1px);
}
#bookingform button:active,
#bookingform .btn:active {
  transform: translateY(0);
}

/* Lists for confirmed booking details */
#bookingform ul {
  list-style: none;
  padding-left: 0;
  margin-bottom: 1rem;
}
#bookingform ul li {
  padding: 0.3rem 0;
  font-size: 1rem;
}

/* Mobile responsiveness */
@media (max-width: 600px) {
  #bookingform .lx-row {
    flex-direction: column;
  }
  #bookingform .lx-column {
    margin-right: 0;
    margin-bottom: 0.75rem;
  }
  #bookingform .lx-column:last-child {
    margin-bottom: 0;
  }
}

#bookingform .form-inner-wrapper {
  display:flex;
  width:100%;
}

#bookingform .confirmed-booking-details {
  flex: 1 1 45%;
  border:1px solid #ccc;
  padding:1rem;
  margin:1rem 0;
  border-radius:8px;
  background:#f9f9f9;
}

#bookingform .form-left-side {
  flex: 1 1 55%;
}


/* Terms & Conditions modal */
.modal {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.5);
}

/* Modal content box */
.modal-content {
  background-color: #fff;
  margin: 5% auto;
  padding: 20px;
  border-radius: 8px;
  width: 90%;
  max-width: 600px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
}

/* Close button */
.modal-content .close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}

.modal-content .close:hover {
  color: #000;
}

/* Scrollable terms content */
.terms-text {
  overflow-y: auto;
  padding: 10px 0;
  flex: 1;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  margin: 10px 0;
}

/* Modal footer button */
.modal-footer {
  text-align: right;
}

#bookingform .form-buttons {
  width:100%;
  display:flex;
  flex-direction:column;

}

/* No-background button with icon-text layout */
#termsBtn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;      /* space between icon and text */
  background: none;  /* no background */
  border: none;      /* no border */
  padding: 0.5rem 1rem;
  font-size: 1rem;
  color: #007bff;    /* link-style color, adjust if needed */
  cursor: pointer;
}

#termsBtn:hover {
  text-decoration: underline;
}

#termsBtn i {
  font-size: 1.2rem; /* icon size */
}



/* Form Container */
#vrpbookform {
  display: block;
  background-color: #e0e9fa88; /* similar to confirmation page */
  padding: 2rem;
  margin: 2rem auto;
  border-radius: 10px;
  color: #333;
}

/* Headings */
#vrpbookform h3 {
  margin-bottom: 1rem;
  color: #1a1a1a;
  font-size: 1.5rem;
  border-bottom: 2px solid #ccc;
  padding-bottom: 0.5rem;
}

/* Rows & Columns */
.lx-row {
  display: flex;
  flex-wrap: nowrap;
  box-sizing:border-box;
  column-gap: 2%;
}

.lx-column {
  flex: 1 1 50%;
  box-sizing:border-box;
}

.lx-column:last-child {
  margin-right: 0;
}

/* Inputs & Selects */
#vrpbookform input[type="text"],
#vrpbookform input[type="number"],
#vrpbookform select {
  width: 100%;
  padding: 0.6rem;
  border-radius: 6px;
  font-size: 1rem;
  color: #333;
  background-color: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
}

#vrpbookform input[type="text"]:focus,
#vrpbookform select:focus {
  border-color: #1e73be; /* highlight color */
  box-shadow: 0 0 5px rgba(30, 115, 190, 0.3);
  outline: none;
}

/* Payment Section */
.payment-section {
  padding-top: 1rem;
}

/* Optional Add-ons */
.lx-travel-ins {
  padding: 1rem;
  border-radius: 6px;
}

.lx-travel-ins p {
  margin: 0 0 0.5rem;
}

.lx-travel-ins span {
  font-weight: bold;
  color: #1a1a1a;
  margin-left: 0.3rem;
}

.lx-travel-ins input[type="radio"] {
  margin-right: 0.3rem;
  margin-left: 0.5rem;
}

/* Submit Button.
   Matched on BOTH the new .lx-book-submit class and the legacy id: the
   booking submit element emits both (templates/booking/payment.php), and the
   live child theme's own stylesheet still targets the id. Remove the id
   selectors only together with the id in the markup. */
#bookingbuttonvrp,
.lx-book-submit {
  display: inline-block;
  background-color: #1e73be;
  color: #fff;
  padding: 0.8rem 2rem;
  border: none;
  border-radius: 6px;
  font-size: 1.1rem;
  cursor: pointer;
  transition: background-color 0.3s;
}

#bookingbuttonvrp:hover,
.lx-book-submit:hover {
  background-color: #155d8b;
}

/* Loader */
#loadingicons {
  display: none;
  text-align: center;
  margin-bottom: 1rem;
}

#loadingicons p {
  margin-bottom: 0.5rem;
}

.loader {
  width: 50px;
  height: 50px;
  animation: rotate 1s linear infinite;
}

.loader .internal-circle {
  fill: none;
  stroke: #1e73be;
  stroke-width: 8;
  stroke-dasharray: 150;
  stroke-dashoffset: 0;
  stroke-linecap: round;
}

@keyframes rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Responsive Adjustments */
@media (max-width: 768px) {
  .lx-column {
    flex: 1 1 100%;
    margin-right: 0;
  }
}


.booking-summary {
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 20px;
    background: #f9f9f9;
}

.booking-summary h3 {
    margin-bottom: 15px;
    font-size: 1.5em;
}

.booking-image {
    margin-bottom: 15px;
    text-align: center;
}

.booking-details ul {
    list-style: none;
    padding: 0;
}

.booking-details li {
    margin-bottom: 8px;
    font-size: 1em;
}


#vrpbookform input {
  border:1px solid var(--em-dark-text) !important;
  font-size:15px !important;
}


/* tahoesignature.css */
:root {
  --om-dark-grey: #3a3a3a;
  --om-light-grey: #cacaca;
  --om-red: #d14261;
  --om-dark-blue: #0c1d3f;
  --cal-height: 355px;
  --cal-chat-padding: 20px;
}

/* HEADINGS */
#top-links > * {
  width: fit-content;
  color: var(--om-dark-grey);
  font-weight: 400;
}
#gmaplink {
  color: var(--om-dark-grey) !important;
  font-weight: 400 !important;
}
.lx-icons-2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 23px 0 19px;
}

.icons-amenities {
  padding-left: 4px;
}

.icons {
  border-bottom: 1px solid var(--om-light-grey);
}

.lx-icons-2 span {
  font-size: 16px;
  font-weight: 400;
  box-sizing: inherit;
  color: var(--om-dark-grey);
}

.lx-icons-2 span img {
  height: 16px;
  width: 16px;
  margin-right: 5px;
}

.lx-icons-2 span svg {
  margin-right: 5px;
}

/* ── Bootstrap spacing utilities, defined LOCALLY ──────────────────────────
   unit.php marks its spec row and section headings up with Bootstrap classes
   (pt-1 ps-1 pe-3 pt-2 pb-1 mb-0 mt-2 mb-2). The plugin has never defined any
   of them — they only resolved because ONE client's theme (TSP's Bootstrap-based
   sandbox theme) happens to ship Bootstrap.

   On any theme without Bootstrap they are inert, so the spec row collapses to
   "3<icon>2<icon>8<icon>Sorry, No Pets" with no gaps at all — which is exactly
   what demo.lexaily.com was showing.

   This is the same bug class as the map pin badge: a single client's environment
   silently load-bearing for every install. Fixing it here rather than in the
   template means no markup churn and no risk to the live TSP unit page.

   Values are Bootstrap 5's own ($spacer = 1rem; 1 = .25rem, 2 = .5rem, 3 = 1rem),
   so a Bootstrap theme is bit-for-bit unchanged and a non-Bootstrap theme simply
   stops collapsing. Scoped to .lx-unit so these never leak into a host theme's
   own markup. */
.lx-unit .pt-1 { padding-top: 0.25rem; }
.lx-unit .pt-2 { padding-top: 0.5rem; }
.lx-unit .pb-1 { padding-bottom: 0.25rem; }
.lx-unit .ps-1 { padding-left: 0.25rem; }
.lx-unit .pe-3 { padding-right: 1rem; }
.lx-unit .mt-2 { margin-top: 0.5rem; }
.lx-unit .mb-2 { margin-bottom: 0.5rem; }
.lx-unit .mb-0 { margin-bottom: 0; }

/* Belt and braces for the spec row: even if a future edit drops the utility
   classes, row-gap keeps the groups legible when they wrap onto two lines. */
.lx-icons-2 { row-gap: 4px; }

.favorite:hover {
  cursor: pointer;
}

.icons-actions {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  --wp--preset--font-size--normal: 16px;
  --wp--preset--font-size--huge: 42px;
  font-size: 16px;
  font-family: Boing, sans-serif;
  font-weight: 300;
  color: var(--om-dark-blue);
  box-sizing: inherit;
  padding: 15px 0;
  display: flex;
  align-items: center;
  margin: 0;
  column-gap: 20px;
}

.icons-actions a span {
  display: flex;
  align-items: center;
}

.slider-arrow {
  overflow: visible;
  margin: 0;
  text-transform: none;
  -webkit-appearance: button;
  transition: all 0.2s ease-in-out;
  border: 1px solid #d5d5d5;
  background-color: transparent;
  width: 32px;
  height: 32px;
  border-radius: 43px;
  color: var(--om-dark-blue);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin-bottom: 0px !important;
}

/* Description */

.text-editor-holder {
  line-height: 1.75;
  font-weight: 500;
  box-sizing: inherit;
  padding: 32px 0;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--om-light-grey);
  font-size: 18px;
  color: var(--om-dark-blue);
}

#description {
  font-size: 18px;
  line-height: 28.8px;
}

/* Read more buttons */
.btn-outline {
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  outline: 0;
  display: inline-block;
  border-radius: 7px;
  text-align: center;
  padding: 10px 30px;
  min-width: 148px;
  border: 1px solid var(--om-red);
  background-color: transparent;
  color: rgb(58, 58, 58);
  border-color: rgb(58, 58, 58);
}

#otheramenities h4 {
  margin-top: 25px;
  margin-bottom: 5px;
  font-family: inherit;
  line-height: 1.3;
  letter-spacing: -0.2px;
  word-spacing: 2px;
}

.lx-checkavail {
  /*min-width: 365px;*/
}

.btn-readmore {
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  outline: 0;
  display: inline-block;
  border-radius: 7px;
  text-align: center;
  padding: 10px 30px;
  min-width: 148px;
  border: 1px solid var(--om-red);
  background-color: transparent;
  color: rgb(58, 58, 58);
  border-color: rgb(58, 58, 58);
  margin-top: 10px;
  color: var(--om-dark-blue);
  font-size: 16px;
  font-weight: 400;
}

.location-text {
  font-family: Boing, sans-serif;
  color: var(--om-dark-blue);
  box-sizing: inherit;
  font-size: 16px;
  line-height: 1.31;
  font-weight: 400;
  margin: 0 0 20px;
}

#gmaplink {
  color: #336699;
  font-weight: 600;
}

/* Amenities */

#unit-data {
  max-width: 66%;
}
.top-amenity img {
  margin-right: 5px;
}
.amenity {
  margin-bottom: 15px;
  font-size: 18px;
}

.amenity span {
  font-size: 16px;
  font-weight: 400;
  color: var(--om-dark-blue);
  margin-left: 10px;
}

.amenities-list {
  width: 70%;
  column-count: 2;
}

.favorite {
  display: flex;
  align-items: center;
}

/*h3 {
    margin-bottom: 36px!important;
}*/

.lx-title-wrapper h1 {
  color: rgb(12, 29, 63);
}

#abe-tabs {
  margin-top: 0;
}

/* ALL SLIDERS */
.slider-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 20px;
  margin-bottom: 20px;
}

.slider-header h3,
.amenities-container h3 {
  font-weight: 600;
  font-size: 28px;
  display: flex;
  align-items: center;
  margin-bottom: 0;
}

.slider-container {
  margin-top: 20px;
  border-top: 1px solid var(--om-light-grey);
  padding-bottom: 20px;
}

/* IMG SLIDERS */
.img-slider {
  display: flex;
  flex-direction: row;
  height: fit-content;
  overflow: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
}

.bedroom,
.bathroom {
  box-sizing: border-box;
  width: calc(100% / 3);
  flex-shrink: 0;
  padding-right: 10px;
}

.bathroom {
  box-sizing: border-box;
  width: calc(100% / 3);
  flex-shrink: 0;
  padding-right: 10px;
}

.bedroom h4,
.bathroom h4 {
  margin-bottom: 10px;
}

.bedroom img,
.bathroom img {
  border-radius: 8px;
}

/* SLIDER PAGINATION */
.slick-pagination {
  box-sizing: inherit;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-right: 10px;
  align-items: center;
}

.slider-pagination {
  color: var(--om-dark-blue);
}

/* REVIEWS */
.review {
  border-radius: 8px;
  box-sizing: border-box;
  height: 100%;
  background: #eee;
  flex-shrink: 0;
  margin-right: 10px;
  margin-left: 0;
  margin-bottom: 0;
  width: 100%;
  padding: 1rem;
}
.review-title h3 {
  font-size: 0.95rem;
}

.review-description {
  margin-top: 15px;
  font-size: 0.9rem;
}

/* MAP */
.map-container {
  border-top: 1px solid var(--om-light-grey);
  padding-top: 20px;
  margin-top: 20px;
}

.map-container h3 {
  margin-bottom: 7px !important;
  font-weight: 600;
  font-size: 28px;
}

#map {
  width: 100%;
  height: 500px;
}

/* CHECK AVAIL FORM */
#check-avail-button,#contact-us-btn {
  -webkit-text-size-adjust: 100%;
  box-sizing: inherit;
  overflow: visible;
  font-family: inherit;
  line-height: 1.15;
  margin: 0;
  -webkit-appearance: button;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  outline: 0;
  display: inline-block;
  border-radius: 7px;
  text-align: center;
  color: #fff;
  min-width: 148px;
  background-color: var(--om-red);
  width: 100%;
  text-transform: none;
  padding: 0;
  border: none;
  font-size: 1.1em;
  min-height: 42px;
}

#contact-us-btn {
  background: #fff;
  color:  var(--om-dark-blue);
  border: 1px solid var(--om-dark-blue);
  width: 100%;
}

#checkavail-dates-row {
  border-top: 1px solid #cacaca;
  border-bottom: 1px solid #cacaca;
  padding: 7px 0;
}

.check-avail-date-input {
  padding: 0 5px;
}

.check-avail-date-input small {
  margin-bottom: 0;
}

.input-group-separator {
  max-width: 1px;
  margin: 0 10px;
  flex: 0 0 1px;
  background: #d5d5d5;
  width: 1px;
  height: auto;
}

#check-in,
#check-out,
#check-in-display,
#check-out-display {
  background: none;
  margin: 0;
  height: fit-content;
  border: none !important;
}

/* Mouse focus only — keyboard focus keeps a visible ring (see the a11y block
   at the end of this file). Removing the outline outright failed WCAG 2.4.7. */
#checkavailbox input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
select:active:not(:focus-visible) {
  outline: none !important;
}

#checkavailbox .lx-row {
  margin-bottom: 10px;
}

#checkavailbox .lx-row.flex-switch {
  border-bottom: 1px solid #cacaca;
  padding: 7px 0;
}

#checkavailbox .promo-pets {
  border-bottom: none;
}
#checkavailbox .lx-row.flex-switch small {
  margin-bottom: 0;
}
#checkavailbox .lx-row .group {
  padding: 0 5px;
}

#checkavailbox select {
  background: none;
  height: fit-content;
  border: none !important;
}

#checkavailbox .lx-daily-rate {
  font-weight: 600;
  color: #0c1d3f;
  font-size: 1rem;
  line-height: 1.31;
  margin-bottom: 0;
}

#checkavailbox .lx-daily-rate span {
  font-size: 1.2rem;
}

#checkavailbox .lx-daily-rate sup {
  font-size: 0.8rem;
}

/* Check avail mobile/tablet footer */
.footer-1 {
  font-size: 16px;
  font-weight: 300;
  color: var(--om-dark-blue);
  box-sizing: inherit;
  position: fixed;
  width: 100%;
  left: 0;
  /*z-index: 11;*/
  transition: all 0.5s ease-out;
  background-color: var(--om-dark-blue);
  bottom: 0;
  display: none;
}

.footer-1 .container {
  box-sizing: inherit;
  max-width: 1225px;
  width: calc(100% - 40px);
  margin: 0 auto;
  display: flex;
}

.footer-1 .navheader {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  --wp--preset--font-size--normal: 16px;
  --wp--preset--font-size--huge: 42px;
  font-size: 16px;
  font-family: Boing, sans-serif;
  font-weight: 300;
  color: var(--om-dark-blue);
  box-sizing: inherit;
  margin: 15px auto;
  display: flex;
}

#mobileCheckAvailabilityButton {
  box-sizing: inherit;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  outline: 0;
  display: inline-block;
  border-radius: 7px;
  text-align: center;
  padding: 10px 30px;
  min-width: 148px;
  background-color: var(--om-red);
  border: 1px solid var(--om-red);
}

#mobileCheckAvailabilityButton a {
  color: white !important;
}

.logoheader-desktop {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  --wp--preset--font-size--normal: 16px;
  --wp--preset--font-size--huge: 42px;
  font-size: 16px;
  font-family: Boing, sans-serif;
  font-weight: 300;
  color: var(--om-dark-blue);
  box-sizing: inherit;
  display: none;
}

/* EASE PICK KEEP ON SCREEN FIX */
.container.range-plugin, .container.lock-plugin {
  left: -628px !important;
}

@media only screen and (min-width: 1121px) {
  /* EASE PICK KEEP ON SCREEN FIX */
  .container.range-plugin, .container.lock-plugin {
    left: -423px !important;
  }
}

/* calendar height 365px */
/* center calendar for tablets */
@media only screen and (min-width: 481px) {
  .container.range-plugin, .container.lock-plugin {
    left: -310px !important;
  }
}
/* iphone xr 414x896 */
@media only screen and (max-width: 414px) {
  .container.range-plugin, .container.lock-plugin {
    background-color: white!important;
    padding-bottom: 20px!important;
    top: calc(896px - var(--cal-height) - var(--cal-chat-padding))!important;
  }
}
/* samsung galaxy s20 ultra/A51/71 412x915 */
@media only screen and (max-width: 412px) {
  .container.range-plugin, .container.lock-plugin {
    background-color: white!important;
    padding-bottom: 20px!important;
    top: calc(915px - var(--cal-height) - var(--cal-chat-padding))!important;
  }
}
/* pixel 5 393x851 */
@media only screen and (max-width: 393px) {
  .container.range-plugin, .container.lock-plugin {
    background-color: white!important;
    padding-bottom: 20px!important;
    top: calc(851px - var(--cal-height) - var(--cal-chat-padding))!important;
  }
}
/* iphone 12 pro 390x844 */
@media only screen and (max-width: 390px) {
  .container.range-plugin, .container.lock-plugin {
    background-color: white!important;
    padding-bottom: 20px!important;
    top: calc(844px - var(--cal-height) - var(--cal-chat-padding))!important;
  }
}
/* iphone se 375x667 */
@media only screen and (max-width: 375px) {
  .container.range-plugin, .container.lock-plugin {
    background-color: white!important;
    padding-bottom: 20px!important;
    top: calc(667px - var(--cal-height) - var(--cal-chat-padding))!important;
  }
}

/* samsung galaxy s8+ 360x740 */
@media only screen and (max-width: 360px) {
  .container.range-plugin, .container.lock-plugin {
    background-color: white!important;
    padding-bottom: 20px!important;
    top: calc(740px - var(--cal-height) - var(--cal-chat-padding))!important;
  }
}

/* galaxy fold 280x653 */
@media only screen and (max-width: 280px) {
  .container.range-plugin, .container.lock-plugin {
    background-color: white!important;
    padding-bottom: 20px!important;
    top: calc(653px - var(--cal-height) - var(--cal-chat-padding))!important;
  }
}


/* TABLET */
@media only screen and (max-width: 1120px) {
  #unit-data {
    max-width: 100%;
  }
  .lx-title-wrapper h1 {
    text-align: left;
  }
  #top-links,
  .icons-actions,
  .icons-amenities {
    justify-content: left;
  }

  /* Show checkavail footer once form disappears */
  .footer-1 {
    display: unset;
  }

  /* Show checkavail form at BOTTOM */
  .lx-unit .lx-container .lx-row {
    flex-direction: column !important;
  }

  /* Make checkavail form wider */
  .lx-checkavail {
    width: 85% !important;
    margin: 0 auto !important;
    max-width: 100% !important;
    padding: 0 0.2rem;
  }
  #checkavail-dates-row {
    flex-direction: row !important;
  }
  #checkavail-dates-row .lx-column {
    flex: 0 0 50% !important;
    flex-basis: 50% !important;
    width: 50% !important;
    max-width: 50% !important;
  }
}

/* MOBILE */
@media only screen and (max-width: 600px) {
  .lx-checkavail {
    max-width: 100%;
    width: 100%;
  }

  .lx-unit {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
  }

  .lx-column {
    flex: 0 0 100% !important;
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .lx-fav-title {
    margin-right: 0 !important;
    width: fit-content !important;
    color: var(--om-dark-blue);
  }

  #header .lx-title-wrapper {
    text-align: left !important;
  }

  #header h1 {
    font-size: 1.2rem !important;
    text-align: left;
  }

  #abe-slider img {
    max-height: revert;
  }

  .check-avail-date-input {
    flex: 0 0 50% !important;
    flex-basis: 50% !important;
    width: 50% !important;
    max-width: 50% !important;
  }

  #checkavail-dates-row {
    flex-direction: row;
  }

  #main-row {
    flex-direction: column !important;
  }

  .amenities-list {
    column-count: 1 !important;
  }
}
.book-direct {
  font-size: 0.75rem !important;
  line-height: 0.8rem !important;
}
.lx-quote-info-vrbo,
.lx-quote-info-airbnb {
  text-align: center;
}


/* SEARCH RESULTS */
/*#map-listings-container {
  width:100%!important;
}*/

#abe-results-search {
margin: 0 !important;
}

#abe-map-results {
  flex: 1 1 58%;
}
#listings {
  flex: 1 1 42%;
}

/* search results form */
/*#abe-filters-activator */#abe-results-search select, #abe-results-search input {
    height: 41px;
    font-size:16px;
    line-height:auto;
}
.lx-container.lx-jumbo {
    background: #fff;
}
.lx .fas {
    font-size:16px!important;
}


.lx-item:hover {
    border-color: #3f78e0!important;
    }
#rate-btn button {
font-size: 0.8rem ; border-radius: 8px;
background-color: #3f78e0;
font-weight: 700;
color: white!important;
height: 2.2rem;
line-height: 2.1rem;
letter-spacing: 0 ;
padding: 0 1.5rem;
margin-top: 0 ;
outline: none;
border: none;
margin-left: 0 ;
margin-right: 0 ;
text-align: center;
text-decoration: none;
text-transform: uppercase;
white-space: nowrap;
}

#rate-btn {
padding:5px 10px 0px 0px; margin:0; text-align:left; width:100%;
}

#abe-map-results {
border-radius: 8px;
}
.lx-row .lx-column.lx-column-50#abe-map-results {
    flex: 0 0 55%;
    max-width: 55%;
    min-height:70vh;
    margin-left: 0.5%;
}


.ztext2 {
  font-size:17px;
  line-height:unset!important;
  color: #454545;
  font-weight: 600;
}

/* Reset Button */
.zspace {
border: 1px solid rgba(144, 143, 143,.6)!important;
border-radius: 8px;
/* text-transform: uppercase; */
background-color: rgba(250, 250, 250,.6)!important;
display:flex;
align-items: center;
gap:9px;
justify-content: center;
padding:8px 13px!important;
}


#reset-button i {
font-size:12px!important;
color: #454545;
}

#abe-filters-activator i {
  font-size:15px!important;
color: #454545!important;
}

#abe-filters-activator:hover, #reset-button:hover {
cursor:pointer;
}

.zspace i {
  color: #454545!important;
}

.zicon {
  color: #454545!important;
}


.ziconbutton {
  color: #454545!important;
  background:#fafafa;
  display:flex;
  align-items: center;
  height:17px;
  width:17px;
  justify-content: center;
  font-size:12px!important;
  border-radius:50%;
}


.ziconbutton:hover {
  background: #efefef;
  cursor:pointer;
}

/* Touch targets (WCAG 2.5.5): the visual stays 17px, but on coarse pointers an
   invisible 44x44 overlay gives the close control a finger-sized hit area.
   Scoped to (pointer: coarse) so the desktop layout is untouched. */
@media (pointer: coarse) {
  .ziconbutton {
    position: relative;
  }
  .ziconbutton::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 44px;
    height: 44px;
    transform: translate(-50%, -50%);
  }
}


/* 
#reset-button:hover {
border: 1px solid #bbb!important;
background-color: #ccc!important;
color: white!important;
cursor:pointer;
}

#reset-button:hover i {
color: white!important;
} */

#listings .lx-item .lx-image-container img {
border-radius: 8px;
}

#listings .lx-item .listing-info .location-text {
margin: 0 4px;
}
#listings .lx-item .listing-info .icons-info span{
border-right: 1px solid #98a6ad;
}

#listings .lx-item .listing-info .icons-info {
margin-left: 4px;
}

#listings .lx-item .listing-info {
flex: 0 0 50%;
padding: 10px;
display:flex;
flex-direction: column;
justify-content:space-between;
}
#listings .lx-item .listing-info span:last-child {
border-right: none;
}



#listings .lx-item .listing-info h2 {
padding-bottom: 15px;
}

#listings .lx-item .listing-info h2 a {
font-size: 1.2rem!important;
font-weight: 800;
color: rgb(12, 29, 63);
text-align: left;
}


#listings .lx-item .listing-info .lx-rate {
display: flex;
margin-left: 4px;
flex-direction: column;
align-items: center;
}

#listings .lx-item .listing-info .lx-rate strong {
color: #3f78e0;
}

#listings .lx-item .listing-info .lx-rate p {
flex: 1 1 50%;
height: fit-content;
padding: 0!important;
}

#listings .lx-item .listing-info .lx-rate div{
flex: 1 1 50%;
height: fit-content;
}

#listings .lx-item .listing-info .lx-rate #rate-btn a {
max-width: 50%!important;
}

#listings .lx-item .listing-info .lx-rate #rate-btn  button {
width: 100%!important;
margin-bottom: 0;
}

/* here */
.lx-rate {
  align-items: end!important;
}

.lx-rate div:first-child {
  width:100%!important;
  font-size:.95rem;
  line-height:2.6rem;
}

#rate-btn {
  display: flex;
  justify-content: end!important;
}

/* Abe rate Tablet */

/*@media only screen and (max-width:1200px) {
  .lx-rate {
    flex-direction: column!important;
    gap:10px;
    width: 100%!important;
  }

  .listing-info, .lx-image-container{
    flex: 1 1 50%!important;
  }

  #listings .lx-item .listing-info .lx-rate div {
    flex: 1 1 100%!important;
    width:100%!important;
    max-width:100%!important;
  }

  #rate-btn {
    flex: 1 1 100%!important;
    width:100%!important;
    max-width:100%!important;

  }
}*/

/* @media only screen and (max-width: 1140px) {
  #results-top #listings {
    flex-direction: column-reverse!important;
    flex-wrap:wrap;
  }

  #listings .lx-item {
    flex: 1 1 50%!important;
    max-width:50%!important;
  }
} */

/* .lx-sort .lxsorter {
  padding-right:0.5rem!important;
} */

.results-pet-icon .fa-paw {
  color: var(--obv-tertiary)!important;
  padding:6px;
  width: 34px;
  font-size:1rem!important;
  text-align:center;
}

@media only screen and (max-width: 800px) { 

  #dates-inputs {
    max-width:300px!important;
  }
  .lx-sort {
    justify-content: space-evenly!important;
  }
  #listings .lx-item {
    flex: 1 1 100%;
  }
}

.lx-results.map-active {
    padding: 0 1% 0 1%!important;
}

#sort, #results-count {
  align-items:center!important;
}

/* Sort */
.lx-sort .lx-results-info {
  border: none!important;
    width:fit-content;
    font-size:16px;
    padding: 4px 10px!important;
    padding-left:0!important;
    margin:0!important;
    line-height: 1rem;
    font-weight:700;
    }

.lx-sort select {
  line-height:1.6rem;
    background: url("../images/caret-down-sm.svg") center right no-repeat;
}


.lx-sort select, .lx-sort button, .lx-sort input {
    font-weight:400!important;
height: unset!important;
    margin:0!important;
    background-color: #fff!important;
    font-size: 16px!important;
    color: black!important;
    border: 1px solid rgb(144, 143, 143)    !important;
    outline: none!important;
    }

.lx-sort select:hover, .lx-sort input:hover {
background-color: #efefef!important;
    border: 1px solid black!important;
}

.lx-sort input {
    font-size:16px!important;
    }
.lx-sort .lx-column {
    width: fit-content!important;
    align-items: start;
}
.lx-sort .lx-column .lx-sorter {
    width:fit-content;
    }

.lx-filter-close {
    color: black!important;
    background: none!important;
    padding:0 6px!important;
    position: relative!important;
    top: 8px!important; right: 8px!important;
    border-radius:50%;
    border:1px solid #fff!important;
}

.lx-filter-close:hover {
    color: #fff!important;
    background-color: #cacaca!important;
    border-color:#cacaca!important;
    cursor: pointer;
    
}

/* .lxsorter,.guests {
    padding: 4px 10px !important;
} */

/* .lxsorter {
    max-width:150px!important;

} */

.lx-filter-close .fas {
    color: #666;
}

#results-top.lx-sort-wrapper {
  max-width:100%!important;

}
#results-top.lx-container {
  max-width:100%!important;
}

#results-top {
width: 100%;

padding: 1rem .5rem;
}




.modal-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.6);
  display: none; /* hidden by default */
  justify-content: center;
  align-items: center;
  z-index: 1000;
}


/* Multi Slide View Carousel */
/* Main carousel container */
.carousel {
  width: 50vw;          /* final width choice */
  height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

/* Slider viewport */
.carousel .carousel_slider {
  width: 100%;
  height: 87%;
  overflow: hidden;
  position: relative;
}

/* Inner slides container */
.carousel .content_inner_slider {
  width: 100%;
  height: 100%;
  display: flex;
  transition: transform 0.5s ease-in-out;
}

/* Individual slides / images */
.carousel .img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  flex-shrink: 0; /* prevents shrinking in flex container */
}

/* Prev/Next buttons */
.carousel .prev_button,
.carousel .next_button {
  background-color: #ecf0f150;
  padding: 16px 12px;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  color: var(--color-white);
  font-size: 3rem;
}

.carousel .prev_button i,
.carousel .next_button i {
  font-size: 16px !important;
}

/* Position buttons */
.carousel .prev_button {
  left: 0;
}

.carousel .next_button {
  right: 0;
}

/* Lists inside carousel, if any */
.carousel ul,
.carousel li {
  list-style: none;
  margin: 0;
  padding: 0;
  text-decoration: none;
}

/* Filters */
/* Full-screen overlay */
.filters-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.6);
  display: none; /* hidden by default */
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

/* Inner wrapper */
.lx-filters-wrapper {
  position: relative;
  max-width: 1100px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 10px;
  padding: 2rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* Scrollable inner content */
.filters-inner {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Header */
.lx-filters-wrapper .lx-row:first-child {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.lx-filters-wrapper .lx-row:first-child .ztext2 {
  font-size: 1.5rem;
  font-weight: 600;
}

.lx-filters-wrapper .lx-filter-close {
  cursor: pointer;
  font-size: 1.2rem;
  color: #555;
}

/* Counters (beds, baths, guests) */
.be-counter {
  display: flex;
  flex-direction: column;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 10px;
  gap: 0.5rem;
  background: #fafafa;
}

.be-counter-group {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.be-counter-display {
  min-width: 25px;
  text-align: center;
}

.be-counter-btn {
  cursor: pointer;
  padding: 4px 8px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.be-counter-btn:hover {
  background: #efefef;
}

/* Attributes / Amenities */
.attr-item {
  display: inline-block;
  margin: 4px;
  padding: 4px 8px;
  border-radius: 20px;
  background: #f5f5f5;
  cursor: pointer;
  font-size: 0.9rem;
  border: 1px solid #ddd;
}

.attr-item.selected {
  background: #d6e4ff;
  border-color: #3f78e0;
}

/* Section wrappers */
.filters-inner .section {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-start;
}
.lx-column.section.vertical-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem; /* optional spacing */
}

.amenities-section {
  display: flex;
  flex-direction: row!important;
  flex-wrap: wrap;
  gap: 8px 16px; /* vertical, horizontal spacing */
  align-items: center;
}

.amenity-wrapper {
  display: flex;
  flex-direction:row!important;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  flex: 0 1 auto; /* allows wrapping naturally */
}


.amenity-wrapper input[type="checkbox"] {
  transform: scale(1.1);
}

.amenity-wrapper label {
  cursor: pointer;
  margin:0!important;
  font-size: 14px;
}

/* Submit button */
#applyfilters {
  background-color: #3f78e0;
  color: #fff;
  border: none;
  padding: 0.6rem 1rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 1rem;
}

#applyfilters:hover {
  background-color: #3561b2;
}

/* Mobile adjustments */
@media (max-width: 768px) {
  .lx-filters-wrapper {
    width: 95%;
    padding: 1rem;
  }

  .be-counter {
    flex-direction: column;
  }

  .be-counter-group {
    flex-direction: row;
  }
}

/* End Filters */
.share-form-wrapper,
.inquiry-form-wrapper {
  display: none;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  box-shadow: 0px 0px 20px rgba(25, 51, 70, 0.3);
  z-index: 100;
  background: #fff;
  padding: 40px 40px 36px;
}


#results-top .lx-row {
margin: 0 !important;
}

.lx-sort-wrapper > .lx-row {
    max-width: 100%!important;
    }

.lx-sort .lx-column:last-child {
display: flex; justify-content:end;
    }

#results-top.lx-sort-wrapper {
    margin: 0!important;
    }



/* Filters */
.lx-form-wrapper {
    margin: 0!important;
    max-width:100%!important;
}

.lx-jumbo {
    margin: 0!important;
    width:100%!important;
    padding: 0 10px!important;
    }
#results-top {
margin: 1%!important;
}

#sort, #results-count {
display:flex;
justify-content: start!important;
}

#filters {
display:flex;
justify-content: end!important;
}

#abe-results-search select, #abe-results-search input, #abe-filters-activator {
    height:fit-content!important;
}

.filters-inner .section {
    border:1px solid #efefef;
    border-radius: 8px;
    column-gap:10px;
    margin: 10px;
    padding: 10px;
    display: flex;
}

.highlight {
  border:1px solid #efefef;
  border-radius: 8px;
  gap:10px;
  padding: 10px;
  font-size:1rem;
  background-color: #fafafa;
  font-weight:500;
  color: #575757;
  letter-spacing: .4px;
  word-spacing: .05rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

#active-filters {
column-gap:10px;
}
.filter-bubble {
    font-size:  16px;
    color: black;
    display: flex;
    padding: 1px 5px;
    text-decoration: underline;
    justify-content: center;
    font-weight: 400;
}

.filter-bubble::before {
    content: 'x';
    font-size:  9px;
    font-weight: 500;
    padding-top: 3px;
    padding-right: 5px;
    color: black;
}

.filter-bubble:last-child {
    
}

#active-filters {
padding: 10px 4px;
}

#main-search-column {
  background-color: rgba(245, 244, 243, 0.7);
  padding: 0.8rem 0.5rem;
  border-radius: 8px;
}

/* Per-input border only on the LEGACY booking layout (?lx_ui=legacy). The
   next-UI renders one segmented field group (storefront.css), so a 1px border on
   each visible date cell double-boxes them — scope this out of .lx-next. The
   hidden #check-in/#check-out machine fields never need a border. */
#checkavailbox:not(.lx-next) #check-in-display,
#checkavailbox:not(.lx-next) #check-out-display {
  border: 1px solid rgb(144, 143, 143)  !important;
}

#dates-inputs {
  display: flex;
  align-items:center;
  column-gap: 10px;
}


/* RESULTS.PHP RESPONSIVE */

@media only screen and (max-width: 1140px) {
  /* Reset button and filters button remove text to save space */

  #listings .lx-item .listing-info h2 a {
    font-size: .9rem!important;
  }

#reset-button span {
display:none;
}

#abe-filters-activator span {
  display:none;
}

/*#map-listings-container {
  flex-direction:column-reverse;
  gap:2rem;
} */

/* 2 per row and put image on top */
#listings .lx-item {
  flex-basis: 40%;
  flex: 1 1 40%;
  margin: 0!important;
  flex-direction: column;
  /* NOTE: a fixed height:100% here resolved against the auto-height flex
     parent and DEFEATED align-items:stretch, so cards sized to their content
     (uneven heights). Equal-height is enforced in the override layer at the
     end of this file (align-items:stretch + footer margin-top:auto). */
}

#listings {
  column-gap: 15px;
  row-gap:15px;
}

.listing-info div{
  text-align:center;
}

.lx-rate {
  flex-direction: column!important;
  padding-top:10px;
}

#rate-btn {
  max-width:70%!important;
}
.lx-row #abe-map-results {
  max-height: 30vh!important;
  height: 500px!important;
  top:0!important;
  position: relative!important;
  max-width: 100%;
  width:100%;
}


.lx-row .lx-column.lx-column-50#abe-map-results {
  flex: 0 0 55%;
  max-width: 100%;
  min-height: 30vh;
  margin-left: 0.5%;
}
}

#mobile-num-results {
  display: none;
  margin: 0!important;
}

@media only screen and (max-width: 900px) {
  #outer-sort-row {
    flex-wrap: wrap;
  }

  #listings .lx-item .listing-info h2 a {
    font-size: .9rem!important;
  }

  #dates-inputs span {
display: none;
  }

  #dates-inputs input {
    width: 30%!important;
    max-width:45%!important;
  }

  #results-count .lx-results-info{
    display: none;
  }

  #mobile-num-results {
    display: flex;
    justify-content: center;
    border: none!important;
    border-top: 1px solid #cacaca!important;
  }

  #main-search-column {
    display: flex;
    justify-content:space-between;
    flex-direction: column;
    gap: .7rem;
  }

  .lx-sort .lx-column {
    width: unset!important;
  }
}

/* Parent wrapper for all counters: vertical stack */
.lx-column.section {
    display: flex;
    flex-direction: column; /* stack the counters vertically */
    gap: 1rem; /* spacing between counters */
}


.be-counter {
    display: flex;
    flex-direction: column; /* counter content stacked internally if needed */
    gap: 0.5rem;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 0.5rem;
    background-color: #fafafa;
}

.be-counter input[type="checkbox"] {
  width: 30px;
  height:30px;
  
  font-size:16px;
}

.be-counter-group, .be-counter-controls {
display: flex;
gap:12px;
align-items:center;
}
.be-counter-btn {
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 50%;
  width: 35px;
  height: 35px;
  max-width: 35px;
  max-height:35px;
  padding:0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.be-counter-btn:hover {
  background-color: #0056b3;
}

.be-counter-btn i {
  font-size: 12px; /* size of the FA icon */
}

/* First row inside counter (icon + label) */
.be-counter .be-counter-group:first-child {
    display: flex;
    align-items: center;
    gap: 0.5rem; /* spacing between icon and text */
}


/* Second row inside counter (checkbox + controls) */
.be-counter .be-counter-group:nth-child(2) {
    display: flex;
    align-items: center;
    justify-content: space-between; /* checkbox on left, controls on right */
    gap: 1rem;
}

/* Counter controls (minus, display, plus) horizontal */
.be-counter-controls {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Checkbox and label horizontal */
.be-counter-exact-checkbox {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}


#lxsorter {
  font-size: 15px!important;
  height:unset!important;
  background:auto!important;
}

.lxsorter {
  font-size:1rem!important;
}


.img-slider {
  display: flex;
  overflow: hidden;   /* hide extra items */
  scroll-behavior: smooth;
}

.slider-track {
  display: flex;
  transition: transform 0.4s ease; /* smooth scroll */
  will-change: transform;
}

.slider-item {
  flex: 0 0 calc(100% / 3); /* 3 items per view */
  box-sizing: border-box;
  padding: 0.5rem;
}


.slider-item.review {
  flex: 0 0 auto;  /* prevent shrinking */
  width: 100%;      /* full slide width */
  box-sizing: border-box;
  padding: 0 8px;  /* same gutter as other sliders */
}

#booklink-quote, #booklink-main {
  display: inline-block;
  padding: 0.5em 1em;
  font-size: 1rem;
  font-weight: bold;
  background-color: #007bff;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
#booklink-quote:hover, #booklink-main:hover {
  background-color: #0056b3;
}



/* Booking complete page */
.funds-success-message-container {
  font-family: Roboto, "Segoe UI", "Helvetica Neue", sans-serif !important;
  color: #333;
  margin-top: 100px;
  max-width: 500px;
  margin: 0 auto;
}

.funds-checkmark-text-container {
  display: block;
  width: auto !important;
  max-width: 500px;
  margin: 0 auto;
  text-align: center;
}

.funds-checkmark-container {
  height: 40px;
  padding: 0 4px 0 0px;
  display: inline-block;
  width: 70px;
  margin: 0 auto;
}

.funds-checkmark-container:after {
  clear: both;
}

.funds-success-done-text {
  vertical-align: middle;
  margin: 0;
  padding: 15px 0 0 0;
  display: inline;
}

.funds-success-message {
  text-align: center;
  margin-top: 2em;
}

.funds-success-message h2 {
  margin-top: 0px;
}

h1,
h2 {
  font-weight: 700;
  margin-top: 0px;
}

h1 {
  font-size: 28pt;
  margin-top: 45px;
}

h2 {
  font-size: 18pt;
  margin-top: 25px;
}

p {
  font-size: 12pt;
  padding-bottom: 1em;
  line-height: 27.2px;
}

/* CHECKMARK */
.funds-checkmark-circle {
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  stroke-width: 5;
  stroke-miterlimit: 10;
  stroke: #33bb11;
  fill: none;
  -webkit-animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
  animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}

.funds-checkmark {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: block;
  stroke-width: 5;
  stroke: #ffffff;
  stroke-miterlimit: 10;
  margin: 10% auto;
  -webkit-box-shadow: inset 0px 0px 0px #33bb11;
  box-shadow: inset 0px 0px 0px #33bb11;
  -webkit-animation: fill 0.4s ease-in-out 0.4s forwards,
    scale 0.3s ease-in-out 0.9s both;
  animation: fill 0.4s ease-in-out 0.4s forwards,
    scale 0.3s ease-in-out 0.9s both;
}

.funds-checkmark-check {
  -webkit-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  -webkit-animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
  animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}

.funds-display-on-ie {
  display: none;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .funds-display-on-ie {
    display: block;
  }

  .funds-checkmark {
    display: none;
  }

  .funds-ie-checkmark-circle {
    stroke-dasharray: 166;
    stroke-dashoffset: 166;
    stroke-width: 5;
    stroke-miterlimit: 10;
    stroke: #33bb11;
    fill: none;
    -webkit-animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
    animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
  }

  .funds-ie-checkmark {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: block;
    stroke-width: 5;
    stroke: #ffffff;
    stroke-miterlimit: 10;
    margin: 10% auto;
    -webkit-box-shadow: inset 0px 0px 0px #33bb11;
    box-shadow: inset 0px 0px 0px #33bb11;
    -webkit-animation: fill 0.4s ease-in-out 0.4s forwards,
      scale 0.3s ease-in-out 0.9s both;
    animation: fill 0.4s ease-in-out 0.4s forwards,
      scale 0.3s ease-in-out 0.9s both;
  }

  .funds-ie-checkmark-check {
    -webkit-transform-origin: 50% 50%;
    -ms-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
    animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
  }
}

@-webkit-keyframes stroke {
  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes stroke {
  100% {
    stroke-dashoffset: 0;
  }
}

@-webkit-keyframes scale {
  0%,
  100% {
    -webkit-transform: none;
    transform: none;
  }
  50% {
    -webkit-transform: scale3d(1.1, 1.1, 1);
    transform: scale3d(1.1, 1.1, 1);
  }
}

@keyframes scale {
  0%,
  100% {
    -webkit-transform: none;
    transform: none;
  }
  50% {
    -webkit-transform: scale3d(1.1, 1.1, 1);
    transform: scale3d(1.1, 1.1, 1);
  }
}

@-webkit-keyframes fill {
  100% {
    -webkit-box-shadow: inset 0px 0px 0px 30px #33bb11;
    box-shadow: inset 0px 0px 0px 30px #33bb11;
  }
}

@keyframes fill {
  100% {
    -webkit-box-shadow: inset 0px 0px 0px 30px #33bb11;
    box-shadow: inset 0px 0px 0px 30px #33bb11;
  }
}

@media only screen and (max-width: 768px) {
  .funds-checkmark-text-container {
    display: block;
  }
  .funds-checkmark-container {
    height: auto;
    padding: 0;
    display: block;
    width: 100%;
  }
}

/* Booking error */
.funds-error-message-container {
  font-family: Roboto, "Segoe UI", "Helvetica Neue", sans-serif !important;
  color: #333;
  margin-top: 100px;
  max-width: 500px;
  margin: 0 auto;
  text-align: center;
}

.funds-error-text-container {
  display: block;
  margin: 0 auto;
}

.funds-error-icon-container {
  width: 70px;
  margin: 0 auto;
}

.funds-error-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: block;
  stroke-width: 4;
  stroke: #d9534f; /* bootstrap red */
  fill: none;
  margin: 10% auto;
}

.funds-error-circle {
  stroke: #d9534f;
}

.funds-error-line {
  stroke: #d9534f;
  stroke-linecap: round;
}

.funds-error-dot {
  fill: #d9534f;
}

.funds-error-title {
  margin: 15px 0 0;
  font-size: 28pt;
  font-weight: 700;
  color: #d9534f;
}

.funds-error-message {
  margin-top: 2em;
}

.funds-error-message h2 {
  margin-top: 0;
  font-size: 18pt;
  font-weight: 700;
}

.funds-error-message p {
  font-size: 12pt;
  line-height: 1.6;
}








/* lx-item regular */
/* Container holding all cards */
#listings {
  display: flex;
  flex-wrap: wrap;
  gap: 1%; /* spacing between cards */
}

/* Each unit card */
.lx-item {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-basis: 100%;       /* default 4 per row */
  margin: 0 0.5% 1.5%;  /* spacing between cards */
  padding: 10px;
  box-sizing: border-box;
  border-radius: 8px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.3);
  height: fit-content;
  background-color: #fff;
}

/* If map view is active, show 2 per row */
.lx-results.map-active .lx-item {
  flex-basis: 100%;
  margin: 0 1% 3.5%;
}

/* Carousel inside the card */
.image_carousel {
  width: 100%;      /* full width of the card */
  height: 420px;    /* adjust as needed */
  overflow: hidden;
  position: relative;
}

/* Slider inner container */
.image_carousel .carousel_slider {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
}

.image_carousel .content_inner_slider {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform 0.5s ease-in-out;
}

.image_carousel .img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  flex-shrink: 0;
}

/* Carousel buttons */
.image_carousel button {
  padding: 16px;
  border: none;
  background-color: rgba(236, 240, 241, 0.9);
  cursor: pointer;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
}

.image_carousel .prev_button {
  left: 0;
}

.image_carousel .next_button {
  right: 0;
}

/* Responsive breakpoints */
@media (max-width: 1200px) {
  .lx-item {
    flex-basis: 32%; /* 3 per row */
  }
}

@media (max-width: 900px) {
  .lx-item {
    flex-basis: 48%; /* 2 per row */
  }
}

@media (max-width: 600px) {
  .lx-item {
    flex-basis: 100%; /* 1 per row */
  }
  .image_carousel {
    height: 200px;
  }
}


/* ===== Favorite Button ===== */
.lx-image-container {
  position: relative;
}

.lx-favorite {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  padding: 0.5rem;
  background: #fff;
  border: 1px solid var(--obv-tertiary);
  border-radius: 8px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 2;
}

.lx-favorite i {
  color: var(--obv-tertiary);
  font-size: 1.5rem;
  transition: color 0.3s ease;
}

.lx-favorite:hover {
  background: #eff4f7;
}

.lx-favorite:hover i {
  color: #46545b;
}

.lx-favorite.active i {
  color: #f50000 !important;
}

/* ===== Shared Styles (optional if other buttons use same theme) ===== */
.lx-share,
.lx-favorite,
.lx-print,
.lx-inquiry {
  font-size: 16px;
  font-weight: 400;
}

.lx-share:active,
.lx-favorite:active,
.lx-print:active,
.lx-inquiry:active {
  border-color: var(--obv-tertiary) !important;
}



/* Force full-width layout for LX Full Width template */
.lexaily-fullwidth {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 0;
}


.vrp-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: 20px 0;
  font-family: inherit;
}

.vrp-pagination a,
.vrp-pagination span {
  padding: 6px 10px;
  border-radius: 4px;
  text-decoration: none;
  border: 1px solid #ccc;
  color: #333;
  font-size: 14px;
}

.vrp-pagination a:hover {
  background-color: #f4f4f4;
}

.vrp-pagination .active {
  background-color: #198d75;
  color: #fff;
  border-color: #198d75;
}

.vrp-pagination .disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
#abe-map-results {
  height: 100vh;
}

/* ── ABE search form layout ──────────────────────────────────────────────
   Used by templates/partials/checkavailForm.php and the child theme's own
   search-form template. Replaces missing legacy theme CSS so the
   form lays out horizontally instead of as a vertical default-styled list.
   Selectors are scoped through .abe-container or #homepage-search-form so
   they win against the page-specific Elementor !important overrides. */
.abe {
  width: 100%;
}
.abe-container {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto 80px;
  padding: 4px;
  box-sizing: border-box;
}
.abe-container .abe-row,
#homepage-search-form .abe-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  align-items: stretch;
  margin: 0;
  padding: 0;
}
.abe-container .abe-column,
#homepage-search-form .abe-column {
  flex: 1 1 160px;
  min-width: 0;
  margin: 0;
  padding: 0;
}
.abe-container .abe-column input[type="text"],
.abe-container .abe-column select,
#homepage-search-form .abe-column input[type="text"],
#homepage-search-form .abe-column select {
  width: 100%;
  height: 100%;
  min-height: 44px;
  padding: 10px 14px;
  font-size: 14px;
  border: 1px solid #e3e3e3;
  border-radius: 30px;
  background: #fff;
  box-sizing: border-box;
}
.abe-container .abe-column button,
.abe-container .abe-column .button,
#homepage-search-form .abe-column button,
#homepage-search-form .abe-column .button {
  width: 100%;
  min-height: 44px;
  padding: 10px 24px;
  font-size: 14px;
  font-weight: 600;
  background: #1463d6;
  color: #fff;
  border: 0;
  border-radius: 30px;
  cursor: pointer;
  letter-spacing: 0.02em;
}
.abe-container .abe-column button:hover,
.abe-container .abe-column .button:hover,
#homepage-search-form .abe-column button:hover,
#homepage-search-form .abe-column .button:hover {
  background: #1052b3;
}

/* Stack to a single column on narrow screens, with a small vertical gap */
@media (max-width: 768px) {
  .abe-container {
    margin-bottom: 48px;
  }
  .abe-container .abe-row,
  #homepage-search-form .abe-row {
    gap: 8px;
  }
  .abe-container .abe-column,
  #homepage-search-form .abe-column {
    flex: 1 1 100%;
  }
}

/* ── Results-page date inputs (Check in / Check out) ─────────────────────
   The two floating date fields sat edge-to-edge. Lay them out with a gap
   so each reads as a distinct field. */
#dates-inputs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: stretch;
}
#dates-inputs .form-floating {
  flex: 0 1 auto;
}

/* ── Favourite heart toggle ──────────────────────────────────────────────
   The heart is an outline SVG by default; when the unit is in the
   lxFavorites cookie the .is-favorited class fills it red. */
.lx-favorite,
.favorite {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.12s ease;
}
.lx-favorite:hover,
.favorite:hover {
  transform: scale(1.08);
}
.lx-favorite svg,
.favorite svg {
  transition: fill 0.15s ease, stroke 0.15s ease;
}
.lx-favorite.is-favorited svg,
.favorite.is-favorited svg {
  fill: #e8472e;
  stroke: #e8472e;
}

/* ── Featured units grid (Elementor "Our Newest Homes" block) ────────────
   Used by templates/featured.php via the [lxFeaturedUnits] shortcode.
   Clean responsive card grid — no map, no filters. */
.lx-featured {
  width: 100%;
  padding: 0 16px;
  box-sizing: border-box;
}
.lx-featured__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 24px;
  max-width: 1280px;
  margin: 0 auto;
}
.lx-featured .lx-item {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.lx-featured .lx-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.lx-featured .lx-image-container {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.lx-featured .image_carousel,
.lx-featured .carousel_slider,
.lx-featured .content_inner_slider {
  width: 100%;
  height: 100%;
}
.lx-featured .content_inner_slider img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lx-featured .listing-info {
  padding: 16px 18px 20px;
}
.lx-featured .location-text {
  color: #6b7280;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.lx-featured .listing-info h2 {
  margin: 6px 0 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}
.lx-featured .listing-info h2 a {
  color: #1a1a2e;
  text-decoration: none;
}
.lx-featured .listing-info h2 a:hover {
  color: #1463d6;
}
.lx-featured .icons-info {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 13px;
  color: #4b5563;
}
.lx-featured .icons-info span {
  white-space: nowrap;
}

@media (max-width: 768px) {
  .lx-featured__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* ── Header dropdown caret normalisation ────────────────────────────────
   Some Elementor/theme combinations override Bootstrap's border-drawn
   triangle on .dropdown-toggle::after, leaving an empty inline-block
   square instead of a caret. Replace it with a Unicode chevron that
   renders in any system font and doesn't depend on Font Awesome.   */
.main-navigation li.menu-item-has-children > a.dropdown-toggle::after,
.main-navigation li.dropdown > a.dropdown-toggle::after {
  content: "\25BE"; /* ▾ U+25BE BLACK DOWN-POINTING SMALL TRIANGLE */
  display: inline-block;
  width: auto;
  height: auto;
  border: 0;
  font-size: 0.75em;
  line-height: 1;
  margin-left: 0.35em;
  vertical-align: middle;
  color: currentColor;
}


/* ── Filters modal — polished UI ─────────────────────────────────────────
   Scoped to .lx-filters-wrapper so it only restyles the search filters
   modal. The JS hooks (.be-counter, .be-counter-display, .attr-item, the
   hidden inputs) are untouched — this is presentation only. */
.lx-filters-wrapper {
  background: #fff;
  border-radius: 14px;
  padding: 24px 28px 28px;
  max-width: 720px;
  width: 100%;
  margin: 0 auto;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
  max-height: 90vh;
  overflow-y: auto;
}

/* Header */
.lx-filters-wrapper > .lx-row:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.lx-filters-wrapper .ztext2 {
  font-size: 22px;
  font-weight: 700;
  color: #1a1a2e;
}
.lx-filters-wrapper .lx-filter-close {
  cursor: pointer;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #6b7280;
  transition: background 0.15s ease, color 0.15s ease;
}
.lx-filters-wrapper .lx-filter-close:hover {
  background: #f3f4f6;
  color: #1a1a2e;
}

/* Counter rows (Bedrooms / Bathrooms / Guests) */
.lx-filters-wrapper .be-counter {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 24px;
  background: #f9fafb;
  border: 1px solid #eceef1;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 12px;
}
.lx-filters-wrapper .be-counter-group {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px;
  margin: 0 !important;
  flex: 0 0 auto;
}
.lx-filters-wrapper .be-counter-group:last-child {
  gap: 18px;
}
.lx-filters-wrapper .be-counter .zicon,
.lx-filters-wrapper .be-counter .fa {
  color: #418899;
  font-size: 18px;
}
.lx-filters-wrapper .ztext1,
.lx-filters-wrapper .be-counter-title {
  font-size: 16px;
  font-weight: 600;
  color: #1f2937;
}
.lx-filters-wrapper .be-counter-exact-checkbox {
  display: flex;
  align-items: center;
  gap: 6px;
}
.lx-filters-wrapper .be-counter-label {
  font-size: 13px;
  color: #6b7280;
}
.lx-filters-wrapper .be-counter-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}
.lx-filters-wrapper .be-counter-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #1463d6;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  transition: background 0.15s ease, transform 0.1s ease;
}
.lx-filters-wrapper .be-counter-btn:hover {
  background: #1052b3;
}
.lx-filters-wrapper .be-counter-btn:active {
  transform: scale(0.92);
}
.lx-filters-wrapper .be-counter-display {
  min-width: 40px;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  color: #1f2937;
}

/* Pet Friendly */
.lx-filters-wrapper .be-filter-item {
  margin: 8px 0 4px;
}
.lx-filters-wrapper .be-filter-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border: 1px solid #eceef1;
  border-radius: 12px;
  background: #f9fafb;
  cursor: pointer;
  font-size: 15px;
  color: #1f2937;
  width: 100%;
  box-sizing: border-box;
}
.lx-filters-wrapper .be-filter-checkbox input {
  width: 18px;
  height: 18px;
  accent-color: #1463d6;
}

/* Amenities — render the checkbox list as selectable pill chips */
.lx-filters-wrapper .amenities-section ul {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.lx-filters-wrapper .attr-item,
.lx-filters-wrapper .amenity-wrapper,
.lx-filters-wrapper .property-type-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.lx-filters-wrapper .attr-item input[type="checkbox"],
.lx-filters-wrapper .amenity-wrapper input[type="checkbox"],
.lx-filters-wrapper .property-type-wrapper input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  /* The chip's own click handler manages the checkbox; keep the box from
     intercepting clicks so the handler controls toggle state exactly once. */
  pointer-events: none;
}
.lx-filters-wrapper .attr-item label,
.lx-filters-wrapper .amenity-wrapper label,
.lx-filters-wrapper .property-type-wrapper label {
  display: inline-block;
  padding: 9px 16px;
  border: 1px solid #8b929c; /* 3.14:1 on #fff — the pill's only boundary (WCAG 1.4.11) */
  border-radius: 999px;
  font-size: 14px;
  color: #374151;
  background: #fff;
  cursor: pointer;
  transition: all 0.15s ease;
  user-select: none;
}
.lx-filters-wrapper .amenity-wrapper,
.lx-filters-wrapper .property-type-wrapper {
  display: inline-flex;
  margin: 0 10px 10px 0;
}
.lx-filters-wrapper .attr-item:hover label,
.lx-filters-wrapper .amenity-wrapper:hover label,
.lx-filters-wrapper .property-type-wrapper:hover label {
  border-color: #1463d6;
  color: #1463d6;
}
/* Selected state — driven by the .selected class (added by PHP on reload
   and by JS instantly on click), with :has() as a progressive enhancement. */
.lx-filters-wrapper .attr-item.selected label,
.lx-filters-wrapper .amenity-wrapper.selected label,
.lx-filters-wrapper .property-type-wrapper.selected label,
.lx-filters-wrapper .attr-item:has(input:checked) label,
.lx-filters-wrapper .amenity-wrapper:has(input:checked) label,
.lx-filters-wrapper .property-type-wrapper:has(input:checked) label {
  background: #1463d6 !important;
  border-color: #1463d6 !important;
  color: #fff !important;
}

/* Apply button */
.lx-filters-wrapper #applyfilters {
  margin-top: 22px;
  width: 100%;
  padding: 14px 24px;
  background: #1463d6;
  color: #fff;
  border: 0;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease;
}
.lx-filters-wrapper #applyfilters:hover {
  background: #1052b3;
}

@media (max-width: 600px) {
  .lx-filters-wrapper {
    padding: 18px 16px 22px;
    border-radius: 12px;
  }
  .lx-filters-wrapper .be-counter {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}

/* ──────────────────────────────────────────────────────────────────────────
   Unit page layout (moved from inline styles in templates/unit.php).
   The inline `flex-direction:row-reverse` and `max-width:38%!important`
   were overriding the 960px column-reverse collapse above, pinning the
   booking box at 38% width on phones. As stylesheet rules, the existing
   mobile rules now win below 960px while desktop keeps the two-column
   layout with the booking box on the right.
   ────────────────────────────────────────────────────────────────────────── */
.lx-unit .lx-unit-main-row {
  flex-direction: row-reverse;
}

@media (min-width: 961px) {
  .lx-unit .lx-column.lx-checkavail {
    max-width: 38%;
  }
}

/* ──────────────────────────────────────────────────────────────────────────
   Gallery thumbnail strip (templates/unit.php). Replaces lightSlider's
   built-in pager with a touch/arrow-scrollable strip; each thumb carries
   an ↑ (feature above) and a magnifier (open lightbox) action.
   ────────────────────────────────────────────────────────────────────────── */
.gallery-wrapper .lSSlideOuter .lSPager {
  display: none !important; /* replaced by .lx-thumbstrip */
}

#abe-slider li img {
  cursor: zoom-in; /* the featured image opens the lightbox on click */
}

.lx-thumbstrip-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.lx-thumbstrip {
  display: flex;
  gap: 8px;
  flex: 1;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scroll-behavior: smooth;
  padding-bottom: 4px;
}

.lx-thumb {
  position: relative;
  flex: 0 0 auto;
  width: 120px;
  height: 90px;
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid transparent;
  transition: border-color 0.2s;
}

.lx-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  cursor: pointer;
}

.lx-thumb.active {
  border-color: var(--om-red, #418899);
}

.lx-thumb-action {
  position: absolute;
  bottom: 4px;
  width: 26px;
  height: 26px;
  border: none;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.2s;
}

.lx-thumb-action:hover,
.lx-thumb-action:focus {
  background: rgba(0, 0, 0, 0.85);
}

.lx-thumb-feature { left: 4px; }
.lx-thumb-zoom    { right: 4px; }

.lx-thumbstrip-arrow {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border: 1px solid #d1d5db;
  border-radius: 50%;
  background: #fff;
  color: #374151;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  transition: background 0.2s;
}

.lx-thumbstrip-arrow:hover {
  background: #f3f4f6;
}

@media (max-width: 600px) {
  .lx-thumb { width: 90px; height: 68px; }
  /* native touch scrolling replaces the arrow buttons on phones */
  .lx-thumbstrip-arrow { display: none; }
}

/* ──────────────────────────────────────────────────────────────────────────
   Responsive fixes (results grid).
   Confirm-page layout (incl. the 860px column-reverse stacking) now lives
   entirely in templates/confirm.php's page-scoped <style> block — removed
   from here so there's a single source of truth.
   ────────────────────────────────────────────────────────────────────────── */

/* Results grid: cards bottomed out at 49% width (≤1024px) and never went
   full-width — ~170px cards on a 360px phone. One card per row on phones. */
@media (max-width: 600px) {
  .lx-item,
  .lx-results.map-active .lx-item {
    flex-basis: 100%;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   VISUAL POLISH PASS — property cards (search results) + unit page content.
   Appended last so these win over the earlier same-specificity rules.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Property cards ──────────────────────────────────────────────────────── */
#listings .lx-item {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
#listings .lx-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(12, 29, 63, 0.12);
  border-color: #d1d5db;
}

/* The card clips its own corners — drop the inner image radius. */
#listings .lx-item .lx-image-container { position: relative; overflow: hidden; }
#listings .lx-item .lx-image-container img { border-radius: 0; }
#listings .lx-item .content_inner_slider img { transition: transform 0.45s ease; }
#listings .lx-item:hover .content_inner_slider img { transform: scale(1.04); }

/* Favorite heart: white chip over the photo. */
#listings .lx-item .lx-favorite {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 5;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.15s ease;
}
#listings .lx-item .lx-favorite:hover { transform: scale(1.1); }

/* Carousel arrows: round white chips, revealed on hover (always on touch). */
#listings .lx-item .prev_button,
#listings .lx-item .next_button {
  width: 34px;
  height: 34px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #1f2937;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.9; /* always visible (was 0 = hover-only) */
  transition: opacity 0.2s ease, transform 0.15s ease;
}
#listings .lx-item:hover .prev_button,
#listings .lx-item:hover .next_button { opacity: 1; }
/* Keep the translateY(-50%) vertical centring (from .image_carousel button)
   when adding the hover scale — otherwise the buttons jump down by half their
   height on hover. */
#listings .lx-item .prev_button,
#listings .lx-item .next_button { transform: translateY(-50%); }
#listings .lx-item .prev_button:hover,
#listings .lx-item .next_button:hover { transform: translateY(-50%) scale(1.08); }
@media (hover: none) {
  #listings .lx-item .prev_button,
  #listings .lx-item .next_button { opacity: 1; }
}

/* Card text hierarchy. */
#listings .lx-item .listing-info { padding: 16px 18px 14px; }
#listings .lx-item .listing-info .location-text {
  display: block;
  margin: 0 0 2px;
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #6b7280;
}
#listings .lx-item .listing-info h2 { padding-bottom: 8px; margin: 2px 0 0; }
#listings .lx-item .listing-info h2 a {
  font-size: 1.15rem !important;
  font-weight: 800;
  line-height: 1.3;
  color: #0c1d3f;
  text-decoration: none;
  transition: color 0.15s ease;
}
#listings .lx-item .listing-info h2 a:hover { color: #418899; }

/* Beds · Baths · Guests — dot separators instead of border dividers. */
#listings .lx-item .listing-info .icons-info { margin: 0; display: flex; flex-wrap: wrap; gap: 4px; }
#listings .lx-item .listing-info .icons-info span {
  border-right: none;
  padding: 0;
  font-size: 13.5px;
  color: #6b7280;
}
#listings .lx-item .listing-info .icons-info span:not(:last-child)::after {
  content: "·";
  margin: 0 7px;
  color: #d1d5db;
  font-weight: 700;
}

/* Card footer CTA. */
#listings .lx-item .lx-card-footer {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #f3f4f6;
}
#listings .lx-item .lx-card-view {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #418899;
  text-decoration: none;
  transition: gap 0.15s ease, color 0.15s ease;
}
#listings .lx-item .lx-card-view:hover { gap: 10px; color: #2e6273; }

/* ── Unit page content polish ────────────────────────────────────────────── */

/* Readable long-form description. */
.lx-unit #description p {
  font-size: 16.5px;
  line-height: 1.75;
  color: #374151;
  max-width: 75ch;
}

/* Consistent section rhythm + headings. */
.lx-unit .slider-container,
.lx-unit .amenities-container { margin-top: 44px; }
.lx-unit .slider-header h3,
.lx-unit .amenities-container > h3 {
  font-size: 24px;
  font-weight: 800;
  color: #111827;
  margin-bottom: 16px;
}

/* Amenities as pills instead of a 2-column text list. */
.lx-unit .amenities-list {
  column-count: unset;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.lx-unit .amenity {
  margin-bottom: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 15px;
  color: #1f2937;
}
.lx-unit .amenity img { width: 20px; height: 20px; margin: 0; }
.lx-unit .amenity span { margin-left: 0; font-size: 15px; }
.lx-unit #otheramenities h4 {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #6b7280;
  margin: 22px 0 10px;
}

/* Reviews as cards. */
.lx-unit .slider-item.review {
  background: #fafafa;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 20px 22px;
}
.lx-unit .review-title h3 { font-size: 18px; font-weight: 700; margin: 0; }
.lx-unit .review-description { font-size: 15.5px; line-height: 1.7; color: #374151; }
.lx-unit .review-response {
  border-left: 3px solid #418899;
  background: #f0f7f9;
  border-radius: 8px; /* supersedes the malformed "8px.2rem" rule above */
}

/* Top utility links (map / phone / email / favorite) as soft pills. */
.lx-unit #top-links a,
.lx-unit #top-links .favorite {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 8px;
  transition: background 0.15s ease;
}
.lx-unit #top-links a:hover,
.lx-unit #top-links .favorite:hover { background: #f3f4f6; }

/* Booking widget: the wrapper is now a bare positioning/sticky container only.
   Its former card chrome (border + shadow + 18px padding) sat immediately around
   the inner #checkavailbox card, producing a visible box-in-a-box. Stripped so
   the single #checkavailbox (storefront.css) is the one and only booking card. */
.lx-unit .lx-checkavail-wrapper {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
/* The wrapper above is already the booking-widget card; the nested
   .booking-form was adding a SECOND card-in-a-card (the "2 boxes"). Flatten it
   here — only inside the unit widget; it keeps its card styling elsewhere
   (the confirm/payment forms). */
.lx-unit .lx-checkavail-wrapper .booking-form {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.lx-unit #checkavailbox .group > small {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7280;
}

/* ══════════════════════════════════════════════════════════════════════════
   DESIGN TOKENS + AIRBNB-TIER COMPONENTS
   (photo-grid hero · unified booking card · card stay-totals)
   ══════════════════════════════════════════════════════════════════════════ */
:root {
  --lx-ink:        #1f2937;
  --lx-ink-strong: #0c1d3f;
  --lx-muted:      #6b7280;
  --lx-faint:      #9ca3af;
  --lx-line:       #e5e7eb;
  --lx-brand:      #418899;
  --lx-brand-dark: #2e6273;
  --lx-go:         #2e9e5b;
  --lx-warn-bg:    #fef3e2;
  --lx-warn-line:  #fcd9a8;
  --lx-warn-ink:   #92400e;
  --lx-radius:     12px;
  --lx-radius-sm:  8px;
  --lx-shadow-sm:  0 1px 3px rgba(0,0,0,.06);
  --lx-shadow-md:  0 6px 20px rgba(12,29,63,.10);
  --lx-space-1: 4px; --lx-space-2: 8px; --lx-space-3: 12px;
  --lx-space-4: 16px; --lx-space-5: 24px; --lx-space-6: 32px;
}

.lx-visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  clip: rect(0 0 0 0); clip-path: inset(50%);
  overflow: hidden; white-space: nowrap;
}
.screen-reader-text {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  clip: rect(0 0 0 0); overflow: hidden;
}

/* ── Photo-grid hero ─────────────────────────────────────────────────────── */
.lx-hero { position: relative; max-width: 1400px; margin: 0 auto var(--lx-space-5); }
.lx-hero__empty {
  padding: 80px 20px; text-align: center; color: var(--lx-muted);
  background: #f3f4f6; border-radius: var(--lx-radius);
}
.lx-hero__grid {
  position: relative;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--lx-space-2);
  border-radius: var(--lx-radius);
  overflow: hidden;
  aspect-ratio: 2 / 0.95;
  max-height: 560px;
}
.lx-hero__tile {
  padding: 0; border: none; background: #e5e7eb; cursor: pointer;
  overflow: hidden; display: block; width: 100%; height: 100%;
}
.lx-hero__tile img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .35s ease, filter .2s ease;
}
.lx-hero__tile:hover img { transform: scale(1.03); filter: brightness(.94); }
.lx-hero__tile--lead { grid-row: 1 / 3; grid-column: 1; }
.lx-hero__grid[data-count="1"] { grid-template-columns: 1fr; }
.lx-hero__grid[data-count="2"],
.lx-hero__grid[data-count="3"],
.lx-hero__grid[data-count="4"] { grid-template-columns: 2fr 1fr; }
.lx-hero__showall {
  position: absolute; right: var(--lx-space-4); bottom: var(--lx-space-4);
  display: inline-flex; align-items: center; gap: 7px;
  background: #fff; color: var(--lx-ink);
  border: 1px solid var(--lx-ink); border-radius: var(--lx-radius-sm);
  padding: 8px 14px; font-size: 14px; font-weight: 600; cursor: pointer;
  box-shadow: var(--lx-shadow-sm);
  transition: transform .12s ease, box-shadow .12s ease;
}
.lx-hero__showall:hover { transform: scale(1.03); box-shadow: var(--lx-shadow-md); }

/* Mobile: swipe strip with counter; grid hidden */
.lx-hero__swipe { display: none; }
@media (max-width: 768px) {
  .lx-hero__grid { display: none; }
  .lx-hero__swipe {
    display: flex; position: relative;
    overflow-x: auto; scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  .lx-hero__swipe::-webkit-scrollbar { display: none; }
  .lx-hero__slide {
    flex: 0 0 100%; scroll-snap-align: center; aspect-ratio: 4 / 3;
  }
  .lx-hero__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .lx-hero__counter {
    position: absolute; right: 12px; bottom: 12px;
    background: rgba(15,23,42,.72); color: #fff;
    font-size: 12.5px; font-weight: 600;
    padding: 4px 10px; border-radius: 999px; pointer-events: none;
  }
}

/* ── Unified booking card ────────────────────────────────────────────────── */
.lx-bookcard__price { margin-bottom: var(--lx-space-3); }
#checkavailbox .lx-daily-rate { margin: 0; }
.lx-bookcard__amount { font-size: 26px; font-weight: 800; color: var(--lx-ink-strong); }
.lx-bookcard__per    { font-size: 14px; color: var(--lx-muted); margin-left: 4px; }
.lx-bookcard__compliance {
  margin: 4px 0 0; font-size: 12.5px; font-weight: 600; color: var(--lx-ink);
}

.lx-bookcard__fields {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid #b0b8c4;
  border-radius: var(--lx-radius-sm);
  overflow: visible;
  margin-bottom: var(--lx-space-3);
  background: #fff;
}
.lx-bookcard__field {
  padding: 9px 12px 7px;
  border: none; background: none; text-align: left; cursor: pointer;
  min-width: 0;
}
.lx-bookcard__field small {
  display: block; font-size: 10px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .06em; color: var(--lx-ink);
}
.lx-bookcard__field input {
  border: none !important; background: none !important;
  padding: 2px 0 0 !important; margin: 0 !important;
  font-size: 14px !important; width: 100% !important;
  color: var(--lx-ink) !important; cursor: pointer;
}
.lx-bookcard__field input:focus { outline: none; box-shadow: none !important; }
.lx-bookcard__field:first-child { border-right: 1px solid #b0b8c4; }
.lx-bookcard__guests {
  grid-column: 1 / 3;
  border-top: 1px solid #b0b8c4;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-size: 14px; color: var(--lx-ink);
}
.lx-bookcard__guests small { flex: 0 0 100%; }
.lx-bookcard__chev { margin-left: auto; color: var(--lx-muted); }

/* Guests popover */
.lx-guests-pop {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30;
  background: #fff; border: 1px solid var(--lx-line);
  border-radius: var(--lx-radius); box-shadow: var(--lx-shadow-md);
  padding: var(--lx-space-4); display: none;
}
.lx-guests-pop.is-open { display: block; }
.lx-guests-pop__row {
  display: grid; grid-template-columns: 1fr auto; align-items: center;
  column-gap: 16px; padding: var(--lx-space-2) 0;
}
.lx-guests-pop__row + .lx-guests-pop__row { border-top: 1px solid #f3f4f6; }
.lx-guests-pop__label { font-weight: 700; color: var(--lx-ink); font-size: 15px; }
.lx-guests-pop__hint  { font-size: 12.5px; color: var(--lx-muted); }
.lx-guests-pop__max   {
  margin-top: var(--lx-space-2); padding-top: var(--lx-space-2);
  border-top: 1px solid #f3f4f6; font-size: 12.5px; color: var(--lx-muted);
}
.lx-guests-pop__max--error { color: #b91c1c; font-weight: 700; }
/* fixed 3-col grid so the count stays centered between − / + */
.lx-stepper { display: grid; grid-template-columns: 34px 44px 34px; align-items: center; gap: 6px; justify-items: center; }
.lx-stepper__btn {
  width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid var(--lx-faint); background: #fff; color: var(--lx-ink);
  font-size: 18px; line-height: 1; cursor: pointer; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
.lx-stepper__btn:hover:not(:disabled) { border-color: var(--lx-ink); }
.lx-stepper__btn:disabled { opacity: .35; cursor: default; }
.lx-stepper__num { width: 100%; text-align: center; font-weight: 600; font-variant-numeric: tabular-nums; }

.lx-bookcard__pets { margin-bottom: var(--lx-space-3); }
.lx-bookcard__pets small {
  display: block; font-size: 10px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .06em; color: var(--lx-ink);
  margin-bottom: 2px;
}

/* Inline price breakdown: hidden until a quote exists, then always visible */
#checkavailbox .lx-detailed-quote { display: none; }
#checkavailbox .lx-detailed-quote.lx-quote--ready {
  display: block;
  margin-top: var(--lx-space-3);
  padding-top: var(--lx-space-3);
  border-top: 1px solid var(--lx-line);
}
#checkavailbox .lx-quote-close { display: none; }
#ratebreakdown { width: 100%; font-size: 14px; color: var(--lx-ink); }
#ratebreakdown td { padding: 5px 0; }
#ratebreakdown .rate-breakdown-value { text-align: right; }
#ratebreakdown tr.double td {
  border-top: 1px solid var(--lx-line); padding-top: 10px; font-size: 15px;
}

/* Urgency badges (token-based; markup moved off inline styles) */
.lx-urgency { display: flex; flex-direction: column; gap: 6px; margin-bottom: var(--lx-space-3); }
.lx-urgency__badge {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--lx-warn-bg); border: 1px solid var(--lx-warn-line);
  color: var(--lx-warn-ink); border-radius: var(--lx-radius-sm);
  padding: 7px 12px; font-size: 13.5px; font-weight: 600;
}

/* ── Result-card stay totals (CA total-price transparency) ──────────────── */
#listings .lx-item .lx-card-price {
  margin-top: 10px; min-height: 40px;
  display: flex; flex-direction: column; gap: 2px;
}
.lx-card-price__total { font-size: 17px; font-weight: 800; color: var(--lx-ink-strong); }
.lx-card-price__total small { font-size: 13px; font-weight: 600; color: var(--lx-muted); }
.lx-card-price__sub { font-size: 12.5px; color: var(--lx-muted); }
.lx-card-price__na  { font-size: 13.5px; color: var(--lx-muted); }
.lx-card-price__adddates {
  border: none; background: none; padding: 0; text-align: left; cursor: pointer;
  font-size: 14px; font-weight: 700; color: var(--lx-brand);
  display: flex; flex-direction: column; gap: 1px;
}
.lx-card-price__adddates:hover { color: var(--lx-brand-dark); }
.lx-card-price__adddates .lx-card-price__sub { font-weight: 400; }
.lx-card-price__skeleton {
  display: block; height: 16px; width: 70%; border-radius: 4px;
  background: linear-gradient(90deg, #eef0f3 25%, #e2e6ea 37%, #eef0f3 63%);
  background-size: 400% 100%;
  animation: lx-shimmer 1.2s ease infinite;
}
@keyframes lx-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
#listings .lx-item--unavailable .lx-image-container,
#listings .lx-item--unavailable .listing-info > div:first-child { opacity: .55; }

/* ════════════════════════════════════════════════════════════════════════
   Legacy-override layer (specificity bumps to defeat pre-redesign id rules)
   ════════════════════════════════════════════════════════════════════════ */

/* CRITICAL: the legacy `.lx-detailed-quote` rule (position:fixed; top:19%;
   width:350px; left/right:0; z-index:99; box-shadow) turned the inline price
   breakdown into a floating modal. The .lx-quote--ready selector below (id +
   2 classes = higher specificity than every legacy `.lx-detailed-quote`
   rule, including the mobile media-query variants) re-grounds it INLINE in
   the booking card. Every overlay property is explicitly reset. */
#checkavailbox .lx-detailed-quote.lx-quote--ready {
  position: static;
  top: auto; left: auto; right: auto; bottom: auto;
  width: auto;
  max-width: none;
  margin: var(--lx-space-3) 0 0;
  padding: var(--lx-space-3) 0 0;
  box-shadow: none;
  border-radius: 0;
  border-top: 1px solid var(--lx-line);
  background: transparent;
  z-index: auto;
}
/* The fixed-overlay close affordance is meaningless inline. */
#checkavailbox .lx-detailed-quote.lx-quote--ready .lx-quote-close,
#checkavailbox .lx-detailed-quote.lx-quote--ready .detailed-quote-header { display: none; }

/* Segmented date+guest box: the legacy `#checkavail-dates-row` rule sets a
   top/bottom-only #cacaca border + `padding:7px 0` (id specificity beats the
   .lx-bookcard__fields class). Restore the full rounded border and let the
   inner fields own the padding. */
#checkavail-dates-row.lx-bookcard__fields {
  border: 1px solid #b0b8c4;
  padding: 0;
}

/* Price anchor: the legacy `#checkavailbox .lx-daily-rate span` (1.2rem) and
   the redesign's amount/per classes collide. Re-assert the token sizes with
   a matching-or-higher specificity so "from $X" reads as the headline and the
   "/ night, before taxes & fees" qualifier stays small + muted. */
#checkavailbox .lx-daily-rate .lx-bookcard__amount {
  font-size: 26px; font-weight: 800; color: var(--lx-ink-strong);
}
#checkavailbox .lx-daily-rate .lx-bookcard__per {
  font-size: 14px; font-weight: 400; color: var(--lx-muted);
}

/* Hero grid edge cases (data-count drives column count above):
   - exactly 2 photos: the single non-lead tile must span BOTH rows or it
     leaves a hole beside the lead image.
   - exactly 4 photos: a 2fr/1fr × 2-row grid only seats 3 tiles cleanly; the
     4th would spill to a lone third row. Hide it — "Show all 4 photos" still
     surfaces it in the lightbox. */
.lx-hero__grid[data-count="2"] .lx-hero__tile:not(.lx-hero__tile--lead) {
  grid-row: 1 / 3;
}
.lx-hero__grid[data-count="4"] .lx-hero__tile:nth-of-type(4) {
  display: none;
}

/* The mobile photo counter is a SIBLING of the scroll strip now (so it stays
   pinned). It anchors to .lx-hero (position:relative). Hide it on desktop —
   the grid has no counter — and show it only when the swipe strip is live. */
.lx-hero__counter { display: none; }
@media (max-width: 768px) {
  .lx-hero__counter { display: block; }
}

/* ════════════════════════════════════════════════════════════════════════
   Property-card carousel + equal-height fixes
   ════════════════════════════════════════════════════════════════════════ */

/* STRIPING FIX. The carousel's flex items are the <a class="lx-card-img-link">
   anchors that wrap each photo (added so the whole image links to the unit) —
   NOT the inner <img>. The base carousel CSS only sized .img, so the anchors
   defaulted to `flex: 0 1 auto` and collapsed, letting every photo share the
   row as thin vertical stripes. Make each anchor exactly one full slide. */
.content_inner_slider {
  display: flex;
}
.content_inner_slider > .lx-card-img-link {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
}
.content_inner_slider > .lx-card-img-link > .img,
.content_inner_slider > .lx-card-img-link > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* EQUAL-HEIGHT CARDS. #listings is a flex-wrap row; same-row cards stretch to
   the tallest when align-items:stretch (default) is honored — but a fixed
   height on the card defeated it (removed above). Re-assert stretch, let the
   info body grow, and pin the footer ("View Details") to the bottom so every
   card in a row ends at the same line. */
#listings { align-items: stretch; }
#listings .lx-item { height: auto; }
#listings .lx-item .listing-info {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto; /* fill the stretched card height */
}
#listings .lx-item .lx-card-footer {
  margin-top: auto; /* push the CTA to the bottom edge */
}

/* Featured grid: same equal-height guarantee. grid-auto-rows:1fr makes EVERY
   row the same height (not just same-row items), and the card fills its cell
   with the footer pinned to the bottom — so cards are uniform across the whole
   block, however many wrap per row. */
.lx-featured__grid { grid-auto-rows: 1fr; }
.lx-featured .lx-item { height: 100%; }
.lx-featured .listing-info {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.lx-featured .lx-card-footer { margin-top: auto; }

/* Unify the card carousel arrows + favorite chip ACROSS contexts. The polished
   round-white-chip styling was scoped to #listings only, so featured/favorites
   showed the bare grey rectangular buttons and a square bordered favorite.
   (top:50%/position from the base .image_carousel button rule still applies.) */
.lx-featured .prev_button, .lx-featured .next_button,
.lx-favorites .prev_button, .lx-favorites .next_button {
  width: 34px; height: 34px; padding: 0;
  border: none; border-radius: 50%;
  background: rgba(255, 255, 255, 0.92); color: #1f2937;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transform: translateY(-50%);
}
.lx-featured .lx-favorite, .lx-favorites .lx-favorite {
  width: 38px; height: 38px; padding: 0;
  border: none; border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
  display: flex; align-items: center; justify-content: center;
  color: #1f2937; cursor: pointer;
  position: absolute; top: 0.6rem; right: 0.6rem; z-index: 2;
}
/* The favorite is a <button> now — strip native chrome in every context. */
button.lx-favorite { -webkit-appearance: none; appearance: none; font: inherit; }

/* ══════════════════════════════════════════════════════════════════════════
   a11y: visible keyboard focus (WCAG 2.4.7 AA)
   --------------------------------------------------------------------------
   Rules above remove the focus outline on selects, inputs and buttons. Those
   removals are kept for MOUSE focus; this block restores a clear ring for
   KEYBOARD focus. #418899 (the brand teal already used by storefront.css's
   ring) measures 4.03:1 on #fff — above the 3:1 a non-text indicator needs
   (WCAG 1.4.11). !important is required only to beat the legacy !important
   outline removals; the fallback hex covers pages that load this sheet
   without tokens.css.
   ══════════════════════════════════════════════════════════════════════════ */
.lx a:focus-visible,
.lx button:focus-visible,
.lx input:focus-visible,
.lx select:focus-visible,
.lx textarea:focus-visible,
.lx [tabindex]:focus-visible,
.lx-sort select:focus-visible,
.lx-sort button:focus-visible,
.lx-sort input:focus-visible,
.lx-filters-wrapper button:focus-visible,
.lx-filters-wrapper input:focus-visible,
.lx-filters-wrapper select:focus-visible,
.lx-bookcard__field input:focus-visible,
.ziconbutton:focus-visible,
.btn-outline:focus-visible,
.btn-readmore:focus-visible,
div[slider] > input[type="range"]:focus-visible,
#abe-tabs ul li:focus-visible,
#abe-tabs ul li a:focus-visible,
#checkavailbox input:focus-visible,
#checkavailbox select:focus-visible,
#checkavailbox button:focus-visible,
#bookingform input:focus-visible,
#bookingform select:focus-visible,
#vrpbookform input:focus-visible,
#vrpbookform select:focus-visible,
#rate-btn button:focus-visible,
#mobileCheckAvailabilityButton:focus-visible {
  outline: 2px solid var(--lx-color-brand, #418899) !important;
  outline-offset: 2px !important;
}

/* Amenity / property-type filter pills: the real <input type="checkbox"> is
   opacity:0 (and pointer-events:none), so the visible <label> has to carry the
   keyboard focus indication. */
.lx-filters-wrapper .attr-item:focus-within label,
.lx-filters-wrapper .amenity-wrapper:focus-within label,
.lx-filters-wrapper .property-type-wrapper:focus-within label {
  outline: 2px solid var(--lx-color-brand, #418899);
  outline-offset: 2px;
}
