/* Lamilka 0.6.67 — final booking interaction and alignment contract. */

/* Latest Lovable promotion row: fluid input plus content-sized action. */
.lamilka-promotion {
  margin: 16px 0;
  text-align: left;
}

.lamilka-promotion > div {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: stretch;
}

.lamilka-promotion input,
.lamilka-promotion button {
  box-sizing: border-box;
  min-width: 0;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
}

.lamilka-promotion input {
  text-transform: none;
}

.lamilka-promotion button {
  width: 100% !important;
  padding-inline: 10px !important;
  white-space: nowrap;
}

/* Historical booking selectors added a 6px input offset with higher
 * specificity. Reset both controls at their actual booking boundary. */
body .lamilka-detail__booking .lamilka-promotion,
body .lamilka-transfer__booking .lamilka-promotion {
  align-self: stretch !important;
  margin: 16px 0 !important;
  width: 100% !important;
}

body #lamilka-tour-booking.lamilka-detail__booking .lamilka-promotion > div,
body #transfer-booking.lamilka-transfer__booking .lamilka-promotion > div {
  align-items: start !important;
  margin: 0 !important;
}

body #lamilka-tour-booking.lamilka-detail__booking .lamilka-promotion > div > input[data-lamilka-promotion-code],
body #transfer-booking.lamilka-transfer__booking .lamilka-promotion > div > input[data-lamilka-promotion-code],
body #lamilka-tour-booking.lamilka-detail__booking .lamilka-promotion > div > button,
body #transfer-booking.lamilka-transfer__booking .lamilka-promotion > div > button {
  align-self: start !important;
  height: 44px !important;
  margin: 0 !important;
  min-height: 44px !important;
  top: auto !important;
  position: static !important;
  transform: none !important;
  vertical-align: top !important;
}

/* Keep card number and expiry fields aligned within the existing booking frame. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__card-expiry-row,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__card-expiry-row {
  align-items: end !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: minmax(0, 2.1fr) minmax(112px, 1fr) !important;
  margin: 0 0 16px !important;
  width: 100% !important;
}

body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__card-expiry-row label,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__card-expiry-row label {
  margin: 0 !important;
  min-width: 0 !important;
}

.lamilka-promotion p {
  margin: 8px 0 0;
  border-radius: 8px;
  padding: 8px 10px;
}

.lamilka-promotion.is-applied p {
  background: #edf9f3;
  color: #16804f !important;
}

.lamilka-promotion.is-error p {
  background: #fff6e8;
  color: #b86609 !important;
}

[data-lamilka-promotion-review],
[data-lamilka-promotion-review-value],
.is-discounted-price {
  color: #16804f !important;
}

/* Keep transfer destination and price on stable, symmetric lines. */
.lamilka-transfer__prices li {
  align-items: center;
  column-gap: 14px;
}

.lamilka-transfer__prices li > span {
  min-width: 0;
}

.lamilka-transfer__prices li > b {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* A disabled day always returns the cursor immediately; enabled days stay actionable. */
[data-lamilka-date-calendar],
.lamilka-date-field__calendar-grid {
  cursor: default !important;
}

.lamilka-date-field__calendar-day:enabled {
  cursor: pointer !important;
}

.lamilka-date-field__calendar-day:disabled {
  cursor: default !important;
  pointer-events: auto !important;
}

@media (max-width: 1023px) {
  /* 16px form text prevents iOS focus zoom without disabling user pinch zoom. */
	.lamilka-detail__booking input,
	.lamilka-detail__booking select,
	.lamilka-detail__booking textarea,
	.lamilka-transfer__booking input,
	.lamilka-transfer__booking select,
	.lamilka-transfer__booking textarea,
  body.lamilka-booking-focus-mode input,
  body.lamilka-booking-focus-mode select,
  body.lamilka-booking-focus-mode textarea,
  body.lamilka-booking-focus-mode .lmp-direct-payment input,
  body.lamilka-booking-focus-mode .lmp-direct-payment select,
  body.lamilka-booking-focus-mode .lmp-direct-payment textarea {
    font-size: 16px !important;
  }

  body.lamilka-booking-focus-mode input,
  body.lamilka-booking-focus-mode select,
  body.lamilka-booking-focus-mode textarea,
  body.lamilka-booking-focus-mode button {
    touch-action: manipulation;
  }

  /* During an active transfer booking, the form is the document endpoint. */
  body.lamilka-transfer-focus-mode .lamilka-transfer__faq,
  body.lamilka-transfer-focus-mode .lamilka-transfer__mobile-bar,
  body.lamilka-transfer-focus-mode .lamilka-detail__mobile-booking-bar,
  body.lamilka-transfer-focus-mode .site-footer,
  body.lamilka-transfer-focus-mode footer,
  body.lamilka-transfer-focus-mode .lamilka-certificate-strip,
  body.lamilka-transfer-focus-mode [data-lamilka-certificate-strip] {
    display: none !important;
  }

  body.lamilka-transfer-focus-mode #lamilka-route-root,
  body.lamilka-transfer-focus-mode .lamilka-transfer {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
}

/* Latest Lovable payment trust line; scoped to the Tour booking module only. */
.lamilka-detail__secure-payment > .lamilka-detail__payment-trust {
  color: #64748b;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  margin: 10px 0 0;
  text-align: center;
}


/* Build 118 behavior polish: calendar navigation cannot move into wholly past
 * months, while disabled days remain visibly inert and do not leave a stuck
 * pointer state. */
.lamilka-date-field__calendar header button:disabled {
  cursor: default !important;
  opacity: .35;
  pointer-events: none !important;
}

/* Child-seat steppers expose their real min/max state visually as well as
 * through disabled/aria-disabled attributes. */
.lamilka-transfer__seat-counter button:disabled {
  cursor: default !important;
  opacity: .45;
}

/* Build 119 Lovable parity: child-seat quantity is a native select, matching
 * the current Transfer source while retaining the existing WordPress frame. */
body #transfer-booking .lamilka-transfer__seat-count-field > .lamilka-transfer__select-wrap {
  display: block !important;
  margin-top: .5rem !important;
  width: 100% !important;
}

body #transfer-booking .lamilka-transfer__seat-count-field select[data-transfer-seat-count],
body #transfer-booking .lamilka-transfer__seat-age-select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: #fff !important;
  background-image: none !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  color: #0f172a !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  height: 48px !important;
  min-height: 48px !important;
  line-height: normal !important;
  padding: 0 40px 0 16px !important;
  width: 100% !important;
}

body #transfer-booking .lamilka-transfer__seat-count-field select[data-transfer-seat-count]:focus,
body #transfer-booking .lamilka-transfer__seat-count-field select[data-transfer-seat-count]:focus-visible,
body #transfer-booking .lamilka-transfer__seat-age-select:focus,
body #transfer-booking .lamilka-transfer__seat-age-select:focus-visible {
  border-color: #0f1b3d !important;
  box-shadow: none !important;
  outline: none !important;
}

body #transfer-booking .lamilka-transfer__seat-age-fields {
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: minmax(0, 1fr) !important;
  margin-top: 12px !important;
}

body #transfer-booking .lamilka-transfer__seats > div[data-transfer-seat-options] .lamilka-transfer__seat-age-fields {
  border-top: 0 !important;
  padding-top: 0 !important;
}

/* Build 123 — Tour staged-flow finish.
 * 1) Completed Continue actions must stay hidden even though older exact-parity
 *    rules force booking buttons to display with !important.
 * 2) Keep the Step 1 lower inset equal to the horizontal card inset.
 * Desktop card progression itself is handled by tour-detail.js and scrolls only
 * the sticky booking card, never the document. */
body #lamilka-tour-booking [data-booking-step].is-complete > [data-booking-next],
body #lamilka-tour-booking [data-booking-step][data-booking-step-complete="true"] > [data-booking-next],
body #lamilka-tour-booking [data-booking-next][hidden] {
  display: none !important;
}

@media (min-width: 901px) {
  body #lamilka-tour-booking.lamilka-detail__booking {
    --lamilka-tour-booking-inset: 12px;
    padding-right: var(--lamilka-tour-booking-inset) !important;
    padding-bottom: var(--lamilka-tour-booking-inset) !important;
    padding-left: var(--lamilka-tour-booking-inset) !important;
  }

  body #lamilka-tour-booking > [data-booking-step="1"] > [data-booking-next] {
    margin-bottom: 0 !important;
  }
}

