/* v49 — booking section aligned with redesigned panel system */

/* tighten transition into booking section */
.sf-final-cta{
  padding-bottom: 8px !important;
}

.sf-booking-new{
  background:#fff !important;
  padding-top: 0 !important;
  padding-bottom: 74px !important;
}

#booking > .container{
  width:min(100% - 40px,1540px) !important;
  max-width:none !important;
  margin-inline:auto !important;
  box-sizing:border-box !important;
  position:relative !important;
  overflow:hidden !important;
  padding:40px 48px 42px !important;
  border:1px solid #dce7df !important;
  border-radius:34px !important;
  background:
    radial-gradient(circle at 95% 12%,rgba(145,171,159,.12),transparent 22%),
    linear-gradient(145deg,#f4f8f6 0%,#eef5f1 100%) !important;
  box-shadow:0 24px 65px rgba(7,31,22,.07) !important;
}

#booking > .container::after{
  content:"";
  position:absolute;
  right:-150px;
  top:-90px;
  width:320px;
  height:320px;
  border-radius:50%;
  background:rgba(190,208,198,.12);
  pointer-events:none;
}

.sf-booking-head,
.sf-booking-layout{
  position:relative !important;
  z-index:1 !important;
}

.sf-booking-head{
  max-width:920px !important;
  margin:0 auto 34px !important;
  text-align:center !important;
}

.sf-booking-head .sf-kicker{
  display:inline-flex !important;
  align-items:center !important;
  gap:9px !important;
  margin:0 0 14px !important;
  padding:8px 13px !important;
  border:1px solid #bfd2c7 !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.8) !important;
  color:#15553b !important;
  font-size:.7rem !important;
  line-height:1 !important;
  letter-spacing:.13em !important;
  font-weight:900 !important;
}

.sf-booking-head .sf-kicker::before{
  content:"";
  width:18px;
  height:2px;
  border-radius:999px;
  background:#1d6b4a;
}

.sf-booking-head h2{
  margin:0 0 14px !important;
  color:#082f20 !important;
  font-size:clamp(2.7rem,4vw,4.8rem) !important;
  line-height:.96 !important;
  letter-spacing:-.055em !important;
  text-wrap:balance !important;
}

.sf-booking-head p{
  max-width:760px !important;
  margin:0 auto !important;
  color:#5f7168 !important;
  font-size:1.04rem !important;
  line-height:1.7 !important;
}

.sf-booking-layout{
  display:grid !important;
  grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr) !important;
  gap:22px !important;
  align-items:stretch !important;
  max-width:none !important;
  margin:0 !important;
}

.sf-booking-info,
.sf-booking-card{
  border-radius:28px !important;
  overflow:hidden !important;
}

.sf-booking-info{
  display:flex !important;
  flex-direction:column !important;
  background:
    radial-gradient(circle at 92% 6%,rgba(71,122,98,.32),transparent 26%),
    linear-gradient(145deg,#083525 0%,#0d4a34 100%) !important;
  padding:34px 34px 30px !important;
  border:1px solid rgba(255,255,255,.06) !important;
  box-shadow:0 20px 55px rgba(7,31,22,.16) !important;
}

.sf-booking-badge{
  display:inline-flex !important;
  width:max-content !important;
  margin:0 0 18px !important;
  padding:8px 12px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.12) !important;
  border:1px solid rgba(255,255,255,.1) !important;
  color:#eff8f3 !important;
  font-size:.76rem !important;
  font-weight:900 !important;
  letter-spacing:.03em !important;
}

.sf-booking-info h3{
  margin:0 0 20px !important;
  color:#fff !important;
  font-size:clamp(1.8rem,2vw,2.25rem) !important;
  line-height:1.16 !important;
  letter-spacing:-.03em !important;
}

.sf-booking-benefit{
  display:grid !important;
  grid-template-columns:40px 1fr !important;
  gap:14px !important;
  align-items:start !important;
  padding:16px 0 !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
}

.sf-booking-benefit > div{
  width:40px !important;
  height:40px !important;
  border-radius:12px !important;
  display:grid !important;
  place-items:center !important;
  background:rgba(255,255,255,.12) !important;
  color:#dff2e8 !important;
  font-size:.78rem !important;
  font-weight:900 !important;
}

.sf-booking-benefit span{display:block !important}
.sf-booking-benefit b{
  display:block !important;
  margin-bottom:4px !important;
  color:#fff !important;
  font-size:1rem !important;
}
.sf-booking-benefit small{
  display:block !important;
  color:#d7e7df !important;
  font-size:.89rem !important;
  line-height:1.58 !important;
}

.sf-booking-contact{
  margin-top:auto !important;
  padding:18px !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.08) !important;
}

.sf-booking-contact p{
  margin:0 0 12px !important;
  color:#e3efe8 !important;
  font-size:.95rem !important;
  line-height:1.5 !important;
}

.sf-booking-info .btn.light{
  display:inline-flex !important;
  min-height:50px !important;
  padding:0 18px !important;
  border-radius:14px !important;
  background:#ffffff !important;
  color:#0b4a34 !important;
  border:1px solid #ffffff !important;
  box-shadow:none !important;
  font-weight:900 !important;
}

.sf-booking-card{
  background:#ffffff !important;
  border:1px solid #dce7df !important;
  box-shadow:0 20px 55px rgba(7,31,22,.08) !important;
  padding:32px !important;
}

.sf-booking-card-top{
  padding-bottom:18px !important;
  margin-bottom:18px !important;
  border-bottom:1px solid #dde8e1 !important;
}

.sf-booking-card-top > span{
  color:#15553b !important;
  font-size:.72rem !important;
  letter-spacing:.13em !important;
  font-weight:900 !important;
}

.sf-booking-card-top h3{
  margin:8px 0 8px !important;
  color:#082f20 !important;
  font-size:clamp(2rem,2.5vw,2.65rem) !important;
  line-height:1.03 !important;
  letter-spacing:-.04em !important;
}

.sf-booking-card-top p{
  margin:0 !important;
  color:#5f7168 !important;
  font-size:1rem !important;
  line-height:1.65 !important;
}

.sf-booking-card .form-row{
  gap:12px !important;
}

.sf-booking-card label{
  color:#27493b !important;
  font-size:.8rem !important;
  font-weight:700 !important;
  margin-bottom:7px !important;
}

.sf-booking-card input,
.sf-booking-card select,
.sf-booking-card textarea{
  min-height:52px !important;
  border-radius:14px !important;
  background:#f9fcfa !important;
  border:1px solid #d7e3db !important;
  color:#082f20 !important;
  font-size:1rem !important;
  box-shadow:none !important;
}

.sf-booking-card textarea{
  min-height:122px !important;
  resize:vertical !important;
}

.sf-booking-card input:focus,
.sf-booking-card select:focus,
.sf-booking-card textarea:focus{
  background:#fff !important;
  border-color:#1f6b4b !important;
  box-shadow:0 0 0 4px rgba(31,107,75,.10) !important;
  outline:none !important;
}

.sf-booking-checkbox{
  margin-top:16px !important;
  color:#5f7168 !important;
  font-size:.92rem !important;
  line-height:1.55 !important;
}

.sf-booking-submit{
  min-height:56px !important;
  margin-top:16px !important;
  border-radius:16px !important;
  font-size:1rem !important;
  font-weight:900 !important;
  box-shadow:none !important;
}

.sf-booking-card .booking-confirm{
  margin-top:12px !important;
  padding:13px 14px !important;
  border-radius:14px !important;
  background:#f3f8f5 !important;
  border:1px solid #dce7df !important;
  color:#5f7168 !important;
  font-size:.9rem !important;
  line-height:1.55 !important;
}

.sf-booking-card .booking-confirm b{
  color:#15553b !important;
}

@media(max-width:1050px){
  .sf-booking-layout{
    grid-template-columns:1fr !important;
  }
  .sf-booking-head{
    max-width:860px !important;
  }
}

@media(max-width:760px){
  .sf-final-cta{
    padding-bottom:6px !important;
  }
  .sf-booking-new{
    padding-top:0 !important;
    padding-bottom:58px !important;
  }
  #booking > .container{
    width:min(100% - 28px,1540px) !important;
    padding:24px 18px 22px !important;
    border-radius:28px !important;
  }
  .sf-booking-head{
    margin-bottom:24px !important;
    text-align:left !important;
  }
  .sf-booking-head p{
    margin:0 !important;
  }
  .sf-booking-head h2{
    font-size:2.65rem !important;
  }
  .sf-booking-info,
  .sf-booking-card{
    border-radius:24px !important;
    padding:22px 18px !important;
  }
  .sf-booking-card-top h3{
    font-size:1.95rem !important;
  }
  .sf-booking-card .form-row{
    grid-template-columns:1fr !important;
  }
  .sf-booking-info .btn.light,
  .sf-booking-submit{
    width:100% !important;
    justify-content:center !important;
  }
}
