/* Plugin RSVP — integrado ao tema Casamento Romântico */

/* Card principal */
.novo-rsvp-card {
  max-width: 720px;
  margin: 0 auto;
}

/* Autocomplete */
.rsvp-autocomplete-wrap {
  position: relative;
}

.rsvp-suggest-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 20;
  background: #fff;
  border: 1.5px solid var(--color-border);
  border-radius: .85rem;
  box-shadow: 0 8px 28px rgba(0,0,0,.08);
  overflow: hidden;
  max-height: 260px;
  overflow-y: auto;
}

.rsvp-suggest-item {
  display: block;
  width: 100%;
  text-align: left;
  padding: .65rem 1rem;
  background: none;
  border: none;
  border-bottom: 1px solid var(--color-border);
  font-family: var(--font-sans);
  font-size: .92rem;
  color: var(--color-text);
  cursor: pointer;
  transition: background .12s;
}
.rsvp-suggest-item:last-child {
  border-bottom: none;
}
.rsvp-suggest-item:hover,
.rsvp-suggest-item:focus {
  background: var(--color-bg-soft);
}

/* Hints */
.rsvp-hint {
  display: block;
  margin-top: .35rem;
  font-size: .82rem;
  color: var(--color-text-soft);
}
.rsvp-hint-inline {
  font-weight: 400;
  color: var(--color-text-soft);
}

/* Guest name display */
.rsvp-guest-label {
  font-size: .82rem;
  color: var(--color-text-soft);
  margin-bottom: .15rem;
}
.rsvp-guest-name {
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--color-text);
}

/* Alerts */
.rsvp-alert {
  padding: .85rem 1.1rem;
  border-radius: .85rem;
  font-size: .92rem;
  margin-bottom: 1.25rem;
}
.rsvp-alert-success {
  background: rgba(79, 104, 63, .1);
  color: #3C6B19;
  border: 1.5px solid rgba(79, 104, 63, .2);
}
.rsvp-alert-error {
  background: rgba(180, 60, 60, .08);
  color: #a03030;
  border: 1.5px solid rgba(180, 60, 60, .2);
}
.rsvp-alert-warning {
  background: rgba(200, 160, 60, .1);
  color: #8a6a1a;
  border: 1.5px solid rgba(200, 160, 60, .25);
}
.rsvp-alert-info {
  background: rgba(122, 122, 204, .1);
  color: var(--color-text);
  border: 1.5px solid rgba(122, 122, 204, .2);
}

/* Radio & Checkbox */
.rsvp-radio,
.rsvp-checkbox {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .4rem 0;
  font-size: .92rem;
  cursor: pointer;
  color: var(--color-text);
}
.rsvp-radio input[type="radio"],
.rsvp-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--color-lavender-mid);
  cursor: pointer;
  flex-shrink: 0;
}

/* Row / Col layout */
.rsvp-row {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.rsvp-row .rsvp-col {
  flex: 1 1 240px;
  min-width: 0;
}

/* Child cards */
.rsvp-child-card {
  background: rgba(255,255,255,.6);
  border: 1px solid var(--color-border);
  border-radius: 1rem;
  padding: 1rem;
  margin-bottom: .75rem;
}
.rsvp-child-title {
  font-weight: 600;
  font-size: .9rem;
  margin-bottom: .6rem;
  color: var(--color-text);
}

/* Actions */
.rsvp-actions {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.rsvp-actions .btn {
  flex: 1 1 140px;
}

/* Step transition */
#novo-rsvp-step-1,
#novo-rsvp-step-2 {
  animation: rsvpFadeIn .25s ease;
}
@keyframes rsvpFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Continue button on step-1 */
#novo-rsvp-step-1 .btn-primary {
  width: 100%;
}

/* Responsive */
@media (max-width: 560px) {
  .rsvp-row {
    flex-direction: column;
    gap: 0;
  }
  .rsvp-row .rsvp-col {
    flex: 1 1 auto;
  }
  .rsvp-actions .btn {
    flex: 1 1 100%;
  }
}
