/*
 * JZ Booking – Vexora Theme v1.0.0
 * Scoped to .jzb-container so the rest of the site is untouched.
 */

.entry-content .jzb-container {
    --jzb-bg: var(--wp--preset--color--vx-bg-primary, #0a0a0f);
    --jzb-panel: var(--wp--preset--color--vx-bg-secondary, #111118);
    --jzb-surface: var(--wp--preset--color--vx-surface, #1a1a24);
    --jzb-surface-raised: var(--wp--preset--color--vx-surface-elevated, #242433);
    --jzb-accent: var(--wp--preset--color--vx-accent, #4b64d1);
    --jzb-accent-hover: #5e76df;
    --jzb-link: var(--wp--preset--color--vx-accent-hover, #a8a8de);
    --jzb-text: var(--wp--preset--color--vx-text-primary, #f0ede8);
    --jzb-muted: var(--wp--preset--color--vx-text-muted, #8a8a9a);
    --jzb-border: rgba(240, 237, 232, 0.12);
    --jzb-border-strong: rgba(240, 237, 232, 0.2);
    max-width: 720px !important;
    width: 100%;
    padding: 32px;
    color: var(--jzb-muted);
    background: var(--jzb-panel);
    border: 1px solid var(--jzb-border);
    border-radius: 24px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.22);
    box-sizing: border-box;
}

.jzb-container,
.jzb-container *,
.jzb-container *::before,
.jzb-container *::after {
    box-sizing: border-box;
}

/* Language switcher */
.jzb-container .jzb-lang-switcher {
    margin-bottom: 24px;
}

.jzb-container .jzb-lang-btn {
    min-height: 34px;
    padding: 7px 14px;
    color: var(--jzb-muted);
    background: var(--jzb-surface);
    border: 1px solid var(--jzb-border);
}

.jzb-container .jzb-lang-btn:not(.jzb-lang-active):hover {
    color: var(--jzb-text);
    background: var(--jzb-surface-raised);
    border-color: var(--jzb-border-strong);
}

.jzb-container .jzb-lang-btn.jzb-lang-active {
    color: #fff;
    background: var(--jzb-accent);
    border-color: var(--jzb-accent);
}

/* Navigation and headings */
.jzb-container .jzb-back,
.jzb-container .jzb-map-link {
    color: var(--jzb-link);
}

.jzb-container .jzb-back:hover,
.jzb-container .jzb-map-link:hover {
    color: var(--jzb-text);
    opacity: 1;
}

.jzb-container .jzb-cal-month,
.jzb-container .jzb-selected-date,
.jzb-container .jzb-selected-slot,
.jzb-container .jzb-success h3,
.jzb-container .jzb-success-detail {
    color: var(--jzb-text) !important;
}

.jzb-container .jzb-cal-month {
    font-size: 1.05rem;
    letter-spacing: -0.01em;
}

.jzb-container .jzb-cal-prev,
.jzb-container .jzb-cal-next {
    color: var(--jzb-text);
    background: var(--jzb-surface);
    border: 1px solid var(--jzb-border);
}

.jzb-container .jzb-cal-prev:hover,
.jzb-container .jzb-cal-next:hover {
    color: #fff;
    background: var(--jzb-accent);
    border-color: var(--jzb-accent);
}

.jzb-container .jzb-cal-weekdays,
.jzb-container .jzb-slots-loading,
.jzb-container .jzb-no-slots,
.jzb-container .jzb-field-hint {
    color: var(--jzb-muted);
}

/* Calendar */
.jzb-container .jzb-day {
    color: var(--jzb-muted);
}

.jzb-container .jzb-day.jzb-day-available {
    color: var(--jzb-text);
    background: var(--jzb-surface);
    border: 1px solid var(--jzb-border);
}

.jzb-container .jzb-day.jzb-day-available:hover,
.jzb-container .jzb-day.jzb-day-selected {
    color: #fff;
    background: var(--jzb-accent);
    border-color: var(--jzb-accent);
}

.jzb-container .jzb-day.jzb-day-disabled {
    color: #565665;
    background: transparent;
}

.jzb-container .jzb-day.jzb-day-today {
    color: var(--jzb-text);
    border: 1.5px solid var(--jzb-accent);
}

.jzb-container .jzb-dot-available {
    background: #35d07f;
}

.jzb-container .jzb-dot-limited {
    background: #f5b642;
}

.jzb-container .jzb-day-loading {
    color: transparent;
    background: linear-gradient(
        90deg,
        var(--jzb-surface) 25%,
        var(--jzb-surface-raised) 50%,
        var(--jzb-surface) 75%
    );
    background-size: 300% 100%;
}

.jzb-container .jzb-cal-progress {
    background: var(--jzb-surface);
}

.jzb-container .jzb-cal-progress-bar {
    background: var(--jzb-accent);
}

/* Time slots */
.jzb-container .jzb-slot {
    color: var(--jzb-text);
    background: var(--jzb-surface);
    border: 1px solid var(--jzb-border);
}

.jzb-container .jzb-slot:hover,
.jzb-container .jzb-slot.jzb-slot-selected {
    color: #fff;
    background: var(--jzb-accent);
    border-color: var(--jzb-accent);
}

/* Meeting type */
.jzb-container .jzb-type-btn {
    color: var(--jzb-muted);
    background: var(--jzb-surface);
    border-color: var(--jzb-border);
}

.jzb-container .jzb-type-btn:hover {
    color: var(--jzb-text);
    background: var(--jzb-surface-raised);
    border-color: var(--jzb-accent);
}

.jzb-container .jzb-type-btn.jzb-type-active {
    color: #fff;
    background: var(--jzb-accent);
    border-color: var(--jzb-accent);
}

/* Form */
.jzb-container .jzb-field label {
    color: var(--jzb-text);
}

.jzb-container .jzb-field input,
.jzb-container .jzb-field textarea {
    color: var(--jzb-text);
    background: var(--jzb-surface);
    border-color: var(--jzb-border);
    caret-color: var(--jzb-text);
}

.jzb-container .jzb-field input::placeholder,
.jzb-container .jzb-field textarea::placeholder {
    color: var(--jzb-muted);
    opacity: 0.85;
}

.jzb-container .jzb-field input:hover,
.jzb-container .jzb-field textarea:hover {
    border-color: var(--jzb-border-strong);
}

.jzb-container .jzb-field input:focus,
.jzb-container .jzb-field textarea:focus {
    border-color: var(--jzb-accent);
    box-shadow: 0 0 0 3px rgba(75, 100, 209, 0.22);
}

.jzb-container .jzb-checkbox-label,
.jzb-container .jzb-success p {
    color: var(--jzb-muted);
}

.jzb-container .jzb-checkbox-label input[type="checkbox"] {
    accent-color: var(--jzb-accent);
}

/* Primary and secondary actions */
.jzb-container .jzb-submit {
    color: #fff;
    background: var(--jzb-accent);
    box-shadow: 0 10px 28px rgba(75, 100, 209, 0.24);
}

.jzb-container .jzb-submit:hover {
    background: var(--jzb-accent-hover);
    opacity: 1;
    transform: translateY(-1px);
}

.jzb-container .jzb-submit:disabled {
    color: #777786;
    background: var(--jzb-surface-raised);
    box-shadow: none;
}

.jzb-container .jzb-success-icon {
    color: #fff;
    background: var(--jzb-accent);
    box-shadow: 0 12px 32px rgba(75, 100, 209, 0.3);
}

.jzb-container .jzb-new-booking {
    color: var(--jzb-text);
    background: var(--jzb-surface);
    border-color: var(--jzb-accent);
}

.jzb-container .jzb-new-booking:hover {
    color: #fff;
    background: var(--jzb-accent);
}

/* Keyboard accessibility */
.jzb-container button:focus-visible,
.jzb-container input:focus-visible,
.jzb-container textarea:focus-visible,
.jzb-container a:focus-visible {
    outline: 3px solid var(--jzb-link);
    outline-offset: 3px;
}

@media (max-width: 767px) {
    .entry-content .jzb-container {
        padding: 22px 18px;
        border-radius: 20px;
    }
}

@media (max-width: 420px) {
    .jzb-container .jzb-cal-days {
        gap: 2px;
    }

    .jzb-container .jzb-day {
        height: 42px;
        min-height: 42px;
        border-radius: 9px;
        font-size: 0.82rem;
    }

    .jzb-container .jzb-type-toggle {
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .jzb-container *,
    .jzb-container *::before,
    .jzb-container *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
