/* A single, quiet celebration after the server confirms the reservation. */
.booking-receipt{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);text-align:center;padding-top:4px;isolation:isolate;scroll-margin-top:112px}
.receipt-visual{position:relative;display:grid;place-items:center;width:120px;height:120px;margin:0 auto 20px;pointer-events:none}
.receipt-halo{position:absolute;inset:-24px;border-radius:50%;background:radial-gradient(circle,#dfa48029 0%,#c17d5c0d 43%,transparent 70%);opacity:0}
.receipt-seal{position:relative;display:grid;place-items:center;width:84px;height:84px;border:1px solid #dfa48066;border-radius:50%;background:#171816;color:var(--accent-text,#dfa480);overflow:hidden}
.receipt-seal svg{position:relative;z-index:1;flex-shrink:0}
.receipt-seal [hidden]{display:none}
.receipt-seal::after{content:"";position:absolute;left:0;top:-25%;width:40px;height:150%;background:linear-gradient(90deg,transparent,#eee9dd66,transparent);transform:translateX(-100px) rotate(25deg);opacity:0}
.booking-page .booking-receipt .receipt-title{font-family:var(--sans);font-size:clamp(28px,3.2vw,38px);font-weight:600;line-height:1.2;letter-spacing:-.025em;color:var(--paper);max-width:20ch;margin:0 auto 18px;text-wrap:balance;overflow-wrap:anywhere}
.booking-receipt .receipt-badge{border:1px solid #dfa48059;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--accent-text,#dfa480);line-height:1.5}
.booking-page .booking-receipt .receipt-message{font-size:16px;line-height:1.65;color:var(--paper);max-width:36ch;margin:18px auto 0}
.receipt-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin:28px 0;padding:24px 0;border-block:1px solid var(--line);text-align:left}
.receipt-details:empty{display:none}
.receipt-details>div{min-width:0}
.receipt-details>div:first-child{grid-column:1/-1}
.receipt-details dt{font-family:var(--sans);font-size:12px;font-weight:500;line-height:1.5;color:var(--muted);margin-bottom:7px}
.receipt-details dd{font-family:var(--sans);font-size:16px;font-weight:600;line-height:1.6;color:var(--paper);margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.receipt-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px}
.receipt-actions .button{min-height:52px;justify-content:center;gap:12px;font-size:14px;margin:0}
.booking-receipt #refresh-message{margin:14px 0 0;min-height:0;color:var(--muted);font-size:13px;line-height:1.6}
.booking-receipt #refresh-message:empty{display:none}
.booking-receipt[data-status=confirmed]{--receipt-success:#8fd3ab}
.booking-receipt[data-status=confirmed] .receipt-halo{opacity:1;background:radial-gradient(circle,#8fd3ab29 0%,#8fd3ab0d 43%,transparent 70%)}
.booking-receipt[data-status=confirmed] .receipt-seal{color:var(--receipt-success);border-color:var(--receipt-success)}
.booking-page .booking-receipt[data-status=confirmed] .receipt-title{color:var(--receipt-success)}
.booking-receipt[data-status=confirmed] .receipt-badge{color:var(--receipt-success);border-color:#8fd3ab59}
.receipt-visual,.receipt-title{animation:receipt-enter 240ms var(--ease-out) both}
.receipt-celebrate[data-status=confirmed] .receipt-seal{animation:receipt-confirm 280ms var(--ease-out) 1}
/* The decorative light can last longer; all text and actions are usable immediately. */
.receipt-celebrate .receipt-seal::after{animation:receipt-light 1200ms var(--ease-in-out) 1}
.receipt-celebrate .receipt-halo{animation:receipt-glow 1200ms var(--ease-out) 1}
@keyframes receipt-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes receipt-confirm{0%{transform:scale(.96)}55%{transform:scale(1.05)}100%{transform:scale(1)}}
@keyframes receipt-light{0%{opacity:0;transform:translateX(-70px) rotate(25deg)}20%{opacity:.7}80%{opacity:.7}100%{opacity:0;transform:translateX(130px) rotate(25deg)}}
@keyframes receipt-glow{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media(max-width:480px){.receipt-actions{display:grid;grid-template-columns:minmax(0,1fr)}.receipt-actions .button{width:100%}.receipt-details{gap:18px}.booking-page .booking-receipt .receipt-title{font-size:28px}}
@media(prefers-reduced-motion:reduce){.receipt-visual,.receipt-title,.receipt-celebrate[data-status=confirmed] .receipt-seal{animation:none;transform:none}.receipt-celebrate .receipt-seal::after{animation:none;opacity:0}.receipt-celebrate .receipt-halo{animation:none;transform:none}}
.receipt-policy{font-size:14px;line-height:1.7;color:var(--muted);margin:24px auto 0;max-width:54ch}
.receipt-confirmation{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);text-align:left}
.receipt-confirmation :is(h3,h4){font-family:var(--sans);font-size:20px;line-height:1.4;color:var(--paper);margin:0 0 12px}
.receipt-confirmation p,.receipt-private-note{font-size:14px;line-height:1.7;color:var(--muted)}
.receipt-confirmation .receipt-actions{justify-content:flex-start;margin-top:20px}
.booking-receipt .receipt-private-note{max-width:54ch;margin:20px auto 0}
.booking-receipt [hidden]{display:none!important}
.booking-receipt .button:disabled{opacity:.55;cursor:wait}
.booking-receipt .button:focus-visible,.booking-receipt input:focus-visible{outline:2px solid var(--accent-text,#dfa480);outline-offset:4px}
.booking-receipt .receipt-cancel{color:var(--accent-text,#dfa480)}
#reservation-link-fallback{margin-top:20px;text-align:left}
#reservation-link-fallback label{display:block;font-size:14px;line-height:1.6;color:var(--paper);margin-bottom:10px}
#reservation-private-link{box-sizing:border-box;width:100%;min-height:48px;padding:12px;background:var(--bg,#171816);color:var(--paper);border:1px solid var(--line);border-radius:6px;font:inherit;font-size:16px}
.customer-reservation{max-width:700px;margin:0 auto;padding:64px 24px 80px}
.booking-page .customer-reservation h1{font-family:var(--sans);font-size:clamp(32px,5vw,46px);font-weight:600;line-height:1.2;letter-spacing:-.025em;color:var(--paper);margin:0 0 18px}
.customer-reservation-intro{font-size:16px;line-height:1.7;color:var(--muted);margin:0 0 38px}
@media(max-width:480px){.customer-reservation{padding:44px 20px 60px}}

.booking-group{border:0;padding:0;margin:24px 0 0;min-width:0}.booking-group legend{padding:0;margin-bottom:10px}.booking-group-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.booking-group-fields>div{min-width:0}.booking-group-fields label{min-height:42px;margin:0 0 8px;line-height:1.4}.booking-group-fields label span{display:block;font-size:12px;color:var(--muted)}.booking-group-fields input{width:100%;min-width:0;min-height:48px;font-size:16px;font-variant-numeric:tabular-nums}.booking-group-total{display:flex;align-items:center;gap:16px;margin-top:18px}.booking-group-total label{margin:0;flex:1}.booking-group-total input{width:76px;min-height:44px;text-align:center;font-size:16px;font-variant-numeric:tabular-nums}.booking-festival-rules{max-width:65ch}
@media(max-width:380px){.booking-group-fields{gap:8px}.booking-group-fields label{font-size:12px}}
