.bsf-form-wrapper {
    background: var(--bsf-bg); /* só para visualização */
    position: relative;
    overflow: visible;
	font-family: Outfit, sans-serif;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
	color: #7a7a7a;
}

.bsf-form {
    display: flex;
    flex-wrap: wrap;
    /*gap: 20px;*/
}

.bsf-field {
    flex: 1 1 200px;
    display: flex;
    flex-direction: column;
}

.bsf-field label {
    font-weight: bold;
    margin-bottom: 0px !important;
	font-size: 14px !important;
}
.bsf-field-coupon, .bsf-field-paxrooms, .bsf-field-checkinout, .bsf-field-hotels {
	padding: 20px 0px;
	text-align: center;
}
.bsf-form-wrapper .alert {
    width: 15%;
    float: left;
    vertical-align: middle;
}
/*
.bsf-form-wrapper a {
    color: var(--bsf-primary) !important;
}
.bsf-form-wrapper a:hover {
    color: var(--bsf-hover) !important;
}
*/
.bsf-hotels-selector {
    position: relative;
}

.bsf-hotels-popup {
    display: none;
    position: absolute;
    bottom: 24px;
    left: 0;
    background: #fff;
    border: none;
    width: 300px;
	padding: 10px;
    z-index: 99;
	border-radius: var(--bsf-border-radius) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	text-align: left !important;
}

.bsf-hotels-selector:hover .bsf-hotels-popup,
.bsf-paxrooms-selector:hover .bsf-paxrooms-popup {
    display: block; 
}

.bsf-hotels-popup ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.bsf-hotels-popup li {
    padding: 8px 10px;
    cursor: pointer;
}

.bsf-hotels-popup li:hover {
    background-color: var(--bsf-primary);
    color: #ffffff;
    border-radius: var(--bsf-border-radius) !important;
}

/* PAX / ROOMS popup */
.bsf-paxrooms-selector {
    position: relative;
}

.bsf-paxrooms-popup {
    display: none;
	text-align: left !important;
    position: absolute;
    bottom: 25px;
    left: 0;
    background: #fff;
    border: none;
	width: 300px;
    z-index: 99;
    padding: 20px 20px 10px 20px;
	border-radius: var(--bsf-border-radius) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.bsf-pax-control {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
	text-align: left !important;
}

.bsf-pax-control .bsf-label {
    flex: 1;
}

.bsf-pax-control input {
    width: 50px;
    text-align: center;
    margin: 0 5px;
    border: 1px solid #ccc;
}

/* label, .bsf-label {
    color: var(--bsf-primary);
} */

.bsf-minus, .bsf-plus {
	display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 34px !important;
    border: 2px solid var(--bsf-primary) !important;
    border-radius: 50% !important;
    background: var(--bsf-bg, #f6f6f6) !important;
    cursor: pointer !important;
	font-size: 22px !important;
    font-weight: 600 !important;
    color: var(--bsf-primary) !important;
    transition: all 0.2s ease-in-out !important;
}
.bsf-minus:hover, .bsf-plus:hover {
    color: #ffffff !important;
	background-color: var(--bsf-hover) !important;
    border-color: var(--bsf-hover) !important;
}

.bsf-pax-value {
	font-size: 20px !important;
	font-weight: 600 !important;
	margin: 0px 5px !important;
	text-align: center !important;
	width: 20px;
}

.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
    background-color: var(--bsf-primary, #1C86C3) !important;
    -webkit-box-shadow: none;
    box-shadow: none;
    color: #fff;
    border: none !important;
}

.flatpickr-day.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.today.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay.today.inRange, .flatpickr-day:hover, .flatpickr-day.prevMonthDay:hover, .flatpickr-day.nextMonthDay:hover, .flatpickr-day:focus, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.nextMonthDay:focus {
    background:  var(--bsf-hover, #36B9EA) !important;
    border-color:  var(--bsf-hover, #36B9EA) !important;
	color: #ffffff !important;
}
.flatpickr-day.inRange {
    -webkit-box-shadow: -5px 0 0 var(--bsf-hover, #36B9EA), 5px 0 0 var(--bsf-hover, #36B9EA) !important;
    box-shadow: -5px 0 0 var(--bsf-hover, #36B9EA), 5px 0 0 var(--bsf-hover, #36B9EA) !important;
}

.icon-adults, .icon-children, .icon-room, .icon-promo, .icon-calendar {
	width: 20px;
	height: 20px;
	margin-right: 5px;
}

.icon-adults, .icon-room, .icon-promo, .icon-calendar {
	margin-bottom: -5px !important;
}

.icon-promo, .icon-location {
	width: 24px;
	height: 24px;
	vertical-align: middle;
	margin-right: 5px;
}

.bsf-pax-summary {display: inline-block}

.bsf-value-children, .bsf-value-adults {
	padding-right: 20px;
}

.bsf-value-children, .bsf-value-adults, .bsf-value-rooms {
	font-weight: 600 !important;
	width: 35px !important;
}  

.flatpickr-calendar {
    border: none;
    border-radius: var(--bsf-border-radius) !important;
    -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	left: 50% !important;
    transform: translateX(-50%) !important;
	font-family: Outfit, sans-serif;
}

.flatpickr-current-month {
	display: inline-flex;
}
.flatpickr-current-month .numInputWrapper {
    margin-left: 10px;
}
.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month {
    color: var(--bsf-primary);
    fill: var(--bsf-primary);
}

.flatpickr-months:hover .flatpickr-prev-month:hover, .flatpickr-months:hover .flatpickr-next-month:hover {
    color: var(--bsf-hover, #d6c491);
    fill: var(--bsf-hover, #d6c491);
}

.flatpickr-current-month span.cur-month {
    padding-top: 3px !important;
}

.bsf-date-range, .flatpickr-input {
	padding-top: -5px !important;
}

.bsf-form-wrapper input::placeholder, .dropdown-selected {
  color: #888 !important;
  font-size: 16px;
}
.bsf-field-coupon, .bsf-field-checkinout {
	display: inline-block;
	vertical-align: middle !important;
}

.bsf-coupon {
	width: 70% !important;
	border: none !important;
	border-bottom: 2px solid var(--bsf-primary) !important;      
    outline: none;
	padding-bottom: 2px !important;
	margin-top: 5px !important;
}

/* Botão */
.bsf-submit {
    background-color: var(--bsf-primary) !important; /* cor principal */
    color: #ffffff !important;
    border: none !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 60px !important;
    padding: 0px !important;
    cursor: pointer !important;
    border-radius: 0px var(--bsf-border-radius) var(--bsf-border-radius) 0px !important; /* poderia usar a config de radius */
	font-size: 18px !important;
	font-weight: 600 !important;
	display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.bsf-submit:hover {
    background: var(--bsf-hover) !important;
	color: #ffffff !important;
}

.bsf-submit[disabled] {
    opacity: 0.6;
    pointer-events: none;
}

.bsf-overlay {
  position: fixed;
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%;
  background: rgba(0,0,0,0.5); 
  display: flex; 
  justify-content: center; 
  align-items: center;
  z-index: 9999; /* ou maior que os outros elementos */
}

.bsf-popup-alert {
  font-family: Outfit, sans-serif;
  position: relative;
  background: #fff;
  padding: 20px 20px 20px 30px; 
  border-radius: var(--bsf-border-radius) !important;
  min-width: 400px;
  max-width: 90%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.bsf-popup-alert img {
    margin-bottom: -8px;
	padding-right: 5px;
}

.bsf-popup-alert p {
	padding-right: 45px;
	float: left;
}


.bsf-toast-err {
  position: fixed;
  left: 0;
  bottom: 80px;
  width: 100vw;
  margin: 0px;
  z-index: 9999 !important;
  display: none;
  pointer-events: none;
  opacity: 0;
  transition:
    opacity 0.34s cubic-bezier(.61,-0.26,.45,1.23),
    transform 0.42s cubic-bezier(.61,-0.26,.45,1.23);
  transform: translateY(40px);
}

.bsf-toast-err.bsf-in {
  display: block;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.bsf-toast-err.bsf-out {
  opacity: 0;
  pointer-events: none;
  transform: translateY(40px);
}

.bsf-toast-inner {
  margin: 0 auto;
  max-width: 1140px;
  min-width: 320px;
  width: 100%;
  background: #ffcc33;
  color: #ffffff;
  border-radius: var(--bsf-border-radius, 24px);
  box-shadow: 0 6px 32px 0 rgba(0,0,0,0.13);
  font-family: Outfit, sans-serif;
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 1.13rem;
  padding: 0 32px;
  height: 62px;
  position: relative;
  box-sizing: border-box;
}

.bsf-toast-icon {
  display: flex;
  align-items: center;
  margin-right: 5px;
  color: var(--bsf-primary) !important;
}

.bsf-toast-msg {
  flex: 1 1 auto;
  white-space: pre-line;
  text-align: left;
  display: block;
}


.bsf-toast-ok {
  border: none;
  color: #ffffff;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  margin-left: 0px;
  transition: background 0.18s;
}
.bsf-toast-ok:hover {
  color: #ffffff  !important;
  background-color: var(--bsf-primary) !important; 
}
.bsf-date-range, .bsf-selected-hotel {
  font-size: 13px !important;
  line-height: 13px;
}


/*----------------------
MOBILE - até 739px
----------------------*/
@media (max-width: 739px) {
  .bsf-field {
    flex: 1 1 350px;
    border-left: none;
  }
  .bsf-form {
    gap: 0px;
  }
  .bsf-field-hotels, .bsf-field-checkinout, .bsf-field-paxrooms, .bsf-field-coupon {
    padding: 15px 30px;
    text-align: left;
    border-bottom: 1px solid var(--bsf-primary);
  }
  .bsf-hotels-popup,
  .bsf-paxrooms-popup {
    left: 50% !important;
    transform: translateX(-50%);
  }
  .bsf-date-range, .bsf-selected-hotel {
    font-size: 18px !important;
    line-height: 15px;
  }
  .bsf-submit {
    padding: 20px 0px !important;
    border-radius: 0px 0px var(--bsf-border-radius) var(--bsf-border-radius) !important;
  }
  .bsf-popup-alert {
    min-width: 300px;
    max-width: 90%;
  }
  .bsf-popup-close {
    position: absolute;
    bottom: -5px;
    right: -1px;
    background: transparent;
    border: none;
    font-size: 45px;
    cursor: pointer;
    margin-left: 40px;
    color: #ff0000;
  }
  .alert img {
    width: 35px;
  }
   .bsf-toast-inner {
    max-width: 97vw;
    min-width: 0;
    font-size: 1rem;
    padding: 0 10px;
    height: 52px;
  }
  .bsf-toast-icon svg {
    width: 20px;
    height: 20px;
  }
  .bsf-toast-ok {
    padding: 2px 10px;
    font-size: 0.97rem;
  }
  .bsf-toast-inner {
	  margin: 0 auto;
	  max-width: 280px;
	  line-height: 15px;
	  height: 80px;
	}
}

/*----------------------
TABLET VERTICAL & PEQUENO - 740px até 789px
----------------------*/
@media (min-width: 740px) and (max-width: 789px) {
  .bsf-field {
    flex: 1 1 250px;
  }
  .bsf-form {
    gap: 0px;
  }
  .bsf-field-hotels, .bsf-field-checkinout, .bsf-field-paxrooms, .bsf-field-coupon {
    padding: 15px 30px;
	border-left: none;
  }
  .bsf-date-range, .bsf-selected-hotel {
    font-size: 18px !important;
    line-height: 15px;
  }
  .bsf-submit {
    padding: 20px 0px !important;
    border-radius: var(--bsf-border-radius) 0px var(--bsf-border-radius) 0px !important;
  }
  .bsf-toast-inner {
	  margin: 0 auto;
	  max-width: 680px;
	}
}

/*----------------------
TABLET - 790px até 869px (global)
----------------------*/
@media (min-width: 790px) and (max-width: 869px) {
  .bsf-field {
    flex: 1 1 200px !important;
  }
  .bsf-field-hotels, .bsf-field-checkinout, .bsf-field-paxrooms, .bsf-field-coupon {
    padding: 20px 0px 20px 0px !important;
	margin-bottom: -20px !important;
	border-left: none;
  }
  .bsf-submit {
    padding: 15px 0px !important;
    border-radius: 0px 0px var(--bsf-border-radius) var(--bsf-border-radius) !important;
  }
  .bsf-toast-inner {
	  margin: 0 auto;
	  max-width: 680px;
	}
}

/*----------------------
INTERVALO DESEJADO: 739px até 919px (apenas para #bsf-all, PRIORIDADE)
----------------------*/
@media (max-width: 919px) and (min-width: 739px) {
  body #bsf-all .bsf-form {
    flex-wrap: wrap !important;
    gap: 10px 20px !important;
  }
  /* Primeiros 3 campos: cada um ocupa 1/3 */
  body #bsf-all .bsf-field:nth-child(1),
  body #bsf-all .bsf-field:nth-child(2),
  body #bsf-all .bsf-field:nth-child(3) {
    flex: 1 1 30% !important;
    min-width: 140px !important;
    max-width: 33% !important;
  }
  /* 4º campo ocupa metade da segunda linha */
  body #bsf-all .bsf-field:nth-child(4) {
    flex: 1 1 45% !important;
    min-width: 180px !important;
    max-width: 50% !important;
  }
  /* O botão ocupa a outra metade */
  body #bsf-all .bsf-submit {
    flex: 1 1 45% !important;
    min-width: 180px !important;
    max-width: 100% !important;
    margin-top: 0 !important;
    align-self: flex-end !important;
    border-radius: 0px 0px var(--bsf-border-radius) 0px !important;
    order: 5 !important;
  }
  .bsf-paxrooms-popup {
    left: auto !important;
    right: 0px !important;
    transform: none !important;
  }
  .bsf-field-hotels, .bsf-field-checkinout, .bsf-field-paxrooms, .bsf-field-coupon {
    border-left: none;
  }
  .bsf-field-hotels, .bsf-field-checkinout, .bsf-field-paxrooms, .bsf-field-coupon {
    padding: 20px 0px 40px 0px !important;
	margin-bottom: -20px !important;
	border-left: none;
  }
}



/*----------------------
DESKTOP PEQUENO: 920px até 1119px (apenas para #bsf-all, PRIORIDADE)
----------------------*/
@media (min-width: 920px) and (max-width: 1119px) {
  #bsf-all .bsf-form {
    flex-wrap: nowrap !important;
    gap: 12px !important;
  }
  #bsf-all .bsf-field {
    flex: 1 1 0 !important;
    min-width: 120px !important;
    max-width: 100% !important;
  }
  #bsf-all .bsf-submit {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    border-radius: 0px var(--bsf-border-radius) var(--bsf-border-radius) 0px !important;
    order: 10 !important;
    margin-top: 0 !important;
  }
  .bsf-toast-inner {
	  margin: 0 auto;
	  max-width: 920px;
	}
}
