/* BB Studio Schedule */
.bb-schedule [hidden] {
    display: none !important;
}

.bb-schedule {
    margin: 0 auto;
}

/* Day Tabs */
.studio-classes {
    padding: 80px 0;
    overflow: hidden;
}

.bb-schedule__tabs-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 40px;
}

.bb-schedule__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    width: 56px;
    height: 56px;
    font-size: 0;
    position: relative;
    line-height: 1;
    padding: 0;
    background-color: var(--brand-color);
    transition: color 0.15s;
    border-radius: 50%;
}

.bb-schedule__nav--prev::before,
.bb-schedule__nav--next::before {
    content: '';
    display: block;
    width: 6px;
    height: 11px;
}

.bb-schedule__nav--prev::before {
    background: url('data:image/svg+xml,<svg width="6" height="11" viewBox="0 0 6 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.0526871 5.4115C0.0880203 5.5025 0.14927 5.59167 0.236437 5.679L4.62494 10.0673C4.71844 10.1609 4.83319 10.2109 4.96919 10.2173C5.10502 10.2238 5.22611 10.1738 5.33244 10.0673C5.43894 9.96092 5.49219 9.843 5.49219 9.7135C5.49219 9.584 5.43894 9.46608 5.33244 9.35975L1.08644 5.1135L5.33244 0.86725C5.42611 0.77375 5.47611 0.658999 5.48244 0.523C5.48894 0.387166 5.43894 0.266083 5.33244 0.159749C5.22611 0.0532494 5.10819 9.58253e-07 4.97869 9.59798e-07C4.84919 9.61342e-07 4.73127 0.0532494 4.62494 0.159749L0.236437 4.548C0.14927 4.63533 0.0880203 4.7245 0.0526871 4.8155C0.0175204 4.9065 -6.25278e-05 5.00583 -6.25265e-05 5.1135C-6.25253e-05 5.22117 0.0175204 5.3205 0.0526871 5.4115Z" fill="%236C7277"/></svg>') no-repeat center;
}

.bb-schedule__nav--next::before {
    background: url('data:image/svg+xml,<svg width="6" height="11" viewBox="0 0 6 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.4395 5.4115C5.40417 5.5025 5.34292 5.59167 5.25575 5.679L0.86725 10.0673C0.77375 10.1609 0.659 10.2109 0.523 10.2173C0.387166 10.2238 0.266082 10.1738 0.159749 10.0673C0.0532488 9.96092 4.46957e-09 9.843 6.01385e-09 9.7135C7.55812e-09 9.584 0.0532488 9.46608 0.159749 9.35975L4.40575 5.1135L0.159749 0.86725C0.0660823 0.77375 0.0160823 0.658999 0.00974896 0.523C0.00324896 0.387166 0.053249 0.266083 0.159749 0.159749C0.266082 0.0532494 0.384 9.58253e-07 0.5135 9.59798e-07C0.643 9.61342e-07 0.760917 0.0532494 0.86725 0.159749L5.25575 4.548C5.34292 4.63533 5.40417 4.7245 5.4395 4.8155C5.47467 4.9065 5.49225 5.00583 5.49225 5.1135C5.49225 5.22117 5.47467 5.3205 5.4395 5.4115Z" fill="%236C7277"/></svg>') no-repeat center;
}

.bb-schedule__nav:hover {
    color: var(--brand-color);
}

.bb-schedule__tabs {
    display: flex;
    flex: 1;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.bb-schedule__tabs::-webkit-scrollbar {
    display: none;
}

.bb-schedule__tab {
    flex: 1;
    min-width: 80px;
    padding: 5px;
    text-align: center;
    cursor: pointer;
    border: none;
    background: none;
    color: #000;
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    transition: all 0.15s;
}

.bb-schedule__tab.is-past,
.bb-schedule__tab.is-past .bb-schedule__tab-label,
.bb-schedule__tab.is-past .bb-schedule__tab-day {
    color: #6C7277;
}

.bb-schedule__tab:hover {
    background: var(--grey-surface-color);
}

.bb-schedule__tab.is-active {
    border-bottom-color: var(--brand-color);
}

.bb-schedule__tab-date,
.bb-schedule__tab-label {
    font-size: 14px;
    color: #6C7277;
    text-transform: uppercase;
}

.bb-schedule__tab-day {
    display: block;
    font-size: 24px;
    line-height: 1;
    font-weight: 600;
    color: #000;
    margin-top: 10px;
}

.bb-schedule__tab-label {
    display: block;
}

/* Day Header */
.bb-schedule__day-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 24px;
    margin-bottom: 16px;
}

.bb-schedule__body-wrap {
    background: var(--grey-surface-color);
    padding: 40px;
    border-radius: 50px;
}

.bb-schedule__day-label {
    font-size: 16px;
    line-height: 1.2;
    font-weight: 600;
}

.bb-schedule__today-btn {
    font-size: 16px;
    line-height: 1.2;
    text-decoration: underline;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: all 0.15s;
}

.bb-schedule__today-btn:hover {
    border-color: var(--brand-color);
    color: var(--brand-color);
}

/* Loading */
.bb-schedule__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px;
    color: #999;
}

.bb-schedule__spinner {
    width: 20px;
    height: 20px;
    border: 2px solid #e5e5e5;
    border-top-color: var(--brand-color);
    border-radius: 50%;
    animation: bb-spin 0.6s linear infinite;
}

@keyframes bb-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Error */
.bb-schedule__error,
.bb-schedule-error {
    padding: 20px;
    text-align: center;
    color: #d63638;
}

/* Empty */
.bb-schedule__empty {
    padding: 40px;
    text-align: center;
    color: #999;
    font-size: 14px;
}

.bb-schedule__classes {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Class Row */
.bb-schedule__class {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding: 24px;
    font-size: 18px;
    background: #fff;
    border-radius: 24px;
    transition: background 0.1s;
}

.bb-schedule__class:hover {
    background: #fafafa;
}

.bb-schedule__class.is-cancelled {
    opacity: 0.5;
    text-decoration: line-through;
}

.bb-schedule__class.is-disabled {
    opacity: 0.5;
}

.bb-schedule__class-time-value {
    font-weight: 600;
    color: #000;
}

.bb-schedule__class-duration {
    color: #6C7277;
}

.bb-schedule__class-location {
    font-size: 18px;
    color: #6C7277;
}

.bb-schedule__class-instructor-photo {
    border-radius: 50%;
    object-fit: cover;
    background: var(--grey-surface-color);
    width: 77px;
    height: 77px;
    border: 2px solid var(--brand-color);
    flex-shrink: 0;
}

.bb-schedule__class-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    width: 100%;
}

.bb-schedule__class-name {
    color: #000;
    font-weight: 600;
    text-decoration: underline;
}

.bb-schedule__class-name a {
    color: var(--grey-color);
    text-decoration: none;
}

.bb-schedule__class-name a:hover {
    color: var(--brand-color);
}

.bb-schedule__class-instructor-name,
.bb-schedule__class-room {
    font-size: 14px;
    color: #6C7277;
}

.bb-schedule__class-instructor-name {
    text-decoration: underline;
}

.bb-schedule__class-spots {
    display: flex;
    align-items: center;
    font-weight: 500;
    color: #000;
}

.bb-schedule__class-spots--open {
    color: #27ae60;
}

.bb-schedule__class-spots--limited {
    color: #e67e22;
}

.bb-schedule__class-spots--full {
    color: #c0392b;
}

.bb-schedule__class-spots--waitlist {
    color: #7f8c8d;
}

.bb-schedule__class-action {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
}

/* Buttons */
.bb-schedule__btn {
    display: inline-block;
    font-size: 12px;
    padding: 11px 24px;
    letter-spacing: .1em;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: all 0.15s;
    width: 100%;
    border-radius: 50px;
    box-sizing: border-box;
}

.bb-schedule__btn--reserve {
    background: var(--brand-color);
    color: var(--charcoal-color);
    width: auto;
}

.bb-schedule__btn--reserve:hover {
    background: #a7e4e2;
}

.bb-schedule__btn--waitlist {
    background: var(--grey-surface-color);
    color: #A8ADAD;
    width: auto;
}

.bb-schedule__btn--waitlist:hover {
    background: #996800;
    color: #fff;
}

.bb-schedule__btn--full {
    background: var(--grey-surface-color);
    color: #A8ADAD;
    cursor: not-allowed;
    width: auto;
}

/* Modal */
.bb-schedule__modal-title {
    padding-right: 42px;
    color: #000;
}

.bb-schedule__modal-step {
    font-size: 16px;
}

.bb-schedule__modal-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}

.bb-schedule__modal-actions .btn {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}

.bb-schedule__modal-note {
    font-size: 14px;
    color: #6C7277;
}

/* Form */
.bb-schedule__form-row {
    display: flex;
    gap: 12px;
}

.bb-schedule__form-row .bb-schedule__form-field {
    flex: 1;
}

.bb-schedule__form-field {
    margin-bottom: 16px;
}

.bb-schedule__form-actions {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bb-schedule__form-actions .btn {
    width: 100%;
}

.bb-schedule__form-error {
    background: #fef0f0;
    border: 1px solid #f5c2c2;
    color: #d63638;
    padding: 10px 14px;
    border-radius: 4px;
    margin-bottom: 16px;
    font-size: 13px;
}

/* ── Region Switcher ─────────────────────────────────────────────────────── */

.bb-region-switcher {
    position: relative;
    display: inline-block;
}

.bb-region-switcher__toggle {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 20px;
    font-family: inherit;
}

.bb-region-switcher__title {
    font-size: 48px;
    line-height: 1.2;
    font-weight: 400;
    margin-bottom: 0;
}

.bb-region-switcher__arrow {
    flex-shrink: 0;
    fill: #6C7277;
    margin-top: 4px;
}


/* ── Dropdown ────────────────────────────────────────────────────────────── */

.bb-region-switcher__dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 200;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
    min-width: 260px;
    max-width: 320px;
    overflow: hidden;
}

/* ── Panel ───────────────────────────────────────────────────────────────── */

.bb-region-panel {
    padding: 16px;
}

.bb-region-panel__header {
    margin-bottom: 12px;
}

.bb-region-panel__label {
    display: block;
    font-size: 12px;
    color: #6C7277;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 2px;
}

.bb-region-panel__name {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: var(--charcoal-color);
    margin-bottom: 6px;
}

.bb-region-panel__change {
    background: none;
    border: none;
    font-size: 0.875rem;
    color: #1ab5b5;
    cursor: pointer;
    padding: 0;
    font-family: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.bb-region-panel__change:hover {
    color: #159f9f;
}

/* ── Location list ───────────────────────────────────────────────────────── */

.bb-region-panel__locations {
    border-top: 1px solid var(--grey-surface-color);
    padding-top: 10px;
}

.bb-region-location-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 4px;
    cursor: pointer;
    font-size: 14px;
    color: var(--charcoal-color);
    border-radius: 4px;
    transition: background .1s;
}

.bb-region-location-item:hover {
    background: #f8f8f8;
}

.bb-region-location-item input[type="checkbox"] {
    accent-color: #1ab5b5;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer;
}

/* ── All regions panel ───────────────────────────────────────────────────── */

.bb-region-panel__back {
    background: none;
    border: none;
    font-size: 0.875rem;
    color: #555;
    cursor: pointer;
    padding: 0 0 12px;
    font-family: inherit;
    display: block;
}

.bb-region-panel__back:hover {
    color: #111;
}

.bb-region-panel__regions {
    border-top: 1px solid #f0f0f0;
    padding-top: 8px;
    max-height: 300px;
    overflow-y: auto;
}

.bb-region-list-item {
    padding: 10px 4px;
    font-size: 0.9rem;
    color: var(--grey-color);
    cursor: pointer;
    border-radius: 4px;
    transition: background .1s;
    border-bottom: 1px solid #f8f8f8;
}

.bb-region-list-item:hover {
    background: #f0fafa;
    color: #1ab5b5;
}

.studio-classes__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

.studio-single--coming_soon .studio-classes__header {
    display: none;
}

.studio-classes__filters {
    display: flex;
    gap: 16px;
    align-items: center;
}

.bb-schedule__filters {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    padding: 16px 0;
    border-bottom: 1px solid #eee;
    margin-bottom: 16px;
}

.bb-schedule__select {
    min-width: 172px;
}

.bb-schedule__reset {
    background: none;
    border: none;
    font-size: 12px;
    color: var(--grey-color);
    cursor: pointer;
    padding: 8px;
    font-family: inherit;
    text-decoration: underline;
    transition: color 0.15s;
}

.bb-schedule__reset:hover {
    color: var(--brand-color);
}

.studio-classes__btn-filter {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: 0;
    fill: #6C7277;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}
.studio-classes__btn-filter.is-active {
    fill: var(--charcoal-color);
}
.bb-schedule__btn--reserved {
    background: transparent;
    border: 2px solid #1ab5b5;
    color: #1ab5b5;
    border-radius: 20px;
    padding: 8px 16px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    cursor: default;
    width: auto;
    text-align: center;
    display: inline-block;
}

/* Responsive */
@media (min-width: 1024px) {

    .bb-schedule__nav--prev::before,
    .bb-schedule__nav--next::before {
        content: '';
        display: block;
        width: 20px;
        height: 9px;
    }

    .bb-schedule__nav--prev::before {
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='9' viewBox='0 0 20 9' fill='none'%3E%3Cpath d='M5.03021 0.21967C4.73732 -0.0732233 4.26256 -0.0732233 3.96967 0.21967L0.219666 3.96967C-0.0732269 4.26256 -0.0732269 4.73732 0.219666 5.03022L3.96967 8.78022C4.26256 9.07311 4.73732 9.07311 5.03021 8.78022C5.32311 8.48732 5.32311 8.01256 5.03021 7.71967L2.56049 5.24994H18.7499C19.1642 5.24994 19.4999 4.91416 19.4999 4.49994C19.4999 4.08573 19.1642 3.74994 18.7499 3.74994H2.56049L5.03021 1.28022C5.32311 0.987324 5.32311 0.512563 5.03021 0.21967Z' fill='%2325282A'/%3E%3C/svg%3E") no-repeat center;
    }

    .bb-schedule__nav--next::before {
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='9' viewBox='0 0 20 9' fill='none'%3E%3Cpath d='M14.4697 0.21967C14.7626 -0.0732233 15.2374 -0.0732233 15.5303 0.21967L19.2803 3.96967C19.5732 4.26256 19.5732 4.73732 19.2803 5.03022L15.5303 8.78022C15.2374 9.07311 14.7626 9.07311 14.4697 8.78022C14.1768 8.48732 14.1768 8.01256 14.4697 7.71967L16.9395 5.24994H0.75C0.335786 5.24994 0 4.91416 0 4.49994C0 4.08573 0.335786 3.74994 0.75 3.74994H16.9395L14.4697 1.28022C14.1768 0.987324 14.1768 0.512563 14.4697 0.21967Z' fill='%2325282A'/%3E%3C/svg%3E") no-repeat center;
    }

    .bb-schedule__class-instructor {
        display: flex;
        align-items: center;
        gap: 16px;
    }

    .studio-classes__btn-filter,
    .bb-schedule__tab-day-num {
        display: none;
    }

    .bb-schedule__class {
        display: grid;
        grid-template-columns: 85px 145px  minmax(200px, 1fr) 140px  minmax(114px, 200px);
    }
}

@media (max-width: 1023px) {
    .bb-region-switcher__title {
        font-size: 30px;
    }

    .bb-schedule__tab.is-today .bb-schedule__tab-day {
        font-size: 0;
    }

    .bb-schedule__tab-day {
        margin-top: 0;
    }

    .bb-region-switcher__arrow {
        margin-top: 1px;
    }

    .bb-region-switcher__toggle {
        gap: 16px;
    }

    .bb-region-switcher__arrow svg {
        width: 11px;
        height: 6px;
    }

    .studio-classes__filters {
        flex-direction: column;
        width: 100%;
    }

    .bb-schedule__select {
        min-width: 0;
        width: 100%;
    }

    .studio-classes__filters:not(.is-open) {
        display: none;
    }

    .bb-schedule__nav {
        width: 24px;
        height: 24px;
        background: transparent;
        border-radius: 0;
    }

    .studio-classes {
        padding-top: 40px;
        padding-bottom: 40px;
    }
    .bb-schedule__class {
        align-items: flex-start;
        font-size: 16px;
        padding: 16px;
        gap: 16px;
        position: relative;
        border-radius: 16px;
    }

    .bb-schedule__body-wrap {
        padding: 24px;
        border-radius: 16px;
    }

    .bb-schedule__day-header {
        padding: 0 16px;
    }

    .bb-schedule__class-instructor-photo {
        position: absolute;
        top: 16px;
        right: 16px;
        width: 74px;
        height: 74px;
        border-width: 1px;
    }

    .bb-schedule__btn--full,
    .bb-schedule__btn--reserve {
        width: 100%;
    }

    .bb-schedule__class-time {
        min-width: 60px;
    }

    .bb-schedule__class-spots {
        font-size: 16px;
        font-weight: 600;
    }

    .bb-schedule__class-action {
        width: 100%;
    }

    .bb-schedule__class-location {
        padding-right: 55px;
    }

    .bb-schedule__tab {
        min-width: 60px;
        padding: 8px 4px 10px;
    }

    .bb-schedule__tab-day {
        font-size: 14px;
    }

    .bb-schedule__form-row {
        flex-direction: column;
        gap: 0;
    }

    .bb-schedule__tab:not(.is-today) .bb-schedule__tab-day {
        display: none;
    }

    .bb-schedule__tab-date,
    .bb-schedule__tab-day-num {
        display: block;
        color: #000;
        font-size: 20px;
        font-weight: 500;
        line-height: 1;
        margin-top: 10px;
    }

    .bb-schedule__tab.is-past .bb-schedule__tab-date {
        color: var(--grey-color);
    }

    .bb-schedule__tabs {
        flex: auto;
    }
}

@media (max-width: 768px) {
    .bb-schedule__modal-actions {
        flex-direction: column;
    }
}