/* v285.7 reply A (js/occasi-reply-a.js). Plain structure only: every colour, face and surface comes from the design that
 * hosts it, through these variables (set them on the design's own reply object; the defaults follow the text around it):
 *   --ra-ink, --ra-soft, --ra-line (hairlines), --ra-paper (a card's ground; transparent = the design's object shows),
 *   --ra-accent (ticks, the main button), --ra-on-accent, --ra-warn (needed / not chosen), --ra-display, --ra-text,
 *   --ra-radius, --ra-gap.
 * Rules: nothing is cut ("…") and nothing scrolls sideways at 360; every tap is at least 44 px; words wrap. */
.ra { --_ink: var(--ra-ink, currentColor); --_soft: var(--ra-soft, color-mix(in srgb, currentColor 68%, transparent));
  --_line: var(--ra-line, color-mix(in srgb, currentColor 18%, transparent)); --_paper: var(--ra-paper, transparent);
  --_acc: var(--ra-accent, currentColor); --_on: var(--ra-on-accent, #fff); --_warn: var(--ra-warn, #9a3b2a);
  --_r: var(--ra-radius, 12px); --_gap: var(--ra-gap, 12px);
  color: var(--_ink); font-family: var(--ra-text, inherit); text-align: left; min-width: 0; overflow-wrap: anywhere; }
.ra *, .ra *::before, .ra *::after { box-sizing: border-box; }
.ra-kicker { margin: 0 0 4px; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--_soft); }
.ra-title { margin: 0 0 4px; font: 400 clamp(24px, 7vw, 30px) / 1.15 var(--ra-display, inherit); color: var(--_ink); text-wrap: balance; }
.ra-sub { margin: 0 0 var(--_gap); font-size: 15px; line-height: 1.4; color: var(--_soft); text-wrap: pretty; }
.ra-people, .ra-evs, .ra-review { list-style: none; margin: 0; padding: 0; }
.ra-people { border: 1px solid var(--_line); border-radius: var(--_r); background: var(--_paper); padding: 4px 14px; margin: 0 0 var(--_gap); }
.ra-person { padding: 10px 0; border-bottom: 1px solid var(--_line); }
.ra-person:last-child { border-bottom: 0; }
.ra-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; width: 100%; min-height: 44px; margin: 0; padding: 2px 0;
  border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.ra-line-main { display: grid; gap: 2px; min-width: 0; }
.ra-name { font: 400 20px / 1.2 var(--ra-display, inherit); color: var(--_ink); overflow-wrap: anywhere; }
.ra-namebtn { min-height: 44px; padding: 0; border: 0; background: none; text-align: left; cursor: pointer; }
.ra-chip { display: inline-block; margin-left: 6px; padding: 1px 8px; border: 1px solid var(--_line); border-radius: 999px; font: 400 12px / 1.4 var(--ra-text, inherit); color: var(--_soft); vertical-align: middle; }
.ra-sum, .ra-diet { font-size: 15px; line-height: 1.35; color: var(--_ink); }
.ra-diet { font-size: 13px; color: var(--_soft); }
.ra-sum.is-out, .ra-miss { color: var(--_warn); }
.ra-act, .ra-link, .ra-nobody, .ra-back { flex: none; font-size: 15px; color: var(--_ink); text-decoration: underline; text-underline-offset: 3px; }
.ra-link, .ra-nobody, .ra-back { min-height: 44px; padding: 0 2px; border: 0; background: none; font-family: inherit; cursor: pointer; }
.ra-act { padding-top: 2px; }
.ra-note { margin: 2px 0 0; font-size: 13px; line-height: 1.35; color: var(--_soft); }
.ra-phead { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ra-evs { margin-top: 4px; }
.ra-ev { border-top: 1px solid var(--_line); }
.ra-tick { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 48px; cursor: pointer; }
.ra-tick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ra-box { width: 24px; height: 24px; border: 1.5px solid var(--_ink); border-radius: 6px; display: grid; place-items: center; }
.ra-tick input:checked + .ra-box { background: var(--_acc); border-color: var(--_acc); }
.ra-tick input:checked + .ra-box::after { content: ''; width: 11px; height: 6px; margin-top: -3px; border: solid var(--_on); border-width: 0 0 2.5px 2.5px; transform: rotate(-45deg); }
.ra-tick input:focus-visible + .ra-box { outline: 2px solid var(--_acc); outline-offset: 2px; }
.ra-evname { font-size: 16px; line-height: 1.3; min-width: 0; }
.ra-when { font-size: 13px; color: var(--_soft); white-space: nowrap; }
.ra-nobody { display: block; margin: -4px 0 6px 38px; font-size: 14px; }
.ra-with { margin: 0 0 var(--_gap); padding: 12px 14px; border: 1.5px solid var(--_warn); border-radius: var(--_r); background: var(--_paper); }
.ra-withk { margin: 0 0 4px; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--_warn); }
.ra-withq { display: block; font-weight: 600; font-size: 16px; line-height: 1.35; }
.ra-withwhy { margin: 2px 0 8px; font-size: 13px; color: var(--_soft); }
.ra input[type="text"], .ra input[type="email"], .ra textarea, .ra-input { display: block; width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--_line);
  border-radius: calc(var(--_r) - 2px); background: var(--ra-field, #fff); color: #1d1d1f; font: 16px / 1.3 var(--ra-text, inherit); }
.ra textarea { min-height: 72px; resize: vertical; }
.ra [aria-invalid="true"] { border-color: var(--_warn); }
.ra-err { margin: 6px 0; font-size: 14px; color: var(--_warn); }
.ra-hint { margin: 6px 0 0; font-size: 13px; text-align: center; color: var(--_soft); }
.ra-menuwhen { margin: -2px 0 10px; font-size: 15px; line-height: 1.35; color: var(--_ink); overflow-wrap: anywhere; }   /* v2876: a one-event menu's date and time */
.ra-pageno { margin: 10px 0 0; font-size: 13px; text-align: center; color: var(--_soft); font-variant-numeric: tabular-nums; }   /* v2876: "1 / 2" when the people come a page at a time */
.ra-go { display: block; width: 100%; min-height: 52px; margin: 4px 0 0; padding: 12px 18px; border: 0; border-radius: 999px; background: var(--_acc); color: var(--_on);
  font: 600 17px / 1.2 var(--ra-text, inherit); cursor: pointer; }
.ra-go[disabled] { opacity: .6; cursor: progress; }
.ra-back { display: block; margin: 4px auto 0; }
.ra-label { display: block; margin: 12px 0 6px; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--_soft); }
.ra-emaillabel { font-size: 13px; letter-spacing: normal; text-transform: none; line-height: 1.4; text-wrap: pretty; }
.ra-meal, .ra-dietf { margin: 0; padding: 0; border: 0; min-width: 0; }
.ra-radio { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 12px; min-height: 48px; border-top: 1px solid var(--_line); cursor: pointer; }
.ra-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ra-dot { width: 22px; height: 22px; border: 1.5px solid var(--_ink); border-radius: 50%; }
.ra-radio input:checked + .ra-dot { box-shadow: inset 0 0 0 5px var(--_paper, #fff), inset 0 0 0 11px var(--_acc); border-color: var(--_acc); }
.ra-radio input:focus-visible + .ra-dot { outline: 2px solid var(--_acc); outline-offset: 2px; }
.ra-chips, .ra-sev { display: flex; flex-wrap: wrap; gap: 6px; }
.ra-sev { margin-top: 10px; align-items: center; }
.ra-sev .ra-label { margin: 0 6px 0 0; width: 100%; }
.ra-chip2 { min-height: 44px; padding: 6px 12px; border: 1px solid var(--_line); border-radius: 999px; background: var(--_paper); color: var(--_ink); font: 14px / 1.2 var(--ra-text, inherit); cursor: pointer; }
.ra-chip2.is-on { background: var(--_acc); border-color: var(--_acc); color: var(--_on); }
.ra-review li { padding: 6px 0; border-bottom: 1px solid var(--_line); display: grid; gap: 2px; }
.ra-review { margin-bottom: 8px; }
@media (prefers-reduced-motion: no-preference) { .ra { animation: ra-in .2s ease-out both; } }
@keyframes ra-in { from { opacity: 0; } }
