/* Occasion-specific reply stationery; all selectors stay inside the guest form. */
.ir-response{--reply-ink:#3d5139;--reply-muted:#66735b;--reply-line:#c4cbb5;--reply-field:#fffdf6;--reply-accent:#526742;display:flex;align-items:flex-start;justify-content:center;min-width:0;padding:35px 30px 30px;background:#e7e5d9}
.ir-response-card{position:relative;isolation:isolate;width:100%;max-width:460px;min-width:0;padding:26px 31px 21px;color:var(--reply-ink);background:#fbf7ec;border:1px solid #d8d1bd;box-shadow:0 12px 25px #31462b16}
.ir-response-card:before,.ir-response-card:after{pointer-events:none}
.ir-response-art{height:40px;display:flex;align-items:center;justify-content:center;margin:0 0 11px;pointer-events:none}
.ir-response-art>span,.ir-response-art>svg{display:none}
.ir-response .ir-eyebrow{text-align:center;font-size:9px;line-height:1.7;letter-spacing:.16em;color:var(--reply-muted)}
.ir-response h3{margin:11px auto 13px;max-width:350px;text-align:center;font:400 43px/1.04 'Cormorant Garamond',var(--serif);letter-spacing:-.025em;color:var(--reply-ink);text-wrap:balance}
.ir-response-intro{max-width:340px;margin:0 auto;text-align:center;font-size:12px;line-height:1.7;color:var(--reply-muted)}
.ir-response-deadline{margin:11px auto 22px;text-align:center;font:italic 17px/1.3 'Cormorant Garamond',var(--serif);color:var(--reply-accent)}
.ir-response label,.ir-response legend{font-size:12px;color:var(--reply-ink);font-weight:500;line-height:1.5}
.ir-response label>b{font-weight:500}
.ir-response label>span{color:var(--reply-muted);font-size:10px}
.ir-response :is(input:not([type=radio]),select,textarea){background:var(--reply-field);color:var(--reply-ink);border:1px solid var(--reply-line);border-radius:3px;min-height:48px;padding:12px 13px;font:400 16px/1.4 var(--sans);box-shadow:inset 0 1px 3px #3f4d3010;transition:background-color .2s,border-color .2s,box-shadow .2s}
.ir-response textarea[id]{min-height:80px;resize:vertical}
.ir-response ::placeholder{color:var(--reply-muted);opacity:1;font-size:12px;line-height:1.6}
.ir-response :is(input:not([type=radio]),select,textarea):focus-visible{outline:2px solid var(--reply-accent);outline-offset:3px;border-color:var(--reply-accent)}
.ir-response :is(button,input):focus-visible{outline-color:var(--reply-accent)}
.ir-response .ir-attendance{margin:18px 0 20px;gap:10px}
.ir-response .ir-attendance legend{margin-bottom:9px}
.ir-response .ir-attendance label{min-width:0}
.ir-response .ir-attendance span{min-height:58px;height:100%;padding:12px 11px;gap:8px;border:1px solid var(--reply-line);border-radius:3px;background:var(--reply-field);color:var(--reply-ink);font-size:12px;line-height:1.45;transition:background-color .18s,border-color .18s,box-shadow .18s}
.ir-response .ir-attendance b{font-weight:500}
.ir-response .ir-attendance i{flex:0 0 auto;font-size:14px}
.ir-response .ir-attendance input:checked+span{background:#e7eddb;border-color:var(--reply-accent);box-shadow:inset 0 0 0 1px var(--reply-accent);color:var(--reply-ink)}
.ir-response .ir-attendance input:focus-visible+span{outline:2px solid var(--reply-accent);outline-offset:3px}
.ir-response .ir-form-row{gap:12px;align-items:end}
.ir-response .ir-help{font-size:11px;color:var(--reply-muted);line-height:1.65;margin:11px 0 17px}
.ir-response .ir-field-error{color:#a13526;font-size:12px;line-height:1.6}
.ir-response [aria-invalid=true]{border-color:#a13526}
.ir-response .ir-save{min-height:50px;margin-top:18px;padding:14px 16px;gap:14px;border:1px solid var(--reply-accent);background:var(--reply-accent);color:#fffdf2;font-size:12px;letter-spacing:.02em;transition:filter .2s,box-shadow .2s}
.ir-response .ir-save:hover{filter:brightness(1.07)}
.ir-response .ir-save-message{font-size:11px;color:var(--reply-muted);line-height:1.7;margin-top:13px;min-height:36px}
.ir-response .ir-save-message.saved{color:var(--reply-ink);background:#edf0e1;border-left:2px solid var(--reply-accent);padding:12px}
.ir-response .ir-view-result{border-top:1px solid var(--reply-line);min-height:46px;margin-top:17px;padding:13px 0 0;font-size:11px;color:var(--reply-ink)}

/* Birthday: a taped reply note with playful stationery colours. */
[data-event=birthday] .ir-response{--reply-ink:#365b70;--reply-muted:#526b75;--reply-line:#b2ccd0;--reply-field:#fffdf5;--reply-accent:#3b7679;background:radial-gradient(ellipse at 90% 30%,#fff6,transparent 65%),repeating-linear-gradient(0deg,#ffffff18 0 1px,transparent 1px 4px),#d6e7eb}
[data-event=birthday] .ir-response-card{margin-top:8px;background:repeating-linear-gradient(0deg,#e4ce9b08 0 1px,transparent 1px 3px),#fff8e7;border-color:#fffdf7;border-radius:8px 5px 10px 6px;box-shadow:4px 5px 0 #e9c3ac,7px 9px 0 #bbd3da,0 15px 25px #3c627923}
[data-event=birthday] .ir-response-card:before,[data-event=birthday] .ir-response-card:after{content:'';position:absolute;top:-9px;width:58px;height:23px;background:repeating-linear-gradient(90deg,#cadca89e 0 4px,#dbe8b8c4 4px 8px);transform:rotate(-8deg);box-shadow:0 1px 1px #4e655410}
[data-event=birthday] .ir-response-card:before{left:20px}
[data-event=birthday] .ir-response-card:after{left:auto;right:20px;background:#edc684ad;transform:rotate(10deg)}
[data-event=birthday] .ir-reply-party{display:flex;align-items:center;gap:14px;color:#cf7654}
[data-event=birthday] .ir-reply-party b{font-size:43px;line-height:1;color:#dfb34d;font-weight:400;transform:rotate(-10deg);text-shadow:2px 2px 0 #fae7af}
[data-event=birthday] .ir-reply-party i{font-style:normal;font-size:20px;transform:rotate(12deg)}
[data-event=birthday] .ir-reply-party i:last-child{color:#6d9999;transform:rotate(-12deg)}
[data-event=birthday] .ir-response .ir-eyebrow{font:700 18px/1.2 'Gaegu',cursive;letter-spacing:.04em;color:#a45541}
[data-event=birthday] .ir-response h3{font:500 33px/1.08 'Fredoka',sans-serif;color:#b75642;letter-spacing:-.02em;max-width:310px}
[data-event=birthday] .ir-response-deadline{font:700 19px/1.3 'Gaegu',cursive;color:#9b6347;transform:rotate(-1deg)}
[data-event=birthday] .ir-response :is(input:not([type=radio]),select,textarea){border-radius:7px 9px 6px 8px;box-shadow:2px 3px 0 #b5d2d131}
[data-event=birthday] .ir-response .ir-attendance span{border-radius:8px 6px 9px 7px;background:#fffaf0}
[data-event=birthday] .ir-response .ir-attendance input:checked+span{background:#dcedec;box-shadow:inset 0 0 0 1px #54858a,2px 3px 0 #b5d2d153}
[data-event=birthday] .ir-response .ir-save{border-radius:7px 9px 6px 8px;box-shadow:3px 4px 0 #e8c37b;font:500 15px/1.4 'Fredoka',sans-serif}
[data-event=birthday] .ir-response .ir-save-message.saved{background:#e7f0ec;border-radius:3px 7px 5px 4px}

/* Wedding: an ivory reply card with a delicate botanical crest. */
[data-event=wedding] .ir-response{background:radial-gradient(ellipse at 80% 20%,#fff7,transparent 60%),#e3e0d4}
[data-event=wedding] .ir-response-card{padding-top:30px;border-color:#d6cfba;border-radius:85px 85px 2px 2px;background:repeating-linear-gradient(0deg,#ac9a7305 0 1px,transparent 1px 3px),#faf6eb;box-shadow:0 14px 25px #52614a16}
[data-event=wedding] .ir-response-card:before{content:'';position:absolute;inset:9px;border:1px solid #b7be9c80;border-radius:77px 77px 0 0}
[data-event=wedding] .ir-reply-floral{display:block;width:110px;height:48px;stroke:#8b976c;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
[data-event=wedding] .ir-response h3{font-size:48px;margin-top:9px}
[data-event=wedding] .ir-response .ir-eyebrow{color:#6d7c54}
[data-event=wedding] .ir-response-deadline{color:#7a714e}
[data-event=wedding] .ir-response .ir-attendance span{background:#fffdf6}
[data-event=wedding] .ir-response .ir-attendance input:checked+span{background:#e8eddd}
[data-event=wedding] .ir-response .ir-save{background:#526742;border-color:#526742;border-radius:2px}

/* Dinner: olive menu stationery with brass details and warm ivory fields. */
[data-event=gathering] .ir-response{--reply-ink:#f5eedc;--reply-muted:#c6cbb4;--reply-line:#758065;--reply-field:#f5efdf;--reply-accent:#d5bb81;background:radial-gradient(ellipse at 90% 10%,#fff9eb77,transparent 60%),repeating-linear-gradient(0deg,#fff2 0 1px,transparent 1px 4px),#c9beaa}
[data-event=gathering] .ir-response-card{padding-top:26px;border:1px solid #69704d;background:radial-gradient(ellipse at 10% 0,#6a775635,transparent 65%),repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 3px),#29372d;box-shadow:4px 5px 0 #97825e55,0 18px 35px #3d352a3b}
[data-event=gathering] .ir-response-card:before{content:'';position:absolute;inset:9px;border:1px solid #c4a36266}
[data-event=gathering] .ir-reply-dinner{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid #c5a668;border-radius:50%;font:500 26px/1 'Cormorant Garamond',var(--serif);letter-spacing:-.14em;padding-right:3px;color:#e4c995}
[data-event=gathering] .ir-reply-dinner:after{content:'';position:absolute;inset:4px;border:1px solid #c5a6685e;border-radius:50%}
[data-event=gathering] .ir-response .ir-eyebrow{color:#d5bb81}
[data-event=gathering] .ir-response h3{max-width:310px;font-size:44px}
[data-event=gathering] .ir-response-deadline{color:#dbc18c}
[data-event=gathering] .ir-response :is(input:not([type=radio]),select,textarea){color:#3d4734;border-color:#b7ac8b;background:#f6efdf;box-shadow:inset 0 2px 4px #16221c1f;border-radius:1px}
[data-event=gathering] .ir-response ::placeholder{color:#6d715e}
[data-event=gathering] .ir-response .ir-attendance span{background:#354435;border-color:#7c8868;color:#efe8d4;border-radius:1px}
[data-event=gathering] .ir-response .ir-attendance input:checked+span{background:#d6be89;border-color:#e2c99b;box-shadow:inset 0 0 0 1px #e2c99b;color:#2c3a2c}
[data-event=gathering] .ir-response .ir-save{background:linear-gradient(110deg,#dcc895,#cdb17a);border-color:#d5bb81;color:#29372d;border-radius:1px;box-shadow:0 2px 0 #101d1a66}
[data-event=gathering] .ir-response .ir-field-error{color:#ffc4ad}
[data-event=gathering] .ir-response [aria-invalid=true]{border-color:#ef9a79;box-shadow:0 0 0 1px #ef9a79}
[data-event=gathering] .ir-response .ir-save-message.saved{background:#3a4937;color:#f0e8cd;border-left-color:#d5bb81}
[data-event=gathering] .ir-response .ir-view-result{border-top-color:#a68e5866;color:#e0d1ae}
.ir-response :is(input:not([type=radio]),select,textarea)[aria-invalid=true]{border-color:#a13526;box-shadow:0 0 0 1px #a13526}
[data-event=gathering] .ir-response :is(input:not([type=radio]),select,textarea)[aria-invalid=true]{border-color:#ba5037;box-shadow:0 0 0 2px #ef9a79}

@media(max-width:1050px){.ir-response{padding:35px 22px 30px}.ir-response-card{padding-left:25px;padding-right:25px}.ir-response h3{font-size:39px}[data-event=birthday] .ir-response h3{font-size:30px}[data-event=gathering] .ir-response h3{font-size:40px}}
@media(max-width:760px){.ir-response{padding:22px 23px 32px}.ir-response-card{padding:29px 24px 23px}.ir-response h3{font-size:39px}.ir-response-intro{font-size:12px}.ir-response .ir-attendance{gap:8px}.ir-response .ir-attendance span{padding:11px 10px;font-size:12px}.ir-response .ir-help{font-size:11px}.ir-response :is(input:not([type=radio]),select,textarea){font-size:16px}.ir-response .ir-form-row{gap:10px}[data-event=wedding] .ir-response-card{border-radius:65px 65px 2px 2px;padding-top:33px}[data-event=wedding] .ir-response-card:before{border-radius:57px 57px 0 0}[data-event=wedding] .ir-response h3{font-size:43px}[data-event=gathering] .ir-response h3{font-size:39px}}
@media(max-width:370px){.ir-response{padding:20px 15px 30px}.ir-response-card{padding-left:19px;padding-right:19px}.ir-response .ir-attendance{gap:7px}.ir-response .ir-attendance span{padding:10px 8px;gap:5px;font-size:11px}.ir-response label,.ir-response legend{font-size:11px}[data-event=birthday] .ir-response h3{font-size:28px}[data-event=gathering] .ir-response h3{font-size:35px}}
@media(prefers-reduced-motion:reduce){.ir-response *, .ir-response *:before,.ir-response *:after{transition:none!important}}
