/* Booking is a deliberate gesture on phones and a plain action on desktop. */
.p-book-control{width:100%;min-width:0;max-width:430px}
.p-event-card>.p-book-control+.p-book-rules{margin-top:10px}
.p-book-control>.p-book-click{width:100%;justify-content:center;gap:0}
.p-book-control>.p-book-click::after,.p-book-control>.p-book-click::before{display:none!important}
.p-book-slider{display:none}
.p-booked-state{display:grid;gap:12px;width:100%;min-width:0;max-width:470px}
.p-booked-label{color:#d2e8cc;font:500 14px/1.45 ClubSans,Arial,sans-serif;letter-spacing:.1px}
.p-booked-actions{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:10px;width:100%}
.p-booked-actions>.p-button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:48px;padding:11px 12px;border-radius:10px;font:500 13px/1.35 ClubSans,Arial,sans-serif;text-align:center;gap:0}
.p-booked-actions>.p-book-rules{color:#efd39a;border-color:#b5965266;background:#191c15eb}
.p-booked-actions>.p-book-cancel{color:#ded5c2;border-color:#99886c62;background:#101610eb}
.p-booked-actions>.p-button:only-child{grid-column:1/-1}
.p-elite-event-action>.p-book-control,.p-elite-event-action>.p-booked-state{flex:1 1 280px}
.p-elite-event-action .p-booked-actions>.p-button{min-height:48px;font:500 13px/1.35 ClubSans,Arial,sans-serif;padding:11px 12px;border-radius:10px}
.p-booking-actions .p-booked-label{display:none}
.p-booking-panel .p-booked-state{margin-top:16px}
.p-booking-confirm>strong{display:block;margin-bottom:20px;color:#ebd3a4;font:400 25px/1.2 MonarchBodoni,Georgia,serif;overflow-wrap:anywhere}
.p-booking-promise{margin:0;color:#e0d9c9;font:400 15px/1.75 ClubSans,Arial,sans-serif}
.p-booking-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:25px}
.p-booking-dialog-actions>.btn{flex:1 1 160px;min-height:48px;font-size:14px}
#modal:has(.p-booking-success) .modal-head{justify-content:flex-end}
#modal:has(.p-booking-success) .modal-head h2{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.p-booking-success{text-align:center;padding:8px 8px 0;animation:booking-ticket-in .6s cubic-bezier(.18,.8,.2,1) both}
.p-booking-success-mark{position:relative;display:grid;place-items:center;width:96px;height:96px;margin:0 auto 18px;border-radius:50%;background:radial-gradient(circle,#153d27 0%,#153d2710 70%);color:#e7c581}
.p-booking-success-mark::before{content:'';position:absolute;inset:3px;border:1px solid #dbb86b75;border-radius:50%;animation:booking-ring 1.1s ease-out both;pointer-events:none}
.p-booking-success-mark svg{width:78px;height:78px;stroke-width:1.8;stroke:currentColor;overflow:visible}
.p-booking-success-mark circle{stroke-dasharray:170;stroke-dashoffset:170;animation:booking-outline .7s .1s ease-out forwards}
.p-booking-success-mark path{stroke:#b9e6c1;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:65;stroke-dashoffset:65;animation:booking-outline .5s .55s ease-out forwards}
.p-booking-success-title{margin:0 0 12px;color:#f0d6a0;font:400 34px/1.1 MonarchBodoni,Georgia,serif}
.p-booking-success-copy{max-width:360px;margin:0 auto 22px;font:400 14px/1.65 ClubSans,Arial,sans-serif;color:#c9c5b6}
.p-booking-success-details{position:relative;display:grid;gap:8px;padding:22px 18px;border-block:1px solid #bb985050;background:linear-gradient(110deg,#09150d,#18231966,#09150d)}
.p-booking-success-details strong{font:400 25px/1.2 MonarchBodoni,Georgia,serif;color:#e7cf9d;overflow-wrap:anywhere}
.p-booking-success-details span{font-size:13px;color:#bdb297}
.p-booking-success.is-waitlist .p-booking-success-mark{background:radial-gradient(circle,#6650214d,transparent 70%)}
.p-booking-success.is-waitlist .p-booking-success-mark path{stroke:#e2c896}
@keyframes booking-ticket-in{from{opacity:0;transform:translateY(13px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes booking-outline{to{stroke-dashoffset:0}}
@keyframes booking-ring{0%{opacity:0;transform:scale(.8)}25%{opacity:.8}100%{opacity:0;transform:scale(1.28)}}
@media(max-width:900px){
 .p-book-control>.p-book-click{display:none!important}
 .p-book-control{max-width:none}
 .p-book-slider{--booking-shift:0px;--booking-progress:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;isolation:isolate;width:100%;height:68px;padding:8px 15px 8px 63px;overflow:hidden;border:1px solid #dcbb776e;border-radius:35px;background:linear-gradient(110deg,#172319,#0b160fe8);box-shadow:inset 0 2px 10px #0007,0 8px 25px #0003;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:default}
 .p-book-slider::before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#9f76324a,#d9ad5566);transform-origin:left;transform:scaleX(var(--booking-progress));pointer-events:none}
 .p-book-slide-label{font:500 15px/1.25 ClubSans,Arial,sans-serif;color:#f0dcae;pointer-events:none}
 .p-book-slide-hint{font:400 10px/1.25 ClubSans,Arial,sans-serif;color:#b5ab90;pointer-events:none}
 .p-book-thumb{position:absolute;top:5px;left:5px;display:grid;place-items:center;width:56px;height:56px;padding:0;border:1px solid #f3d69b;border-radius:50%;background:linear-gradient(135deg,#edcf96,#c39a50 65%,#ab7c35);box-shadow:inset 0 1px 0 #ffebba,0 3px 13px #0006;color:#32220b;transform:translateX(var(--booking-shift));touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
 .p-book-thumb svg{width:22px;height:22px;pointer-events:none}
 .p-book-thumb:focus-visible{outline:2px solid #fff1c9;outline-offset:2px}
 .p-book-slider.is-dragging .p-book-thumb{cursor:grabbing}
 .p-book-slider.is-dragging :is(.p-book-slide-label,.p-book-slide-hint){opacity:calc(1 - var(--booking-progress))}
 .p-book-slider.is-resetting .p-book-thumb{transition:transform .28s cubic-bezier(.2,.7,.2,1)}
 .p-book-slider.is-resetting::before{transition:transform .28s ease}
 .p-book-slider.is-ready{border-color:#f1d69a;box-shadow:inset 0 2px 10px #0007,0 0 18px #cdaa4528}
 .p-elite-event-action>.p-book-control,.p-elite-event-action>.p-booked-state{flex:0 0 auto}
 .p-elite-event-action .p-booked-actions>.p-button{min-height:48px!important;padding:11px 9px!important;border-radius:10px!important;font:500 12px/1.35 ClubSans,Arial,sans-serif!important;border:1px solid #b5965270!important}
 .p-elite-event-action .p-booked-actions>.p-book-cancel{background:#101610ed!important}
 .p-elite-event-action .p-booked-actions>.p-book-rules{background:#202218ed!important}
 .p-booking-actions{width:100%}
 .p-booked-state{max-width:none}
 .p-booked-label{font-size:13px;text-align:center}
 .p-booking-dialog-actions{margin-top:22px}
 .p-booking-dialog-actions>.btn{flex-basis:120px;font-size:13px}
}
@media(max-width:370px){.p-book-slide-label{font-size:13px}.p-book-slide-hint{font-size:9px}.p-booked-actions{gap:7px}}
@media(prefers-reduced-motion:reduce){.p-booking-success,.p-booking-success-mark::before,.p-booking-success-mark svg *{animation:none!important}.p-booking-success-mark svg *{stroke-dashoffset:0}.p-booking-success-mark::before{display:none}}
.motion-off .p-booking-success-mark svg *{stroke-dashoffset:0}.motion-off .p-booking-success-mark::before{display:none}
