/* Native booking widget (/book/, /book/thanks/, /book/terms/) */
.booking-grid { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
.booking-grid > *, .booking-card, .booking-card .form-grid, .bk-step { min-width: 0; }
.booking-steps { margin: 0 0 1.1rem; padding-left: 1.3rem; display: grid; gap: .5rem; color: var(--muted); font-size: .95rem; list-style: decimal; }
.booking-steps strong { color: var(--navy); }
.booking-rules { display: grid; gap: .5rem; margin: 0 0 1.25rem; }
.booking-rules li { position: relative; padding-left: 1.3rem; color: var(--ink); font-size: .92rem; }
.booking-rules li::before { content: ""; position: absolute; left: 0; top: .5rem; width: .5rem; height: .5rem; border-radius: 50%; background: var(--teal); }
.booking-card .form-note a, .bk-terms a { color: var(--teal-dark); font-weight: 600; }
.booking-card .form-note { margin-top: .8rem; }
.bk-step { border-top: 1px solid var(--line); padding-top: 1rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; }
.bk-step:first-child { border-top: 0; padding-top: 0; }
.bk-step h3 { margin: 0; display: flex; align-items: center; gap: .55rem; font-size: 1.08rem; color: var(--navy); flex-wrap: wrap; }
.bk-step h3 small { font-weight: 500; color: var(--muted); font-size: .9rem; }
.bk-num { display: inline-grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--navy); color: #fff; font-size: .85rem; }
.bk-cal { border: 1px solid var(--line); border-radius: 16px; padding: .8rem; background: #fff; }
.bk-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; color: var(--navy); }
.bk-nav { width: 2.3rem; height: 2.3rem; border-radius: 50%; border: 1px solid var(--line); background: var(--bg); color: var(--navy); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.bk-nav:disabled { opacity: .35; cursor: default; }
.bk-dow, .bk-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .3rem; }
.bk-dow span { text-align: center; font-size: .75rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.bk-day { position: relative; aspect-ratio: 1 / .92; border-radius: 12px; border: 1px solid var(--line); background: var(--bg); color: var(--muted); font: inherit; font-weight: 600; font-size: .95rem; display: grid; place-content: center; gap: 0; cursor: default; padding: 0; }
.bk-day small { white-space: nowrap; overflow: hidden; text-overflow: clip; font-size: .62rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.bk-day.blank { visibility: hidden; }
.bk-day.available { background: #fff; border-color: var(--teal); color: var(--navy); cursor: pointer; }
.bk-day.available small { color: var(--teal-dark); }
.bk-day.available:hover { background: #e9f8f7; }
.bk-day.full { background: #eef1f5; color: #8a97a6; text-decoration: line-through; }
.bk-day.full small { text-decoration: none; color: #a24a4a; display: block; }
.bk-day.closed, .bk-day.past, .bk-day.too_soon, .bk-day.out { opacity: .45; }
.bk-day.selected { background: var(--navy); border-color: var(--navy); color: #fff; }
.bk-day.selected small { color: #bfeeea; }
.bk-day:focus-visible, .bk-win:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; }
.bk-legend { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: .6rem; font-size: .8rem; color: var(--muted); }
.bk-legend i { display: inline-block; width: .8rem; height: .8rem; border-radius: 4px; margin-right: .3rem; vertical-align: -1px; border: 1px solid var(--line); }
.bk-legend .lg-open { border-color: var(--teal); background: #fff; } .bk-legend .lg-full { background: #eef1f5; } .bk-legend .lg-closed { background: var(--bg); opacity: .5; }
.bk-tz { margin: 0; font-size: .82rem; color: var(--muted); }
.bk-windows { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(135px, 100%), 1fr)); gap: .5rem; }
@media (max-width: 420px) { .bk-windows { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bk-win { border: 1px solid var(--line); background: #fff; border-radius: 12px; padding: .75rem .5rem; font: inherit; font-weight: 700; color: var(--navy); cursor: pointer; display: grid; gap: .1rem; text-align: center; }
.bk-win small { font-weight: 500; font-size: .75rem; color: var(--muted); }
.bk-win:hover:not(:disabled) { border-color: var(--teal); background: #e9f8f7; }
.bk-win.selected { background: var(--navy); color: #fff; border-color: var(--navy); }
.bk-win.selected small { color: #bfeeea; }
.bk-win:disabled { background: #eef1f5; color: #9aa6b3; cursor: not-allowed; text-decoration: line-through; }
.bk-win:disabled small { text-decoration: none; }
.bk-summary { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: .35rem 1rem; background: var(--bg); border: 1px solid var(--line); border-radius: 14px; padding: .9rem 1rem; font-size: .93rem; }
.bk-summary dt { color: var(--muted); }
.bk-summary dd { margin: 0; color: var(--ink); font-weight: 600; text-align: right; }
.bk-summary .sep { grid-column: 1 / -1; border-top: 1px dashed #d5dde7; margin: .2rem 0; }
.bk-summary .total dt, .bk-summary .total dd { color: var(--navy); font-size: 1.05rem; font-weight: 700; }
.bk-summary .fine { grid-column: 1 / -1; font-size: .8rem; color: var(--muted); font-weight: 400; text-align: left; }
.form-grid label.bk-terms { display: flex; gap: .65rem; align-items: flex-start; font-weight: 400; color: var(--ink); background: #fffaf0; border: 1px solid #f1d9a6; border-radius: 12px; padding: .8rem .9rem; font-size: .9rem; line-height: 1.5; }
.form-grid label.bk-terms input { width: 1.2rem; height: 1.2rem; margin: .15rem 0 0; flex: none; accent-color: var(--teal-dark); }
.bk-terms strong { color: var(--navy); }
.bk-pay { width: 100%; font-size: 1.02rem; padding-block: 1rem; }
.bk-pay:disabled { opacity: .5; cursor: not-allowed; }
.bk-secure { margin: -.3rem 0 0; font-size: .82rem; color: var(--muted); text-align: center; }
.bk-testmode { background: #fff3d6; border: 1px dashed #e0a100; color: #7a5200; border-radius: 12px; padding: .5rem .8rem; font-size: .85rem; font-weight: 600; margin-bottom: 1rem; }
.bk-note { background: #e9f8f7; border: 1px solid #bfe9e6; border-radius: 12px; padding: .6rem .85rem; margin-bottom: 1rem; font-size: .92rem; }
.bk-note.err { background: #fdecec; border-color: #f3c0c0; }
.bk-result { text-align: center; padding: 1rem .5rem; }
.bk-result .icon { width: 3.4rem; height: 3.4rem; border-radius: 50%; display: grid; place-items: center; margin: 0 auto .8rem; background: #e1f6f4; color: var(--teal-dark); font-size: 1.7rem; font-weight: 700; }
.bk-result h2 { margin: 0 0 .4rem; color: var(--navy); }
.bk-result .bk-summary { text-align: left; max-width: 30rem; margin: 1.2rem auto; }
.terms-doc { max-width: 46rem; }
.terms-doc h2 { color: var(--navy); font-size: 1.2rem; margin: 1.6rem 0 .5rem; }
.terms-doc p, .terms-doc li { color: var(--ink); }
.terms-doc ul { list-style: disc; padding-left: 1.3rem; display: grid; gap: .35rem; }
@media (max-width: 900px) { .booking-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 420px) { .bk-cal { padding: .5rem; } .bk-dow, .bk-days { gap: .2rem; } .bk-day { font-size: .88rem; border-radius: 9px; } .bk-day small { font-size: .52rem; letter-spacing: 0; } }
.page-hero .bk-epoxy-note { margin-top: .6rem; font-size: .95rem; opacity: .92; }
.page-hero .bk-epoxy-note a { color: #fff; font-weight: 700; text-decoration: underline; }
