/* Invitation stationery: fine woven edges, quiet colour, and independent replies. */
.rsvp-layout{gap:34px;grid-template-columns:minmax(0,1fr) 300px}
.reply-person{position:relative;border-radius:10px;box-shadow:0 5px 20px #354b3b04;scroll-margin-top:30px}
.reply-person:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:repeating-linear-gradient(0deg,#84947755 0 1px,transparent 1px 5px),#dbe1cf;z-index:1}
.reply-person .person-head{background:#eef0e6;padding:25px 25px 23px 30px;align-items:center;flex-wrap:wrap;gap:15px}
.reply-identity{display:flex;gap:14px;align-items:center;min-width:0}
.reply-initials{display:grid;place-content:center;width:45px;height:45px;flex-shrink:0;border:1px solid #b5c0a6;border-radius:50%;font-family:Georgia,serif;font-size:19px;color:#556647;background:repeating-linear-gradient(90deg,#b6bfa315 0 1px,transparent 1px 3px)}
.reply-identity .eyebrow{font-size:8px;letter-spacing:.15em;color:#637157;margin-bottom:7px;line-height:1.6}
.reply-identity h2{font-size:28px;letter-spacing:-.035em;line-height:1.15;overflow-wrap:anywhere}
.reply-identity h2:focus{outline:2px solid #a56c46;outline-offset:5px;border-radius:2px}
.reply-person-count{font-size:10px;color:#56664c;white-space:nowrap;padding:7px 10px;border:1px solid #bdc7af;border-radius:20px}
.reply-person .attendance-row{padding:22px 25px 22px 30px;gap:16px;transition:background .18s}
.reply-event[data-response=attending]{background:#f5f7ef}
.reply-event[data-response=declined]{background:#faf7f0}
.reply-event-title{display:flex;align-items:center;gap:13px;min-width:0}
.reply-event-title img{width:44px;height:55px;object-fit:cover;border-radius:22px 22px 3px 3px;flex-shrink:0}
.reply-event-title h3{font-family:Georgia,serif;font-size:20px;line-height:1.18;letter-spacing:-.02em;margin:0 0 6px;overflow-wrap:anywhere}
.reply-event-title small{font-size:10px;color:#64705b}
.reply-person .segmented{gap:6px;align-items:stretch}
.reply-person .segmented label{font-size:11px;padding:10px;min-height:44px;line-height:1.4;background:#fffef9;white-space:nowrap;transition:background .18s,border-color .18s}
.reply-person .segmented label:has(input[value=attending]:checked){background:#e1e9d8;border-color:#728763}
.reply-person .segmented label:has(input[value=declined]:checked){background:#eee5d8;border-color:#a28d70}
.reply-person .person-needs{padding:20px 25px 22px 30px;background:#fafbf6}
.reply-person .person-needs textarea{margin-top:9px;background:#fffef9}
.reply-transport{grid-column:1/-1}
.reply-summary{padding:29px 25px 20px;background:#e9eddf;border-radius:10px;border-color:#cfd7c1;overflow:hidden}
.reply-selvedge{display:flex;gap:5px;margin-bottom:24px}
.reply-selvedge i{height:4px;flex:1;background:#7d8d65}
.reply-selvedge i:nth-child(2){background:#c4a050}.reply-selvedge i:nth-child(3){background:#7b768c}.reply-selvedge i:nth-child(4){background:#bf967a}.reply-selvedge i:nth-child(5){background:#738663}
.reply-summary>.eyebrow{font-size:8px;letter-spacing:.15em;color:#637157}
.reply-summary h2{font-size:35px;line-height:1.05;margin:15px 0 17px;letter-spacing:-.045em}
.reply-summary h2 em{font-weight:400;color:#637651}
.reply-summary>p:not(.form-error){font-size:12px;color:#55644a;line-height:1.75;margin:14px 0}
.reply-summary .form-error{color:var(--error);font-size:12px}
.reply-tally{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #cbd4bd;margin-top:24px;padding:22px 0 6px;gap:12px}
.reply-tally strong{font-family:Georgia,serif;font-size:42px;font-weight:400;line-height:1}
.reply-tally>span>span{font-family:Georgia,serif;font-size:23px;color:#627055}
.reply-tally small{font-size:10px;color:#55644a}
.reply-guest-list{list-style:none;padding:0;margin:0}
.reply-guest-list li{padding:9px 0 17px;border-bottom:1px solid #cbd4bd}
.reply-guest-list a{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px;font-size:13px}
.reply-guest-list a>span:first-child{overflow-wrap:anywhere;min-width:0}
.reply-guest-list a small{display:block;font-size:10px;color:#5d6a52;margin-top:5px}
.reply-progress{display:flex;gap:5px;margin-top:9px;height:5px}
.reply-progress i{flex:1;border:1px solid #a8b59a;border-radius:1px;background:transparent;transition:background .18s}
.reply-progress i[data-response=attending],.reply-key i.attending{background:#6e8259;border-color:#6e8259}
.reply-progress i[data-response=declined],.reply-key i.declined{background:#ae9172;border-color:#ae9172}
.reply-key{display:flex;flex-wrap:wrap;gap:10px;margin:17px 0 21px;font-size:9px;color:#526047}
.reply-key span{display:flex;align-items:center;gap:5px}
.reply-key i{width:7px;height:7px;border:1px solid #839473;border-radius:1px;display:inline-block}
.reply-summary .reply-save-state{font-size:10px;font-weight:600;padding-left:13px;position:relative;margin:0 0 8px}
.reply-save-state:before{content:'';position:absolute;width:5px;height:5px;left:0;top:6px;border-radius:50%;background:#71865c}
.reply-save-state[data-dirty=true]:before{background:#a56c46}
.reply-summary .reply-local-note{font-size:10px;line-height:1.7;margin:14px 0 0}
.reply-review{display:grid;gap:18px;margin:22px 0}
.reply-review-person{border:1px solid #d1d8c7;background:#fffef9;border-radius:6px;overflow:hidden;min-width:0}
.reply-review-person h3{font-family:Georgia,serif;font-size:23px;padding:17px 20px;background:#e9eddf;overflow-wrap:anywhere}
.reply-review-person ul{list-style:none;margin:0;padding:4px 20px}
.reply-review-person li{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;font-size:12px;border-bottom:1px solid #e3e6db}
.reply-review-person li:last-child{border-bottom:0}
.reply-review-person li>span{min-width:0;overflow-wrap:anywhere;line-height:1.5}
.reply-review-person li small{display:block;font-size:10px;color:#606c55;margin-top:4px}
.reply-answer{font-size:10px;font-weight:500;line-height:1.5;text-align:center;padding:5px 8px;border-radius:4px;flex-shrink:0;color:#485b3c;background:#e8eddf}
.reply-answer[data-response=declined]{background:#f0e7db;color:#6e573d}
.reply-answer[data-response=unanswered]{background:#f2f2ea;color:#646d5b;border:1px dashed #bdc7b0}
.reply-review-dietary{margin:0;padding:15px 20px;background:#f7f8f1;font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;border-top:1px solid #e3e6db}
.reply-review-dietary>span{display:block;font-size:10px;color:#606c55;margin-bottom:4px}
.rsvp-layout[data-still=true] .reply-event,.rsvp-layout[data-still=true] .segmented label,.rsvp-layout[data-still=true] .reply-progress i{transition:none}
@media(max-width:1100px) and (min-width:761px){.rsvp-layout{grid-template-columns:minmax(0,1fr) 270px;gap:24px}.reply-person .attendance-row{grid-template-columns:1fr}.reply-person .segmented{justify-self:start}.reply-summary{padding:25px 20px}}
@media(max-width:760px){
  dialog:has(.reply-review){padding:22px 20px}dialog:has(.reply-review) .dialog-actions{flex-direction:column;align-items:stretch}dialog:has(.reply-review) .dialog-actions .button{width:100%}
  .rsvp-layout{grid-template-columns:1fr;gap:8px}.reply-person .person-head{padding:23px 20px 20px 25px}.reply-identity h2{font-size:27px}.reply-person .attendance-row{grid-template-columns:1fr;padding:20px 20px 20px 25px;gap:16px}.reply-person .segmented{justify-self:start}.reply-event-title img{width:43px;height:52px}.reply-person .person-needs{padding:20px 20px 20px 25px}.reply-person-count{margin-left:59px}.reply-summary{position:static;padding:26px}.reply-summary h2 br{display:none}.reply-summary h2 em{margin-left:5px}.reply-tally{padding-top:20px}.reply-review-person li{align-items:start}.reply-review-person ul{padding:4px 15px}.reply-review-person h3{padding:16px}.reply-review-dietary{padding:15px}.reply-answer{max-width:110px}.reply-review-person li>span{max-width:60%}
}
@media(max-width:360px){.reply-person .person-head{padding-left:22px}.reply-initials{width:38px;height:38px;font-size:17px}.reply-identity{gap:10px}.reply-identity .eyebrow{font-size:7px}.reply-person-count{margin-left:48px}.reply-person .segmented{gap:5px}.reply-person .segmented label{font-size:10px;padding:10px 8px}.reply-person .attendance-row,.reply-person .person-needs{padding-left:22px;padding-right:16px}.reply-summary{padding:25px 22px}.reply-summary h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.reply-event,.reply-person .segmented label,.reply-progress i{transition:none}}
