/* ==================================================
   Namaste Weekly Grid
   Public weekly class schedule
   ================================================== */

.namaste-weekly-grid > .e-con-inner {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.namaste-weekly-grid .day {
    padding: 12px !important;
    border: 1px solid rgba(0,0,0,0.12) !important;
    border-radius: 10px !important;
}

.namaste-weekly-grid .day--off {
    opacity: 0.65 !important;
    background: rgba(0,0,0,0.03) !important;
}

/* If a day previously marked as "off" now contains a class, style it as an active day.
   Target the actual class title as well as the wrapper so this works with the current
   Elementor markup. Friday therefore matches the other active days; Saturday stays muted. */
.namaste-weekly-grid .day.day--off:has(a .class-name) {
    opacity: 1 !important;
    background: #fff !important;
}

/* Current Friday markup may retain muted text styles inherited from the old off-day state. */
.namaste-weekly-grid .day.day--off:has(a .class-name) .elementor-heading-title,
.namaste-weekly-grid .day.day--off:has(a .class-name) .class-time,
.namaste-weekly-grid .day.day--off:has(a .class-name) .class-name {
    color: inherit !important;
}

@media (max-width: 1024px) {
    .namaste-weekly-grid > .e-con-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    .namaste-weekly-grid > .e-con-inner {
        grid-template-columns: 1fr !important;
    }
}

.namaste-weekly-grid .elementor-heading-title {
    font-family: var(--e-global-typography-secondary-font-family) !important;
}

.namaste-weekly-grid .day .elementor-heading-title {
    margin-bottom: 6px !important;
    padding-bottom: 4px !important;
    border-bottom: 2px solid #85b5cc !important;
}

/* Handles both paragraph-based and div-based class blocks */
.namaste-weekly-grid .day .elementor-widget-text-editor p,
.namaste-weekly-grid .class-block {
    margin: 0 0 12px !important;
    line-height: 1.3 !important;
}

.namaste-weekly-grid .day .elementor-widget-text-editor p:last-child,
.namaste-weekly-grid .class-block:last-child {
    margin-bottom: 0 !important;
}

.namaste-weekly-grid .class-block + .class-block {
    border-top: 1px solid #85b5cc !important;
    padding-top: 8px !important;
    margin-top: 8px !important;
}

.namaste-weekly-grid .class-time {
    display: block !important;
    font-size: 0.85em !important;
    font-weight: 400 !important;
    opacity: 0.7 !important;
    line-height: 1.2 !important;
}

.namaste-weekly-grid .class-name {
    display: block !important;
    background: transparent !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    margin-top: 2px !important;
    position: relative !important;
    padding-left: 18px !important;
}

.namaste-weekly-grid .class-name::before {
    content: "" !important;
    width: 10px !important;
    height: 10px !important;
    border-radius: 3px !important;
    position: absolute !important;
    left: 0 !important;
    top: 0.2em !important;
    background: transparent;
}

/* Class marker colours — September 2026 */
.namaste-weekly-grid .lvl-1  .class-name::before { background-color: #BFD680 !important; } /* Yoga for Recovery */
.namaste-weekly-grid .lvl-2  .class-name::before { background-color: #DBBADB !important; } /* Yoga for All */
.namaste-weekly-grid .lvl-3  .class-name::before { background-color: #BABAD8 !important; } /* Intermediate Yoga */
.namaste-weekly-grid .lvl-34 .class-name::before { background-color: #BABAD8 !important; } /* Intermediate Yoga (legacy class) */
.namaste-weekly-grid .lvl-all .class-name::before { background-color: #DBBADB !important; } /* Weekend Yoga */

/* Weekend Yoga: ensure the marker appears even where the class block has no level class. */
.namaste-weekly-grid .class-block a[href*="/classes/yoga-on-sundays-all-levels/"] .class-name::before,
.namaste-weekly-grid a[href*="/classes/weekend-yoga/"] .class-name::before,
.namaste-weekly-grid a[href*="/classes/weekend-yoga-all-levels/"] .class-name::before {
    background-color: #DBBADB !important;
}

/* Underline clickable class titles on hover and keyboard focus */
.namaste-weekly-grid .class-block a {
    text-decoration: none !important;
}

.namaste-weekly-grid a:hover .class-name,
.namaste-weekly-grid a:focus-visible .class-name {
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* Legacy marker classes retained */
.namaste-weekly-grid .class-mark {
    display: inline-block !important;
    width: 10px !important;
    height: 10px !important;
    border-radius: 3px !important;
    margin-right: 8px !important;
    transform: translateY(1px) !important;
    vertical-align: middle !important;
    flex-shrink: 0 !important;
}

.namaste-weekly-grid .level-1 { background: #BFD680 !important; }
.namaste-weekly-grid .level-2 { background: #DBBADB !important; }
.namaste-weekly-grid .level-3 { background: #BABAD8 !important; }
.namaste-weekly-grid .level-34 { background: #BABAD8 !important; }
.namaste-weekly-grid .all-levels { background: #DBBADB !important; }


/* ==================================================
   Amelia Customer Panel
   Class bundle usability improvements
   ================================================== */

.amelia-v2-booking #amelia-container.am-cap__wrapper {
    margin: 0 auto !important;
}

/* Hide the Bundle Cancel button */
.amelia-v2-booking .am-cappa__actions.am-button--danger {
    display: none !important;
}

/* Restore breathing room around bundle panel */
.amelia-v2-booking .am-cappa {
    padding-top: 28px !important;
    padding-bottom: 32px !important;
}

/* Add spacing below bundle summary */
.amelia-v2-booking .am-cappa__info {
    padding-bottom: 22px !important;
}

/* Subtle instruction text */
.amelia-v2-booking .am-cappa__info::after {
    content: "Choose a class and click 'Buy Now' to select a date and reserve your place. This will use one session from your bundle. When you select a class, any you have previously booked using this bundle will be displayed below.";
    display: block !important;
    white-space: normal !important;
    margin-top: 10px !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    color: #667085 !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
}

/* Class selection grid */
.amelia-v2-booking .el-tabs__nav {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 12px 16px !important;
    width: 100% !important;
    transform: none !important;
    margin-top: 18px !important;
    margin-bottom: 24px !important;
}

/* Remove Amelia's scrolling behaviour */
.amelia-v2-booking .el-tabs__nav-scroll {
    overflow: visible !important;
}

/* Remove moving underline */
.amelia-v2-booking .el-tabs__active-bar {
    display: none !important;
}

/* Individual class buttons */
.amelia-v2-booking .el-tabs__item {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 12px 16px !important;

    display: flex !important;
    justify-content: center !important;
    align-items: center !important;

    text-align: center !important;
    white-space: normal !important;
    line-height: 1.3 !important;

    border: 1px solid #d9dee5 !important;
    border-radius: 8px !important;
    background: #fff !important;

    font-weight: 600 !important;
    transition: all .2s ease !important;
}

/* Hover */
.amelia-v2-booking .el-tabs__item:hover {
    border-color: #85b5cc !important;
    background: #fafcff !important;
}

/* Selected class */
.amelia-v2-booking .el-tabs__item.is-active {
    border: 2px solid #2f67ff !important;
    background: #eef7fc !important;
    font-weight: 700 !important;
    box-shadow: 0 0 0 2px rgba(61,109,242,0.15) !important;
}

/* Divider below class choices */
.amelia-v2-booking .el-tabs__header {
    border-bottom: 1px solid #d9dee5 !important;
    padding-bottom: 24px !important;
    margin-bottom: 24px !important;
}

/* Keep selected class + Buy Now button side-by-side on tablet/desktop */
@media (min-width: 768px) {
    .amelia-v2-booking .am-cappa__service-top {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 18px !important;
    }

    .amelia-v2-booking .am-cappa__service-right {
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }

    .amelia-v2-booking .am-cappa__service-book {
        width: auto !important;
        min-width: 120px !important;
        max-width: 180px !important;
        flex: 0 0 auto !important;
        margin-left: auto !important;
    }
}

/* Customer Panel phone layout */
@media (max-width: 767px) {
    .amelia-v2-booking .el-tabs__nav {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 480px) {
    .amelia-v2-booking #amelia-container.am-cap__wrapper {
        width: 100% !important;
        height: 100vh !important;
    }
}

/* ==================================================
   Amelia Instructor Panel - V15
   Estimated registered attendance
   ================================================== */

/* Amelia must have price and location enabled so the script can read them.
   They are hidden visually here after being added to the page. */
.am-cc__data:has(.am-icon-payments),
.am-cc__data:has(.am-icon-locations),
.am-cc__data.namaste-hide-appointment-value,
.am-cc__data.namaste-hide-appointment-location {
    display: none !important;
}

.am-cc__data.namaste-registered-trigger .am-cc__data-text {
    font-weight: 600 !important;
}

.namaste-booking-summary {
    margin: 0 0 10px !important;
    padding: 9px 12px !important;
    border-radius: 6px !important;
    background: #f5f7fa !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
    color: #344054 !important;
}


/* V15: make the booking names clearly secondary to the summary. */
.am-cc__popover .am-cc__customers-item {
    position: relative !important;
    padding-left: 18px !important;
    font-weight: 400 !important;
}

.am-cc__popover .am-cc__customers-item::before {
    content: "•" !important;
    position: absolute !important;
    left: 4px !important;
    top: 0.05em !important;
    color: currentColor !important;
    font-weight: 400 !important;
}

.am-cc__popover .am-cc__customers-name,
.am-cc__popover .am-cc__customers-info {
    font-weight: 400 !important;
}

/* ==================================================
   Amelia Event Booking Popup - V18
   Hide redundant Class Info header
   ================================================== */

/* Confirmed against Amelia event popup DOM: hiding this parent removes
   the redundant “Class info” button and the two grey divider lines. */
.am-eli .el-tabs__header.is-top {
    display: none !important;
}
