:root {
	--white: #fff;
	--off-white: #F9F9F9;
	--light-gray: #F5F5F5;
	--mid-gray: #B3B3B3;
	--gray-idle: #707070;
	--dark-gray: #404040;
	--black: #000;
	--light-blue: #D6EBFF;
	--bright-blue: #50AAF2;
	--cta-blue: #318CD4;
	--dark-blue: #257BBF;
	--light-green: #DFFBEC;
	--light-purple: #F3E5F9;
	--light-pink: #FFEBF1;
	--bright-pink: #FFC6D5;
	--light-brown: #EEE4E8;
	--cream: #FCF7F2;
	--light-yellow: #FFF4D0;
	--bright-yellow: #FFE276;
	--body-font: 'Averta', Arial, Helvetica, sans-serif;
	--heading-font: 'Freight Display Pro', 'freight-display-pro', Georgia, serif;
	--container-width: 90vw;
	--container-max-width: 1600px;
	--container-outer-padding: 50px;
	--container-outer-margin: calc((100vw - var(--container-width)) / 2);
	--viewport-edge: calc((var(--container-outer-margin) + var(--container-outer-padding)) * -1);
	--gap: 40px;
	--grid: repeat(12,1fr);
	--module-spacing-x-small: 36px;
	--module-spacing-small: 48px;
	--module-spacing-medium: 60px;
	--module-spacing-large: 75px;
	--module-spacing-x-large: 90px;
	--autoscroller-gap: 84px;
	--autoscroller-speed: 80s;
}

/* Standard */
.booking-wizard input::placeholder {
  color: #404040 !important;
  opacity: 1 !important;
}

.booking-wizard {
  font-family: var(--body-font);
  max-width: 800px;
  margin: 30px 0;
  width:100%;
}

.bw-row {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: center;
  margin-bottom: 30px;
}
.booking-wizard p{
   font: calc(18rem/16)/calc(30/18) var(--body-font);
   letter-spacing: .2px;
   margin: 0 0 16px;
   color: var(--black);
}
.bw-field {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1;
}

.bw-field i {
  position: absolute;
  left: 10px;
  font-size: 14px;
  color: #666;
  z-index: 1;
  pointer-events: none;
}

.bw-field input,
.bw-field select,
.bw-toggle {
  padding: 8px 12px 8px 32px;
  border: 1px solid #ccc;
  border-radius: 4px;
  width: 160px;
  box-sizing: border-box;
}

.bw-toggle {
  cursor: pointer;
  background-color: white;
}

#bw_submit {
  min-width: 180px;
}

.booking-wizard .filter-button {
  background: none;
  border: 1px solid rgba(64,64,64,.2);
  border-radius: 6px;
  color: var(--dark-gray);
  font-family: inherit;
  font-weight: 600;
  padding: 13px 34px 15px 40px;
  position: relative;
  font: .875rem/1.4285714286 var(--body-font);
  letter-spacing: .3px;
  transition: all .25s ease;
  cursor: pointer;
  margin: 0;
  overflow: visible;
  vertical-align: middle;
  text-align: left;
  width:100%;
}

.booking-wizard .location-filter .filter-button:before{
  background: url("assets/img/icon-pin.svg") no-repeat left top;
  background-size: 100% auto;
  height: 16px;
  width: 16px;
  content: "";
  left: 15px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.booking-wizard .date-filter .input-date-wrapper:before{
  background: url("assets/img/icon-calendar.svg") no-repeat left top;
  background-size: 100% auto;
  height: 16px;
  width: 16px;
  content: "";
  left: 15px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.booking-wizard .guest-filter .select-guest-wrapper:before{
  background: url("assets/img/icon-person.svg") no-repeat left top;
  background-size: 100% auto;
  height: 16px;
  width: 16px;
  content: "";
  left: 15px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.booking-wizard .date-filter .input-date-wrapper,
.booking-wizard .guest-filter .select-guest-wrapper{
	width:100%;
}

.booking-wizard .guest-filter .select-guest-wrapper select option {
  background-color: #ffff;
}

.booking-wizard .filter-button:after,
.booking-wizard .input-date-wrapper:after,
.booking-wizard .select-guest-wrapper:after {
  background: url("assets/img/icon-caret.svg") no-repeat center center;
  background-size: 100% auto;
  width: 6px;
  height: 10px;
  position: absolute;
  top: 50%;
  right: 20px;
  margin-top: -5px;
  content: "";
  display: block;

  /* Keep arrow visible */
  z-index: 1;

  /* Always rotate first, then translate for Safari */
  -webkit-transform: rotate(90deg) translateY(-50%);
  transform: rotate(90deg) translateY(-50%);

  /* Make transform consistent */
  -webkit-transform-origin: center;
  transform-origin: center;

  transition: transform .25s ease;
}

.booking-wizard .filter-button:hover:after,
.booking-wizard .input-date-wrapper:hover:after,
.booking-wizard .select-guest-wrapper:hover:after {
  -webkit-transform: rotate(270deg) translateY(50%);
  transform: rotate(270deg) translateY(50%);
}
/* Location Tabs */

.flex-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.booking-wizard .filter-pop {
  background: var(--white);
  border-radius: 12px;
  box-shadow: 0 20px 50px #00000026;
  display: none;
  left: 0;
  position: absolute;
  top: calc(100% + 14px);
  width: 380px;
  z-index: 3;
}

.booking-wizard .filter-pop:before {
  border-color: transparent transparent var(--white) transparent;
  border-style: solid;
  border-width: 0 13px 12px 13px;
  content: "";
  height: 0;
  left: 30px;
  position: absolute;
  top: -8px;
  width: 0;
}

.booking-wizard .filter-pop h3 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  font-size: .8125rem;
  letter-spacing: 2.5px;
  line-height: 1.5384615385;
  align-items: center;
  font-weight: 700;
  padding: 15px 19px 15px 24px;
  margin: 0;
}

.booking-wizard .tabs {
  background: var(--off-white);
  display: flex;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0 24px;
  font: 1.125rem/1.6666666667 var(--body-font);
  letter-spacing: .2px;
}

.booking-wizard .tabs li {
  position: relative;
  list-style: none;
}

.booking-wizard .tabs li:not(:last-child)::before {
  background: var(--mid-gray);
  content: "";
  height: 8px;
  position: absolute;
  right: -5px;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
}

.booking-wizard .tabs li button {
  background: none;
  border: none;
	border-bottom-width: medium;
	border-bottom-style: none;
	border-bottom-color: currentcolor;
  border-bottom: 2px solid transparent;
  padding: 10px;
  transition: all .25s ease;
  color: #00000080;
}

.pill {
  font-weight: 700;
  letter-spacing: 2px;
}

.booking-wizard .tabs li.active button{
  color: #000;
  border-bottom-color: var(--bright-blue);
}

.booking-wizard .bw-tab-content {
  display: none;
}

.booking-wizard .bw-tab-content.active {
  display: block !important;
}

.booking-wizard .x-small {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 24px 24px 32px;
  align-items: start;
}

.booking-wizard .x-small input[type="radio"]:checked {
  border-color: var(--bright-blue);

}

.booking-wizard  .x-small input[type="radio"]{
  border: 1px solid var(--mid-gray);
  border-radius: 100%;
  height: 18px;
  width: 18px;
  margin-right: 5px;
}

.booking-wizard input[type="checkbox"], 
.booking-wizard input[type="radio"] {
  box-sizing: border-box;
  height: 13px;
  padding: 0;
  width: 13px;
}

.booking-wizard input{
  background-color: var(--off-white);
  border: 1px solid rgba(179,179,179,.15);
  border-radius: 0;
  color: var(--dark-gray);
  font-family: var(--body-font);
  height: 50px;
  padding: 0 20px;
  width: 100%;
  font: .875rem/1.4285714286 var(--body-font);
  letter-spacing: .3px;
}

.booking-wizard .x-small strong {
  font-weight: 600;
}


.booking-wizard .close-filter {
  background: url("assets/img/icon-close.svg") no-repeat center/10px auto;
    background-color: rgba(0, 0, 0, 0);
  border: none;
  border-radius: 100%;
  height: 20px;
  padding: 0;
  width: 20px;
  cursor: pointer;
}

.booking-wizard .close-filter:hover {
  background-color: var(--light-gray);
}

.ui-widget.ui-widget-content {
  z-index: 99 !important;
}

.mobile-only, .small-only, .hidden {
  display: none !important;
}


@media only screen and (max-width: calc(59.375rem)) {
	.bw-row{
		display:inline-block;
	}
	.bw-field {
		position: relative;
		display: inline-block;
	}
	.bw-field.bw-location.location-filter {
		width: 32%;
		margin: 0 0 10px;
	}
	.bw-field.date-filter {
		width: 25%;
	}
}


@media only screen and (max-width: 40.625rem) {

	.mobile-only {
		display: block !important;
	}

	.submit-wrappe{
		justify-content: center;
	}
    .bw-row {
		display: grid;
		gap:30px;
	}
	.bw-field.bw-location.location-filter {
		width: auto;
		margin: 0;
	}
	.bw-field.date-filter {
		width: auto;
	}
	.booking-wizard .filter-button {
		padding: 13px 13px 15px 40px;
	}

	.booking-wizard .filter-button::after, 
	.booking-wizard .input-date-wrapper::after, 
	.booking-wizard .select-guest-wrapper::after {
		/*background:none;*/
	}

	.booking-wizard .filter-pop {
		width: 320px;
	}
	.booking-wizard .x-small {
	  font: calc(12rem/16)/calc(20/14) var(--body-font);
	}

	body.filter-popup-open{
		overflow: hidden;
	}

	#filter-popup-overlay {
	  background: var(--black);
	  height: 100%;
	  left: 0;
	  opacity: .5;
	  position: fixed;
	  top: 0;
	  width: 100%;
	  z-index: 999998;
	  /*pointer-events: none;*/
	}
	.booking-wizard .filter-pop {
		z-index: 999999;
		transform: translate(0, 0);
	}
}

	.field-error {
        border: 1px solid red !important;
    }
    .error-message {
        color: red;
        font-size: 12px;
        margin-top: 4px;
        display: none;
        position: absolute;
        top: 100%;
    }
    .bw-field {
        position: relative;
    }