/* 3.21 guest flows: preserve brand, native scrolling and clear touch feedback. */
.public-body :is(.reservation-form,.waitlist-self-service,.guest-card,.success-ticket){font-optical-sizing:auto;overflow-wrap:anywhere}
.public-body :is(.reservation-form,.waitlist-self-service,.guest-card) :is(input,textarea,select){font-size:1rem;max-width:100%;box-sizing:border-box}
.public-body :is(.reservation-form,.waitlist-self-service,.guest-card) :is(button,.button,summary){min-height:2.75rem;touch-action:manipulation}
.public-body :is(.reservation-form,.waitlist-self-service,.guest-card) :is(button,.button,summary):active{filter:brightness(.94)}
.public-body :is(.reservation-form,.waitlist-self-service,.guest-card) :is(a,button,input,textarea,summary):focus-visible{outline:3px solid var(--red);outline-offset:3px}
.public-body .reservation-form :is(.performance-choice,.ticket-choices label,.accessibility-question label):has(input:focus-visible)>span{outline:3px solid var(--red);outline-offset:3px}
.public-body .reservation-form :is(.performance-choice,.ticket-choices label,.accessibility-question label):active>span{filter:brightness(.96)}
.public-body .reservation-form .performance-choice__when>.performance-choice__date{white-space:normal}
.public-body .reservation-form .reservation-status:empty,.public-body [data-guest-status]:empty{display:none}
.public-body :is(.reservation-status,[data-guest-status]){color:var(--red);font-weight:700;line-height:1.5}
.public-body .waitlist-self-service .waitlist-date:has(input:focus-visible){outline:3px solid var(--red);outline-offset:3px}
.public-body .waitlist-self-service [data-waitlist-quantity]{border:1px solid var(--line);border-radius:1rem;padding:1rem;min-inline-size:0}
.public-body .waitlist-self-service [data-waitlist-quantity]>label{display:grid;gap:.4rem;margin:.75rem 0;line-height:1.5}
.public-body .waitlist-self-service [data-waitlist-quantity] input{padding:.75rem;border:1px solid #b5a89b;border-radius:.65rem;min-height:2.75rem;width:100%}
.public-body .waitlist-self-service .waitlist-dates legend{font-size:1.125rem;line-height:1.5}
.public-body .guest-card details>summary{display:flex;align-items:center;gap:.75rem;list-style:none;width:100%;box-sizing:border-box;text-align:left}
.public-body .guest-card details>summary::-webkit-details-marker{display:none}
.public-body .guest-card details>summary::after{content:'+';margin-left:auto;font-size:1.4rem;line-height:1}
.public-body .guest-card details[open]>summary::after{content:'−'}
.public-body .guest-card details>form{padding:1rem 0}
.public-body .guest-card .guest-cancel{color:#86182d;border-color:#b96875;background:#fff7f8}
.public-body .guest-card :is(h1,h2){letter-spacing:-.02em;line-height:1.2;text-wrap:pretty}
.public-body .guest-card p{line-height:1.65}
.public-body .guest-card button[aria-disabled=true]{opacity:.65;cursor:progress}
@media(max-width:600px){.public-body .waitlist-self-service{padding:1.25rem}.public-body .guest-card :is(button,.mail-btn){white-space:normal;line-height:1.45}.public-body .reservation-form .ticket-choices{gap:.5rem}}
@media(prefers-reduced-motion:reduce){.public-body :is(.reservation-form,.waitlist-self-service,.guest-card,.success-ticket) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-reduced-transparency:reduce){.public-body :is(.reservation-form,.waitlist-self-service,.guest-card,.success-ticket){background:#fffdfa!important;backdrop-filter:none!important}}
@media(prefers-contrast:more){.public-body :is(.reservation-form,.waitlist-self-service,.guest-card){border-color:#35272b}.public-body .waitlist-date,.public-body .reservation-form .performance-choice>span{border-color:#554943}.public-body .reservation-form fieldset[disabled]{opacity:.75}}
/* Hidden radios must not inherit the full-width text-input hit area. */
.public-body .reservation-form :is(.performance-choice,.ticket-choices label,.accessibility-question label){position:relative;cursor:pointer}
.public-body .reservation-form :is(.performance-choice,.ticket-choices label,.accessibility-question label)>input[type=radio]{position:absolute!important;inset:auto!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:0!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0!important}
