/* Site-wide buttons */
.lb2025-btn, .lb2025-primary { display:inline-block; padding:.75rem 1.25rem; border-radius:8px; border:1px solid #7e22ce; background:#7e22ce; color:#fff; text-decoration:none; font-weight:600; }
.lb2025-btn { background:#fff; color:#7e22ce; }
.lb2025-btn:hover { background:#7e22ce; color:#fff; }
.hidden { display:none; }

/* Modal container */
.lb2025-modal {
  position: fixed; inset: 0; background: rgba(0,0,0,.6);
  display: none; z-index: 9999;
}
.lb2025-modal.is-open {
  display: flex; align-items: center; justify-content: center;
  padding: 16px; /* breathing room on small screens */
}

/* The white box */
.lb2025-modal__content{
  background:#fff;
  width: 100%;
  max-width: 720px;
  max-height: 92vh;             /* never exceed viewport */
  border-radius: 12px;
  position: relative;

  /* CRUCIAL: flex column + allow inner to shrink/scroll */
  display: flex;
  flex-direction: column;
  overflow: hidden;              /* clip rounded corners */
}

/* Close button */
.lb2025-close{
  position:absolute; right:10px; top:8px;
  background:transparent; border:0; font-size:22px; line-height:1;
}

/* The scrollable area that wraps your <form> */
.lb2025-modal-scroll{
  flex: 1 1 auto;                /* take remaining height */
  min-height: 0;                 /* <-- CRUCIAL for flex scroll */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 18px 22px 22px;
}

/* Lock page behind modal */
.lb2025-lock-scroll { overflow: hidden; }

@media (max-width: 480px){
  .lb2025-modal.is-open { padding: 8px; }
  .lb2025-modal-scroll { padding: 14px 16px 18px; }
}

.lb2025-lock-scroll { overflow: hidden; }

.lb2025-icon-users{ color:#7c3aed; margin:0 6px 0 8px; font-size:1rem; line-height:1; }

/* Support start – big CTA buttons */
.lb2025-support-choices { display:flex; flex-direction:column; gap:12px; margin-top:10px; }
.lb2025-cta-big {
  width:100%; padding:14px 16px; border-radius:12px; font-weight:700;
  border:1px solid #7c3aed; background:#fff; color:#7c3aed; text-align:center;
}
.lb2025-cta-primary {
  background: linear-gradient(90deg,#7c3aed,#6d28d9);
  color:#fff; border-color:transparent;
  box-shadow: 0 10px 24px rgba(124,58,237,.25);
}
.lb2025-cta-primary:hover { filter:brightness(1.03); }
.lb2025-cta-ghost { background:#fff; color:#111827; border-color:#e5e7eb; }
.lb2025-cta-link { background:none; border:0; color:#111827; text-decoration:none; padding:8px 0; }

/* Utility */
.hidden { display:none; }

/* General fieldset styling */
.lb2025-rsvp-card fieldset {
  margin-top: 1.25rem;   /* space above each group */
  margin-bottom: 1.25rem;
  padding: 1rem 1.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background-color: #fafafa; /* light gray background to separate groups */
}

/* Legend / headings inside fieldsets */
.lb2025-rsvp-card fieldset legend {
  font-weight: 600;
  font-size: 0.95rem;
  margin-bottom: 0.75rem;
  color: #4b5563;
  display: block;
}

/* Inputs inside fieldsets */
.lb2025-rsvp-card fieldset label {
  display: block;
  margin-bottom: 0.5rem;
}

/* Radio/checkbox groups inline with spacing */
.lb2025-rsvp-card fieldset label input[type="radio"],
.lb2025-rsvp-card fieldset label input[type="checkbox"] {
  margin-right: 0.5rem;
}

/* Add vertical spacing between stacked radios/checkboxes */
.lb2025-rsvp-card fieldset label + label {
  margin-top: 0.5rem;
}

/* Group spacing (you can keep the fieldset styling we added earlier) */
.lb2025-support-cash { display: grid; gap: 14px; }

/* Inputs look consistent & roomy */
.lb2025-input, .lb2025-input[type="text"], .lb2025-input[type="date"], .lb2025-input[type="number"], .lb2025-input, .lb2025-input-currency, .lb2025-rsvp-card textarea, .lb2025-rsvp-card select {
  width: 100%;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 0.95rem;
  outline: none;
  transition: box-shadow .15s, border-color .15s;
}
.lb2025-input:focus, .lb2025-rsvp-card textarea:focus, .lb2025-rsvp-card select:focus {
  border-color: #a78bfa;
  box-shadow: 0 0 0 3px rgba(167,139,250,.25);
}

/* Currency input with static ₦ prefix */
.lb2025-currency-wrap {
  position: relative;
}
.lb2025-currency-prefix {
  position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
  color: #6b7280;
  font-weight: 700;
}
.lb2025-input-currency {
  padding-left: 34px;    /* make room for ₦ */
  text-align: left;
  letter-spacing: .3px;
}

/* Pretty details (kept open) */
.lb2025-bank {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  overflow: hidden;
  background: #fafafa;
}
.lb2025-bank > summary {
  list-style: none; cursor: pointer;
  padding: 12px 14px; font-weight: 700; color: #4c1d95;
  display: flex; align-items: center; justify-content: space-between;
}
.lb2025-bank[open] > summary { border-bottom: 1px solid #e5e7eb; }
.lb2025-bank > summary::-webkit-details-marker { display: none; }
.lb2025-bank > summary::after {
  content: "▾"; color: #6b7280; margin-left: 8px;
}
.lb2025-bank[open] > summary::after { transform: rotate(180deg); }

.lb2025-bank-body { padding: 12px 14px; background: #fff; }
.lb2025-bank-body pre {
  margin: 0; white-space: pre-wrap; word-wrap: break-word;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .9rem; color: #111827;
}

/* Wrap for currency field */
.lb2025-currency-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

/* The ₦ prefix */
.lb2025-currency-prefix {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 700;
  color: #4c1d95; /* purple shade */
  pointer-events: none;
  z-index: 1;
}

/* The visible input with extra left padding */
.lb2025-input-currency {
  flex: 1;
  padding-left: 36px !important;  /* make room for ₦ */
  height: 44px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  font-size: 0.95rem;
  background: #fff;
  outline: none;
}

.lb2025-input-currency:focus {
  border-color: #a78bfa;
  box-shadow: 0 0 0 3px rgba(167,139,250,.25);
}
