/* ==========================================================================
   THE SHAKESPEARE PUB — Events Calendar Overrides
   Styles for The Events Calendar plugin (V2 Views)
   Monthly overview, list view, and single event pages
   ========================================================================== */

/* ---- Shared Variables ---- */
.tribe-events,
.tribe-common {
    --tec-color-background:              var(--sp-cream, #F5F0E6);
    --tec-color-background-events:       var(--sp-white, #FFFFFF);
    --tec-color-text-primary:            var(--sp-green-dark, #1A3C2A);
    --tec-color-text-secondary:          var(--sp-text, #3D3D3D);
    --tec-color-accent-primary:          var(--sp-green-dark, #1A3C2A);
    --tec-color-accent-secondary:        var(--sp-gold, #C4A35A);
    --tec-color-link:                    var(--sp-green-dark, #1A3C2A);
    --tec-color-link-accent:             var(--sp-gold, #C4A35A);
    --tec-color-border-default:          rgba(26, 60, 42, 0.1);
    --tec-color-day-marker:              var(--sp-green-dark, #1A3C2A);
    --tec-font-family-sans-serif:        var(--sp-font-body, 'Source Sans 3', sans-serif);
    --tec-font-family-base:              var(--sp-font-body, 'Source Sans 3', sans-serif);
}

/* ==========================================================================
   EVENTS CONTAINER — Global wrapper / Gap fixes
   ========================================================================== */

.shakespeare-events-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
}

.tribe-events {
    font-family: var(--sp-font-body) !important;
}
/* Global link underline offset for readability */
.tribe-events a,
.tribe-common a,
.shakespeare-events-page a,
.shakespeare-single-event-page a {
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(26, 60, 42, 0.3);
}

/* --- Kill TEC default excessive padding that causes huge gap --- */
.shakespeare-events-page .tribe-common-l-container,
.shakespeare-events-page .tribe-events-l-container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.shakespeare-events-page .tribe-common.tribe-events {
    padding-top: 0 !important;
}
.shakespeare-events-page .tribe-events-view {
    padding-top: 0 !important;
}
/* Remove any TEC wrapper margins that add to the gap */
.shakespeare-events-page .tribe-events-before-html,
.shakespeare-events-page .tribe-events-after-html {
    margin: 0 !important;
    padding: 0 !important;
}

/* ==========================================================================
   EVENTS TOOLBAR — Top bar with search, month nav, today button
   ========================================================================== */

/* Toolbar container */
.tribe-events .tribe-events-header {
    margin-bottom: 1.5rem;
    padding: 0;
}

/* Month title in toolbar */
.tribe-events-header__title,
.tribe-events-calendar-month__header-column-dayofweek {
    font-family: var(--sp-font-display) !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sp-green-dark);
}

/* Month/date navigation arrows */
.tribe-events-c-nav__prev,
.tribe-events-c-nav__next {
    color: var(--sp-green-dark) !important;
}
.tribe-events-c-nav__prev:hover,
.tribe-events-c-nav__next:hover {
    color: var(--sp-gold) !important;
}

/* "Today" / "Dieser Monat" button */
.tribe-events-c-top-bar__today-button,
.tribe-events .tribe-events-c-top-bar__today-button {
    font-family: var(--sp-font-display) !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--sp-green-dark) !important;
    border: 1.5px solid var(--sp-green-dark) !important;
    border-radius: 3px !important;
    padding: 0.4rem 1rem !important;
    background: transparent !important;
    transition: var(--sp-transition);
}
.tribe-events-c-top-bar__today-button:hover,
.tribe-events .tribe-events-c-top-bar__today-button:hover {
    background: var(--sp-green-dark) !important;
    color: var(--sp-cream) !important;
}

/* View selector tabs */
.tribe-events-c-view-selector__button {
    font-family: var(--sp-font-display) !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}

/* Top bar — month title text */
.tribe-events-c-top-bar__datepicker-button {
    font-family: var(--sp-font-display) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: var(--sp-green-dark) !important;
}
.tribe-events-c-top-bar__datepicker-button:hover {
    color: var(--sp-gold) !important;
}

/* Search bar / events bar */
.tribe-events .tribe-events-c-search__input,
.tribe-events .tribe-events-c-events-bar__search-input {
    font-family: var(--sp-font-body) !important;
    border: 1.5px solid rgba(26, 60, 42, 0.2) !important;
    border-radius: 4px !important;
    padding: 0.6rem 1rem !important;
    background: var(--sp-white) !important;
    transition: var(--sp-transition);
}
.tribe-events .tribe-events-c-search__input:focus,
.tribe-events .tribe-events-c-events-bar__search-input:focus {
    border-color: var(--sp-gold) !important;
    box-shadow: 0 0 0 2px rgba(196, 163, 90, 0.2) !important;
    outline: none !important;
}

/* Search submit button */
.tribe-events .tribe-events-c-search__button,
.tribe-events .tribe-events-c-events-bar__search-button {
    background: var(--sp-green-dark) !important;
    color: var(--sp-cream) !important;
    border: none !important;
    border-radius: 4px !important;
    font-family: var(--sp-font-display) !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    padding: 0.6rem 1.25rem !important;
    transition: var(--sp-transition);
}
/* Search icon SVG — lighter color for visibility */
.tribe-events .tribe-events-c-search__button svg,
.tribe-events .tribe-events-c-events-bar__search-button svg,
.tribe-events .tribe-events-c-search__button path,
.tribe-events .tribe-events-c-events-bar__search-button path,
.tribe-events .tribe-events-c-search__button .tribe-common-c-svgicon,
.tribe-events .tribe-events-c-events-bar__search-button .tribe-common-c-svgicon {
    fill: var(--sp-cream) !important;
    color: var(--sp-cream) !important;
    stroke: var(--sp-cream) !important;
}
.tribe-events .tribe-events-c-search__button:hover,
.tribe-events .tribe-events-c-events-bar__search-button:hover {
    background: var(--sp-gold) !important;
    color: var(--sp-green-dark) !important;
}
.tribe-events .tribe-events-c-search__button:hover svg,
.tribe-events .tribe-events-c-events-bar__search-button:hover svg,
.tribe-events .tribe-events-c-search__button:hover path,
.tribe-events .tribe-events-c-events-bar__search-button:hover path {
    fill: var(--sp-green-dark) !important;
    color: var(--sp-green-dark) !important;
    stroke: var(--sp-green-dark) !important;
}

/* Events bar container (search + filters area) */
.tribe-events .tribe-events-c-events-bar {
    background: transparent !important;
    border: none !important;
    margin-bottom: 1rem !important;
}

/* Nav arrows (prev/next month) — SVG icons */
.tribe-events-c-nav__prev .tribe-events-c-nav__prev-icon-svg,
.tribe-events-c-nav__next .tribe-events-c-nav__next-icon-svg {
    fill: var(--sp-green-dark);
    transition: var(--sp-transition);
}
.tribe-events-c-nav__prev:hover .tribe-events-c-nav__prev-icon-svg,
.tribe-events-c-nav__next:hover .tribe-events-c-nav__next-icon-svg {
    fill: var(--sp-gold);
}

/* ==========================================================================
   MONTHLY CALENDAR VIEW
   ========================================================================== */

/* Calendar grid */
.tribe-events-calendar-month {
    border: 1px solid var(--tec-color-border-default);
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    background: var(--sp-white);
}

/* Day-of-week header row — light neutral background, dark text */
.tribe-events-calendar-month__header,
.tribe-events .tribe-events-calendar-month__header,
.tribe-common .tribe-events-calendar-month__header {
    background: #F5F0E6 !important;
    background-color: #F5F0E6 !important;
}
.tribe-events-calendar-month__header-column {
    padding: 0.75rem 0.5rem !important;
}
.tribe-events-calendar-month__header-column-dayofweek,
.tribe-events .tribe-events-calendar-month__header-column-dayofweek,
.tribe-common .tribe-events-calendar-month__header-column-dayofweek,
.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__header-column-dayofweek,
.tribe-events-calendar-month__header .tribe-events-calendar-month__header-column-dayofweek,
[data-js="tribe-events-view"] .tribe-events-calendar-month__header-column-dayofweek {
    color: #1A3C2A !important;
    font-size: 0.8125rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #1A3C2A !important;
}

/* Individual day cells */
.tribe-events-calendar-month__day {
    border-color: var(--tec-color-border-default) !important;
    transition: background 0.2s ease;
    min-height: 120px;
}
.tribe-events-calendar-month__day:hover {
    background: rgba(245, 240, 230, 0.5);
}
.tribe-events-calendar-month__day--current {
    background: rgba(196, 163, 90, 0.08) !important;
}

/* Day number */
.tribe-events-calendar-month__day-date {
    font-family: var(--sp-font-display) !important;
    font-weight: 600;
    font-size: 1rem;
    color: var(--sp-green-dark);
}
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date {
    color: var(--sp-gold) !important;
    font-weight: 700;
}

/* Event dots/indicators in calendar cells — NO background highlights */
.tribe-events-calendar-month__calendar-event {
    margin-bottom: 4px;
}
/* Kill ALL background on event titles and links in the month grid */
.tribe-events-calendar-month__calendar-event *,
.tribe-events-calendar-month__calendar-event a,
.tribe-events-calendar-month__calendar-event-title,
.tribe-events-calendar-month__calendar-event-title a,
.tribe-events-calendar-month__calendar-event-title-link,
.tribe-events .tribe-events-calendar-month__calendar-event-title,
.tribe-events .tribe-events-calendar-month__calendar-event-title a,
.tribe-common .tribe-events-calendar-month__calendar-event-title,
.tribe-common .tribe-events-calendar-month__calendar-event-title a,
[data-js="tribe-events-view"] .tribe-events-calendar-month__calendar-event-title,
[data-js="tribe-events-view"] .tribe-events-calendar-month__calendar-event-title a,
.tribe-events-calendar-month__calendar-event--featured .tribe-events-calendar-month__calendar-event-title,
.tribe-events-calendar-month__calendar-event--featured .tribe-events-calendar-month__calendar-event-title a,
.tribe-events .tribe-events-calendar-month__calendar-event a,
.tribe-events-calendar-month__calendar-event-tooltip-title a {
    font-family: var(--sp-font-body) !important;
    font-size: 0.75rem !important;
    font-weight: 500;
    color: #1A3C2A !important;
    padding: 3px 6px;
    border-radius: 3px;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    transition: var(--sp-transition);
    text-decoration: none !important;
}
.tribe-events-calendar-month__calendar-event-title:hover,
.tribe-events-calendar-month__calendar-event-title a:hover,
.tribe-events-calendar-month__calendar-event a:hover {
    background: none !important;
    background-color: transparent !important;
    color: #C4A35A !important;
}
/* Also target the featured event bar which uses background */
.tribe-events-calendar-month__multiday-event-bar-inner,
.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner {
    background: #1A3C2A !important;
}

/* More events link in day cells */
.tribe-events-calendar-month__more-events {
    font-family: var(--sp-font-display) !important;
    font-size: 0.6875rem !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sp-gold) !important;
}

/* Multiday event bar */
.tribe-events-calendar-month__multiday-event-bar-inner {
    background: var(--sp-green-dark) !important;
    border-radius: 3px;
}

/* ==========================================================================
   DAY VIEW — Events tooltip / popover
   ========================================================================== */

.tribe-events-calendar-month__day-cell--selected {
    background: rgba(26, 60, 42, 0.04) !important;
}

.tribe-events-calendar-day__event {
    border-left: 4px solid var(--sp-green-dark);
    padding-left: 1rem;
    margin-bottom: 1.5rem;
}
.tribe-events-calendar-day__event--featured {
    border-left-color: var(--sp-gold);
}

/* ==========================================================================
   LIST VIEW
   ========================================================================== */

/* Event separator (date headers) */
.tribe-events-calendar-list__month-separator {
    font-family: var(--sp-font-display) !important;
    font-size: 1.5rem !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sp-green-dark);
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--sp-green-dark);
    margin-bottom: 1.5rem;
}

/* Event list items */
.tribe-events-calendar-list__event {
    display: flex;
    gap: 1.5rem;
    padding: 1.5rem;
    background: var(--sp-white);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    border: 1px solid rgba(0,0,0,0.04);
    margin-bottom: 1.25rem;
    transition: var(--sp-transition);
}
.tribe-events-calendar-list__event:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

/* Date column in list */
.tribe-events-calendar-list__event-date-tag {
    background: var(--sp-green-dark);
    color: var(--sp-cream);
    padding: 0.75rem 1rem;
    border-radius: 4px;
    text-align: center;
    min-width: 80px;
    flex-shrink: 0;
}
.tribe-events-calendar-list__event-date-tag-month {
    font-family: var(--sp-font-display) !important;
    font-size: 0.6875rem !important;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    display: block;
}
.tribe-events-calendar-list__event-date-tag-daynum {
    font-family: var(--sp-font-display) !important;
    font-size: 2rem !important;
    font-weight: 700;
    display: block;
    line-height: 1;
}

/* Event title in list */
.tribe-events-calendar-list__event-title {
    font-family: var(--sp-font-display) !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.tribe-events-calendar-list__event-title a {
    color: var(--sp-green-dark) !important;
    text-decoration: none !important;
}
.tribe-events-calendar-list__event-title a:hover {
    color: var(--sp-gold) !important;
}

/* Featured event badge */
.tribe-events-calendar-list__event-row--featured .tribe-events-calendar-list__event-date-tag {
    background: var(--sp-gold);
    color: var(--sp-green-dark);
}

/* Event meta (time, venue) */
.tribe-events-calendar-list__event-datetime {
    font-family: var(--sp-font-display) !important;
    font-size: 0.75rem !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sp-gold) !important;
}

/* ==========================================================================
   SINGLE EVENT PAGE
   ========================================================================== */

.tribe-events-single {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

/* Single event title */
.tribe-events-single-event-title {
    font-family: var(--sp-font-display) !important;
    font-size: clamp(2rem, 4vw, 3.2rem) !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--sp-green-dark);
    line-height: 1.05;
    margin-bottom: 1.5rem;
}

/* Featured image */
.tribe-events-event-image {
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 2rem;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}
.tribe-events-event-image img {
    width: 100%;
    height: auto;
}

/* Event meta details block */
.tribe-events-schedule,
.tribe-events-meta-group {
    background: var(--sp-white);
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 6px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.tribe-events-schedule h2,
.tribe-events-meta-group .tribe-events-single-section-title {
    font-family: var(--sp-font-display) !important;
    font-size: 0.875rem !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--sp-gold);
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(0,0,0,0.06);
}

/* Date & time display */
.tribe-events-schedule .tribe-events-abbr {
    font-family: var(--sp-font-display) !important;
    font-weight: 600;
    font-size: 1.125rem;
    color: var(--sp-green-dark);
}

/* Venue details */
.tribe-venue {
    font-size: 1rem;
    color: var(--sp-text);
}
.tribe-venue a {
    color: var(--sp-green-dark);
    text-decoration: underline;
    text-decoration-color: var(--sp-gold);
    text-underline-offset: 3px;
}

/* Event description */
.tribe-events-single-event-description {
    font-size: 1.0625rem;
    line-height: 1.75;
    color: var(--sp-text);
    margin: 2rem 0;
}
.tribe-events-single-event-description h2,
.tribe-events-single-event-description h3 {
    margin-top: 2rem;
}

/* Cost / ticket info */
.tribe-events-event-cost {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--sp-font-display);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--sp-green-dark);
    background: rgba(196, 163, 90, 0.12);
    padding: 0.75rem 1.5rem;
    border-radius: 4px;
    border: 1px solid rgba(196, 163, 90, 0.3);
    margin-bottom: 1.5rem;
}

/* Back link */
.tribe-events-back a {
    font-family: var(--sp-font-display) !important;
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--sp-green-dark);
    padding: 0.6rem 1.5rem;
    border: 2px solid var(--sp-green-dark);
    border-radius: 3px;
    text-decoration: none !important;
    transition: var(--sp-transition);
}
.tribe-events-back a:hover {
    background: var(--sp-green-dark);
    color: var(--sp-cream);
}

/* Prev/Next event navigation */
.tribe-events-sub-nav {
    display: flex;
    justify-content: space-between;
    padding-top: 2rem;
    border-top: 1px solid rgba(0,0,0,0.08);
    margin-top: 3rem;
}
.tribe-events-sub-nav a {
    font-family: var(--sp-font-display) !important;
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sp-green-dark) !important;
    text-decoration: none !important;
}
.tribe-events-sub-nav a:hover {
    color: var(--sp-gold) !important;
}

/* ==========================================================================
   EVENT MAP (if using venue with Google Maps)
   ========================================================================== */

.tribe-events-venue-map {
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    margin-top: 1.5rem;
}
.tribe-events-venue-map iframe {
    filter: saturate(0.7) contrast(1.1);
}

/* ==========================================================================
   SUBSCRIBE TO CALENDAR LINK & FOOTER
   ========================================================================== */

.tribe-events .tribe-events-c-subscribe-dropdown__button {
    font-family: var(--sp-font-display) !important;
    font-size: 0.6875rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--sp-green-dark) !important;
}
.tribe-events .tribe-events-c-subscribe-dropdown__button:hover {
    color: var(--sp-gold) !important;
}

/* "No events" message styling */
.tribe-events .tribe-events-c-messages__message {
    font-family: var(--sp-font-body) !important;
    color: var(--sp-text);
    background: rgba(196, 163, 90, 0.08);
    border: 1px solid rgba(196, 163, 90, 0.2);
    border-radius: 6px;
    padding: 1.5rem;
}

/* TEC month grid — tighter overall look */
.tribe-events-calendar-month__body {
    background: var(--sp-white);
}

/* Ensure events page background is cream, not white */
.shakespeare-events-page {
    background: var(--sp-cream);
}

/* ==========================================================================
   MOBILE RESPONSIVE
   ========================================================================== */

@media (max-width: 768px) {
    .tribe-events-calendar-list__event {
        flex-direction: column;
    }
    .tribe-events-calendar-list__event-date-tag {
        flex-direction: row;
        gap: 0.5rem;
        min-width: auto;
        align-self: flex-start;
    }
    .tribe-events-calendar-month__day {
        min-height: 60px;
    }
    .tribe-events-calendar-month__header-column-dayofweek {
        font-size: 0.625rem !important;
        letter-spacing: 0.05em !important;
    }
    .tribe-events-calendar-month__header-column {
        padding: 0.5rem 0.25rem !important;
    }
    .tribe-events-single {
        padding: 1.5rem 1rem 3rem;
    }

    /* Events content area — centered and padded on mobile */
    .shakespeare-events-content {
        padding: 1rem 1rem 3rem !important;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    /* TEC containers — add internal padding so content doesn't touch edges */
    .shakespeare-events-page .tribe-common-l-container,
    .shakespeare-events-page .tribe-events-l-container,
    .shakespeare-events-content .tribe-common-l-container,
    .shakespeare-events-content .tribe-events {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* TEC top bar (date, search, view selector) — proper spacing */
    .tribe-events .tribe-events-c-top-bar {
        padding-left: 0 !important;
        padding-right: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .tribe-events .tribe-events-c-top-bar__nav-list {
        gap: 0.25rem !important;
    }
    .tribe-events .tribe-events-header {
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* TEC events bar (search input area) — constrain */
    .tribe-events .tribe-events-c-events-bar {
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .tribe-events .tribe-events-c-events-bar__search {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* TEC event list images — constrain within padding on mobile */
    .shakespeare-events-content img,
    .shakespeare-events-page img,
    .tribe-events-calendar-list__event-featured-image img {
        max-width: 100% !important;
        height: auto !important;
        box-sizing: border-box !important;
    }

    /* TEC event list items — prevent overflow */
    .tribe-events-calendar-list__event,
    .tribe-events-calendar-list__event-row,
    .tribe-events .tribe-events-calendar-list {
        max-width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    /* TEC featured image wrapper — respect parent bounds */
    .tribe-events-calendar-list__event-featured-image-wrapper,
    .tribe-events-calendar-list__event-featured-image {
        max-width: 100% !important;
        overflow: hidden !important;
    }

    /* Events page wrapper — prevent horizontal scroll */
    .shakespeare-events-page {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }

    /* TEC calendar month grid — constrain to viewport with padding */
    .tribe-events-calendar-month {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .tribe-events-calendar-month table,
    .tribe-events-calendar-month__body,
    .tribe-events-calendar-month__header {
        max-width: 100% !important;
        table-layout: fixed !important;
    }

    /* TEC view selector icon — prevent cutoff on right */
    .tribe-events .tribe-events-c-view-selector {
        flex-shrink: 0 !important;
    }
    .tribe-events .tribe-events-c-view-selector__button {
        padding: 0.4rem 0.5rem !important;
    }

    /* TEC datepicker dropdown (month calendar popover) — constrain to screen */
    .tribe-events .tribe-events-c-top-bar__datepicker-container,
    .tribe-events .datepicker,
    .tribe-events .tribe-events-c-top-bar__datepicker {
        max-width: calc(100vw - 2rem) !important;
        left: 0 !important;
        right: auto !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }
    /* The actual datepicker popover table */
    .tribe-events .datepicker .datepicker-months,
    .tribe-events .datepicker .datepicker-days,
    .tribe-events .tribe-events-c-top-bar__datepicker .tribe-events-calendar-month {
        max-width: calc(100vw - 2rem) !important;
        overflow: hidden !important;
    }

    /* Calendar grid — prevent horizontal overflow */
    .tribe-events-calendar-month {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Event titles in calendar — smaller on mobile */
    .tribe-events-calendar-month__calendar-event *,
    .tribe-events-calendar-month__calendar-event a {
        font-size: 0.625rem !important;
        padding: 2px 3px !important;
    }

    /* Day numbers smaller */
    .tribe-events-calendar-month__day-date {
        font-size: 0.8125rem !important;
    }

    /* TEC toolbar — stack on mobile */
    .tribe-events .tribe-events-header {
        margin-bottom: 1rem;
    }
    .tribe-events-c-top-bar__datepicker-button {
        font-size: 1.125rem !important;
    }

    /* Single event page — smaller offset on mobile */
    .shakespeare-single-event-page {
        padding-top: 70px !important;
    }
    .admin-bar .shakespeare-single-event-page {
        padding-top: 116px !important;
    }

    /* Event meta bar — tighter */
    .shakespeare-event-meta-bar {
        padding: 1rem !important;
    }
}

/* ==========================================================================
   EVENTS PAGE HEADER — Branded title bar for archive views
   ========================================================================== */

/* NOTE: padding-top is set in shakespeare-design.css to handle
   fixed header offset — do NOT use shorthand padding here as
   it would overwrite the padding-top offset value. */
.shakespeare-events-page-header {
    background: var(--sp-green-dark);
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    padding-bottom: clamp(1rem, 2vw, 1.5rem);
    text-align: center;
}
.shakespeare-events-page-title {
    font-family: var(--sp-font-display) !important;
    font-size: clamp(2.2rem, 5vw, 3.5rem) !important;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--sp-cream);
    line-height: 1.05;
    margin-bottom: 0.75rem;
}
.shakespeare-events-page-subtitle {
    font-family: var(--sp-font-serif);
    font-style: italic;
    font-size: 1.125rem;
    color: var(--sp-gold-light, #D4B96E);
    margin: 0;
}

.shakespeare-events-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem 1.5rem 4rem;
    box-sizing: border-box;
}

/* Ensure no large top margin from TEC's internal wrappers */
.shakespeare-events-content > .tribe-events,
.shakespeare-events-content > .tribe-common {
    margin-top: 0 !important;
}

/* Tighten the events page header spacing on archive */
.shakespeare-events-page .shakespeare-events-page-header {
    padding-bottom: clamp(1.5rem, 3vw, 2rem);
}
.shakespeare-events-page .shakespeare-divider {
    margin-bottom: 0;
    background: var(--sp-cream);
}
/* Events page main — no top margin, banner handles offset */
.shakespeare-events-page {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Single event page — needs top offset since no green banner */
.shakespeare-single-event-page {
    padding-top: 100px !important;
    background: var(--sp-cream);
}
.admin-bar .shakespeare-single-event-page {
    padding-top: 132px !important;
}
/* Single event content wrapper */
.shakespeare-single-event-page .shakespeare-events-content {
    max-width: 900px;
    padding: 0 1.5rem 4rem;
}

/* ==========================================================================
   SINGLE EVENT — Meta bar & details grid
   ========================================================================== */

.shakespeare-event-meta-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-bottom: 2rem;
    padding: 1.25rem 1.5rem;
    background: var(--sp-white, #fff);
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 6px;
}
.shakespeare-event-meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.shakespeare-event-meta-item .meta-label {
    font-family: var(--sp-font-display);
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--sp-gold);
}
.shakespeare-event-meta-item .meta-value {
    font-size: 1rem;
    font-weight: 500;
    color: var(--sp-green-dark);
}
.shakespeare-event-meta-item .meta-value--cost {
    font-family: var(--sp-font-display);
    font-size: 1.25rem;
    font-weight: 700;
}

.shakespeare-event-hero-image {
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
    margin-bottom: 2rem;
}
.shakespeare-event-hero-image img {
    width: 100%;
    height: auto;
    display: block;
}

.shakespeare-event-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
    margin: 2rem 0;
}
.shakespeare-event-detail-block {
    background: var(--sp-white, #fff);
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 6px;
    padding: 1.5rem;
}
.shakespeare-event-detail-block h3 {
    font-family: var(--sp-font-display) !important;
    font-size: 0.875rem !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--sp-gold);
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(0,0,0,0.06);
}

.shakespeare-event-cta {
    text-align: center;
    margin: 2.5rem 0;
}

.shakespeare-event-nav {
    display: flex;
    justify-content: space-between;
    padding-top: 2rem;
    border-top: 1px solid rgba(0,0,0,0.08);
    margin-top: 3rem;
}

@media (max-width: 768px) {
    .shakespeare-event-meta-bar {
        flex-direction: column;
        gap: 1rem;
    }
}

/* ==========================================================================
   PRINT STYLES
   ========================================================================== */

@media print {
    .shakespeare-floating-cta,
    .tribe-events-c-nav,
    .tribe-events-c-view-selector {
        display: none !important;
    }
    .tribe-events-single {
        max-width: 100%;
        padding: 0;
    }
}
