/* Garden reply · counts (core/rsvp/023) — fork of core/rsvp/001 for INV-01 Garden Romance v1.1 · Premium (replies R1,
   A1664, D-095). rs001's light part ("Kindly Reply" with the deadline, over the skin's light ground: Garden's page itself)
   now holds the reply form of the Garden Luxe card (core/rsvp/020) without its paper, roses or gold edge: name, "Joyfully
   accepts" / "Regretfully declines", how many are coming (one number, or "How many of you?" plus a count per event), a
   note. "Send reply" saves the reply with us and opens WhatsApp with it written out (the reply core, D-068). Without
   JavaScript, and under reduced motion, rs001's WhatsApp button shows instead. */
.rs023 { background: var(--k-light-ground); color: var(--k-ink); }
.rs023__inner {
  position: relative; z-index: 1;
  max-width: calc(var(--k-measure) + 2 * var(--k-gutter)); margin: 0 auto;
  padding: var(--k-section-pad) var(--k-gutter) 0; text-align: center;
}
/* reply */
.rs023__by { margin-top: var(--k-s-4); font-style: italic; color: var(--k-ink-soft); }
.rs023__action { margin-top: var(--k-s-5); display: flex; justify-content: center; }
/* A1508 (D-071, eye review round 2): with no way to reply (no contact), "Kindly Reply / Please let us know by …" asked
   for something the guest could not do; the section stays out of the page until a reply method exists (as rs008) */
.rs023:not(:has(.rs023__action)) { display: none; }

/* the form (core/rsvp/020's fields, without the Luxe card) */
.rs023__box { max-width: 440px; margin: var(--k-s-5) auto 0; text-align: left; }
.rs023-form { position: relative; display: grid; gap: 22px; }
.rs023-form[hidden], .rs023-field[hidden], .rs023__action[hidden] { display: none; }
.rs023-field { display: block; }
.rs023-field__l { display: block; margin-bottom: 6px; padding: 0; font: 600 .75rem/1.3 var(--k-font-display); letter-spacing: .16em; text-transform: uppercase; color: color-mix(in oklab, var(--c-secondary-dark) 70%, var(--k-ink)); }
.rs023-field__l i { font-weight: 500; letter-spacing: .02em; text-transform: none; }
.rs023-input { display: block; width: 100%; min-height: 44px; padding: 6px 2px; border: 0; border-bottom: 1px solid rgb(var(--c-primary-rgb) / .5); border-radius: 0; background: transparent; font: 500 1.1875rem/1.4 var(--k-font-body); color: var(--k-ink); }
.rs023-input:focus { outline: none; border-bottom-color: var(--c-primary); box-shadow: 0 1px 0 var(--c-primary); }
.rs023-input--note { min-height: 84px; resize: vertical; }
.rs023-choice { display: grid; gap: 12px; margin: 0; padding: 0; border: 0; }
.rs023-opt { position: relative; display: flex; align-items: center; gap: 14px; min-height: 44px; cursor: pointer; }
.rs023-opt input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.rs023-opt__box { flex: none; width: 28px; height: 28px; border: 1px solid rgb(var(--c-primary-rgb) / .65); border-radius: 50%; background: var(--k-light-ground); }
.rs023-opt input:focus-visible + .rs023-opt__box { outline: 2px solid var(--c-primary); outline-offset: 3px; }
.rs023-opt input:checked + .rs023-opt__box { background: radial-gradient(circle, var(--c-primary) 0 6px, transparent 6.5px), var(--k-light-ground); }
.rs023-opt__t { font: italic 500 1.25rem/1.3 var(--k-font-body); color: var(--k-ink); }
.rs023-send { justify-self: center; margin-top: 4px; }
.rs023-small { text-align: center; font: italic 500 .9375rem/1.4 var(--k-font-body); color: var(--k-ink-soft); }
.rs023-done { position: relative; display: grid; justify-items: center; gap: 14px; text-align: center; }
.rs023-thanks { text-align: center; font: italic 500 1.25rem/1.5 var(--k-font-body); color: var(--c-primary); }

/* replies R1 (A1664, D-095): rs014's save seam in the Garden type — a count per event, the day headings (Premium Extra
   days), the "Your reply" panel, the late and error lines; the only new colour is the error's (rs014's) */
.rs023-yes, .rs023-extra { display: grid; gap: 22px; }
.rs023-yes[hidden], .rs023-extra:empty, .rs023-mine[hidden], .rs023-done[hidden], .rs023-done [hidden] { display: none; }
.rs023-evs { margin: 0; }
.rs023-ev { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: .75rem; align-items: center; padding: .6rem 0; }
.rs023-ev__n { grid-column: 1; grid-row: 1; font: italic 500 1.25rem/1.3 var(--k-font-body); color: var(--k-ink); }
.rs023-ev__d { grid-column: 1; grid-row: 2; margin-top: 2px; font: 600 .75rem/1.3 var(--k-font-display); letter-spacing: .12em; text-transform: uppercase; font-variant-numeric: lining-nums; color: var(--k-ink-soft); }
.rs023-ev__c { grid-column: 2; grid-row: 1 / span 2; min-width: 7rem; min-height: 44px; font-size: 1rem; padding-right: 22px; }
.rs023-day { margin: 1.1rem 0 0; font: 600 .75rem/1.3 var(--k-font-display); letter-spacing: .16em; text-transform: uppercase; color: color-mix(in oklab, var(--c-secondary-dark) 70%, var(--k-ink)); }
.rs023-help { margin: -.75rem 0 0; font: italic 500 .9375rem/1.4 var(--k-font-body); color: var(--k-ink-soft); }
.rs023-late { margin: .25rem 0 .75rem; text-align: center; font: italic 500 1.0625rem/1.5 var(--k-font-body); color: var(--c-primary); }
.rs023-err { margin: .25rem 0 .75rem; text-align: center; color: #8B2E2E; }
.rs023-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rs023-mine { margin: 0; padding: 0; border: 0; text-align: center; }
.rs023-mine__t { margin: 0 0 .9rem; font: italic 500 1.25rem/1.5 var(--k-font-body); color: var(--c-primary); }
.rs023-change { margin: 0 .75rem .25rem 0; }
.rs023-link { min-height: 44px; padding: 8px 12px; border: 0; background: none; font: italic 500 1.0625rem/1.3 var(--k-font-body); color: var(--k-ink-soft); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.rs023__box select, .rs023__box button { min-height: 44px; }
.rs023-mine:not([hidden]) ~ .rs023-form { margin-top: 28px; }
.rs023-mine:not([hidden]) ~ .rs023-done { margin-top: 22px; }
/* eye review round 1 (A1664): the falling petals (layer/particles/001, behind every section) showed through the open form,
   so the form's box takes the page's own paper (invisible, no card) and the petals pass behind it; a calmer error line;
   lining figures in the day headings; the questions' selects at the counts' size */
.rs023__box { position: relative; background: var(--k-paper); }
.rs023-ev { grid-template-columns: minmax(0, 1fr) auto; }
.rs023-err { font: italic 500 .9375rem/1.45 var(--k-font-body); text-wrap: balance; }
.rs023-day { font-variant-numeric: lining-nums; }
.rs023-extra select.rs023-input { font-size: 1rem; }
/* eye review round 2 (A1664): the paper box fades at its edges (a same-colour glow), so a petal passing behind it fades
   instead of being cut; the late and error lines balance; room below the last line before the closing */
.rs023__box { box-shadow: 0 0 28px 24px var(--k-paper); padding-bottom: var(--k-s-6); }
.rs023-late, .rs023-err { text-wrap: balance; }
.rs023-input[name="one"], .rs023-input[name="all"], .rs023-ev__c { font-variant-numeric: lining-nums; } /* eye review round 2 */
