.rsvp-page{min-height:100vh;overflow-x:hidden;background:var(--cream)}
.rsvp-stage{min-height:100vh;display:grid;place-items:center;padding:34px 18px;position:relative;isolation:isolate;background:linear-gradient(135deg,color-mix(in srgb,var(--rose-soft) 80%,#fff) 0%,var(--cream) 48%,color-mix(in srgb,var(--gold) 18%,var(--cream)) 100%)}
.rsvp-background{position:fixed;inset:0;overflow:hidden;z-index:-1;pointer-events:none}.rsvp-orb{position:absolute;border-radius:999px;filter:blur(2px);opacity:.48}.rsvp-orb-one{width:360px;height:360px;right:-110px;top:-100px;background:color-mix(in srgb,var(--rose) 25%,transparent)}.rsvp-orb-two{width:290px;height:290px;left:-120px;bottom:-90px;background:color-mix(in srgb,var(--gold) 28%,transparent)}.rsvp-orb-three{width:160px;height:160px;left:12%;top:8%;background:color-mix(in srgb,var(--rose-soft) 82%,transparent)}
.rsvp-dialog{width:min(650px,100%);background:color-mix(in srgb,var(--paper) 96%,transparent);border:1px solid color-mix(in srgb,var(--line) 78%,#fff);border-radius:32px;padding:42px;box-shadow:0 26px 80px color-mix(in srgb,var(--rose-dark) 18%,transparent);backdrop-filter:blur(18px);text-align:center;position:relative}.rsvp-dialog:before{content:'';position:absolute;inset:9px;border:1px solid color-mix(in srgb,var(--gold) 24%,transparent);border-radius:25px;pointer-events:none}
.rsvp-monogram{width:72px;height:72px;margin:-78px auto 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:1px;background:var(--rose);color:#fff;border:7px solid var(--cream);box-shadow:0 12px 30px color-mix(in srgb,var(--rose) 26%,transparent);font-family:var(--font-display);font-size:1.14rem;font-weight:700}.rsvp-monogram em{font-size:.76em;color:color-mix(in srgb,var(--gold) 75%,#fff);font-style:italic}.rsvp-dialog .section-kicker{margin-bottom:8px}.rsvp-dialog h1{font-family:var(--font-display);font-size:clamp(2.4rem,7vw,4rem);line-height:1.02;margin:0;color:var(--rose-dark);letter-spacing:-.035em}.rsvp-intro{max-width:510px;margin:15px auto 22px;color:var(--muted);font-size:.96rem}
.rsvp-event-card{background:color-mix(in srgb,var(--cream) 82%,var(--paper));border:1px solid var(--line);border-radius:20px;padding:20px;text-align:left;margin:0 0 22px}.rsvp-event-card>strong{display:block;text-align:center;font-family:var(--font-display);font-size:1.35rem;color:var(--rose-dark)}.rsvp-couple{display:block;text-align:center;color:var(--muted);font-size:.84rem;margin-top:2px}.rsvp-event-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:17px}.rsvp-event-details>div{display:flex;align-items:flex-start;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px}.rsvp-event-details>div>span{font-size:1.05rem;line-height:1.2}.rsvp-event-details p{margin:0;min-width:0}.rsvp-event-details small,.rsvp-event-details b{display:block}.rsvp-event-details small{font-size:.64rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.rsvp-event-details b{font-size:.82rem;line-height:1.35;margin-top:2px;overflow-wrap:anywhere}
.rsvp-alert{text-align:left;margin:0 0 15px}.rsvp-form{text-align:left;position:relative}.rsvp-form>label:not(.rsvp-honeypot){display:block;font-size:.78rem;font-weight:800;margin-bottom:7px;color:var(--rose-dark)}.rsvp-form>input{width:100%;border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:14px 15px;color:var(--ink);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.rsvp-form>input:focus{border-color:var(--rose);box-shadow:0 0 0 4px color-mix(in srgb,var(--rose) 12%,transparent)}.rsvp-honeypot{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.rsvp-actions{display:grid;gap:10px;margin-top:17px}.rsvp-actions .btn{width:100%;min-height:50px}.rsvp-confirm span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.18)}.rsvp-contribute{white-space:normal;line-height:1.35}.rsvp-back{display:inline-block;margin-top:19px;color:var(--muted);font-size:.78rem;font-weight:700}.rsvp-back:hover{color:var(--rose)}
@media(max-width:620px){.rsvp-stage{padding:28px 10px}.rsvp-dialog{padding:32px 18px 24px;border-radius:24px}.rsvp-dialog:before{inset:7px;border-radius:19px}.rsvp-monogram{margin-top:-69px}.rsvp-event-details{grid-template-columns:1fr}.rsvp-intro{font-size:.9rem}.rsvp-event-card{padding:15px}.rsvp-actions .btn{font-size:.88rem;padding:13px 15px}}

/* V2.7 — ações de presença com cores semânticas e confirmação de ausência */
.rsvp-actions .rsvp-confirm{background:#198754!important;border:1px solid #198754!important;color:#fff!important;box-shadow:0 10px 24px rgba(25,135,84,.20)}
.rsvp-actions .rsvp-confirm:hover{background:#157347!important;border-color:#146c43!important;transform:translateY(-1px);box-shadow:0 14px 28px rgba(25,135,84,.26)}
.rsvp-actions .rsvp-confirm:focus-visible{outline:3px solid rgba(25,135,84,.24);outline-offset:3px}
.rsvp-actions .rsvp-contribute{background:#dc3545!important;border:1px solid #dc3545!important;color:#fff!important;box-shadow:0 10px 24px rgba(220,53,69,.18)}
.rsvp-actions .rsvp-contribute:hover{background:#bb2d3b!important;border-color:#b02a37!important;transform:translateY(-1px);box-shadow:0 14px 28px rgba(220,53,69,.24)}
.rsvp-actions .rsvp-contribute:focus-visible{outline:3px solid rgba(220,53,69,.22);outline-offset:3px}
.rsvp-contribute span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.18);font-size:1.15rem;line-height:1}
.rsvp-modal-open{overflow:hidden}
.rsvp-confirmation[hidden]{display:none}
.rsvp-confirmation{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .18s ease}
.rsvp-confirmation.is-open{opacity:1}
.rsvp-confirmation-backdrop{position:absolute;inset:0;background:rgba(38,22,25,.58);backdrop-filter:blur(5px)}
.rsvp-confirmation-card{position:relative;width:min(440px,100%);background:var(--paper);border:1px solid color-mix(in srgb,var(--line) 75%,#fff);border-radius:24px;padding:30px 26px 24px;text-align:center;box-shadow:0 28px 85px rgba(38,22,25,.30);transform:translateY(12px) scale(.98);transition:transform .18s ease}
.rsvp-confirmation.is-open .rsvp-confirmation-card{transform:translateY(0) scale(1)}
.rsvp-confirmation-icon{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 13px;border-radius:50%;background:rgba(220,53,69,.10);color:#dc3545;font-family:var(--font-display);font-size:2rem}
.rsvp-confirmation-card h2{margin:0;color:#b02a37;font-family:var(--font-display);font-size:clamp(1.8rem,6vw,2.45rem);line-height:1.05}
.rsvp-confirmation-card p{margin:12px auto 21px;max-width:350px;color:var(--muted);font-size:.96rem;line-height:1.55}
.rsvp-confirmation-actions{display:grid;gap:9px}
.rsvp-confirmation-actions .btn{width:100%;min-height:48px;white-space:normal;line-height:1.3}
.rsvp-confirmation-back{background:#198754!important;border:1px solid #198754!important;color:#fff!important}
.rsvp-confirmation-back:hover{background:#157347!important;border-color:#146c43!important}
.rsvp-confirmation-decline{background:#fff!important;border:1px solid rgba(220,53,69,.38)!important;color:#b02a37!important}
.rsvp-confirmation-decline:hover{background:rgba(220,53,69,.07)!important;border-color:#dc3545!important}
@media(max-width:620px){.rsvp-confirmation{padding:14px}.rsvp-confirmation-card{padding:25px 17px 18px;border-radius:20px}}

/* V2.8 — confirmação em grupo e acompanhantes */
.rsvp-companions{margin-top:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--cream) 65%,var(--paper));border-radius:16px;padding:14px}
.rsvp-companions-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left}
.rsvp-companions-heading strong{display:block;color:var(--rose-dark);font-size:.84rem}
.rsvp-companions-heading small{display:block;margin-top:2px;color:var(--muted);font-size:.72rem;line-height:1.4}
.rsvp-add-companion{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--rose) 38%,var(--line));border-radius:11px;background:var(--paper);color:var(--rose-dark);font:inherit;font-size:.75rem;font-weight:800;cursor:pointer;transition:.2s ease}
.rsvp-add-companion span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--rose);color:#fff;font-size:1rem;line-height:1}
.rsvp-add-companion:hover{border-color:var(--rose);transform:translateY(-1px)}
.rsvp-add-companion:disabled{opacity:.48;cursor:not-allowed;transform:none}
.rsvp-companion-list{display:grid;gap:8px;margin-top:10px}
.rsvp-companion-list:empty{margin-top:0}
.rsvp-companion-row{display:grid;grid-template-columns:30px minmax(0,1fr) 36px;align-items:center;gap:8px}
.rsvp-companion-number{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--rose) 12%,var(--paper));color:var(--rose-dark);font-size:.7rem;font-weight:900}
.rsvp-companion-row input{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:11px 12px;color:var(--ink);outline:none}
.rsvp-companion-row input:focus{border-color:var(--rose);box-shadow:0 0 0 3px color-mix(in srgb,var(--rose) 10%,transparent)}
.rsvp-remove-companion{width:34px;height:34px;border:1px solid rgba(220,53,69,.24);border-radius:10px;background:rgba(220,53,69,.06);color:#b02a37;font-size:1.15rem;line-height:1;cursor:pointer}
.rsvp-remove-companion:hover{background:rgba(220,53,69,.12);border-color:rgba(220,53,69,.45)}
.rsvp-companion-note{min-height:0;margin:7px 0 0;color:var(--muted);font-size:.7rem;text-align:right}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:520px){.rsvp-companions-heading{align-items:flex-start;flex-direction:column}.rsvp-add-companion{width:100%}.rsvp-companion-row{grid-template-columns:28px minmax(0,1fr) 34px}.rsvp-companions{padding:12px}}
