/**
 * Compact upcoming-dates / booking calendar (PHPJabbers event embed).
 * Works with pjWrapperEBCalendar_* wrapper IDs on course pages.
 */

#section-upcoming .pjIcContainer,
[id^="pjWrapperEBCalendar_"] {
    max-width: 920px;
    margin: 0 auto;
}

.pjIcCalendar {
    min-width: 0 !important;
    max-width: 100% !important;
    margin-top: 6px !important;
}

.pjIcCalendarCurrent,
.pjCalHeading h2 {
    font-size: 1.35rem !important;
    padding-bottom: 10px !important;
    line-height: 1.3 !important;
}

.pjCalHeading {
    margin-top: 6px !important;
    margin-bottom: 8px !important;
}

.pjCalHeading .btn {
    padding: 4px 10px !important;
    font-size: 0.8rem !important;
}

.pjCalMonths th a {
    padding: 3px 5px !important;
    font-size: 0.72rem !important;
}

.pjCalTable td,
.pjCalTable th {
    padding: 8px 10px !important;
    font-size: 0.92rem !important;
    vertical-align: top !important;
}

.pjCalTable td.day-num {
    width: 32px !important;
}

.pjCalTable td.day-week {
    width: 88px !important;
    font-size: 0.88rem !important;
}

.pjCalTable td.start-time {
    width: 100px !important;
    min-width: 100px !important;
    font-size: 0.93rem !important;
    line-height: 1.5 !important;
    text-align: center !important;
}

.pjCalTable .pjEbcEventTitle {
    font-size: 0.95rem !important;
    margin-bottom: 2px !important;
    line-height: 1.35 !important;
}

.pjCalTable .pjEbcEventAddress,
.pjCalTable .pjEbcEventCategory {
    font-size: 0.78rem !important;
    margin-bottom: 2px !important;
}

.pjCalTable .pjEbcEventDesc {
    font-size: 0.82rem !important;
    margin-bottom: 6px !important;
    line-height: 1.45 !important;
}

.pjEbcEventTitle {
    font-size: 1.05rem !important;
}

.pjEbcEventDate {
    font-size: 0.85rem !important;
}

.pjEbcEventAddress,
.pjEbcEventCategory {
    font-size: 0.8rem !important;
}

.pjPecEventContainer {
    margin-top: 10px !important;
    padding: 8px 10px !important;
}

.pjPecEventContainer .thumbnail {
    padding-bottom: 12px !important;
}

.pjEbcBuyTicket,
.pjCalTable .btn-primary {
    padding: 6px 14px !important;
    font-size: 0.82rem !important;
}

.pjEbcAvailTickets,
.pjEbcEventPast,
.pjEbcFullEvent {
    font-size: 0.8rem !important;
}

/* Hide event photos — override live event CSS (display:block on .pjEbcEventDesc img) */
[id^="pjWrapperEBCalendar_"] .pjCalTable .pjEbcEventDesc img,
[id^="pjWrapperEBCalendar_"] .pjPecEventContainer .thumbnail .pjEbcEventDesc img,
[id^="pjEbcContainer_"] .pjCalTable img,
[id^="pjEbcContainer_"] .pjEbcEventDesc img,
[id^="pjEbcContainer_"] .pjEbcEventImage,
#section-upcoming .pjCalTable img,
#section-upcoming .pjPecEventContainer img,
#section-upcoming .pjEbcEventDesc img,
#section-upcoming .thumbnail img,
#section-upcoming .pjEbcEventImage,
[id^="pjWrapperEBCalendar_"] .pjCalTable img,
[id^="pjWrapperEBCalendar_"] .pjPecEventContainer img,
[id^="pjWrapperEBCalendar_"] .pjEbcEventDesc img,
[id^="pjWrapperEBCalendar_"] .thumbnail img,
[id^="pjWrapperEBCalendar_"] .pjEbcEventImage,
[id^="pjWrapperEBCalendar_"] .pjCalInner img,
.pjEbcEventDesc img,
.pjEbcEventImage,
.pjPecEventContainer .pjEbcEventDesc img,
.pjPecEventContainer .thumbnail img,
.pjCalTable img,
.pjCalInner img {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    visibility: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    float: none !important;
}

/* When booking form is open, hide any leftover monthly list above it */
[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) .pjCalTable,
[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) .pjPecEventContainer {
    display: none !important;
}

/*
 * Booking form open — hide native PHPJabbers header shell (kept in DOM for JS).
 * Visible back link is injected above Event Details via calendar-compact.js.
 */
[id^="pjEbcContainer_"].pcb-booking-open,
[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) {
    position: relative !important;
}

[id^="pjEbcContainer_"].pcb-booking-open > [id^="pjEbcTableCalendar_"],
[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) > [id^="pjEbcTableCalendar_"] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

[id^="pjEbcContainer_"].pcb-booking-open .pjEbcBookingForm > .pcb-back-to-calendar-bar,
[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) .pjEbcBookingForm > .pcb-back-to-calendar-bar {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    text-align: left !important;
    min-height: 24px !important;
    height: auto !important;
    overflow: visible !important;
    position: relative !important;
    z-index: 3 !important;
}

.pcb-back-to-calendar-bar,
.pjEbcBookingNav {
    display: block !important;
    visibility: visible !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
}

.pcb-back-to-calendar,
.pcb-back-to-calendar-bar a,
.pjEbcBookingNav .pjEbcBackToCalendar,
.pjEbcBookingNav .pjEbcBackToList {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #333 !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    text-decoration: underline !important;
    cursor: pointer !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/*
 * Legacy booking shell header (native link kept for JS; visually hidden above)
 */
[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) [id^="pjEbcTableCalendar_"] {
    background: none !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    max-height: none !important;
}

[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) .pjIcCalendarHead,
[id^="pjEbcEventCalendar_"] .pjIcCalendarHead,
[id^="pjEbcContainer_"] .pjIcCalendarHead:has(.pjEbcBackToCalendar),
[id^="pjEbcContainer_"] .pjIcCalendarHead:has(.pjEbcBackToList) {
    display: block !important;
    visibility: visible !important;
    overflow: visible !important;
    text-align: left !important;
    min-height: 28px !important;
    height: auto !important;
    padding: 0 0 10px !important;
    margin: 0 0 6px !important;
    background: none !important;
    border: none !important;
}

[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) .pjIcCalendarHead .pull-left,
[id^="pjEbcEventCalendar_"] .pjIcCalendarHead .pull-left {
    display: block !important;
    visibility: visible !important;
    float: left !important;
    margin: 0 !important;
    text-align: left !important;
}

[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) .pjIcCalendarHead .pull-right,
[id^="pjEbcEventCalendar_"] .pjIcCalendarHead .pull-right {
    display: block !important;
    visibility: visible !important;
    float: right !important;
    margin: 0 !important;
}

[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) [id^="pjEbcTableCalendar_"] .pjIcCalendar {
    min-height: 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}

[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) .pjEbcBackToCalendar,
[id^="pjEbcContainer_"]:has(.pjEbcBookingForm) .pjEbcBackToList,
[id^="pjWrapperEBCalendar_"] .pjEbcBackToCalendar,
[id^="pjWrapperEBCalendar_"] .pjEbcBackToList,
[id^="pjEbcEventCalendar_"] .pjEbcBackToCalendar,
[id^="pjEbcEventCalendar_"] .pjEbcBackToList,
#section-upcoming .pjEbcBackToCalendar,
#section-upcoming .pjEbcBackToList {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    font-size: 0.95rem !important;
    padding: 0 !important;
    margin: 0 0 10px !important;
    background: none !important;
    border: none !important;
    color: #333 !important;
    text-decoration: underline !important;
    cursor: pointer !important;
    position: relative !important;
    z-index: 2 !important;
}

#section-upcoming .pjEbcEventDesc a:has(img),
[id^="pjWrapperEBCalendar_"] .pjEbcEventDesc a:has(img),
.pjEbcEventDesc a:empty {
    display: none !important;
}

#section-upcoming .pjEbcEventDesc a:empty,
[id^="pjWrapperEBCalendar_"] .pjEbcEventDesc a:empty {
    display: none !important;
}

/* Keep captcha image visible (live form uses .pjEbcCaptchaWrap, not .pjEbcCaptcha) */
[id^="pjWrapperEBCalendar_"] .pjEbcCaptchaWrap img,
[id^="pjWrapperEBCalendar_"] img[id^="pjEbcCaptchaImage_"],
[id^="pjEbcContainer_"] .pjEbcCaptchaWrap img,
[id^="pjEbcContainer_"] img[id^="pjEbcCaptchaImage_"],
.pjEbcBookingForm .pjEbcCaptchaWrap img,
.pjEbcBookingForm img[id^="pjEbcCaptchaImage_"],
.pjEbcCaptcha img,
.pjEbcCaptchaWrap img,
img[id^="pjEbcCaptchaImage_"] {
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    min-height: 36px !important;
    max-height: 50px !important;
    max-width: none !important;
    visibility: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    vertical-align: middle !important;
    cursor: pointer !important;
}

.pjEbcCaptchaWrap .row,
.pjEbcCaptchaWrap .form-group {
    margin-bottom: 8px !important;
}

/* Protect site navbar/footer logos from calendar image-hide rules */
nav.navbar .logo img,
.navbar .logo img,
footer .logo img,
footer img {
    display: block !important;
    width: auto !important;
    height: 50px !important;
    max-width: none !important;
    max-height: none !important;
    visibility: visible !important;
}

/* Protect hero background images (e.g. Photoshop, one-on-one) */
section.hero img.hero-bg,
img.hero-bg {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

@media (max-width: 768px) {
    #section-upcoming .pjIcContainer,
    [id^="pjWrapperEBCalendar_"] {
        max-width: 100%;
    }

    .pjCalTable td.day-week {
        width: 72px !important;
    }

    .pjCalTable td.start-time {
        width: 84px !important;
        min-width: 84px !important;
        font-size: 0.88rem !important;
    }

    .pjCalTable td,
    .pjCalTable th {
        padding: 6px 8px !important;
        font-size: 0.88rem !important;
    }
}

/* Today highlight — calendar view */
.pj-calendar-day-today p,
#pjWrapper .pj-calendar-day-today p,
[id^="pjWrapperEBCalendar_"] .pj-calendar-day-today p,
[id^="pjEbcContainer_"] .pj-calendar-day-today p {
    background: #f9b233 !important;
    color: #333 !important;
}

.pj-calendar-day-today p:hover,
#pjWrapper .pj-calendar-day-today p:hover,
[id^="pjWrapperEBCalendar_"] .pj-calendar-day-today p:hover,
[id^="pjEbcContainer_"] .pj-calendar-day-today p:hover {
    background: #f9b233 !important;
    color: #333 !important;
}

/* Past days — no fill colour */
.pj-calendar-day-past,
#pjWrapper .pj-calendar-day-past,
[id^="pjWrapperEBCalendar_"] .pj-calendar-day-past,
[id^="pjEbcContainer_"] .pj-calendar-day-past {
    background: transparent !important;
}

.pj-calendar-day-past p,
#pjWrapper .pj-calendar-day-past p,
[id^="pjWrapperEBCalendar_"] .pj-calendar-day-past p,
[id^="pjEbcContainer_"] .pj-calendar-day-past p {
    background: transparent !important;
    color: #999 !important;
}

.pj-calendar-day-past p:hover,
#pjWrapper .pj-calendar-day-past p:hover,
[id^="pjWrapperEBCalendar_"] .pj-calendar-day-past p:hover,
[id^="pjEbcContainer_"] .pj-calendar-day-past p:hover {
    background: transparent !important;
    color: #999 !important;
}
