/* source: public-booking-ui-polish-3.1.32.css */
/* NoorVista 3.1.33 — canonical public booking presentation polish.
 * Owns only visual density/responsiveness; booking/payment business logic stays in the 4.0 runtime.
 */

#nvPublicBooking .nv-booking-service-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

#nvPublicBooking .nv-booking-service-choice {
  min-height: 96px !important;
  padding: 13px 16px !important;
  border-radius: 17px !important;
  align-content: center !important;
}

#nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top {
  grid-template-columns: 44px minmax(0, 1fr) !important;
  gap: 10px !important;
}

#nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top::before {
  width: 42px !important;
  height: 42px !important;
  border-radius: 13px !important;
  background-size: 23px, auto !important;
}

#nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top strong {
  font-size: .94rem !important;
  line-height: 1.65 !important;
}

/* The old details/category field is no longer patient-configurable and has no booking value. */
#nvPublicBooking .nv-booking-service-details {
  display: none !important;
}

#nvPublicBooking .nv-booking-tariff-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

#nvPublicBooking .nv-booking-tariff-choice {
  min-height: 112px !important;
  padding: 13px 14px !important;
  gap: 7px !important;
  border-radius: 16px !important;
}

/* Only the patient-facing tariff title is shown; accepted-insurance metadata is not a second title. */
#nvPublicBooking .nv-booking-tariff-insurance {
  display: none !important;
}

#nvPublicBooking .nv-booking-tariff-price {
  gap: 3px !important;
  padding: 8px 10px !important;
  border-radius: 10px !important;
}

#nvPublicBooking .nv-booking-tariff-price strong {
  font-size: .94rem !important;
}

#nvPublicBooking .nv-booking-tariff-price em,
#nvPublicBooking .nv-booking-tariff-note {
  font-size: .76rem !important;
  line-height: 1.65 !important;
}

/* Keep long financial labels/amounts inside the review card instead of squeezing the grid. */
#nvPublicBooking .nv-final-amount-card,
#nvPublicBooking .nv-final-amount-row,
#nvPublicBooking .nv-final-amount-row strong {
  min-width: 0 !important;
}

#nvPublicBooking .nv-final-amount-card {
  overflow: hidden !important;
}

#nvPublicBooking .nv-final-amount-row strong {
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  line-height: 1.8 !important;
}

#nvPublicBooking .nv-final-amount-row.is-after-exam {
  display: grid !important;
  grid-template-columns: minmax(78px, .34fr) minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: start !important;
}

#nvPublicBooking .nv-final-amount-row.is-after-exam strong {
  text-align: right !important;
}

/* Final review: two balanced information cards, then one full-width financial summary. */
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-areas: "appointment patient" "amount amount" !important;
  gap: 12px !important;
  align-items: stretch !important;
}

#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card--appointment,
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card--patient {
  height: 100% !important;
}

#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-final-actions {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  width: 100% !important;
  margin: 14px 0 0 !important;
  padding: 12px 0 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#nvPublicBooking[data-nv-booking-current-step="8"] [data-nv-booking-submit-final] {
  width: min(100%, 340px) !important;
}

/* The live step label is useful on phones; desktop already has the complete progress row. */
#nvPublicBooking .nv-booking-header-note {
  display: none;
}

/* Desktop final review is deliberately viewport-complete: no internal scroll,
 * balanced information cards, a two-column finance summary, and the payment
 * action visible without scrolling on common laptop/desktop heights. */
@media (min-width: 821px) and (min-height: 680px) {
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__panel {
    height: min(92dvh, 700px) !important;
    max-height: min(92dvh, 700px) !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__header {
    min-height: 82px !important;
    padding: 15px 24px 11px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__header h2,
  #nvPublicBooking[data-nv-booking-current-step="8"] #nvPublicBookingTitle {
    font-size: clamp(21px, 1.8vw, 27px) !important;
    line-height: 1.45 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress {
    padding: 7px 22px !important;
    gap: 7px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item.is-active,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item.is-done {
    min-height: 40px !important;
    height: 40px !important;
    padding: 5px 8px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item > span:first-child {
    width: 23px !important;
    height: 23px !important;
    min-width: 23px !important;
    flex-basis: 23px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__body {
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    padding: 10px 26px 13px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step__head {
    min-height: 32px !important;
    margin: 0 0 7px !important;
    gap: 10px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step__head h3 {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step__head p {
    display: none !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-back {
    min-width: 62px !important;
    min-height: 32px !important;
    height: 32px !important;
    padding: 4px 10px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-grid {
    gap: 9px !important;
    align-items: stretch !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card {
    padding: 9px 12px !important;
    border-radius: 14px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card h4,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card h5,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card h4,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card h5 {
    margin: 0 0 5px !important;
    font-size: .88rem !important;
    line-height: 1.45 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row {
    grid-template-columns: minmax(88px, .62fr) minmax(0, 1.38fr) !important;
    gap: 8px !important;
    padding: 4px 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row span,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row span {
    font-size: .72rem !important;
    line-height: 1.45 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row strong,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row strong {
    margin: 0 !important;
    font-size: .79rem !important;
    line-height: 1.5 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-rows {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 18px !important;
    row-gap: 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row {
    grid-template-columns: minmax(112px, .8fr) minmax(0, 1.2fr) !important;
    gap: 8px !important;
    padding: 4px 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row.is-after-exam {
    grid-column: 1 / -1 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card p,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card small {
    margin-top: 5px !important;
    font-size: .68rem !important;
    line-height: 1.45 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-final-actions {
    margin: 7px 0 0 !important;
    padding: 7px 0 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] [data-nv-booking-submit-final] {
    min-height: 42px !important;
    height: 42px !important;
    width: min(100%, 320px) !important;
    padding: 7px 16px !important;
  }
}

@media (max-width: 820px) {
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas: "appointment" "patient" "amount" !important;
    gap: 9px !important;
  }
}

@media (max-width: 760px) {
  #nvPublicBooking .nv-public-booking__panel {
    max-height: 97dvh !important;
    border-radius: 22px 22px 0 0 !important;
  }

  #nvPublicBooking .nv-public-booking__header {
    min-height: 76px !important;
    padding: 18px 14px 10px !important;
    gap: 8px !important;
  }

  #nvPublicBooking .nv-public-booking__header h2 {
    margin: 0 !important;
    max-width: calc(100vw - 86px) !important;
    font-size: clamp(.98rem, 4.35vw, 1.16rem) !important;
    line-height: 1.55 !important;
    letter-spacing: -.015em !important;
  }

  #nvPublicBooking .nv-public-booking__close {
    width: 38px !important;
    height: 38px !important;
    border-radius: 12px !important;
    font-size: 1.35rem !important;
  }

  #nvPublicBooking .nv-booking-header-note:not([hidden]) {
    display: block !important;
    margin: 4px 0 0 !important;
    color: #587386 !important;
    font-size: .72rem !important;
    font-weight: 850 !important;
    line-height: 1.55 !important;
  }

  #nvPublicBooking .nv-public-booking__progress {
    gap: 6px !important;
    padding: 8px 9px !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  #nvPublicBooking .nv-public-booking__progress::-webkit-scrollbar {
    display: none;
  }

  #nvPublicBooking .nv-public-booking__progress-item {
    flex: 0 0 104px !important;
    min-height: 42px !important;
    padding: 6px 7px !important;
    border-radius: 12px !important;
    font-size: .72rem !important;
    scroll-snap-align: center;
  }

  #nvPublicBooking .nv-public-booking__body {
    padding: 14px 12px 20px !important;
  }

  #nvPublicBooking .nv-booking-step__head {
    margin-bottom: 14px !important;
  }

  #nvPublicBooking .nv-booking-step__head h3 {
    font-size: .98rem !important;
    line-height: 1.6 !important;
  }

  #nvPublicBooking .nv-booking-step__head p {
    margin-top: 3px !important;
    font-size: .76rem !important;
    line-height: 1.75 !important;
  }

  #nvPublicBooking .nv-booking-service-grid,
  #nvPublicBooking .nv-booking-tariff-grid {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  #nvPublicBooking .nv-booking-service-choice {
    min-height: 72px !important;
    padding: 10px 12px !important;
    border-radius: 15px !important;
  }

  #nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top {
    grid-template-columns: 38px minmax(0, 1fr) !important;
    gap: 9px !important;
  }

  #nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top::before {
    width: 36px !important;
    height: 36px !important;
    border-radius: 11px !important;
    background-size: 20px, auto !important;
  }

  #nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top strong {
    font-size: .88rem !important;
    line-height: 1.6 !important;
  }

  #nvPublicBooking .nv-booking-tariff-choice {
    min-height: 0 !important;
    padding: 11px 12px !important;
    gap: 6px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card {
    padding: 12px !important;
    border-radius: 14px !important;
  }
}

@media (max-width: 720px) {
  #nvPublicBooking .nv-final-amount-row.is-after-exam {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 420px) {
  #nvPublicBooking .nv-public-booking__header h2 {
    font-size: .96rem !important;
  }

  #nvPublicBooking .nv-public-booking__progress-item {
    flex-basis: 96px !important;
  }
}

/* source: public-booking-step8-desktop-fit-3.1.34.css */
/* NoorVista 3.1.34 — desktop-only final booking viewport fit.
 * Keeps step 8 complete and payment-ready without internal scrolling on common
 * laptop/desktop browser heights. Mobile keeps its existing scroll behavior.
 */

@media (min-width: 821px) {
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__panel {
    height: min(95dvh, 700px) !important;
    max-height: min(95dvh, 700px) !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__header {
    min-height: 70px !important;
    padding: 12px 22px 9px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__header h2,
  #nvPublicBooking[data-nv-booking-current-step="8"] #nvPublicBookingTitle {
    font-size: clamp(20px, 1.65vw, 25px) !important;
    line-height: 1.4 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__close {
    width: 40px !important;
    height: 40px !important;
    border-radius: 12px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress {
    padding: 6px 20px !important;
    gap: 7px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item.is-active,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item.is-done {
    min-height: 38px !important;
    height: 38px !important;
    padding: 4px 8px !important;
    border-radius: 12px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item > span:first-child {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    flex-basis: 22px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__body {
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 8px 24px 10px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step {
    height: 100% !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step__head {
    flex: 0 0 auto !important;
    min-height: 30px !important;
    margin: 0 0 5px !important;
    gap: 8px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step__head h3 {
    font-size: 15px !important;
    line-height: 1.45 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step__head p {
    display: none !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-back {
    min-width: 58px !important;
    min-height: 30px !important;
    height: 30px !important;
    padding: 3px 9px !important;
    border-radius: 10px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-areas: "appointment patient" "amount amount" !important;
    gap: 7px !important;
    align-items: stretch !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card {
    padding: 7px 10px !important;
    border-radius: 13px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card__title,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-title,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card h4,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card h5,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card h4,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card h5 {
    margin: 0 0 3px !important;
    padding-bottom: 3px !important;
    font-size: .82rem !important;
    line-height: 1.4 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row {
    grid-template-columns: minmax(82px, .58fr) minmax(0, 1.42fr) !important;
    gap: 7px !important;
    padding: 3px 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row span,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row span {
    font-size: .69rem !important;
    line-height: 1.4 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row strong,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row strong {
    margin: 0 !important;
    font-size: .76rem !important;
    line-height: 1.45 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-rows {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 16px !important;
    row-gap: 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row {
    grid-template-columns: minmax(104px, .78fr) minmax(0, 1.22fr) !important;
    gap: 7px !important;
    padding: 3px 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row.is-after-exam {
    grid-column: 1 / -1 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card small,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card p {
    display: block !important;
    margin-top: 3px !important;
    font-size: .64rem !important;
    line-height: 1.35 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-final-actions {
    flex: 0 0 auto !important;
    margin: 5px 0 0 !important;
    padding: 5px 0 0 !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] [data-nv-booking-submit-final] {
    width: min(100%, 310px) !important;
    min-height: 40px !important;
    height: 40px !important;
    padding: 6px 14px !important;
    border-radius: 12px !important;
  }
}

/* Short desktop/laptop viewports need one extra density step, not scrolling. */
@media (min-width: 821px) and (max-height: 620px) {
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__header {
    min-height: 64px !important;
    padding-top: 9px !important;
    padding-bottom: 7px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item.is-active,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__progress-item.is-done {
    min-height: 34px !important;
    height: 34px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__body {
    padding-top: 6px !important;
    padding-bottom: 7px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row,
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row {
    padding-top: 2px !important;
    padding-bottom: 2px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-final-actions {
    margin-top: 3px !important;
    padding-top: 3px !important;
  }

  #nvPublicBooking[data-nv-booking-current-step="8"] [data-nv-booking-submit-final] {
    min-height: 38px !important;
    height: 38px !important;
  }
}

/* source: public-booking-visual-unity-3.1.36.css */
/* NoorVista 3.1.36 — booking modal visual unity.
 * Keeps the desktop modal header/progress geometry identical across all steps
 * and gives true content cards one restrained cyan accent edge.
 * Booking state, tariff, appointment and payment logic are intentionally untouched.
 */

@media (min-width: 821px) {
  /* Use the approved final-step header geometry on every desktop step. */
  #nvPublicBooking .nv-public-booking__header {
    min-height: 70px !important;
    padding: 12px 22px 9px !important;
    gap: 14px !important;
    align-items: center !important;
  }

  #nvPublicBooking .nv-public-booking__header h2,
  #nvPublicBooking #nvPublicBookingTitle {
    margin: 0 !important;
    font-size: clamp(20px, 1.65vw, 25px) !important;
    line-height: 1.4 !important;
    letter-spacing: -.012em !important;
  }

  #nvPublicBooking .nv-public-booking__close {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    border-radius: 12px !important;
    font-size: 1.3rem !important;
  }

  #nvPublicBooking .nv-public-booking__progress {
    padding: 6px 20px !important;
    gap: 7px !important;
  }

  #nvPublicBooking .nv-public-booking__progress-item,
  #nvPublicBooking .nv-public-booking__progress-item.is-active,
  #nvPublicBooking .nv-public-booking__progress-item.is-done {
    min-height: 38px !important;
    height: 38px !important;
    padding: 4px 8px !important;
    gap: 7px !important;
    border-radius: 12px !important;
    font-size: .72rem !important;
    line-height: 1.25 !important;
  }

  #nvPublicBooking .nv-public-booking__progress-item > span:first-child {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    flex: 0 0 22px !important;
    border-radius: 8px !important;
    font-size: .7rem !important;
    line-height: 1 !important;
  }

  #nvPublicBooking .nv-public-booking__progress-item > span:last-child {
    font-size: .72rem !important;
    line-height: 1.25 !important;
  }
}

/* Common laptop browser heights get the same compact shell on every step. */
@media (min-width: 821px) and (max-height: 620px) {
  #nvPublicBooking .nv-public-booking__header {
    min-height: 64px !important;
    padding-top: 9px !important;
    padding-bottom: 7px !important;
  }

  #nvPublicBooking .nv-public-booking__header h2,
  #nvPublicBooking #nvPublicBookingTitle {
    font-size: clamp(19px, 1.55vw, 23px) !important;
  }

  #nvPublicBooking .nv-public-booking__progress {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }

  #nvPublicBooking .nv-public-booking__progress-item,
  #nvPublicBooking .nv-public-booking__progress-item.is-active,
  #nvPublicBooking .nv-public-booking__progress-item.is-done {
    min-height: 34px !important;
    height: 34px !important;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
  }
}

/* A single accent language for actual selectable/review cards. The day cards
 * already established this visual cue; the rest of the workflow now matches it. */
#nvPublicBooking .nv-booking-choice,
#nvPublicBooking .nv-booking-tariff-choice,
#nvPublicBooking .nv-booking-day,
#nvPublicBooking .nv-booking-time,
#nvPublicBooking .nv-booking-review-card,
#nvPublicBooking .nv-final-amount-card {
  border-top-width: 4px !important;
  border-top-style: solid !important;
  border-top-color: #18b7d4 !important;
}

#nvPublicBooking .nv-booking-choice:hover,
#nvPublicBooking .nv-booking-choice:focus-visible,
#nvPublicBooking .nv-booking-choice.is-selected,
#nvPublicBooking .nv-booking-tariff-choice:hover,
#nvPublicBooking .nv-booking-tariff-choice:focus-visible,
#nvPublicBooking .nv-booking-tariff-choice.is-selected,
#nvPublicBooking .nv-booking-day:hover,
#nvPublicBooking .nv-booking-day:focus-visible,
#nvPublicBooking .nv-booking-day.is-selected,
#nvPublicBooking .nv-booking-time:hover,
#nvPublicBooking .nv-booking-time:focus-visible,
#nvPublicBooking .nv-booking-time.is-selected {
  border-top-color: #078bb4 !important;
}

/* The final review uses the same accent but stays calmer than selectable cards. */
#nvPublicBooking .nv-booking-review-card,
#nvPublicBooking .nv-final-amount-card {
  border-top-color: #46bfd4 !important;
}

/* source: public-booking-step8-hidden-guard-3.1.35.css */
/* NoorVista 3.1.35 — booking step visibility guard.
 * Step 8 desktop density must never override the native [hidden] contract of
 * the other booking steps. Keep this after the step-8 desktop fit layer.
 */
@media (min-width: 821px) {
  #nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step[hidden] {
    display: none !important;
  }
}

