/* ==========================================================================
   RSVP page
   ========================================================================== */
body.rsvp-page{
  background:var(--cream);
  color:var(--ink);
  min-height:100vh;
}

.rsvp-page__header{
  text-align:center;
  padding:48px 24px 30px;
}
.rsvp-page__logo{
  width:60px;
  margin:0 auto 16px;
}
.rsvp-page__title{
  font-family:var(--font-hand);
  font-size:clamp(1.8rem, 5vw, 2.6rem);
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--burgundy);
  margin-bottom:10px;
}
.rsvp-page__subtitle{
  font-size:14.5px;
  opacity:.85;
}

.rsvp-page__main{
  max-width:480px;
  margin:0 auto;
  padding:10px 24px 80px;
}

.rsvp-input{
  width:100%;
  padding:14px 18px;
  border-radius:24px;
  border:1px solid #ddd;
  font-size:15px;
  font-family:var(--font-body);
  color:var(--ink);
  margin-bottom:14px;
  box-sizing:border-box;
}
.rsvp-textarea{
  border-radius:16px;
  min-height:80px;
  resize:vertical;
}

.rsvp-results{ margin-top:6px; }
.rsvp-result{
  padding:14px 18px;
  background:#fff;
  border-radius:14px;
  margin-bottom:10px;
  cursor:pointer;
  transition:transform .15s ease;
}
.rsvp-result:hover{ transform:translateX(4px); }
.rsvp-result__top{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.rsvp-result__top span{ font-size:13px; opacity:.7; }
.rsvp-result__names{
  margin:6px 0 0;
  font-size:12.5px;
  opacity:.6;
  line-height:1.5;
}

.rsvp-empty{
  text-align:center;
  font-size:14px;
  opacity:.7;
  margin-top:20px;
}

.rsvp-form__invite{
  font-family:var(--font-hand);
  font-size:1.6rem;
  text-transform:uppercase;
  color:var(--burgundy);
  text-align:center;
  margin-bottom:6px;
}
.rsvp-form__seats{
  text-align:center;
  font-size:13.5px;
  opacity:.75;
  margin-bottom:24px;
}

.rsvp-form__choice{
  display:flex;
  gap:12px;
  margin-bottom:20px;
}
.rsvp-form__choice .btn{ flex:1; padding:14px 10px; font-size:12px; }

.rsvp-label{
  display:block;
  font-size:13px;
  letter-spacing:.5px;
  margin-bottom:8px;
  opacity:.85;
}

.rsvp-back{
  display:block;
  margin:20px auto 0;
  background:none;
  border:none;
  font-size:13px;
  color:var(--ink);
  opacity:.6;
  cursor:pointer;
  text-decoration:underline;
}

.rsvp-guest{
  border:none;
  background:#fff;
  border-radius:16px;
  padding:22px 20px;
  margin:0 0 16px;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  min-width:0;
}
.rsvp-guest__legend{
  display:block;
  float:left;
  width:100%;
  font-family:var(--font-body);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--olive);
  padding:0 0 10px;
  margin:0 0 18px;
  border-bottom:1px solid #f0e8e0;
}

.rsvp-question{
  display:block;
  font-size:14.5px;
  font-weight:600;
  color:var(--ink);
  margin-bottom:4px;
}

.rsvp-hint{
  font-size:12px;
  opacity:.6;
  margin:0 0 10px;
}

.rsvp-radio-group{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:18px;
}
.rsvp-radio-group label{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  padding:11px 14px;
  border-radius:12px;
  background:var(--cream);
  border:1.5px solid transparent;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
}
.rsvp-radio-group label:has(input:checked){
  border-color:var(--rose);
  background:#fff;
}
.rsvp-radio-group input{ margin:0; accent-color:var(--burgundy); }

.rsvp-guest__conditional{
  display:none;
  margin-top:2px;
  padding-top:16px;
  border-top:1px dashed #ecdfd5;
}
.rsvp-guest__conditional.is-visible{ display:block; }
.rsvp-guest__dietary-detail{ margin-bottom:18px; }
.rsvp-guest__dietary-detail[hidden]{ display:none; }

.rsvp-guest__name{ margin-bottom:20px; }

#detailBlocks{ margin-top:8px; }
#detailBlocks:not(:empty)::before{
  content:"Restricciones alimentarias y transporte";
  display:block;
  font-family:var(--font-body);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--burgundy);
  opacity:.7;
  margin:24px 0 12px 4px;
}
.rsvp-guest--details[hidden]{ display:none; }

#stepThanks{
  text-align:center;
  padding-top:40px;
}
.rsvp-thanks__heart{
  width:44px;
  height:44px;
  margin:0 auto 20px;
}
.rsvp-thanks__title{
  font-family:var(--font-hand);
  font-size:2rem;
  text-transform:uppercase;
  color:var(--burgundy);
  margin-bottom:12px;
}
.rsvp-thanks__text{
  font-size:15px;
  line-height:1.7;
  margin-bottom:20px;
}
.rsvp-thanks__redirect{
  font-size:12.5px;
  opacity:.6;
}
