.ticket-choice {
  box-sizing:border-box;
  padding:clamp(16px,5vw,30px);
  color:#2d312c;
  background:#f3e2bb url('modal-paper-material-v1.webp') center/cover;
  border:1px solid #c0a678;
  border-radius:10px;
  box-shadow:0 16px 48px #050b17a0;
}
.ticket-choice [hidden] { display:none; }
.ticket-heading {
  margin:0 0 8px;
  font:400 clamp(32px,8vw,46px)/1 Lilita,'Lilita One',Georgia,serif;
  color:#793452;
}
.ticket-choice fieldset { border:0;margin:0;padding:0;min-width:0; }
.ticket-choice legend { margin-bottom:12px;padding:0; }
.ticket-paper {
  --ticket-ink:#fff1d1;
  --ticket-color:#8b365b;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 46px;
  align-items:center;
  min-height:74px;
  margin-bottom:9px;
  padding-left:8px;
  color:var(--ticket-ink);
  background:var(--ticket-color);
  border:2px solid var(--ticket-color);
  border-radius:7px;
  box-shadow:2px 3px #2d312c32;
}
label.ticket-paper { cursor:pointer; }
.ticket-paper[data-ticket="breakfast"] { --ticket-color:#e9ad55;--ticket-ink:#3b2a22; }
.ticket-paper[data-ticket="dinner"] { --ticket-color:#245953; }
.ticket-paper:has(:checked) { outline:2px solid #272f2d;outline-offset:2px; }
.ticket-icon svg { display:block;width:30px;height:30px;margin:auto; }
.ticket-label { padding:8px 6px; }
.ticket-label :is(strong,h3) { margin:0;font:400 clamp(18px,5vw,24px)/1.1 Lilita,'Lilita One',Georgia,serif; }
.ticket-label small { display:block;margin-top:4px;font:600 12px/1.25 system-ui,sans-serif; }
.ticket-stub {
  align-self:stretch;
  display:grid;
  place-items:center;
  border-left:1px dashed currentColor;
  background:radial-gradient(circle at 0 0,#f1e2c2 4px,transparent 5px),
             radial-gradient(circle at 0 100%,#f1e2c2 4px,transparent 5px);
  font-size:22px;
}
.ticket-stub input { width:19px;height:19px;color-scheme:light;accent-color:#2b3731; }
.ticket-claim {
  display:block;
  width:100%;
  min-height:48px;
  margin-top:13px;
  border:0;
  border-radius:6px;
  color:#fff1d1;
  background:#245953;
  font-weight:700;
}
.ticket-claim:disabled { opacity:.68; }
.ticket-choice :is(button,input):focus-visible { outline:3px solid #633354;outline-offset:3px; }
.ticket-choice input:focus-visible { outline-color:var(--ticket-ink); }
.ticket-saved p { margin:12px 0; }
.ticket-saved p:first-child { font-size:13px;font-weight:750;letter-spacing:.06em; }
.ticket-status { margin:10px 0;color:#713248; }
