.booking-shell{
  background:linear-gradient(135deg,#f8fbff 0%,#eef6ff 100%);
  border:1px solid #d9e9fb;
  border-radius:20px;
  box-shadow:0 20px 45px rgba(7,33,73,.12);
  padding:1.35rem 1.2rem 1.55rem !important;
}
.booking-shell__intro{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
  margin:0 0 1rem;
  padding:.95rem 1rem;
  border:1px solid #d3e4f8;
  border-radius:14px;
  background:#fff;
}
.booking-shell__eyebrow{
  margin:0 0 .2rem;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#2a6eb5;
}
.booking-shell__title{
  margin:0;
  color:#0f2a4b;
  font-size:1.2rem;
  line-height:1.25;
}
.booking-shell__subtitle{
  margin:.35rem 0 0;
  color:#496381;
  font-size:.92rem;
  max-width:56ch;
}
.booking-shell__trust{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  justify-content:flex-end;
}
.booking-shell__trust span{
  display:inline-flex;
  align-items:center;
  border:1px solid #cbe0f7;
  background:#f4f9ff;
  color:#1f4d82;
  border-radius:999px;
  font-size:.76rem;
  font-weight:700;
  padding:.35rem .7rem;
}
.step-dot{transition:all .25s ease;box-shadow:0 6px 16px rgba(13,76,145,.15)}
.step-label{color:#12325e;letter-spacing:.01em}
.form-card{
  border:1px solid #d8e5f6;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  border-radius:16px;
  box-shadow:0 10px 24px rgba(4,30,66,.08);
  padding:1.05rem 1rem !important;
}

#bookForm .form-card legend{
  padding:0 .6rem;
  color:#12325e !important;
  letter-spacing:.01em;
}
.f-label{display:block;font-size:.87rem;font-weight:700;color:#19365f;margin-bottom:.38rem}
.f-input{
  width:100%;
  height:46px;
  padding:0 .85rem;
  border:1px solid #cfdff3;
  border-radius:12px;
  background:#fff;
  color:#0f2a4b;
  transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease;
}
.f-input:focus{
  outline:none;
  border-color:#2f86de;
  box-shadow:0 0 0 4px rgba(47,134,222,.15);
  transform:translateY(-1px);
}
.btn-primary{
  background:linear-gradient(135deg,#0f62b8 0%,#2895ea 100%);
  color:#fff;border:none;border-radius:12px;padding:.74rem 1.3rem;font-weight:700;
  line-height:1.1;
  box-shadow:0 10px 20px rgba(10,85,155,.24);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.03)}
.btn-secondary{
  background:#fff;color:#294567;border:1px solid #cfe0f3;border-radius:12px;padding:.74rem 1.3rem;font-weight:700;line-height:1.1;transition:all .18s ease;
}
.btn-secondary:hover{background:#f5faff;border-color:#b9d3f0}

.btn-primary,
.btn-secondary{
  display:inline-block;
  min-width:118px;
  text-align:center;
  cursor:pointer;
}

.form-actions{
  margin-top:1.05rem;
  padding-top:.65rem;
  border-top:1px solid #e7eef8;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.7rem;
}

.form-actions--single{
  justify-content:flex-end;
}

/* Payment "inner cards" */
.pay-option{
  border:1px solid #d7e4f5 !important;
  border-radius:13px !important;
  background:#fff !important;
  padding:.86rem .95rem !important;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .18s ease;
}
.pay-option:hover{
  border-color:#9cc0ea !important;
  background:#f5faff !important;
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(18,70,129,.12);
}
.pay-option:has(input:checked){
  border-color:#2f86de !important;
  background:#eaf4ff !important;
  box-shadow:0 0 0 3px rgba(47,134,222,.12);
}

.booking-page .hero{
  min-height:42vh;
  padding:1.25rem 1rem 3.5rem;
}

.booking-page .hero-content{
  max-width:1100px;
}

#stepper{
  margin:-4.25rem auto 0;
  position:relative;
  z-index:5;
}

.booking-shell{
  padding-top:1.35rem !important;
  padding-bottom:1.55rem !important;
}

.meeting-point{
  width:100%;
  margin:0 auto;
}
.meeting-point__card{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
  width:100%;
  max-width:980px;
  margin:0 auto;
  border:1px solid #d6e5f7;
  background:linear-gradient(145deg,#ffffff 0%,#f7fbff 100%);
  border-radius:18px;
  box-shadow:0 14px 34px rgba(10,47,96,.12);
  padding:1rem 1.1rem;
}
.meeting-point__eyebrow{
  margin:0 0 .25rem;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#2a6eb5;
}
.meeting-point__title{
  margin:0;
  color:#0e2d5b;
  font-size:1.4rem;
}
.meeting-point__address{
  margin:.45rem 0 .65rem;
  color:#0f2a4b;
  font-weight:700;
}
.meeting-point__tips{
  margin:0;
  padding-left:1rem;
  color:#46617f;
  font-size:.9rem;
  line-height:1.5;
}
.meeting-point__actions{
  display:flex;
  flex-direction:column;
  gap:.55rem;
  min-width:200px;
}
.meeting-point__btn{
  text-decoration:none;
  text-align:center;
  border-radius:12px;
  font-weight:700;
  padding:.7rem .9rem;
}
.meeting-point__btn--primary{
  color:#fff;
  background:linear-gradient(135deg,#0f62b8 0%,#2895ea 100%);
}
.meeting-point__btn--secondary{
  color:#23476f;
  border:1px solid #c8dcf2;
  background:#fff;
}

@media (max-width:900px){
  .booking-page .hero{
    min-height:34vh;
    padding:1rem 1rem 2.4rem;
  }
  #stepper{
    margin:-1.15rem auto 0;
  }
  .booking-shell{
    padding:1.05rem .9rem 1.2rem !important;
  }
  .booking-shell__intro{
    flex-direction:column;
    align-items:flex-start;
  }
  .booking-shell__trust{
    justify-content:flex-start;
  }
  .form-card{
    padding:.9rem .85rem !important;
  }
  .btn-primary,
  .btn-secondary{
    min-width:104px;
  }
  .form-actions{
    margin-top:.95rem;
    padding-top:.58rem;
    gap:.55rem;
  }
  .meeting-point__card{
    flex-direction:column;
    align-items:flex-start;
  }
  .meeting-point{
    padding:0 1rem;
  }
  .meeting-point__actions{
    width:100%;
    min-width:0;
  }
}
