.rsvp-form{display:flex;flex-direction:column;gap:28px}.rsvp-guest-card{background-color:var(--guest-surface,#FFFFFF);border-radius:12px;padding:clamp(24px,4vw,36px);box-shadow:0 4px 20px rgba(38,53,45,.05);border:1px solid var(--wedding-taupe,#bda893);transition:box-shadow .2s ease}.rsvp-guest-card:hover{box-shadow:0 6px 24px rgba(38,53,45,.09)}.rsvp-guest-header{margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid rgba(189,168,147,.35);display:flex;justify-content:space-between;align-items:center}.rsvp-guest-title{font-family:var(--wedding-heading-font,"Black Mango"),serif;font-size:1.5rem;color:var(--guest-text,var(--wedding-forest,#26352D));font-weight:400;margin:0;letter-spacing:.02em}.rsvp-guest-remove-btn{background:none;border:1px solid rgba(106,51,42,.25);color:var(--guest-error,var(--wedding-oxidite,#6A332A));font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;padding:4px 10px;border-radius:4px;transition:all .18s ease}.rsvp-guest-remove-btn:hover{background-color:rgba(106,51,42,.08);border-color:var(--wedding-oxidite,#6A332A)}.rsvp-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}@media (max-width:600px){.rsvp-form-row{grid-template-columns:1fr;gap:12px}}.rsvp-form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.rsvp-label{font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.85rem;font-weight:600;color:var(--guest-text,var(--wedding-forest,#26352D));letter-spacing:.02em}.rsvp-label-required:after{content:" *";color:var(--guest-accent-text,var(--wedding-terracotta,#8F4823));margin-left:2px}.rsvp-input,.rsvp-select,.rsvp-textarea{width:100%;padding:10px 14px;border:1px solid var(--wedding-taupe,#bda893);border-radius:6px;background-color:var(--guest-surface,#FAF8F5);font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.95rem;color:var(--guest-text,var(--wedding-forest,#26352D));transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;box-sizing:border-box}.rsvp-input:focus,.rsvp-select:focus,.rsvp-textarea:focus{outline:none;background-color:var(--guest-surface,#FFFFFF);border-color:var(--wedding-sage,#405A48);box-shadow:0 0 0 2px rgba(64,90,72,.2)}.rsvp-textarea{resize:vertical;min-height:90px}.rsvp-allergy-quick-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.rsvp-chip{padding:4px 10px;border-radius:16px;background-color:var(--guest-surface,#FAF8F5);border:1px solid var(--wedding-taupe,#bda893);font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.76rem;font-weight:600;cursor:pointer;transition:all .18s ease}.rsvp-chip,.rsvp-chip:hover{color:var(--guest-text,var(--wedding-forest,#26352D))}.rsvp-chip:hover{background-color:var(--wedding-taupe,#BDA893)}.rsvp-chip--active{background-color:var(--wedding-sage,#405A48);border-color:var(--wedding-sage,#405A48);color:var(--guest-on-sage,var(--wedding-ivory,#F7F3EC))}.rsvp-chip--active:hover{background-color:var(--wedding-forest,#26352D);border-color:var(--wedding-forest,#26352D);color:var(--guest-on-forest,var(--wedding-ivory,#F7F3EC))}.rsvp-attendance-toggle{display:flex;gap:12px;margin-top:6px;margin-bottom:20px}.rsvp-toggle-btn{flex:1 1;padding:12px 14px;text-align:center;background-color:var(--wedding-ivory,#F7F3EC);border:1.5px solid var(--wedding-taupe,#bda893);border-radius:6px;cursor:pointer;font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.95rem;font-weight:600;color:var(--guest-text,var(--wedding-forest,#26352D));transition:all .22s ease;-webkit-user-select:none;user-select:none;min-height:48px;display:flex;align-items:center;justify-content:center}.rsvp-toggle-btn:hover{background-color:var(--guest-surface,#FAF8F5);border-color:var(--wedding-forest,#26352D)}.rsvp-toggle-btn--accepted,.rsvp-toggle-btn--active{background-color:var(--wedding-forest,#26352D)!important;color:var(--guest-on-forest,var(--wedding-ivory,#F7F3EC))!important;border-color:var(--wedding-forest,#26352D)!important;box-shadow:0 4px 12px rgba(38,53,45,.35)!important}.rsvp-toggle-btn--declined,.rsvp-toggle-btn--declined-active{background-color:var(--wedding-terracotta,#8F4823)!important;color:var(--guest-on-action,var(--wedding-ivory,#F7F3EC))!important;border-color:var(--wedding-terracotta,#8F4823)!important;box-shadow:0 4px 12px rgba(143,72,35,.35)!important}.rsvp-toggle-label{display:block;padding:12px 14px;text-align:center;background-color:var(--guest-surface,#FAF8F5);border:1px solid var(--wedding-taupe,#bda893);border-radius:6px;cursor:pointer;font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.92rem;font-weight:600;color:var(--guest-text,var(--wedding-forest,#26352D));transition:all .2s ease;-webkit-user-select:none;user-select:none}.rsvp-toggle-label:hover{background-color:var(--wedding-ivory,#F7F3EC);border-color:var(--wedding-sage,#405A48)}.rsvp-toggle-input:checked+.rsvp-toggle-label{background-color:var(--wedding-sage,#405A48)!important;color:var(--guest-on-sage,var(--wedding-ivory,#F7F3EC))!important;border-color:var(--wedding-sage,#405A48)!important;box-shadow:0 2px 8px rgba(64,90,72,.25)}.rsvp-toggle-input:checked+.rsvp-toggle-label.rsvp-toggle-label--declined{background-color:var(--wedding-oxidite,#6A332A)!important;border-color:var(--wedding-oxidite,#6A332A)!important;color:var(--guest-on-error,var(--wedding-ivory,#F7F3EC))!important;box-shadow:0 2px 8px rgba(106,51,42,.25)}.rsvp-conditional-fields{display:none;animation:fadeIn .3s ease-out}.rsvp-conditional-fields--visible{display:block}.rsvp-checkbox-wrapper{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;cursor:pointer}.rsvp-checkbox{width:18px;height:18px;accent-color:var(--wedding-sage,#405A48);cursor:pointer;margin-top:2px;flex-shrink:0}.rsvp-checkbox-label{font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.9rem;color:var(--guest-text,var(--wedding-forest,#26352D));cursor:pointer;line-height:1.4}.rsvp-checkbox-desc{display:block;font-size:.8rem;color:rgba(38,53,45,.65);margin-top:2px}.rsvp-checkbox-grid{display:flex;flex-direction:column;gap:8px;background-color:var(--guest-surface,#FAF8F5);padding:14px;border-radius:6px;border:1px solid var(--wedding-taupe,#bda893)}.rsvp-privacy-consent{margin-top:20px;background-color:rgba(64,90,72,.06);padding:14px 16px;border-radius:6px;border-left:3px solid var(--wedding-sage,#405a48)}.rsvp-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:4px;margin-bottom:12px}.rsvp-btn-secondary{padding:10px 20px;background-color:var(--guest-surface,#FFFFFF);border:1.5px dashed var(--wedding-terracotta,#8f4823);color:var(--guest-accent-text,var(--wedding-terracotta,#8F4823));border-radius:6px;font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s ease}.rsvp-btn-secondary:hover{background-color:rgba(143,72,35,.08);border-color:var(--wedding-oxidite,#6A332A);color:var(--guest-error,var(--wedding-oxidite,#6A332A))}.rsvp-btn-secondary--child{border-color:var(--wedding-sage,#405A48);color:var(--guest-muted,var(--wedding-sage,#405A48))}.rsvp-btn-secondary--child:hover{background-color:rgba(64,90,72,.08);border-color:var(--wedding-forest,#26352D);color:var(--guest-text,var(--wedding-forest,#26352D))}.rsvp-submit-container{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:16px;padding-top:24px;border-top:1px solid rgba(189,168,147,.4)}.rsvp-btn-submit{padding:15px 36px;background-color:var(--wedding-terracotta,#8F4823);color:var(--guest-on-action,var(--wedding-ivory,#F7F3EC));border:none;border-radius:4px;font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-weight:600;font-size:.92rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px rgba(143,72,35,.25);min-width:240px}.rsvp-btn-submit:hover:not(:disabled){background-color:var(--wedding-oxidite,#6A332A);transform:translateY(-2px);box-shadow:0 6px 18px rgba(106,51,42,.35)}.rsvp-btn-submit:disabled{background-color:var(--wedding-taupe,#BDA893);cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.rsvp-success{text-align:center;padding:48px 24px;background-color:var(--guest-surface,#FFFFFF);border:1px solid var(--wedding-taupe,#bda893);border-radius:12px;box-shadow:0 4px 20px rgba(38,53,45,.06);animation:fadeIn .5s ease-out}.rsvp-success-icon{font-size:3rem;color:var(--guest-muted,var(--wedding-sage,#405A48));margin-bottom:16px}.rsvp-success-title{font-family:var(--wedding-heading-font,"Black Mango"),serif;font-size:2.2rem;margin-bottom:12px;font-weight:400}.rsvp-success-text,.rsvp-success-title{color:var(--guest-text,var(--wedding-forest,#26352D))}.rsvp-success-text{font-family:var(--wedding-body-font,"Avenir Next"),sans-serif;font-size:1.05rem;line-height:1.6;opacity:.85;max-width:500px;margin:0 auto 24px}.rsvp-success-video-container{margin:20px auto 28px;max-width:290px;background-color:var(--wedding-ivory,#F7F3EC);border:1px solid var(--wedding-taupe,#bda893);border-radius:12px;padding:16px 14px 14px;box-shadow:0 6px 20px rgba(38,53,45,.08)}.rsvp-success-video-badge{font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--guest-accent-text,var(--wedding-terracotta,#8F4823));display:block;margin-bottom:10px}.rsvp-success-video-frame{width:100%;aspect-ratio:9/16;border-radius:8px;overflow:hidden;background-color:#000000;box-shadow:inset 0 0 10px rgba(0,0,0,.5);margin-bottom:8px}.rsvp-success-video-player{width:100%;height:100%;object-fit:cover;display:block}.rsvp-success-video-caption{font-family:var(--wedding-heading-font,"Black Mango"),Georgia,serif;font-style:italic;font-size:1.1rem;color:var(--guest-text,var(--wedding-forest,#26352D));margin:8px 0 0}.rsvp-success-actions{margin-top:24px}.rsvp-btn-success-link{display:inline-block;padding:12px 28px;background-color:var(--wedding-forest,#26352D);color:var(--guest-on-forest,var(--wedding-ivory,#F7F3EC));text-decoration:none;border-radius:6px;font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-weight:600;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;transition:all .2s ease}.rsvp-btn-success-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(38,53,45,.2)}.rsvp-btn-back,.rsvp-btn-success-link:hover{background-color:var(--wedding-sage,#405A48)}.rsvp-btn-back{display:inline-block;padding:12px 28px;color:var(--guest-on-sage,var(--wedding-ivory,#F7F3EC));text-decoration:none;border-radius:4px;font-family:var(--wedding-navigation-font,var(--wedding-body-font,"Avenir Next")),sans-serif;font-weight:600;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;transition:all .2s ease}.rsvp-btn-back:hover{background-color:var(--wedding-forest,#26352D);transform:translateY(-2px)}