/* Isolated payment modal — beats CMS `button { padding:0; background:transparent }` */
.ft-pay-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10020 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(0, 0, 0, 0.6) !important;
  padding: 16px !important;
  box-sizing: border-box !important;
}

.ft-pay-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  width: min(520px, calc(100vw - 32px)) !important;
  max-width: min(520px, calc(100vw - 32px)) !important;
  max-height: min(700px, calc(100dvh - 32px)) !important;
  background: #fff !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25) !important;
  box-sizing: border-box !important;
}

.ft-pay-card.ft-pay-card--form {
  height: auto !important;
}

.ft-pay-card.ft-pay-card--iframe {
  height: min(700px, calc(100dvh - 32px)) !important;
}

.ft-pay-card input,
.ft-pay-card button,
.ft-pay-card label,
.ft-pay-card p,
.ft-pay-card div {
  box-sizing: border-box !important;
}

.ft-pay-card input[type="text"],
.ft-pay-card input[type="tel"] {
  padding: 12px 16px !important;
  min-height: 48px !important;
  background: transparent !important;
  border: 0 !important;
  width: 100% !important;
  font-size: 14px !important;
  color: #111 !important;
}

.ft-pay-card .ft-pay-field {
  display: flex !important;
  align-items: center !important;
  border: 2px solid #e5e7eb !important;
  border-radius: 12px !important;
  background: #fff !important;
}

.ft-pay-card .ft-pay-field.is-focus {
  border-color: #027bb0 !important;
  box-shadow: 0 0 0 3px rgba(2, 123, 176, 0.18) !important;
}

.ft-pay-card .ft-pay-field.is-error {
  border-color: #ef4444 !important;
}

.ft-pay-card .ft-pay-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  min-height: 52px !important;
  padding: 14px 16px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #027bb0 !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  line-height: 1.2 !important;
}

.ft-pay-card .ft-pay-btn:hover {
  background: #026492 !important;
}

.ft-pay-card .ft-pay-close {
  width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #f3f4f6 !important;
  color: #4b5563 !important;
  cursor: pointer !important;
}

@media (max-width: 639px) {
  .ft-pay-overlay {
    align-items: flex-end !important;
    padding: 0 !important;
  }
  .ft-pay-card {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 100dvh !important;
    border-radius: 16px 16px 0 0 !important;
  }
  .ft-pay-card.ft-pay-card--iframe {
    height: 100dvh !important;
  }
}

/* Guest/contact checkout — same isolation vs CMS `input,button{padding:0}` */
.ft-guest input[type="text"],
.ft-guest input[type="email"],
.ft-guest input[type="tel"],
.ft-guest input[type="date"],
.ft-guest select {
  display: block !important;
  width: 100% !important;
  min-height: 46px !important;
  padding: 12px 14px !important;
  border: 1px solid #cfd6e0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #151723 !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  box-sizing: border-box !important;
}

.ft-guest input.ft-guest-error,
.ft-guest select.ft-guest-error {
  border-color: #f87171 !important;
  background: #fef2f2 !important;
}

.ft-guest .ft-guest-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  padding: 12px 16px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #027bb0 !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  line-height: 1.2 !important;
}

.ft-guest .ft-guest-btn:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
}

.ft-guest .ft-guest-btn-ghost {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  padding: 12px 16px !important;
  border: 1px solid #cfd6e0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #292156 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
}

.ft-guest .ft-guest-stepper {
  width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  border: 1px solid #cfd6e0 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #292156 !important;
  font-size: 18px !important;
  line-height: 1 !important;
  cursor: pointer !important;
}
