.rsvp-section{width:100%;background-color:var(--invitation-section-bg);padding:var(--invitation-section-padding);display:flex;flex-direction:column;align-items:center}.invitation-reveal.is-visible .rsvp-section .rsvp-header{animation:invitation-fade-in var(--invitation-fade-duration, .65s) cubic-bezier(.25,1,.5,1) .1s both}.invitation-reveal.is-visible .rsvp-section .rsvp-form{animation:invitation-fade-in var(--invitation-fade-duration, .65s) cubic-bezier(.25,1,.5,1) .2s both}.rsvp-section .rsvp-header{text-align:center;margin-bottom:2.5rem}.rsvp-section .rsvp-title{font-family:var(--font-secondary);font-size:3.5rem;color:var(--invitation-text-secondary);margin:0;font-weight:400}.rsvp-section .rsvp-subtitle{font-family:var(--font-primary);font-weight:400;font-size:1rem;color:var(--invitation-text-muted);margin:.5rem 0 0}.rsvp-section .rsvp-form{max-width:650px;width:100%;background:var(--invitation-card-bg);border-radius:16px;padding:2rem;box-shadow:var(--invitation-card-shadow-form)}.rsvp-section .form-group{margin-bottom:1.5rem}.rsvp-section .form-label{display:block;font-family:var(--font-primary);font-weight:400;font-size:.95rem;color:var(--invitation-text-primary);margin-bottom:.5rem}.rsvp-section .required{color:var(--invitation-accent)}.rsvp-section .form-input,.rsvp-section .form-textarea{width:100%;font-family:var(--font-primary);font-size:.95rem;padding:.875rem 1rem;border:1px solid var(--invitation-border);border-radius:8px;background:var(--invitation-section-bg);color:var(--invitation-text-primary);transition:border-color .2s,box-shadow .2s}.rsvp-section .form-input::placeholder,.rsvp-section .form-textarea::placeholder{color:var(--invitation-text-placeholder)}.rsvp-section .form-input:focus,.rsvp-section .form-textarea:focus{outline:none;border-color:var(--invitation-accent);box-shadow:0 0 0 3px var(--invitation-focus-ring)}.rsvp-section .form-input.has-error{border-color:#e74c3c}.rsvp-section .field-error{font-family:var(--font-primary);font-size:.8rem;color:#e74c3c;margin:.25rem 0 0}.rsvp-section .form-input-small{width:80px}.rsvp-section .form-textarea{resize:vertical;min-height:100px}.rsvp-section .radio-group{display:flex;gap:1.5rem;flex-wrap:wrap}.rsvp-section .radio-label,.rsvp-section .checkbox-label{display:flex;align-items:center;gap:.5rem;font-family:var(--font-primary);font-size:.95rem;color:var(--invitation-text-primary);cursor:pointer}.rsvp-section .radio-label input,.rsvp-section .checkbox-label input{display:none}.rsvp-section .radio-custom{width:18px;height:18px;border:2px solid var(--invitation-accent);border-radius:50%;position:relative;transition:all .2s}.rsvp-section .radio-label input:checked+.radio-custom:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:var(--invitation-accent);border-radius:50%}.rsvp-section .checkbox-custom{width:18px;height:18px;border:2px solid var(--invitation-border-strong);border-radius:4px;position:relative;transition:all .2s;flex-shrink:0}.rsvp-section .checkbox-label input:checked+.checkbox-custom{background:var(--invitation-accent);border-color:var(--invitation-accent)}.rsvp-section .checkbox-label input:checked+.checkbox-custom:after{content:"";position:absolute;top:45%;left:50%;transform:translate(-50%,-50%) rotate(45deg);width:5px;height:9px;border:solid var(--invitation-ink-inverse);border-width:0 2px 2px 0}.rsvp-section .checkbox-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}.rsvp-section .allergy-label{display:flex;align-items:center;gap:.5rem;color:var(--invitation-text-secondary)}.rsvp-section .allergy-label i{color:var(--invitation-accent);font-size:1.1rem}.rsvp-section .form-hint{font-family:var(--font-primary);font-weight:300;font-size:.85rem;color:var(--invitation-text-subtle);margin:0 0 1rem}.rsvp-section .submit-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-primary);font-size:1rem;font-weight:500;color:var(--invitation-ink-inverse);background:var(--invitation-accent);border:none;border-radius:8px;padding:1rem 2rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.rsvp-section .submit-btn:hover{transform:translateY(-1px);box-shadow:0 4px 15px var(--invitation-accent-shadow)}.rsvp-section .submit-btn i{font-size:1.1rem}.animate-spin{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rsvp-section .submit-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.rsvp-section .submit-btn:disabled:hover{transform:none;box-shadow:none}.rsvp-section .attending-fields{display:none}.rsvp-section .attending-fields.is-visible{display:block}.rsvp-section .submit-btn:focus-visible,.rsvp-section .radio-label:has(input:focus-visible),.rsvp-section .checkbox-label:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:8px}@keyframes guest-card-enter{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.rsvp-section .guest-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.rsvp-section .guest-card{background:var(--invitation-card-bg);border:1px solid var(--invitation-border-soft);border-radius:12px;padding:1.25rem;animation:guest-card-enter .35s cubic-bezier(.25,1,.5,1)}.rsvp-section .guest-card-adult{border-left:3px solid var(--invitation-accent)}.rsvp-section .guest-card-child{border-left:3px solid var(--invitation-accent-soft)}.rsvp-section .guest-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--invitation-border-soft)}.rsvp-section .guest-card-heading{display:flex;align-items:center;gap:.5rem;font-family:var(--font-primary);font-weight:500;font-size:.95rem;color:var(--invitation-text-secondary)}.rsvp-section .guest-card-heading i{color:var(--invitation-accent);font-size:1.1rem}.rsvp-section .guest-remove-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--invitation-text-muted);cursor:pointer;transition:all .2s;padding:0;border-radius:8px}.rsvp-section .guest-remove-btn:hover{background:#e74c3c14;color:#e74c3c}.rsvp-section .guest-remove-btn i{font-size:1.1rem}.rsvp-section .guest-card-body{display:flex;flex-direction:column;gap:1rem}.rsvp-section .guest-card-body .form-group{margin-bottom:0}.rsvp-section .guest-allergy-section{padding-top:.25rem}.rsvp-section .guest-empty-state{text-align:center;padding:2.5rem 1.5rem;color:var(--invitation-text-muted);border:2px dashed var(--invitation-border-soft);border-radius:12px;margin-bottom:1rem}.rsvp-section .guest-empty-state i{font-size:2rem;margin-bottom:.75rem;display:block;color:var(--invitation-border-strong)}.rsvp-section .guest-empty-state p{margin:0;font-family:var(--font-primary);font-size:.9rem}.rsvp-section .guest-summary{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.rsvp-section .guest-summary-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:500;padding:.35rem .75rem;border-radius:20px;background:var(--invitation-accent-wash);color:var(--invitation-accent)}.rsvp-section .guest-summary-badge i{font-size:.9rem}.rsvp-section .guest-actions{display:flex;gap:.75rem;flex-wrap:wrap}.rsvp-section .guest-action-btn{display:flex;align-items:center;gap:.5rem;font-family:var(--font-primary);font-size:.9rem;font-weight:500;color:var(--invitation-accent);background:transparent;border:1.5px solid var(--invitation-accent);border-radius:8px;padding:.625rem 1rem;cursor:pointer;transition:all .2s cubic-bezier(.25,1,.5,1)}.rsvp-section .guest-action-btn i{font-size:1.25rem;transition:transform .2s}.rsvp-section .guest-action-btn:hover{background:var(--invitation-accent-wash);transform:translateY(-1px);box-shadow:0 2px 8px var(--invitation-accent-shadow)}.rsvp-section .guest-action-btn:hover i{transform:scale(1.1)}.rsvp-section .guest-action-btn:active{transform:translateY(0)}@media(max-width:480px){.rsvp-section .rsvp-title{font-size:2.8rem}.rsvp-section .rsvp-form{padding:1.5rem}.rsvp-section .checkbox-grid{grid-template-columns:1fr}.rsvp-section .radio-group{flex-direction:column;gap:.75rem}}@media(prefers-reduced-motion:reduce){.invitation-reveal.is-visible .rsvp-section .rsvp-header,.invitation-reveal.is-visible .rsvp-section .rsvp-form{animation:none;opacity:1;transform:none}}
