/* Approved shared booking UI. Prices, capacities and payment modes come from
   the existing schedule contract; this file only controls presentation. */
.bw-ui{display:flex;flex-direction:column;gap:20px}
.bw-ui>*{margin:0!important}
.bw-ui>.bw-external-notice{order:9;font-size:13px}
.bw-ui .field label{font-weight:700}
.bw-ui .bw-native{display:none}
.bw-ui .bw-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}
.bw-ui .bw-choices>:only-child{grid-column:1/-1}
.bw-ui .bw-choices>button,.bw-ui .bw-payment-option{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:5px;padding:15px 16px;min-width:0;border:1px solid var(--line-strong);border-radius:var(--r);background:#fff;color:var(--ink);font:inherit;position:relative}
.bw-ui .bw-choices>button{cursor:pointer}
.bw-ui .bw-choices b{font-size:15px;padding-right:16px}
.bw-ui .bw-choices span{font-size:12px;color:var(--ink-2);line-height:1.5}
.bw-ui .bw-choices>[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--bg-soft)}
.bw-ui .bw-choices>[aria-pressed=true]::after{content:'✓';position:absolute;right:12px;top:10px;font-size:13px;font-weight:700}
.bw-ui .bw-choices>button:disabled{cursor:default;opacity:1}
.bw-ui .bw-choices>button:focus-visible,.bw-ui .bw-date-nav button:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.bw-ui .bw-rate-info{font-size:14px;color:var(--ink-2)}
.bw-ui .bw-date-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;scroll-margin-top:100px}
.bw-ui .bw-date-nav b{font-size:16px}
.bw-ui .bw-date-nav small{display:block;color:var(--ink-2);font-size:12px;margin-top:3px}
.bw-ui .bw-date-nav>div:last-child{display:flex;gap:6px}
.bw-ui .bw-date-nav button{width:40px;height:40px;flex:0 0 auto;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font:20px var(--font);cursor:pointer}
.bw-ui .bw-date-nav button:disabled{opacity:.35;cursor:default}
.bw-ui .bw-days{scrollbar-width:thin;scroll-snap-type:x proximity;padding-bottom:8px}
.bw-ui .bw-days::-webkit-scrollbar{display:block;height:5px}
.bw-ui .bw-day{scroll-snap-align:start;flex:0 0 68px;min-height:80px}
.bw-ui .bw-party-pick{padding:12px 14px;gap:12px}
.bw-ui .bw-pm{width:44px;height:44px;flex:0 0 44px}
.bw-ui .bw-slots{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:10px}
.bw-ui .bw-slot{padding:12px 8px;font-size:18px;min-height:93px}
.bw-ui .bw-slot small{display:flex;flex-direction:column;gap:4px;white-space:normal;font-size:13px;line-height:1.4}
.bw-ui .bw-slot-left{font-size:11px;font-weight:500;color:var(--ink-2)}
.bw-ui .bw-slot.selected .bw-slot-left{color:#fff}
.bw-ui .bw-slot.full{opacity:.5}
.bw-ui .bw-legend{font-size:12px}
.bw-ui .bw-game-choice{font-size:13px;color:var(--ink-2)}
.bw-ui .bw-game-choice summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.bw-ui .bw-game-choice .field{margin-top:12px}
.bw-ui .bw-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:4px;padding-top:20px;scroll-margin-top:90px}
.bw-ui .bw-total{font-size:14px;align-items:center;padding:16px}
.bw-ui .bw-total>span:first-child{flex:1 1 100%}
.bw-ui .bw-total>span:nth-child(2){display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.bw-ui #bw-sum{font-size:24px}
.bw-ui #bw-sum-note{font-size:13px}
.bw-ui .bw-edit-session{font:13px var(--font);color:var(--ink);text-decoration:underline;margin-left:auto;border:0;background:transparent;cursor:pointer;padding:4px}
.bw-ui .bw-contact-title{font:700 18px var(--font-display);margin:4px 0 0}
.bw-ui .bw-party-note{font-size:12px;color:var(--ink-2);margin:0}
.bw-ui .field input,.bw-ui .field select{min-height:48px;font-size:16px}
.bw-ui .bw-payment-option{min-height:112px}
.bw-ui .bw-payment-option strong{font:700 24px var(--font-display)}
.bw-ui .bw-invoice{border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:12px;font-size:14px}
.bw-ui .bw-invoice>div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.bw-ui .bw-invoice span{color:var(--ink-2)}
.bw-ui .bw-pay-now{border-top:1px solid var(--line);padding-top:12px}
.bw-ui .bw-pay-now b{font:700 24px var(--font-display)}
.bw-ui .bw-invoice[hidden],.bw-ui .bw-payment[hidden]{display:none}
.bw-ui .legal-executor{font-size:12px;line-height:1.6}
.bw-ui #bw-timing{font-size:13px;line-height:1.6}
.bw-ui .bw-consent{font-size:12px;line-height:1.6}
.bw-ui .bw-consent input{width:20px;height:20px}
/* The form already has its primary action: avoid a second "choose time" bar. */
body:has(.bw-ui .bw-form) .sticky-cta{display:none}
.book-aside [data-booking-summary] .bc-price{margin-bottom:var(--s3)}
@media(max-width:559px){
 .bw-ui{gap:16px}
 .bw-ui .bw-choices>button,.bw-ui .bw-payment-option{padding:12px 10px}
 .bw-ui .bw-choices b{font-size:13px}
 .bw-ui .bw-choices span{font-size:11px}
 .bw-ui .bw-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .bw-ui .bw-slot{font-size:17px;min-height:88px;padding:10px 4px}
 .bw-ui .bw-form{grid-template-columns:minmax(0,1fr)}
 .bw-ui .bw-steps{font-size:12px}
 .bw-ui .bw-total{padding:12px}
 .bw-ui .bw-edit-session{margin-left:0}
 .bw-ui .bw-payment-option strong{font-size:22px}
 .bw-ui .bw-invoice{padding:12px}
 .bw-ui .bw-invoice>div:last-child b{font-size:12px}
}
