/* Breeze Ver6.19.5: reliable unit buttons and quick public booking form. */
.booking-step{
  max-width:980px;
  margin:30px auto 10px!important;
}
.booking-input-card{
  max-width:980px;
  margin:12px auto 28px!important;
  padding:28px!important;
  overflow:visible!important;
  border:1px solid #cfe4e9!important;
  border-top:6px solid #35b9d4!important;
  background:linear-gradient(180deg,#fff 0,#fbfeff 100%)!important;
  box-shadow:0 16px 38px rgba(6,59,77,.10)!important;
}
#bookingForm{
  display:grid!important;
  gap:20px!important;
  min-width:0!important;
}
.booking-form-titlebar{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin:4px 0 -5px!important;
  padding:12px 15px!important;
  border-radius:13px!important;
  background:linear-gradient(90deg,#e7f8fc,#f7fdfe)!important;
}
.booking-form-titlebar>span{
  display:grid!important;
  place-items:center!important;
  width:34px!important;
  height:34px!important;
  flex:0 0 34px!important;
  border-radius:50%!important;
  background:#29aec8!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:900!important;
}
.booking-form-titlebar strong{
  display:block!important;
  color:#123f4b!important;
  font-size:17px!important;
  line-height:1.35!important;
}
.booking-form-titlebar small{
  display:block!important;
  margin-top:3px!important;
  color:#607880!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.45!important;
}
.customer-titlebar{margin-top:6px!important}

#bookingForm .booking-core-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:start!important;
  gap:16px!important;
}
#bookingForm .booking-core-grid>label{
  display:grid!important;
  grid-template-rows:auto 54px minmax(38px,auto)!important;
  align-content:start!important;
  gap:7px!important;
  min-width:0!important;
  margin:0!important;
}
.booking-field-label{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-height:23px!important;
  color:#173f4a!important;
  font-size:14px!important;
  font-weight:900!important;
}
.booking-field-label em,
.booking-field-label i{
  display:inline-flex!important;
  padding:2px 6px!important;
  border-radius:999px!important;
  background:#fff0eb!important;
  color:#bd3f26!important;
  font-size:10px!important;
  font-style:normal!important;
  font-weight:900!important;
}
.booking-field-label i{background:#edf3f5!important;color:#60767e!important}
#bookingForm input:not([type="checkbox"]),
#bookingForm select,
#bookingForm textarea{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  border:2px solid #b9d2d9!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#17343e!important;
  font-size:16px!important;
  line-height:1.35!important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease!important;
}
#bookingForm input:not([type="checkbox"]),#bookingForm select{
  height:54px!important;
  min-height:54px!important;
  padding:0 14px!important;
}
#bookingForm textarea{min-height:92px!important;padding:13px 14px!important;resize:vertical!important}
#bookingForm input:focus,#bookingForm select:focus,#bookingForm textarea:focus{
  outline:0!important;
  border-color:#24a8c1!important;
  box-shadow:0 0 0 4px rgba(36,168,193,.15)!important;
  background:#fbfeff!important;
}
#bookingForm label>small{
  display:block!important;
  color:#637a82!important;
  font-size:11px!important;
  font-weight:600!important;
  line-height:1.55!important;
}

#preferredUnitPicker.preferred-unit-picker{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  position:static!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  margin:0!important;
  padding:18px!important;
  overflow:visible!important;
  border:2px solid #b8e1e9!important;
  border-radius:15px!important;
  background:linear-gradient(135deg,#f2fbfd,#f9feff)!important;
}
#preferredUnitPicker legend{
  display:block!important;
  padding:0 9px!important;
  color:#113f4d!important;
  font-size:17px!important;
  font-weight:900!important;
}
.preferred-unit-help{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin:0 0 14px!important;
}
.preferred-unit-help p{
  margin:0!important;
  color:#607980!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.55!important;
}
.preferred-unit-help .area-map-scroll-button{
  flex:0 0 auto!important;
  min-height:38px!important;
  margin:0!important;
  padding:7px 14px!important;
}
#preferredUnitPicker .preferred-unit-buttons{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  grid-template-columns:repeat(auto-fit,minmax(100px,1fr))!important;
  gap:10px!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  background:transparent!important;
}
#preferredUnitPicker .preferred-unit-buttons>label{
  display:block!important;
  visibility:visible!important;
  position:relative!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  opacity:1!important;
  cursor:pointer!important;
}
#preferredUnitPicker .preferred-unit-buttons>label>input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  clip-path:inset(50%)!important;
}
#preferredUnitPicker .preferred-unit-buttons>label>input+span{
  display:flex!important;
  visibility:visible!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  min-height:72px!important;
  margin:0!important;
  padding:9px 6px!important;
  opacity:1!important;
  border:2px solid #68bed0!important;
  border-radius:13px!important;
  background:#fff!important;
  color:#0e7188!important;
  box-shadow:0 4px 10px rgba(20,108,129,.08)!important;
  line-height:1.15!important;
  transition:transform .12s ease,border-color .12s ease,background .12s ease!important;
}
#preferredUnitPicker .preferred-unit-buttons>label:hover>input:not(:disabled)+span{
  transform:translateY(-2px)!important;
  border-color:#178ca5!important;
  background:#f1fbfd!important;
}
#preferredUnitPicker .preferred-unit-buttons>label>input:focus-visible+span{
  outline:3px solid rgba(30,166,193,.28)!important;
  outline-offset:2px!important;
}
#preferredUnitPicker .preferred-unit-buttons>label>input+span>strong{
  display:block!important;
  color:inherit!important;
  font-size:27px!important;
  font-weight:900!important;
  line-height:1!important;
}
#preferredUnitPicker .preferred-unit-buttons>label>input+span>.unit-status{
  display:block!important;
  color:#5c7a83!important;
  font-size:10px!important;
  font-weight:900!important;
}
#preferredUnitPicker .preferred-unit-buttons>label>input:checked+span{
  border-color:#0b839c!important;
  background:linear-gradient(135deg,#159ab4,#08748c)!important;
  color:#fff!important;
  box-shadow:0 8px 17px rgba(8,116,140,.24)!important;
}
#preferredUnitPicker .preferred-unit-buttons>label>input:checked+span>.unit-status{color:#fff!important}
#preferredUnitPicker .preferred-unit-buttons>label.is-booked{cursor:not-allowed!important}
#preferredUnitPicker .preferred-unit-buttons>label.is-booked>input+span,
#preferredUnitPicker .preferred-unit-buttons>label>input:disabled+span{
  transform:none!important;
  border-color:#d9dfe1!important;
  background:#edf0f1!important;
  color:#909b9f!important;
  box-shadow:none!important;
}
#preferredUnitPicker .preferred-unit-buttons>label.is-booked .unit-status,
#preferredUnitPicker .preferred-unit-buttons>label>input:disabled+span>.unit-status{color:#b34747!important}
#preferredUnitMessage{
  display:block!important;
  min-height:22px!important;
  margin:12px 0 0!important;
  padding:8px 11px!important;
  border-radius:8px!important;
  background:#fff7e8!important;
  color:#a35a00!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1.45!important;
}
#preferredUnitMessage.complete{background:#e9f8f3!important;color:#147d63!important}

.booking-input-card .area-info{
  margin:0!important;
  padding:16px 18px!important;
  border:1px solid #c6e8ee!important;
  border-left:6px solid #35b9d4!important;
  border-radius:13px!important;
  background:#f1fafc!important;
}
.booking-input-card .area-info h3{margin:0 0 8px!important;font-size:17px!important}
.booking-input-card .area-info p{margin:6px 0!important;font-size:13px!important;line-height:1.65!important}
.people-input-grid{display:block!important;width:min(100%,520px)!important}
.people-input-grid>label{display:grid!important;gap:7px!important}
.booking-subheading{
  display:flex!important;
  align-items:baseline!important;
  gap:9px!important;
  margin:0!important;
  color:#173f4a!important;
  font-size:16px!important;
}
.booking-subheading small{color:#687f87!important;font-size:11px!important;font-weight:600!important}
.booking-option-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;gap:11px!important}
.booking-input-card .option-card{
  display:grid!important;
  gap:6px!important;
  padding:13px!important;
  border:2px solid #d8e6e9!important;
  border-radius:12px!important;
  background:#fff!important;
}
.booking-input-card .option-card>span{font-size:15px!important;font-weight:900!important}
.booking-input-card .option-card input{height:46px!important;min-height:46px!important}

.reservation-methods{
  display:grid!important;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.6fr)!important;
  gap:14px!important;
  align-items:stretch!important;
}
.login-reservation,.guest-reservation{
  box-sizing:border-box!important;
  min-width:0!important;
  padding:17px!important;
  border:2px solid #d6e6ea!important;
  border-radius:14px!important;
  background:#fff!important;
}
.login-reservation{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  border-color:#bfe0e7!important;
  background:linear-gradient(145deg,#eefafd,#fff)!important;
}
.login-reservation>strong,.guest-reservation>strong{display:block!important;margin-bottom:8px!important;color:#123f4b!important;font-size:16px!important}
.login-reservation p{margin:0 0 13px!important;color:#607980!important;font-size:12px!important;line-height:1.6!important}
.login-reservation .button{width:100%!important;min-height:46px!important;background:#0b7895!important}
.customer-input-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
}
.customer-input-grid>label{display:grid!important;align-content:start!important;gap:7px!important;min-width:0!important}
.booking-notes{display:grid!important;gap:7px!important}
.member-booking-profile{border:2px solid #bfe0d5!important;border-radius:14px!important;background:#f1fbf7!important}

.booking-input-card .booking-policy-box{margin:0!important}
.booking-input-card .booking-summary{
  margin:3px -28px -28px!important;
  padding:16px 28px!important;
  border-radius:0 0 17px 17px!important;
  background:rgba(255,255,255,.97)!important;
  backdrop-filter:blur(8px)!important;
}
.booking-input-card .booking-summary .button{min-height:52px!important;padding:13px 28px!important;font-size:16px!important}

@media(max-width:760px){
  .booking-step{margin:22px auto 7px!important}
  .booking-input-card{
    margin:8px auto 22px!important;
    padding:14px!important;
    border-radius:15px!important;
    box-shadow:0 10px 25px rgba(6,59,77,.09)!important;
  }
  #bookingForm{gap:15px!important}
  .booking-form-titlebar{padding:10px 11px!important;gap:9px!important}
  .booking-form-titlebar>span{width:30px!important;height:30px!important;flex-basis:30px!important;font-size:14px!important}
  .booking-form-titlebar strong{font-size:15px!important}.booking-form-titlebar small{font-size:10px!important}
  #bookingForm .booking-core-grid{grid-template-columns:1fr!important;gap:12px!important}
  #bookingForm .booking-core-grid>label{grid-template-rows:auto 52px auto!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}
  #bookingForm input:not([type="checkbox"]),#bookingForm select{height:52px!important;min-height:52px!important;font-size:16px!important}
  #bookingForm input[type="date"]{
    display:block!important;
    box-sizing:border-box!important;
    width:0!important;
    min-width:100%!important;
    max-width:100%!important;
    inline-size:0!important;
    min-inline-size:100%!important;
    max-inline-size:100%!important;
    -webkit-min-logical-width:0!important;
    overflow:hidden!important;
  }
  #bookingForm input[type="date"]::-webkit-date-and-time-value,
  #bookingForm input[type="date"]::-webkit-datetime-edit{
    min-width:0!important;
    max-width:100%!important;
    padding:0!important;
    overflow:hidden!important;
    text-align:left!important;
  }
  #preferredUnitPicker.preferred-unit-picker{padding:13px!important;border-radius:13px!important}
  #preferredUnitPicker legend{font-size:15px!important}
  .preferred-unit-help{align-items:stretch!important;flex-direction:column!important;gap:8px!important;margin-bottom:11px!important}
  .preferred-unit-help .area-map-scroll-button{width:100%!important;min-height:42px!important}
  #preferredUnitPicker .preferred-unit-buttons{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    padding:1px 0 7px!important;
    overflow:visible!important;
  }
  #preferredUnitPicker .preferred-unit-buttons>label{width:100%!important;min-width:0!important}
  #preferredUnitPicker .preferred-unit-buttons>label>input+span{min-height:58px!important;padding:6px 2px!important;border-radius:10px!important}
  #preferredUnitPicker .preferred-unit-buttons>label>input+span>strong{font-size:22px!important}
  #preferredUnitPicker .preferred-unit-buttons>label>input+span>.unit-status{font-size:8px!important;white-space:nowrap!important}
  .booking-input-card .area-info{padding:13px!important}.booking-input-card .area-info p{font-size:12px!important}
  .people-input-grid{width:100%!important}
  .booking-option-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .reservation-methods{grid-template-columns:1fr!important;gap:10px!important}
  .login-reservation,.guest-reservation{padding:13px!important}
  .customer-input-grid{grid-template-columns:1fr!important;gap:11px!important}
  .booking-input-card .booking-summary{
    margin:2px -14px -14px!important;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom))!important;
    gap:10px!important;
    border-radius:0 0 14px 14px!important;
  }
  .booking-input-card .booking-summary strong{font-size:23px!important}
  .booking-input-card .booking-summary .button{min-width:0!important;min-height:50px!important;padding:11px 15px!important;font-size:14px!important}
}

@media(max-width:390px){
  #preferredUnitPicker .preferred-unit-buttons{gap:5px!important}
  #preferredUnitPicker .preferred-unit-buttons>label>input+span{min-height:56px!important;padding-inline:1px!important}
  #preferredUnitPicker .preferred-unit-buttons>label>input+span>.unit-status{font-size:7px!important}
  .booking-option-grid{grid-template-columns:1fr!important}
}
