/* Vacay Events 1.9.0 — canonical checkout presentation. */
html:has(body.single-vacay_event),
body.single-vacay_event {
  min-height: 100%;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: auto;
}

body.single-vacay_event.ve145-lightbox-open {
  overflow-y: hidden !important;
}

body.single-vacay_event .ve53,
body.single-vacay_event .ve53.ve53-public,
body.single-vacay_event .ve51-layout,
body.single-vacay_event .ve51-main,
body.single-vacay_event .ve51-checkout,
body.single-vacay_event #ve-checkout-form {
  min-width: 0;
  max-width: 100%;
  overflow: visible !important;
}

#ve-checkout-form .ve174-progress {
  position: relative !important;
  top: auto !important;
}

#ve-checkout-form .ve174-panel {
  scroll-margin-top: 24px;
}

#ve-checkout-form .ve174-panel.is-active {
  display: block !important;
}

#ve-checkout-form .ve1817-room-referral-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-column: 1 / -1 !important;
  gap: 16px !important;
  position: static !important;
  width: 100% !important;
  margin: 18px 0 4px !important;
  padding: 18px !important;
  box-sizing: border-box !important;
  border: 1px solid #b9dff5;
  border-left: 6px solid #0878bd;
  border-radius: 18px;
  background: linear-gradient(135deg, #f5fbff, #fff);
}

#ve-checkout-form .ve1817-room-referral-row .ve-field,
#ve-checkout-form .ve1817-room-referral-row select,
#ve-checkout-form .ve1817-room-referral-row input {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

#ve1822-referral-agent-wrap,
#ve179-how-heard-other-wrap {
  margin-top: 12px;
}

#ve1822-referral-agent-wrap[hidden],
#ve179-how-heard-other-wrap[hidden],
#ve1817-zelle-box[hidden],
#ve_square_box[hidden] {
  display: none !important;
}

#ve-checkout-form .ve-canonical-protection-details {
  display: block !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  margin: 14px 0;
  padding: 18px 20px;
  border: 1px solid #c9e1f2;
  border-radius: 16px;
  background: #f4faff;
  color: #34536b;
  line-height: 1.55;
}

#ve-checkout-form .ve-canonical-protection-details h5 {
  margin: 0 0 8px !important;
  color: #073b62 !important;
  font-size: 20px !important;
}

#ve-checkout-form .ve-canonical-protection-details ul {
  margin: 8px 0 12px 20px;
  padding: 0;
}

#ve-checkout-form .ve-canonical-protection-details p {
  margin: 0;
  padding: 13px 14px;
  border-radius: 12px;
  background: #fff7d6;
  color: #5b4800;
}

#ve1817-zelle-box {
  width: 100% !important;
  max-width: 100% !important;
  margin: 16px 0;
  padding: 20px;
  overflow: visible !important;
  box-sizing: border-box !important;
  border: 1px solid #b8d9eb;
  border-left: 6px solid #0878bd;
  border-radius: 18px;
  background: linear-gradient(135deg, #f5fbff, #fff);
}

#ve1817-zelle-box .ve1823-zelle-payee {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 310px);
  gap: 20px;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
}

#ve1817-zelle-box .ve1817-zelle-recipient,
#ve1817-zelle-box .ve1823-zelle-qr {
  min-width: 0;
  padding: 16px;
  border: 1px solid #cfe3f1;
  border-radius: 16px;
  background: #fff;
}

#ve1817-zelle-box .ve1817-zelle-recipient span,
#ve1817-zelle-box .ve1817-zelle-recipient b,
#ve1817-zelle-box .ve1817-zelle-recipient strong,
#ve1817-zelle-box .ve1817-zelle-recipient small {
  display: block;
  overflow-wrap: anywhere;
}

#ve1817-zelle-box .ve1823-zelle-qr {
  text-align: center;
}

#ve1817-zelle-box .ve1823-zelle-qr img,
.ve1822-zelle-confirmation .ve1823-confirm-qr img {
  display: block;
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  margin: 0 auto;
  background: #fff;
}

#ve1817-zelle-box .ve1823-zelle-qr span,
.ve1822-zelle-confirmation .ve1823-confirm-qr span {
  display: block;
  margin-top: 8px;
  color: #496579;
  font-size: 12px;
  font-weight: 850;
}

#ve1817-zelle-box .ve1823-zelle-steps {
  margin: 14px 0;
  padding: 16px 18px;
  border-radius: 15px;
  background: #eef8ff;
  color: #254a66;
  line-height: 1.55;
}

#ve1817-zelle-box .ve1817-zelle-ack {
  display: flex !important;
  gap: 10px;
  align-items: flex-start;
  padding: 12px 14px;
  border: 1px solid #d5e7f3;
  border-radius: 12px;
  background: #f7fbfe;
  font-weight: 800;
}

#ve_square_error {
  scroll-margin-top: 24px;
}

.ve-canonical-processing {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(3, 20, 34, .78);
}

.ve-canonical-processing.is-active {
  display: flex;
}

.ve-canonical-processing-card {
  width: min(500px, 100%);
  padding: 30px;
  border-radius: 24px;
  background: #fff;
  text-align: center;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .35);
}

.ve-canonical-spinner {
  width: 58px;
  height: 58px;
  margin: 0 auto 18px;
  border: 6px solid #dcecf6;
  border-top-color: #0878bd;
  border-radius: 50%;
  animation: veCanonicalSpin .8s linear infinite;
}

@keyframes veCanonicalSpin {
  to { transform: rotate(360deg); }
}

.ve1822-zelle-confirmation {
  margin: 24px 0;
  padding: 30px;
  border: 1px solid #b8d9eb;
  border-radius: 24px;
  background: linear-gradient(135deg, #f4fbff, #fff);
  box-shadow: 0 18px 45px rgba(5, 38, 61, .12);
}

.ve1822-confirm-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0;
}

.ve1822-confirm-grid > div {
  padding: 16px;
  border: 1px solid #d7e6f1;
  border-radius: 16px;
  background: #fff;
}

.ve1822-confirm-grid small,
.ve1822-confirm-grid strong,
.ve1822-confirm-grid span {
  display: block;
}

.ve1822-confirm-note {
  padding: 16px;
  border-radius: 15px;
  background: #fff8dc;
  color: #5f4a00 !important;
}

.ve1822-confirm-button {
  display: inline-flex;
  padding: 12px 18px;
  border-radius: 12px;
  background: #ffc400;
  color: #071624 !important;
  text-decoration: none !important;
  font-weight: 950;
}

@media (max-width: 820px) {
  #ve1817-zelle-box .ve1823-zelle-payee,
  #ve-checkout-form .ve1817-room-referral-row,
  .ve1822-confirm-grid {
    grid-template-columns: 1fr !important;
  }

  #ve1817-zelle-box .ve1823-zelle-qr {
    width: 100%;
    max-width: 340px;
    margin-inline: auto;
  }
}
