.section{max-width:var(--max-width);margin:2.25rem auto;padding:0 1rem}
.section h2{text-align:center;margin-bottom:1rem;color:var(--dark-blue)}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;align-items:start}
.price-card{
  background:var(--dark-blue);
  color:#fff;
  border-radius:12px;
  padding:1rem;
  overflow:hidden;
  box-shadow:0 8px 26px rgba(2,18,48,.16);
  display:flex;
  flex-direction:column;
  gap:.65rem;
}
.price-card img{width:100%;height:140px;object-fit:cover;border-radius:10px}
.price-card h3{color:var(--baby-blue);margin-top:.25rem}
.features{list-style:none;padding-left:0;margin-top:.25rem}
.features li{display:flex;gap:.6rem;align-items:center;margin:.4rem 0}
.feat-dot{width:10px;height:10px;border-radius:50%;background:var(--baby-blue);display:inline-block}
.how-to-book-container{display:flex;flex-direction:column;align-items:center}
.how-to-book-step{
  display:flex;
  align-items:center;
  background:#fff;
  border-radius:10px;
  padding:20px;
  margin-bottom:20px;
  width:100%;
  max-width:600px;
  box-shadow:0 4px 6px rgba(0,0,0,.1);
  transition:transform .2s ease-in-out;
}
.how-to-book-step:hover{transform:translateY(-3px)}
.how-to-book-step i{font-size:40px;color:#002147;margin-right:20px}
.how-to-book-step h3{margin:0;font-size:20px;color:#002147}
.how-to-book-step p{margin:5px 0 0;color:#555;font-size:14px}

/* Booking modal shell */
.booking-modal__shell{
  display:flex;
  flex-direction:column;
  min-height:0;
}
.booking-modal__header{
  flex-shrink:0;
  padding:14px 14px 14px 18px;
  gap:.75rem;
}
@media (max-width:480px){
  .booking-modal__header{
    padding:16px 14px 14px 16px;
  }
}
.booking-modal__title{
  font-weight:700;
  color:var(--dark-blue);
  font-size:1.05rem;
  line-height:1.3;
  letter-spacing:.02em;
  padding:2px 0 0;
  flex:1;
  min-width:0;
}
.booking-modal__close{
  flex-shrink:0;
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:none;
  border-radius:10px;
  background:transparent;
  color:var(--dark-blue);
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
  padding:0;
  box-shadow:none;
}
.booking-modal__close:hover{
  background:rgba(10,31,68,.06);
}
.booking-modal__body{
  flex:1;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:16px 16px 18px;
  background:#fff;
}
@media (max-width:480px){
  .booking-modal__body{
    padding:14px 14px 16px;
  }
}
.booking-modal__lead{
  color:#4a607b;
  font-size:.88rem;
  line-height:1.45;
  margin:0 0 1rem;
}

.modal-stepper{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.55rem;
  margin-bottom:1rem;
}
.modal-stepper__item{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:72px;
  text-align:center;
}
.modal-stepper__dot{
  width:28px;
  height:28px;
  border-radius:999px;
  background:#0A1F44;
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.86rem;
  font-weight:700;
}
.modal-stepper__label{
  margin-top:.3rem;
  font-size:.74rem;
  font-weight:600;
  color:#334a6b;
}
.modal-stepper__line{
  flex:1;
  height:2px;
  background:#d9e6f8;
}

.modal-booking-form{width:100%}
.modal-step-panel.hidden{display:none}
.modal-booking-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.7rem .8rem;
  margin-bottom:.85rem;
}
.modal-actions{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  margin-top:1rem;
  padding-top:14px;
  border-top:1px solid #e8eef6;
  flex-wrap:nowrap;
}
.modal-actions__spacer{
  flex:1 1 auto;
  min-width:8px;
}
.modal-actions__primary{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.modal-nav-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  min-width:0;
  padding:.45rem .75rem;
  font-size:.8rem;
  font-weight:600;
  border-radius:999px;
  border:1px solid transparent;
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease, color .15s ease;
  box-shadow:none;
}
.modal-nav-btn i{
  font-size:.72rem;
  opacity:.95;
}
.modal-nav-btn--back{
  background:transparent;
  color:#314162;
  border-color:#d5e2f3;
  font-weight:600;
}
.modal-nav-btn--back:hover{
  background:#f3f8ff;
  border-color:#b8cce8;
}
.modal-nav-btn--next{
  background:var(--dark-blue);
  color:#fff;
  border-color:var(--dark-blue);
  font-weight:600;
}
.modal-nav-btn--next:hover{
  filter:brightness(1.06);
}
.modal-nav-btn--submit{
  background:#1fa855;
  color:#fff;
  border-color:#1fa855;
  font-weight:600;
}
.modal-nav-btn--submit:hover{
  filter:brightness(1.05);
}
.modal-stepper__item.is-active .modal-stepper__dot{
  background:#0A1F44;
  box-shadow:0 0 0 3px rgba(137,207,240,.35);
}
.modal-stepper__item:not(.is-active) .modal-stepper__dot{
  background:#c7d8ef;
  color:#365173;
}
.modal-stepper__item.is-active .modal-stepper__label{
  color:#0A1F44;
}
.modal-field{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.modal-field label{
  font-size:.82rem;
  font-weight:600;
  color:#3a4f6d;
}
.modal-field__hint{
  font-size:.72rem;
  font-weight:400;
  color:#6b7a90;
  line-height:1.35;
  margin-top:-0.1rem;
}
.modal-field input,
.modal-field select{
  width:100%;
  min-width:0;
  padding:.62rem .72rem;
  border:1px solid #d5e2f3;
  border-radius:10px;
  font-size:.95rem;
  color:#0A1F44;
  background:#fff;
}
.modal-field select{
  cursor:pointer;
  appearance:auto;
}
.modal-field input:focus,
.modal-field select:focus{
  outline:none;
  border-color:#7da7df;
  box-shadow:0 0 0 3px rgba(137,207,240,.25);
}

/* Step 4 — summary */
.modal-review{
  border:1px solid #d9e6f5;
  border-radius:14px;
  background:linear-gradient(180deg,#fbfdff 0%,#f5f9fd 100%);
  overflow:hidden;
  margin-bottom:.85rem;
}
.modal-review__heading{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#5c6f8c;
  padding:10px 14px 6px;
  border-bottom:1px solid rgba(15,47,102,.08);
}
.modal-review__body{
  padding:4px 0;
}
.modal-review__row{
  display:grid;
  grid-template-columns:minmax(88px,34%) 1fr;
  gap:10px 12px;
  padding:10px 14px;
  border-bottom:1px solid rgba(15,47,102,.06);
  font-size:.86rem;
  line-height:1.4;
  align-items:start;
}
.modal-review__row:last-child{
  border-bottom:none;
}
.modal-review__label{
  color:#5c6f8c;
  font-weight:600;
}
.modal-review__value{
  color:#0f223f;
  font-weight:600;
  word-break:break-word;
}
.modal-review__hint{
  font-size:.8rem;
  color:#5c6f8c;
  margin:0;
  line-height:1.45;
}

@media (max-width:700px){
  .modal-booking-grid{grid-template-columns:1fr}
  .modal-stepper__label{font-size:.68rem}
  .modal-review__row{
    grid-template-columns:1fr;
    gap:4px;
    padding:12px 14px;
  }
  .modal-review__label{
    font-size:.72rem;
  }
  .modal-review__value{
    font-size:.9rem;
  }
}
