.tb-wrap,.tp-wrap{--tb-ink:#2A0A0C;--tb-muted:#5A3A3C;--tb-line:#8A6A6C;--tb-wine:#BF0A12;--tb-red:#BF0A12;--tb-cream:#FBF1E6;--tb-orange:#D07A10;--tb-green:#0E7A55;font-family:'Jost',system-ui,sans-serif;color:var(--tb-ink);font-size:16px;line-height:1.5;box-sizing:border-box}
.tb-wrap *,.tp-wrap *{box-sizing:border-box}
.tb-wrap button,.tp-wrap button{font-family:inherit;cursor:pointer}
.tb-wrap :focus-visible,.tp-wrap :focus-visible{outline:3px solid var(--tb-orange);outline-offset:2px}
.tb-step{margin:22px 0 8px;font-size:14px;font-weight:600;color:var(--tb-ink)}
.tb-step:first-child{margin-top:0}
.tb-month{font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--tb-muted);margin:0 0 6px}
.tb-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.tb-dow{font-size:11px;font-weight:600;letter-spacing:.08em;text-align:center;color:var(--tb-muted)}
.tb-day{min-height:52px;border-radius:12px;border:1.5px solid var(--tb-line);background:#fff;color:var(--tb-ink);font-size:18px;font-weight:600;padding:4px 0;line-height:1.1;display:flex;flex-direction:column;align-items:center;justify-content:center}
.tb-day small{font-size:10px;font-weight:600;letter-spacing:.06em;color:inherit;opacity:.8}
.tb-day.is-sel{background:var(--tb-wine);border-color:var(--tb-wine);color:#fff}
.tb-day:disabled{cursor:not-allowed;background:#F7F1EF;border-color:#E6D9D5;color:#8d7679}
.tb-day.is-locked:disabled{border-style:dashed}
.tb-day.is-full:disabled{text-decoration:line-through}
.tb-note{margin:8px 0 0;font-size:13px;color:var(--tb-muted)}
.tb-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tb-slot{min-height:52px;border-radius:10px;border:1.5px solid var(--tb-line);background:#fff;color:var(--tb-ink);font-size:16px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}
.tb-slot small{font-size:11px;font-weight:500;color:var(--tb-red)}
.tb-slot.is-sel{background:var(--tb-wine);border-color:var(--tb-wine);color:#fff}
.tb-slot.is-sel small{color:#fff}
.tb-slot:disabled{cursor:not-allowed;background:#FBF1E6;border-color:#E2D2CE;color:#6B5254;text-decoration:line-through}
.tb-slot:disabled small{text-decoration:none}
.tb-stepper{display:flex;align-items:center;justify-content:space-between;border:1.5px solid var(--tb-line);border-radius:12px;padding:6px 8px;background:#fff}
.tb-stepper button{width:48px;height:48px;border:0;border-radius:10px;background:var(--tb-cream);color:var(--tb-wine);font-size:26px;font-weight:600}
.tb-stepper button:disabled{opacity:.4;cursor:not-allowed}
.tb-stepper span{font-size:18px;font-weight:600}
.tb-field{display:flex;flex-direction:column;gap:6px;margin:0 0 12px;font-size:14px;font-weight:500}
.tb-field input[type=text],.tb-field input[type=email],.tb-field input[type=tel]{height:52px;border:1.5px solid var(--tb-line);border-radius:10px;padding:0 14px;font-size:16px;font-family:inherit;color:var(--tb-ink);background:#fff;width:100%}
.tb-pills{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.tb-pill{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1.5px solid var(--tb-line);border-radius:999px;font-size:15px;background:#fff}
.tb-pill input{width:18px;height:18px;margin:0}
.tb-check{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;font-size:14px;color:var(--tb-muted)}
.tb-check input{width:20px;height:20px;margin:1px 0 0;flex-shrink:0}
.tb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.tb-summary{background:var(--tb-cream);border-radius:12px;padding:14px 16px;font-size:15px;font-weight:600;color:var(--tb-wine);margin:14px 0}
.tb-submit{display:flex;width:100%;align-items:center;justify-content:center;min-height:58px;border:0;border-radius:999px;background:var(--tb-wine);color:#fff;font-size:17px;font-weight:600;letter-spacing:.06em}
.tb-submit:disabled{opacity:.6;cursor:wait}
.tb-msg{margin:12px 0 0;font-size:14px;font-weight:500}
.tb-msg.is-err{color:#A11018}
.tp-wrap{max-width:420px;margin:0 auto}
.tp-card{background:#fff;border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px;align-items:center;color:var(--tb-ink)}
.tp-row{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.tp-lab{font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--tb-muted);display:block}
.tp-big{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:700;color:var(--tb-wine);line-height:1.1;display:block}
.tp-cell{flex:1;background:var(--tb-cream);border-radius:12px;padding:10px 12px}
.tp-cell b{display:block;font-size:18px;font-weight:600;color:var(--tb-wine)}
.tp-qr{width:200px;height:200px;display:flex;align-items:center;justify-content:center;padding:12px;border:2px solid #E6D9D5;border-radius:12px;background:#fff}
.tp-qr img,.tp-qr canvas{max-width:100%;height:auto}
.tp-code{font-size:13px;color:var(--tb-muted);text-align:center}
.tp-btns{display:flex;gap:10px;margin-top:16px}
.tp-btn{flex:1;display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:999px;font-size:15px;font-weight:600;letter-spacing:.04em;text-decoration:none;text-align:center}
.tp-btn.is-pri{background:var(--tb-orange);color:#1B0B0B}
.tp-btn.is-sec{border:2px solid #fff;color:#fff}
.tp-rem{margin-top:16px;background:rgba(255,255,255,.08);border-radius:16px;padding:16px 18px;color:#fff;font-size:15px}
.tp-rem h3{margin:0 0 10px;font-size:12px;font-weight:600;letter-spacing:.16em;color:var(--tb-orange)}
.tp-rem p{margin:0 0 8px;display:flex;gap:12px;align-items:flex-start}
.tp-rem i{width:10px;height:10px;border-radius:50%;background:var(--tb-orange);margin-top:7px;flex-shrink:0}
.tp-rem i.is-done{background:#14A06E}
.tp-addr{margin-top:16px;color:rgba(255,255,255,.9);font-size:15px}
.tp-addr b{color:#fff;display:block}
.tp-link{background:none;border:0;padding:0;min-height:44px;color:rgba(255,255,255,.9);text-decoration:underline;font-size:15px}
.tp-status{width:100%;text-align:center;border-radius:12px;padding:10px 12px;font-weight:600;font-size:15px;background:var(--tb-cream);color:var(--tb-wine)}
.tp-status.is-bad{background:#FBE3E3;color:#8A1018}
.tp-staff{margin-top:16px;background:#fff;border-radius:16px;padding:16px;color:var(--tb-ink);font-size:15px}
.tp-staff button{margin-top:8px;min-height:48px;padding:0 24px;border:0;border-radius:999px;background:var(--tb-green);color:#fff;font-weight:600;font-size:16px}
@media (max-width:480px){.tb-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-btns{flex-direction:column}}

.tb-phone-row{display:flex;gap:8px}.tb-phone-row select{flex:0 0 46%;max-width:46%;min-height:48px;border:1px solid #8C7A7A;border-radius:12px;padding:0 8px;font:inherit;background:#fff;color:#1B0B0B}.tb-phone-row input{flex:1;min-width:0}@media(max-width:420px){.tb-phone-row select{flex-basis:48%;max-width:48%}}

.tp-wrap{max-width:520px}.tp-resched{margin-top:14px;background:#fff;color:var(--tb-ink);border-radius:18px;padding:20px;text-align:left}.tp-resched .tb-step{margin-top:0}.tp-addr{text-align:center}

/* event requests */
.te-h{margin:0 0 2px;font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;color:var(--tb-red)}
.tb-wrap select,.tb-wrap textarea{width:100%;min-height:48px;border:1.5px solid var(--tb-line);border-radius:12px;padding:10px 12px;font:inherit;font-size:16px;background:#fff;color:var(--tb-ink)}
.tb-wrap textarea{resize:vertical;min-height:110px}
.te-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}
.te-addon{display:flex;align-items:center;gap:12px;border:1.5px solid var(--tb-line);border-radius:14px;padding:14px;margin-bottom:10px;background:#fff;cursor:pointer}
.te-addon input{width:22px;height:22px;accent-color:var(--tb-red);flex:0 0 auto}
.te-addon:has(input:checked){border-color:var(--tb-red);background:#FBF1E6}
.te-addon-body{flex:1;min-width:0;display:flex;flex-direction:column}
.te-addon-body small{font-size:13px;color:var(--tb-muted)}
.te-price{font-weight:600;font-size:18px;color:var(--tb-red)}
.te-total{background:var(--tb-cream);border-radius:12px;padding:12px 14px;font-size:14px;font-weight:600;color:var(--tb-red)}
.te-done{text-align:center;padding:24px 8px}
.te-done h4{margin:0 0 8px;font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;color:var(--tb-red)}
@media(max-width:560px){.te-grid{grid-template-columns:1fr 1fr}.te-grid label:first-child{grid-column:1 / -1}}

.te-addon.te-stack{flex-direction:column;align-items:stretch;gap:12px;cursor:default}
.te-head{display:flex;align-items:center;gap:12px;cursor:pointer}
.te-menu{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.te-menu li{background:var(--tb-cream);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--tb-ink)}
.te-qty{border-top:1px solid #E6D9D5;padding-top:12px;display:flex;flex-direction:column;gap:6px}
.te-qty span{display:block;font-size:14px;font-weight:600;margin-bottom:4px}
.te-qty input{width:100%;min-height:48px;border:1.5px solid var(--tb-line);border-radius:12px;padding:10px 12px;font:inherit;font-size:16px}
.te-line{margin:0;font-weight:600;color:var(--tb-red)}
.te-total{white-space:pre-line}
.te-addon:has(.te-head input:checked){border-color:var(--tb-red);background:#FBF1E6}
