.bb-booking{--bb-blue:#0056b3;--bb-blue-d:#004494;--bb-ink:#0f2a4a;--bb-muted:#5a7089;--bb-line:#dbe6f4;--bb-green:#16a34a;--bb-amber:#f59e0b;--bb-red:#e2536a;max-width:820px;margin:0 auto;font-family:inherit;color:var(--bb-ink)}
.bb-booking *{box-sizing:border-box}
.bb-booking__head{text-align:center;margin-bottom:22px}
.bb-booking__title{font-size:1.7rem;margin:0 0 6px}
.bb-booking__sub{color:var(--bb-muted);margin:0}
.bb-ports{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.bb-port{flex:1 1 180px;background:#fff;border:2px solid var(--bb-line);border-radius:14px;padding:14px 18px;cursor:pointer;text-align:left;transition:.2s;display:flex;flex-direction:column;gap:3px}
.bb-port:hover{border-color:var(--bb-blue)}
.bb-port.is-active{border-color:var(--bb-blue);background:linear-gradient(145deg,var(--bb-blue-d),var(--bb-blue));color:#fff;box-shadow:0 8px 22px rgba(0,80,180,.28)}
.bb-port__name{font-weight:700;font-size:1.05rem}
.bb-port__mode{font-size:.82rem;opacity:.85}
.bb-product{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 16px}
.bb-product__btn{background:#fff;border:2px solid var(--bb-line);border-radius:14px;padding:14px 14px;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;display:flex;flex-direction:row;align-items:flex-start;gap:12px;color:var(--bb-ink)}
.bb-product__icon{flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#eef5ff;color:var(--bb-blue)}
.bb-product__btn--ne .bb-product__icon{background:#fff4e8;color:#b45309}
.bb-product__copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.bb-product__btn strong{font-size:.98rem;color:var(--bb-ink)!important;line-height:1.25}
.bb-product__btn .bb-product__copy>span{font-size:.8rem;color:var(--bb-muted)!important;line-height:1.35}
.bb-product__btn:hover{border-color:var(--bb-blue);background:#f7fbff;transform:translateY(-1px)}
.bb-product__btn--ne:hover{border-color:#d97706;background:#fffaf3}
.bb-product__btn.is-active{border-color:var(--bb-blue);background:#f7fbff!important;color:var(--bb-ink)!important;box-shadow:0 0 0 1px var(--bb-blue),0 4px 14px rgba(0,80,180,.1)}
.bb-product__btn--ne.is-active{border-color:#d97706;background:#fff7ed!important;box-shadow:0 0 0 1px #d97706,0 4px 14px rgba(180,83,9,.12)}
.bb-product__btn.is-active strong{color:var(--bb-ink)!important}
.bb-product__btn.is-active .bb-product__copy>span{color:var(--bb-muted)!important}
@media (max-width:640px){.bb-product{grid-template-columns:1fr}}
.bb-legend{display:flex;gap:18px;justify-content:center;margin-bottom:14px;flex-wrap:wrap;font-size:.85rem;color:var(--bb-muted)}
.bb-legend__item{display:inline-flex;align-items:center;gap:6px}
.bb-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.bb-dot--free{background:var(--bb-green)}
.bb-dot--partial{background:var(--bb-amber)}
.bb-dot--full{background:var(--bb-red)}
.bb-cal{background:#fff;border:1px solid var(--bb-line);border-radius:16px;padding:18px;box-shadow:0 6px 20px rgba(0,60,120,.06)}
.bb-cal__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.bb-cal__label{font-weight:700;font-size:1.15rem;text-transform:capitalize}
.bb-cal__prev,.bb-cal__next{background:#eef5ff;border:none;width:40px;height:40px;border-radius:10px;font-size:1.4rem;color:var(--bb-blue);cursor:pointer;line-height:1}
.bb-cal__prev:hover,.bb-cal__next:hover{background:var(--bb-blue);color:#fff}
.bb-cal__weekdays,.bb-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.bb-cal__weekdays{margin-bottom:6px}
.bb-cal__weekdays span{text-align:center;font-size:.78rem;font-weight:700;color:var(--bb-muted);text-transform:uppercase}
.bb-day{aspect-ratio:1;border:1px solid var(--bb-line);border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:.15s;font-weight:600}
.bb-day.is-empty{border:none;background:transparent;cursor:default}
.bb-day.is-closed{background:#f5f7fa;color:#b9c4d4;cursor:not-allowed}
.bb-day.is-full{background:#fdecef;color:#c65068;cursor:not-allowed}
.bb-day.is-free{border-color:var(--bb-green)}
.bb-day.is-partial{border-color:var(--bb-amber)}
.bb-day:not(.is-closed):not(.is-full):not(.is-empty):hover{background:var(--bb-blue);color:#fff;border-color:var(--bb-blue)}
.bb-day.is-selected{background:var(--bb-blue);color:#fff;border-color:var(--bb-blue)}
.bb-day__dot{width:6px;height:6px;border-radius:50%;margin-top:3px}
.bb-day.is-free .bb-day__dot{background:var(--bb-green)}
.bb-day.is-partial .bb-day__dot{background:var(--bb-amber)}
.bb-day.is-selected .bb-day__dot{background:#fff}
.bb-cal__loading{text-align:center;color:var(--bb-muted);padding:14px}
.bb-slots{margin-top:22px}
.bb-slots__title{font-size:1.2rem;margin:0 0 12px}
.bb-slots__list{display:grid;gap:10px}
.bb-slot{display:flex;align-items:center;justify-content:space-between;gap:12px;border:2px solid var(--bb-line);border-radius:12px;padding:14px 16px;cursor:pointer;background:#fff;transition:.15s}
.bb-slot:hover{border-color:var(--bb-blue)}
.bb-slot.is-selected{border-color:var(--bb-blue);background:#eef5ff}
.bb-slot.is-disabled{opacity:.5;cursor:not-allowed;background:#f6f8fb}
.bb-slot__main{display:flex;flex-direction:column;gap:2px}
.bb-slot__name{font-weight:700}
.bb-slot__time{font-size:.85rem;color:var(--bb-muted)}
.bb-slot__avail{font-size:.85rem;font-weight:700}
.bb-slot__avail.free{color:var(--bb-green)}
.bb-slot__avail.partial{color:var(--bb-amber)}
.bb-slot__avail.full{color:var(--bb-red)}
.bb-form{margin-top:24px;background:#fff;border:1px solid var(--bb-line);border-radius:16px;padding:22px;box-shadow:0 6px 20px rgba(0,60,120,.06)}
.bb-form__title{margin:0 0 8px;font-size:1.2rem}
.bb-form__summary{background:#eef5ff;border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:.95rem;color:var(--bb-ink)}
.bb-price-recap{background:#f8fbff;border:1px solid #d5e6ff;border-radius:12px;padding:16px 18px;margin-bottom:18px}
.bb-price-recap--success{margin:16px 0 4px;text-align:left}
.bb-price-recap__title{margin:0 0 10px;font-size:1rem;color:var(--bb-ink)}
.bb-price-recap__lines{display:grid;gap:8px;margin-bottom:12px}
.bb-price-recap__line{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:.92rem}
.bb-price-recap__line-main{display:flex;flex-direction:column;gap:2px;color:var(--bb-ink)}
.bb-price-recap__line-main small{color:var(--bb-muted);font-size:.8rem}
.bb-price-recap__line strong{white-space:nowrap;color:var(--bb-ink)}
.bb-price-recap__total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:2px solid #d5e6ff;font-size:1rem;font-weight:700;color:var(--bb-ink)}
.bb-price-recap__total strong{font-size:1.35rem;color:var(--bb-blue)}
.bb-ne-blocks{margin:0 0 16px;padding:14px 16px;border:1px solid var(--bb-line);border-radius:12px;background:#fffaf3}
.bb-ne-blocks__label{margin:0 0 10px;font-weight:700;font-size:.95rem;color:var(--bb-ink)}
.bb-ne-blocks__options{display:flex;flex-wrap:wrap;gap:8px}
.bb-ne-blocks__btn{appearance:none;border:2px solid var(--bb-line);background:#fff;border-radius:10px;padding:10px 14px;font-weight:700;font-size:.9rem;cursor:pointer;color:var(--bb-ink);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.bb-ne-blocks__btn:hover:not(:disabled){border-color:#d97706;background:#fff7ed}
.bb-ne-blocks__btn.is-active{border-color:#d97706;background:#fff7ed;box-shadow:0 0 0 1px #d97706}
.bb-ne-blocks__btn:disabled{opacity:.4;cursor:not-allowed}
.bb-ne-blocks__hint{margin:10px 0 0;font-size:.82rem;color:var(--bb-muted);line-height:1.4}
.bb-people{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end}
.bb-stepper label{display:block;font-size:.85rem;color:var(--bb-muted);margin-bottom:6px;font-weight:600}
.bb-stepper label small{font-weight:500;opacity:.85}
.bb-stepper__ctrl{display:flex;align-items:center;gap:12px}
.bb-stepper__ctrl button{width:38px;height:38px;border:none;border-radius:9px;background:#eef5ff;color:var(--bb-blue);font-size:1.3rem;cursor:pointer;line-height:1}
.bb-stepper__ctrl button:hover{background:var(--bb-blue);color:#fff}
.bb-count{font-weight:700;font-size:1.15rem;min-width:24px;text-align:center}
.bb-people__hint{width:100%;margin:0;font-size:.85rem;color:var(--bb-muted)}
.bb-fields{display:grid;gap:12px}
.bb-fields input,.bb-fields textarea{width:100%;border:1.5px solid var(--bb-line);border-radius:10px;padding:12px 14px;font-size:1rem;font-family:inherit}
.bb-fields input:focus,.bb-fields textarea:focus{outline:none;border-color:var(--bb-blue)}
.bb-fields textarea{min-height:80px;resize:vertical}
.bb-hp{position:absolute!important;left:-9999px!important;height:1px;width:1px;opacity:0}
.bb-policy{margin-top:18px;background:#fff8ec;border:1px solid #f3d8a6;border-radius:12px;padding:16px 18px}
.bb-policy__title{margin:0 0 10px;font-size:1rem;color:var(--bb-ink)}
.bb-policy__list{margin:0 0 12px;padding-left:20px;font-size:.88rem;line-height:1.55;color:var(--bb-ink)}
.bb-policy__list li{margin-bottom:6px}
.bb-accept-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--bb-ink)}
.bb-accept-label input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;cursor:pointer;accent-color:var(--bb-green)}
.bb-submit{margin-top:16px;width:100%;background:var(--bb-green);color:#fff;border:none;border-radius:12px;padding:16px;font-size:1.05rem;font-weight:700;cursor:pointer;transition:.15s}
.bb-submit:hover{background:#12833b}
.bb-submit:disabled{opacity:.6;cursor:wait}
.bb-form__note{text-align:center;color:var(--bb-muted);font-size:.85rem;margin:10px 0 0}
.bb-result{margin-top:22px;border-radius:14px;padding:22px;text-align:center}
.bb-result.is-ok{background:#e9f9ef;border:1px solid #b7e6c8;color:var(--bb-ink)}
.bb-result.is-err{background:#fdecef;border:1px solid #f3c2cc}
.bb-result__title{font-size:1.25rem;margin:0 0 8px;color:var(--bb-ink)}
.bb-result .bb-pay-btn{display:inline-block;margin-top:18px;background:var(--bb-blue);color:#fff;text-decoration:none;font-weight:700;padding:15px 32px;border-radius:12px;font-size:1.05rem;box-shadow:0 6px 18px rgba(0,80,180,.28);transition:.15s}
.bb-result .bb-pay-btn:hover{background:var(--bb-blue-d);color:#fff;transform:translateY(-1px)}
.bb-result .bb-pay-btn:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px rgba(0,86,179,.35)}
.bb-inquiry__label{display:block;font-size:.85rem;font-weight:600;color:var(--bb-muted);margin:4px 0 2px}
.bb-inquiry .bb-fields select{width:100%;border:1.5px solid var(--bb-line);border-radius:10px;padding:12px 14px;font-size:1rem;font-family:inherit;background:#fff;color:var(--bb-ink)}
.bb-inquiry .bb-fields select:focus{outline:none;border-color:var(--bb-blue)}
.bb-inquiry .bb-fields input[type=date]{appearance:auto}
@media(max-width:520px){
.bb-booking{padding:0 2px;scroll-margin-top:72px}
.bb-booking__title{font-size:1.45rem}
.bb-cal{padding:14px 8px 16px;border-radius:18px}
.bb-cal__nav{margin-bottom:14px;gap:8px}
.bb-cal__label{font-size:1.22rem;letter-spacing:.01em}
.bb-cal__prev,.bb-cal__next{width:48px;height:48px;min-width:48px;min-height:48px;border-radius:12px;font-size:1.55rem;touch-action:manipulation}
.bb-cal__weekdays,.bb-cal__grid{gap:5px}
.bb-cal__weekdays span{font-size:.68rem;padding:2px 0}
.bb-day{min-height:56px;min-width:0;aspect-ratio:auto;border-radius:12px;font-size:1.12rem;font-weight:800;padding:8px 2px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.bb-day.is-free{background:#f0fdf4}
.bb-day.is-partial{background:#fffbeb}
.bb-day.is-full{background:#fef2f2}
.bb-day.is-closed{min-height:48px;font-weight:600}
.bb-day__dot{width:7px;height:7px;margin-top:4px}
.bb-day.is-selected{box-shadow:0 0 0 2px rgba(0,86,179,.25)}
.bb-slots{margin-top:18px}
.bb-slots__title{font-size:1.15rem;line-height:1.35}
.bb-slot{flex-direction:column;align-items:flex-start;gap:8px;padding:16px;min-height:68px;border-radius:14px;touch-action:manipulation}
.bb-slot__name{font-size:1.05rem}
.bb-slot__avail{font-size:.95rem}
.bb-people{gap:14px}
.bb-stepper__ctrl button{width:44px;height:44px;min-width:44px;min-height:44px}
.bb-product__btn{padding:14px;min-height:76px}
.bb-product__icon{width:48px;height:48px}
.bb-submit{min-height:52px;font-size:1.05rem;touch-action:manipulation}
}
@media(max-width:380px){
.bb-cal__weekdays,.bb-cal__grid{gap:4px}
.bb-day{min-height:52px;font-size:1.05rem}
.bb-cal__prev,.bb-cal__next{width:44px;height:44px;min-width:44px;min-height:44px}
.bb-cal{padding:12px 6px 14px}
}
