/*
Theme Name: RISE Comedy 2026
Theme URI: https://risecomedy.com/
Description: RISE Comedy 2026 — standalone child theme of Hello Elementor. PHP-rendered header, footer, and page templates; Elementor manages page/post content only.
Author: Doc Wilder
Author URI: https://risecomedy.com/
Template: hello-elementor
Version: 2026.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/


/* ============================================================
   RISE COMEDY 2026 DESIGN TOKENS
   Update this block each year / rebrand.
   Everything else references these variables.
   ============================================================ */

:root {

    /* --- Brand colors --- */
    --rise-primary:          #7F38FE;    /* purple — nav active, buttons, CTAs */
    --rise-primary-hover:    #AB00FF;    /* brighter purple — hover state */
    --rise-secondary:        #3EDD99;    /* mint green — footer bg, accents, free shows */
    --rise-secondary-dark:   #2AB87D;    /* darker mint — hover on green elements */
    --rise-accent:           #B30F04;    /* red — ticket buttons, urgent CTAs */
    --rise-accent-hover:     #8C0B03;    /* dark red — hover on red buttons */
    --rise-gradient:         linear-gradient(115deg, #4E00FF 0%, #7F38FE 45%, #3EDD99 100%);

    /* --- Dark backgrounds (header, nav, dark sections) --- */
    --rise-bg-darkest:       #000000;    /* html body base */
    --rise-bg-dark:          #0E0E18;    /* near-black ink — header, dark sections */
    --rise-bg-deep:          #1C1C29;    /* slightly lighter dark — nav panel bg */
    --rise-bg-mid:           #2D2D4A;    /* mid-dark — event box bg */

    /* --- Light/content backgrounds --- */
    --rise-bg-content:       #FFFFFF;    /* page content */
    --rise-bg-warm:          #F9F9FF;    /* near-white with purple tint */
    --rise-bg-purple-tint:   #F5F0FF;    /* light lavender — callout sections */
    --rise-bg-highlight-bar: #EFD4FF;    /* soft purple — highlight bars */

    /* --- Text colors --- */
    --rise-text-dark:        #1C1C29;    /* dark body text on light bg */
    --rise-text-mid:         #54595F;    /* secondary text / meta */
    --rise-text-muted:       #8080A0;    /* muted / placeholder */
    --rise-text-light:       #D0C8FF;    /* light text on dark bg */
    --rise-text-on-dark:     #FFFFFF;    /* headings/text on dark sections */

    /* --- Borders --- */
    --rise-border:           #C8B8FF;    /* standard light border */
    --rise-border-dark:      #3A3A5C;    /* border on dark sections */
    --rise-border-faint:     #E8E0FF;    /* subtle divider */

    /* --- Typography --- */
    --rise-font-display:     'Bebas Neue', Impact, 'Arial Narrow', sans-serif;
    --rise-font-heading:     'Archivo', 'Helvetica Neue', Arial, sans-serif;
    --rise-font-body:        'Open Sans', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;

    /* --- Type scale --- */
    --rise-fs-display:  64px;
    --rise-fs-h1:       44px;
    --rise-fs-h2:       34px;
    --rise-fs-h3:       26px;
    --rise-fs-h4:       20px;
    --rise-fs-h5:       18px;
    --rise-fs-body:     17px;
    --rise-fs-small:    14px;
    --rise-fs-caption:  13px;
    --rise-fs-nav:      13px;
    --rise-fs-button:   14px;
    --rise-fs-body-mobile: 15px;

    /* --- Line heights --- */
    --rise-lh-tight:   1.1;
    --rise-lh-snug:    1.25;
    --rise-lh-normal:  1.55;
    --rise-lh-loose:   1.7;

    /* --- Letter spacing --- */
    --rise-ls-caps:    0.08em;
    --rise-ls-nav:     0.06em;
    --rise-ls-display: 0.02em;

    /* --- Font weights --- */
    --rise-fw-regular:  400;
    --rise-fw-medium:   500;
    --rise-fw-semibold: 600;
    --rise-fw-bold:     700;
    --rise-fw-heavy:    800;

    /* --- Layout --- */
    --rise-content-max:    1200px;
    --rise-content-wide:   1440px;
    --rise-content-narrow: 860px;
    --rise-gutter:         24px;
    --rise-section-y:      80px;
    --rise-section-y-sm:   48px;
    --rise-header-h:       72px;

    /* --- Spacing scale (4px base) --- */
    --rise-space-1:  4px;
    --rise-space-2:  8px;
    --rise-space-3:  12px;
    --rise-space-4:  16px;
    --rise-space-5:  24px;
    --rise-space-6:  32px;
    --rise-space-7:  48px;
    --rise-space-8:  64px;
    --rise-space-9:  96px;

    /* --- Radii --- */
    --rise-radius-sm:   4px;
    --rise-radius-md:   8px;
    --rise-radius-lg:   16px;
    --rise-radius-xl:   24px;
    --rise-radius-pill: 999px;

    /* --- Shadows --- */
    --rise-shadow-sm:   0 1px 2px rgba(14,14,24,0.08);
    --rise-shadow-md:   0 4px 16px rgba(14,14,24,0.14);
    --rise-shadow-lg:   0 12px 40px rgba(14,14,24,0.22);
    --rise-shadow-glow: 0 0 28px rgba(127,56,254,0.35);

    /* --- Motion --- */
    --rise-ease:      cubic-bezier(0.2, 0.7, 0.2, 1);
    --rise-dur-fast:  120ms;
    --rise-dur-base:  200ms;
    --rise-dur-slow:  400ms;

    /* --- Semantic aliases --- */
    --color-bg:         var(--rise-bg-darkest);
    --color-bg-panel:   var(--rise-bg-dark);
    --color-bg-content: var(--rise-bg-content);
    --color-fg:         var(--rise-text-dark);
    --color-link:       var(--rise-primary);
    --color-link-hover: var(--rise-primary-hover);
    --color-cta:        var(--rise-accent);
    --color-cta-hover:  var(--rise-accent-hover);
    --color-border:     var(--rise-border);
}


/* ============================================================
   GLOBAL BASELINE
   ============================================================ */

html { box-sizing: border-box; background-color: #000; }
*, *::before, *::after { box-sizing: inherit; }

body {
    background: var(--rise-bg-content);
    color: var(--rise-text-dark);
    font-family: var(--rise-font-body);
    font-size: var(--rise-fs-body);
    line-height: var(--rise-lh-normal);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Text selection */
::selection { background-color: var(--rise-primary); color: #fff; }

/* Focus ring */
:focus-visible { outline: 2px solid var(--rise-primary); outline-offset: 2px; }

/* Scrollbar (Webkit) */
::-webkit-scrollbar              { width: 8px; }
::-webkit-scrollbar-track        { background: var(--rise-bg-dark); }
::-webkit-scrollbar-thumb        { background: var(--rise-primary); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover  { background: var(--rise-primary-hover); }

/* Links in WP content */
.entry-content a,
.wp-block-post-content a {
    color: var(--rise-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.entry-content a:hover,
.wp-block-post-content a:hover { color: var(--rise-primary-hover); }
p a { font-weight: bold; }

/* Body background by template */
body.tmpl-home {
    background: var(--rise-bg-content) !important;
}
body.tmpl-page,
body.tmpl-event {
    background-color: var(--rise-bg-content) !important;
}
body.tmpl-post {
    background-color: var(--rise-bg-content) !important;
}
body.tmpl-archive,
body.tmpl-search,
body.tmpl-404 {
    background-color: var(--rise-bg-content) !important;
}
/* Today's Classes — dark background override */
body.page-todays-classes {
    background-color: var(--rise-bg-deep) !important;
}

/* Prevent scroll when mobile nav open */
body.rise-nav-open { overflow: hidden; }

/* Screen-reader only utility */
.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* alignwide fix */
.alignwide {
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* ============================================================
   SKIP LINK
   ============================================================ */

.skip-link {
    position: absolute;
    top: -40px; left: 0;
    background: var(--rise-accent);
    color: #fff;
    font-family: var(--rise-font-body);
    font-size: 14px;
    font-weight: 700;
    padding: 8px 16px;
    z-index: 9999;
    text-decoration: none;
    border-radius: 0 0 var(--rise-radius-md) 0;
    transition: top var(--rise-dur-base);
}
.skip-link:focus { top: 0; }


/* ============================================================
   BEBAS NEUE — bold weight for heading / display contexts
   Google Fonts only ships Bebas Neue 400, so the browser
   synthesises bold. Declaring 700 + !important here forces
   that synthesis even when Elementor outputs inline
   font-weight: 500 on its heading widgets.
   ============================================================ */
.rise-page-banner-title,
.rise-section-heading,
.rise-post-card-title,
.rise-404-code,
.rise-404-title,
.rise-footer-col-head,
.rise-paper h1,
.rise-paper h2,
.rise-paper h3,
.rise-paper h4,
.rcc-template-title .entry-title {
    font-weight: 700 !important;
}


/* ============================================================
   HEADER / NAV
   ============================================================ */

.rise-header {
    position: sticky;
    top: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--rise-bg-dark);
    border-bottom: 2px solid rgba(127,56,254,0.25);
    padding: 0 24px;
    height: var(--rise-header-h);
}

/* WP admin bar is 32px tall (46px on mobile); push sticky header down so it
   doesn't slide behind the bar when logged in. */
body.admin-bar .rise-header { top: 32px; }
@media screen and (max-width: 782px) {
    body.admin-bar .rise-header { top: 46px; }
}

/* Logo / brand */
.rise-brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
    transition: opacity var(--rise-dur-base);
}
.rise-brand:hover { opacity: 0.85; }
.rise-brand img {
    height: 48px;
    width: auto;
    display: block;
    /* Prevent CLS while image loads — browser uses this to reserve space.
       The PHP get_custom_logo filter in functions.php writes the real
       intrinsic width/height; this is the CSS-side safety net. */
    aspect-ratio: auto 200 / 48;
}
/* Text fallback if no image logo */
.rise-brand-text {
    font-family: var(--rise-font-display);
    font-size: 22px;
    font-weight: 700 !important;
    letter-spacing: var(--rise-ls-display);
    text-transform: uppercase;
    color: var(--rise-secondary);
    line-height: 1;
}

/* "RISE Comedy" nav item — always bold regardless of active state or
   any Elementor inline-style overrides.  WordPress adds .menu-item-home
   to whichever item links to the site root, which is the RISE Comedy link. */
.rise-nav .menu-item-home > a,
.rise-mobile-nav .menu-item-home > a {
    font-weight: 700 !important;
}

/* Desktop nav wrapper */
#rise-desktop-nav {
    flex: 1;
    min-width: 0;
}

/* Desktop nav */
.rise-nav {
    display: flex;
    gap: 2px;
    flex: 1;
    justify-content: flex-start;
    list-style: none;
    margin: 0;
    padding: 0;
}
.rise-nav li { position: relative; min-width: 0; }
.rise-nav > li > a {
    font-family: var(--rise-font-body);
    font-weight: 700;
    font-size: var(--rise-fs-nav);
    letter-spacing: var(--rise-ls-nav);
    text-transform: uppercase;
    color: #fff;
    text-decoration: none;
    padding: 10px 12px;
    border-radius: var(--rise-radius-md);
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    transition: color var(--rise-dur-base) var(--rise-ease),
                background var(--rise-dur-base) var(--rise-ease);
}
.rise-nav > li > a:hover { color: var(--rise-secondary); }
/* Short label wrapper — hides extra words at narrow widths */
.rise-nav-extra::before { content: '\00a0'; }
.rise-nav li.current-menu-item > a,
.rise-nav li.current-menu-ancestor > a {
    background: var(--rise-primary);
    color: #fff;
}

/* Dropdown caret */
.rise-nav li.menu-item-has-children > a {
    padding-right: 26px;
}
.rise-nav li.menu-item-has-children > a::after {
    content: '';
    position: absolute;
    right: 9px;
    top: 50%;
    transform: translateY(-50%);
    width: 0; height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    pointer-events: none;
}

/* Dropdown sub-menu */
.rise-nav .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: var(--rise-bg-deep);
    border: 1px solid rgba(127,56,254,0.25);
    border-radius: var(--rise-radius-md);
    box-shadow: var(--rise-shadow-lg);
    list-style: none;
    margin: 0;
    padding: 6px 0;
    z-index: 300;
}
/* Invisible gap bridge */
.rise-nav .sub-menu::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 0; right: 0;
    height: 8px;
}
.rise-nav li:hover > .sub-menu,
.rise-nav li:focus-within > .sub-menu { display: block; }
.rise-nav .sub-menu > li > a {
    border-radius: 0;
    padding: 9px 18px;
    font-size: 13px;
    display: block;
    color: var(--rise-text-light);
}
.rise-nav .sub-menu > li > a:hover {
    background: var(--rise-bg-mid);
    color: var(--rise-secondary);
}

/* Second-level fly-out */
.rise-nav .sub-menu .sub-menu {
    top: -6px;
    left: 100%;
    margin-top: 0;
}
.rise-nav .sub-menu .sub-menu::before {
    top: 0; left: -8px; right: auto;
    width: 8px; height: 100%;
}

/* Header search */
.rise-header-search { display: flex; align-items: center; flex-shrink: 0; }
.rise-header-search input[type="search"] {
    appearance: none;
    background: rgba(255,255,255,0.92);
    border: none;
    border-radius: var(--rise-radius-pill);
    padding: 8px 16px;
    font-family: var(--rise-font-body);
    font-size: 14px;
    color: var(--rise-text-dark);
    width: 130px;
    transition: width var(--rise-dur-slow) var(--rise-ease);
}
.rise-header-search input[type="search"]:focus {
    outline: none;
    width: 200px;
    box-shadow: 0 0 0 2px var(--rise-primary);
}

/* Hamburger */
.rise-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    background: transparent;
    border: 1px solid rgba(127,56,254,0.4);
    border-radius: var(--rise-radius-md);
    cursor: pointer;
    padding: 8px;
    flex-shrink: 0;
    transition: border-color var(--rise-dur-base);
}
.rise-hamburger:hover { border-color: var(--rise-primary); }
.rise-hamburger span {
    display: block;
    width: 20px;
    height: 2px;
    background: #fff;
    border-radius: 2px;
    transition: transform var(--rise-dur-base) var(--rise-ease),
                opacity var(--rise-dur-base) var(--rise-ease);
    transform-origin: center;
}
.rise-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.rise-hamburger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.rise-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Elementor sticky header override — our header handles stickiness */
div.elementor-location-header {
    position: sticky;
    top: 0;
    z-index: 999;
}

/* Elementor mobile toggle fix */
.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,
.elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close,
.sb-item-author-date { display: none !important; }

nav.elementor-nav-menu--dropdown { top: 5px !important; }


/* ============================================================
   MOBILE FULL-SCREEN OVERLAY
   ============================================================ */

.rise-mobile-overlay {
    position: fixed;
    inset: 0;
    z-index: 500;
    background: var(--rise-bg-dark);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    animation: rise-overlay-in var(--rise-dur-slow) var(--rise-ease);
}
.rise-mobile-overlay[hidden] { display: none; }

@keyframes rise-overlay-in {
    from { opacity: 0; transform: scale(0.97); }
    to   { opacity: 1; transform: scale(1); }
}

.rise-mobile-close {
    position: absolute;
    top: 20px; right: 20px;
    background: transparent;
    border: 1px solid rgba(127,56,254,0.4);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    width: 44px; height: 44px;
    border-radius: var(--rise-radius-md);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color var(--rise-dur-base), color var(--rise-dur-base);
}
.rise-mobile-close:hover { border-color: var(--rise-primary); color: var(--rise-secondary); }

.rise-mobile-nav { width: 100%; max-width: 420px; text-align: center; }
.rise-mobile-nav .menu {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.rise-mobile-nav .menu-item a {
    display: block;
    font-family: var(--rise-font-display);
    font-size: 32px;
    letter-spacing: var(--rise-ls-display);
    color: #fff;
    text-decoration: none;
    padding: 12px 20px;
    border-radius: var(--rise-radius-md);
    transition: background var(--rise-dur-base) var(--rise-ease),
                color var(--rise-dur-base) var(--rise-ease);
}
.rise-mobile-nav .menu-item a:hover { color: var(--rise-secondary); background: rgba(127,56,254,0.1); }
.rise-mobile-nav .menu-item.current-menu-item a { color: var(--rise-secondary); }
/* Mobile sub-menus */
.rise-mobile-nav .sub-menu {
    display: flex;
    flex-direction: column;
    list-style: none;
    margin: 0; padding: 0 0 6px;
    gap: 0;
}
.rise-mobile-nav .sub-menu .menu-item a {
    font-family: var(--rise-font-body);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: var(--rise-ls-nav);
    text-transform: uppercase;
    padding: 7px 24px;
    opacity: 0.8;
    border-radius: var(--rise-radius-sm);
}
.rise-mobile-nav .sub-menu .menu-item a:hover {
    opacity: 1;
    color: var(--rise-secondary);
    background: rgba(127,56,254,0.1);
}

.rise-overlay-brand {
    position: absolute;
    top: 18px; left: 24px;
    opacity: 0.7;
}

/* Mobile overlay search */
.rise-mobile-search {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 380px;
    margin: 0 0 28px;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(127,56,254,0.4);
    border-radius: var(--rise-radius-pill);
    overflow: hidden;
}
.rise-mobile-search input[type="search"] {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    padding: 11px 16px;
    font-family: var(--rise-font-body);
    font-size: 15px;
    color: #fff;
    -webkit-appearance: none;
}
.rise-mobile-search input[type="search"]::placeholder { color: rgba(255,255,255,0.5); }
.rise-mobile-search button[type="submit"] {
    background: transparent;
    border: none;
    padding: 11px 16px;
    color: var(--rise-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: color var(--rise-dur-base);
}
.rise-mobile-search button[type="submit"]:hover { color: #fff; }


/* ============================================================
   PAGE BANNER (subpage title band)
   ============================================================ */

.rise-page-banner {
    background: var(--rise-bg-dark);
    padding: 32px 24px;
    text-align: center;
    border-bottom: 2px solid rgba(127,56,254,0.2);
}
.rise-page-banner-title {
    font-family: var(--rise-font-display);
    color: #ffffff;
    font-size: var(--rise-fs-h1);
    margin: 0;
    letter-spacing: var(--rise-ls-display);
    line-height: var(--rise-lh-snug);
    text-transform: uppercase;
}


/* ============================================================
   MAIN / PAPER LAYOUT (subpages)
   ============================================================ */

.rise-main { min-height: 60vh; }
.rise-main--paper { padding: 48px var(--rise-gutter) 48px; }

.rise-paper {
    background: var(--rise-bg-content);
    color: var(--rise-text-dark);
    max-width: var(--rise-content-max);
    margin: 0 auto;
    padding: 32px 44px 48px;
    border-radius: var(--rise-radius-sm);
    box-shadow: 0 20px 60px rgba(14,14,24,0.1);
}
.rise-paper h1,
.rise-paper h2,
.rise-paper h3,
.rise-paper h4 { font-family: var(--rise-font-display); color: var(--rise-bg-dark); }
.rise-paper h1 { font-size: var(--rise-fs-h1); margin: 0 0 0.5em; }
.rise-paper h2 { font-size: var(--rise-fs-h2); margin: 24px 0 14px; }
.rise-paper h3 { font-size: var(--rise-fs-h3); margin: 18px 0 10px; }
.rise-paper p  { font-family: var(--rise-font-body); color: var(--rise-text-dark); line-height: 1.65; }
.rise-paper a:not(.rise-btn)  { color: var(--rise-primary); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.rise-paper a:not(.rise-btn):hover { color: var(--rise-primary-hover); }
.rise-paper ul,
.rise-paper ol { margin: 0 0 22px; padding-left: 24px; }
.rise-paper li { margin-bottom: 10px; line-height: 1.6; }

/* Horizontal rule used inside paper content */
.rise-rule {
    border: none;
    border-top: 1px solid var(--rise-border);
    margin: 28px 0;
}

/* Section heading inside special-events / recurring templates */
.rise-section-heading {
    font-family: var(--rise-font-display);
    font-size: var(--rise-fs-h2);
    color: var(--rise-bg-dark);
    background: var(--rise-bg-purple-tint);
    border-left: 4px solid var(--rise-primary);
    margin: 36px 0 16px;
    padding: 10px 18px;
    border-radius: 0 var(--rise-radius-sm) var(--rise-radius-sm) 0;
}

/* Show description excerpt on recurring category pages */
.rise-show-description {
    font-family: var(--rise-font-body);
    font-size: 16px;
    color: var(--rise-text-mid);
    line-height: 1.7;
    margin-bottom: 16px;
}


/* ============================================================
   FESTIVALS PAGE — card grid
   ============================================================ */

.rise-festivals-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 28px;
    margin: 32px 0;
}

.rise-festival-card {
    display: flex;
    flex-direction: column;
    background: var(--rise-bg-purple-tint);
    border: 1px solid var(--rise-border);
    border-radius: var(--rise-radius-lg);
    overflow: hidden;
    transition: box-shadow var(--rise-dur-base) var(--rise-ease),
                transform var(--rise-dur-base) var(--rise-ease);
}
.rise-festival-card:hover {
    box-shadow: var(--rise-shadow-lg);
    transform: translateY(-3px);
}

.rise-festival-card__icon {
    font-size: 48px;
    text-align: center;
    padding: 28px 24px 0;
    line-height: 1;
}

.rise-festival-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 16px 24px 28px;
    gap: 12px;
}

.rise-festival-card__title {
    font-family: var(--rise-font-display);
    font-size: var(--rise-fs-h3);
    font-weight: 700;
    color: var(--rise-primary);
    letter-spacing: var(--rise-ls-display);
    text-transform: uppercase;
    margin: 0;
    line-height: var(--rise-lh-snug);
}

.rise-festival-card__desc {
    font-family: var(--rise-font-body);
    font-size: 15px;
    color: var(--rise-text-dark);
    line-height: var(--rise-lh-normal);
    margin: 0;
    flex: 1;
}

.rise-festival-card .rise-btn {
    align-self: flex-start;
    margin-top: auto;
}

@media (max-width: 640px) {
    .rise-festivals-grid { grid-template-columns: 1fr; }
}


/* ============================================================
   POST NAVIGATION
   ============================================================ */

.rise-post-nav {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    margin-top: 40px;
    padding-top: 28px;
    border-top: 2px solid var(--rise-border);
}
.rise-post-nav-prev,
.rise-post-nav-next { max-width: 46%; }
.rise-post-nav-next { text-align: right; margin-left: auto; }
.rise-post-nav a {
    display: flex;
    flex-direction: column;
    gap: 5px;
    text-decoration: none;
    color: var(--rise-primary);
    font-family: var(--rise-font-heading);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
    transition: color var(--rise-dur-base);
}
.rise-post-nav a:hover { color: var(--rise-primary-hover); }
.rise-post-nav .nav-label {
    font-family: var(--rise-font-body);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rise-text-mid);
}

/* Post meta */
.rise-post-meta {
    font-family: var(--rise-font-body);
    font-size: var(--rise-fs-small);
    color: var(--rise-text-mid);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--rise-border-faint);
}

/* Highlight bar */
.rise-highlight-bar {
    background: var(--rise-bg-highlight-bar);
    color: var(--rise-text-dark);
    padding: 12px 18px;
    border-radius: var(--rise-radius-md);
    font-family: var(--rise-font-body);
    font-weight: 600;
    margin: 18px 0 22px;
}

/* Accent divider */
.rise-accent-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: var(--rise-content-max);
    margin: 40px auto;
    padding: 0 var(--rise-gutter);
}
.rise-accent-divider::before,
.rise-accent-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--rise-border);
    opacity: 0.6;
}
.rise-paper .rise-accent-divider { padding: 0; margin: 32px 0; }


/* ============================================================
   SOCIAL ROW
   ============================================================ */

.rise-social-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 16px 0;
}
.rise-social {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--rise-bg-mid);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: background var(--rise-dur-base) var(--rise-ease),
                transform var(--rise-dur-base) var(--rise-ease);
}
.rise-social:hover { background: var(--rise-primary); transform: translateY(-2px); }
.rise-social svg { display: block; }


/* ============================================================
   BUTTONS
   ============================================================ */

.rise-btn {
    font-family: var(--rise-font-heading);
    font-weight: 700;
    font-size: var(--rise-fs-button);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 12px 22px;
    border-radius: var(--rise-radius-md);
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background var(--rise-dur-base) var(--rise-ease),
                color var(--rise-dur-base) var(--rise-ease),
                border-color var(--rise-dur-base) var(--rise-ease),
                transform var(--rise-dur-fast) var(--rise-ease);
}
.rise-btn:active { transform: scale(0.97); }
.rise-btn-primary { background: var(--rise-primary); color: #fff; border-color: var(--rise-primary); }
.rise-btn-primary:hover,
.rise-btn-primary:focus { background: var(--rise-primary-hover); border-color: var(--rise-primary-hover); color: #fff; }
.rise-btn-tix { background: var(--rise-accent); color: #fff; border-color: var(--rise-accent); }
.rise-btn-tix:hover,
.rise-btn-tix:focus { background: var(--rise-accent-hover); border-color: var(--rise-accent-hover); color: #fff; }
.rise-btn-green { background: var(--rise-secondary); color: var(--rise-bg-dark); border-color: var(--rise-secondary); }
.rise-btn-green:hover,
.rise-btn-green:focus { background: var(--rise-secondary-dark); border-color: var(--rise-secondary-dark); color: var(--rise-bg-dark); }



/* ============================================================
   FOOTER
   ============================================================ */

.rise-footer {
    background: var(--rise-secondary);
    color: var(--rise-bg-dark);
    padding: 48px 24px 0;
    margin-top: 0;
    border-top: 3px solid #fff;
    /* Defer rendering of the footer until it's near the viewport.
       contain-intrinsic-size gives the browser a size estimate so
       the scrollbar height stays stable (CLS prevention). */
    content-visibility: auto;
    contain-intrinsic-size: 0 380px;
}
.rise-footer-inner {
    max-width: var(--rise-content-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 32px;
}
.rise-footer-col-head {
    font-family: var(--rise-font-display);
    color: var(--rise-bg-dark);
    font-size: 18px;
    letter-spacing: var(--rise-ls-display);
    text-transform: uppercase;
    margin: 0 0 12px;
    display: block;
}
.rise-footer-tag {
    font-family: var(--rise-font-body);
    font-size: 14px;
    font-weight: 600;
    margin: 10px 0 6px;
    color: var(--rise-bg-dark);
}
.rise-footer-fine {
    font-family: var(--rise-font-body);
    font-size: 12px;
    line-height: 1.5;
    opacity: 0.8;
    margin: 0;
}
.rise-footer-col ul { list-style: none; padding: 0; margin: 0; }
.rise-footer-col li { margin-bottom: 7px; }
.rise-footer-col a {
    font-family: var(--rise-font-body);
    font-size: 14px;
    color: var(--rise-bg-dark);
    text-decoration: none;
    font-weight: 600;
    transition: opacity var(--rise-dur-base) var(--rise-ease);
}
.rise-footer-col a:hover { opacity: 0.7; }
.rise-footer-logo { max-height: 60px; width: auto; display: block; margin-bottom: 8px; }
.rise-footer-bottom {
    max-width: var(--rise-content-max);
    margin: 32px auto 0;
    padding: 16px 0 20px;
    border-top: 1px solid rgba(14,14,24,0.15);
    font-family: var(--rise-font-body);
    font-size: 12px;
    line-height: 1.7;
    text-align: center;
    color: var(--rise-bg-dark);
}
.rise-footer-bottom p { margin: 0 0 4px; }
.rise-footer-bottom a { color: var(--rise-bg-dark); text-decoration: underline; font-weight: 700; }
.rise-footer-bottom a:hover { opacity: 0.7; }
/* Kayak badge in footer */
.rise-footer-kayak { margin: 10px 0; display: inline-block; }
.rise-footer-kayak img { height: 80px; width: auto; }


/* ============================================================
   404 PAGE
   ============================================================ */

.rise-404 {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 80px 24px;
    background: var(--rise-bg-dark);
}
.rise-404-code {
    font-family: var(--rise-font-display);
    font-size: 120px;
    color: var(--rise-primary);
    line-height: 1;
    margin: 0 0 16px;
    opacity: 0.6;
}
.rise-404-title {
    font-family: var(--rise-font-display);
    font-size: var(--rise-fs-h2);
    color: #fff;
    letter-spacing: var(--rise-ls-display);
    text-transform: uppercase;
    margin: 0 0 12px;
}
.rise-404-body { color: rgba(255,255,255,0.7); max-width: 44ch; margin: 0 0 28px; }


/* ============================================================
   ARCHIVE / SEARCH RESULTS
   ============================================================ */

.rise-archive-wrap {
    max-width: var(--rise-content-max);
    margin: 0 auto;
    padding: 40px var(--rise-gutter) 80px;
}
.rise-archive-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
    margin-bottom: 40px;
}
.rise-post-card {
    background: var(--rise-bg-content);
    border-radius: var(--rise-radius-lg);
    overflow: hidden;
    box-shadow: var(--rise-shadow-md);
    border: 1px solid var(--rise-border-faint);
    transition: transform var(--rise-dur-base) var(--rise-ease),
                box-shadow var(--rise-dur-base) var(--rise-ease);
}
.rise-post-card:hover { transform: translateY(-2px); box-shadow: var(--rise-shadow-lg); }
.rise-post-card-thumb {
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, var(--rise-bg-mid), var(--rise-bg-dark));
    overflow: hidden;
    display: block;
}
.rise-post-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rise-post-card-body { padding: 18px 20px 22px; }
.rise-post-card-meta {
    font-family: var(--rise-font-body);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rise-text-mid);
    margin-bottom: 6px;
}
.rise-post-card-title {
    font-family: var(--rise-font-display);
    font-size: 22px;
    color: var(--rise-primary);
    margin: 0 0 10px;
    line-height: 1.15;
    letter-spacing: var(--rise-ls-display);
    text-transform: uppercase;
}
.rise-post-card-title a { text-decoration: none; color: inherit; }
.rise-post-card-title a:hover { color: var(--rise-primary-hover); }
.rise-post-card-excerpt { font-size: 14px; color: var(--rise-text-dark); margin: 0 0 14px; }
.rise-read-more {
    font-family: var(--rise-font-body);
    font-size: 13px;
    color: var(--rise-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid var(--rise-primary);
    transition: color var(--rise-dur-base), border-color var(--rise-dur-base);
}
.rise-read-more:hover { color: var(--rise-primary-hover); border-bottom-color: var(--rise-primary-hover); }

/* Pagination */
.rise-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 16px 0;
}
.rise-pagination a,
.rise-pagination span {
    font-family: var(--rise-font-body);
    font-size: 14px;
    font-weight: 700;
    padding: 8px 14px;
    border: 1px solid var(--rise-border);
    border-radius: var(--rise-radius-md);
    color: var(--rise-text-dark);
    text-decoration: none;
    transition: background var(--rise-dur-base), color var(--rise-dur-base);
}
.rise-pagination a:hover { background: var(--rise-bg-purple-tint); color: var(--rise-primary); }
.rise-pagination .current { background: var(--rise-primary); border-color: var(--rise-primary); color: #fff; }

/* Search no-results */
.rise-search-no-results {
    text-align: center;
    padding: 64px 24px;
    color: var(--rise-text-mid);
}
/* Search highlighted term */
.rise-search-results mark {
    background-color: var(--rise-bg-highlight-bar);
    color: var(--rise-bg-dark);
    padding: 0 2px;
    border-radius: 2px;
}


/* ============================================================
   ELEMENTOR CONTENT OVERRIDES
   Elementor renders page/post content; these rules keep it
   on-brand inside our PHP templates.
   ============================================================ */

/* Buttons */
.elementor-button {
    background-color: var(--rise-primary);
    color: #fff;
    border-color: var(--rise-primary);
    transition: background-color var(--rise-dur-base) var(--rise-ease),
                border-color var(--rise-dur-base) var(--rise-ease);
}
.elementor-button:hover,
.elementor-button:focus {
    background-color: var(--rise-primary-hover);
    border-color: var(--rise-primary-hover);
    color: #fff;
}

/* Headings */
.elementor-widget-heading .elementor-heading-title { color: var(--rise-text-dark); }
body.tmpl-home .elementor-widget-heading .elementor-heading-title { color: inherit; }

/* Button content wrapper — inherit color from the button so dark-bg buttons
   get light text and light-bg buttons get dark text automatically */
.elementor-button-content-wrapper { color: inherit !important; text-decoration: none !important; }

/* Gravity Forms */
.gform_wrapper .gfield_label { color: var(--rise-text-dark); font-family: var(--rise-font-heading); }
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="password"],
.gform_wrapper textarea,
.gform_wrapper select {
    border: 1px solid var(--rise-border);
    background-color: #fff;
    color: var(--rise-text-dark);
}
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
    border-color: var(--rise-primary);
    outline: none;
    box-shadow: 0 0 0 2px rgba(127,56,254,0.2);
}
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper .gform_footer button[type="submit"] {
    background-color: var(--rise-accent) !important;
    color: #fff !important;
    border-color: var(--rise-accent) !important;
    font-family: var(--rise-font-heading);
    font-weight: 700;
    border-radius: var(--rise-radius-md) !important;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer button[type="submit"]:hover {
    background-color: var(--rise-accent-hover) !important;
    border-color: var(--rise-accent-hover) !important;
}
.gform_wrapper .validation_error {
    border-color: var(--rise-accent) !important;
    background-color: #fff0f0;
    color: var(--rise-accent);
}
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea { border-color: var(--rise-accent) !important; }
.gform_next_button, .gform_button { float: right; }
.gform_previous_button { float: left; }
.gform_previous_button, .gform_next_button, .gform_button {
    width: 45% !important;
    background-color: var(--rise-accent) !important;
    color: #fff;
    font-weight: bold;
    border-radius: var(--rise-radius-md) !important;
}
.gform_page_footer, .gform_footer { min-height: 50px; }
.gfield_required_asterisk::before { content: "(req'd)"; }


/* ============================================================
   TRIBE EVENTS CALENDAR STYLES
   ============================================================ */

#tribe-events-pg-template {
    max-width: 100% !important;
    padding: 0 0 40px 0 !important;
}
.tribe-common-l-container, .tribe-events-l-container {
    padding: 0 !important;
    min-height: 0 !important;
}
.tribe-events-widget-events-list__view-more { display: none; }

em.tribe-events-calendar-month__calendar-event-datetime-featured-icon,
.tribe-events .tribe-events-calendar-month__calendar-event--featured:before,
.tribe-events-calendar-month__day--past article,
.tribe-events-calendar-series-archive__container { display: none !important; }

/* Month grid cells */
.tribe-events-calendar-month__day {
    background-image: linear-gradient(white, #f3f0ff);
}
.tribe-events-calendar-month__day--current {
    background-color: #fff9e6;
    background-image: none;
}
.tribe-events-calendar-month__day--past {
    background-color: #f0f0f0;
    background-image: none;
}

/* Category-colored event tiles */
.cat_hit-and-run-musical-improv {
    background: linear-gradient(180deg, rgba(251,248,168,1) 0%, rgba(239,212,255,1) 100%);
    border: 2px solid #7F38FE !important;
}
.cat_main-stage { background-color: var(--rise-bg-purple-tint); }
.cat_hideaway-rise-comedy { background-color: #fff9f2; }
.cat_annex-green-room { background-color: #e6fff6; }
.cat_holidays-private-events, .cat_special-events { background-color: #f0f0f0; }

/* Calendar event tiles */
.tribe-events-calendar-month__events .tribe-events-calendar-month__calendar-event {
    margin: 10px !important;
    border-radius: var(--rise-radius-sm);
    padding: 10px !important;
    border: 1px solid rgba(127,56,254,0.2);
    text-align: center;
}
.tribe-events-calendar-month__calendar-event-featured-image,
.tribe-events-calendar-month__calendar-event-featured-image source,
.tribe-events-calendar-month__calendar-event-featured-image img {
    max-height: 75px;
    width: auto;
}
.tribe-events-calendar-month__calendar-event-featured-image {
    text-align: center !important;
    margin: auto !important;
}
.tribe-events-calendar-month__calendar-event-title { font-weight: bold !important; }
.tribe-events-calendar-month__calendar-event-datetime { font-style: italic; }

/* List view event rows */
.eo-eb-event-box, .tribe-events-calendar-list__event-row {
    display: block !important;
    width: 48% !important;
    padding: 10px !important;
    background: var(--rise-bg-mid);
    margin: 0 1% 30px 1% !important;
    border-radius: var(--rise-radius-md);
    color: #fff;
    float: left;
    border: 1px solid rgba(127,56,254,0.3) !important;
}
.tribe-events-calendar-list { overflow: auto !important; }

/* Upcoming events widget */
.upcoming-events div div .tribe-compatibility-container .tribe-events
.tribe-events-widget-events-list .tribe-events-widget-events-list__events
.tribe-events-widget-events-list__event-row {
    background-color: var(--rise-bg-purple-tint);
    padding: 10px;
    border-radius: var(--rise-radius-sm);
}
.upcoming-events div div .tribe-compatibility-container .tribe-events
.tribe-events-widget-events-list .tribe-events-widget-events-list__events
.tribe-events-widget-events-list__event-row
.tribe-events-widget-events-list__event-date-tag {
    background-color: var(--rise-secondary);
    border-radius: var(--rise-radius-sm);
    padding: 5px 0;
    margin-right: 10px;
    max-width: 75px;
}

h3.tribe-events-widget-events-list__event-title { font-size: 20px; font-weight: 700; font-family: var(--rise-font-heading); }
h3.tribe-events-widget-events-list__event-title a { color: var(--rise-text-dark); font-weight: 700; font-family: var(--rise-font-heading); text-decoration: none; }

/* TEC front-page v1 loop — bold show titles */
.tribe-events-loop .show-title { font-weight: 700; font-family: var(--rise-font-heading); }
.tribe-events-loop a { text-decoration: none; }

time.tribe-events-widget-events-list__event-datetime {
    font-family: "Arial", sans-serif;
    font-size: 14px;
}
time.tribe-events-widget-events-list__event-date-tag-datetime {
    font-family: "Arial", sans-serif;
    font-weight: bold;
}
.tribe-common-c-svgicon--recurring,
.tribe-common-c-svgicon--featured { display: none !important; }
.tribe-events-view-loader__dots svg, .tribe-common-c-svgicon { max-width: 12px !important; }
.tribe-events-widget-events-list__events:empty {
    content: 'No events to show in this section, please check our full calendar below!';
}
.tribe-events-widget-events-list__event-wrapper { max-width: 75%; }


/* ============================================================
   EVENT PAGE / SCHEDULING STYLES
   ============================================================ */

.event-header {
    background-color: var(--rise-secondary);
    color: var(--rise-bg-dark);
    font-family: Arial, sans-serif;
    font-weight: bold;
    text-align: center;
    display: block !important;
    -webkit-line-clamp: 2;
    font-size: 1.2em;
    padding: 5px !important;
    margin-bottom: 10px !important;
    border-radius: var(--rise-radius-md);
    min-height: 4em;
    overflow: hidden;
}
/* Higher specificity needed to beat TEC v2's own stylesheet */
.tribe-events-calendar-list__event-row .event-header a,
.eo-eb-event-box .event-header a,
.event-header a { color: var(--rise-bg-dark) !important; text-decoration: none !important; font-weight: 700; }
/* Ticket/signup button link wrappers — no underline */
.tribe-events-calendar-list__event-row a:has(.tix-button-sched),
.eo-eb-event-box a:has(.tix-button-sched),
a:has(.tix-button-sched) { text-decoration: none !important; display: block; }
.event-title-eo-events {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}
.event-meta { font-family: Verdana, sans-serif; font-size: 1.2em; margin-bottom: 10px; text-align: center; }
.event-info-header { font-weight: bold; text-decoration: underline; }
.event-date, .class-date, .event-datetime-eo-events { font-weight: bold; }
.event-time, .class-time, .event-location-eo-events { font-style: italic; }
.eo-eb-event-meta-event, .eo-eb-event-meta-class { font-size: 75%; }
.eo-eb-date-container {
    border: 1px solid rgba(127,56,254,0.3);
    margin-left: 5px;
    margin-bottom: 5px;
}
.eo-eb-date-container span { color: var(--rise-text-dark) !important; }
.eo-eb-event-meta-container { width: 68%; float: right; }
.event-thumbnail {
    margin-right: 10px;
    width: 28%;
    height: 105px;
    float: left;
    text-align: center;
    padding: 0;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: radial-gradient(gray, black);
}
.event-thumbnail-img { position: absolute; transform: translate(0, 3px); }
.event-thumbnail-img img {
    max-height: 90px !important;
    max-width: 110px !important;
    object-fit: contain !important;
    box-shadow: none !important;
    margin: 0; padding: 0;
}
picture.front-pg-show-img source,
picture.front-pg-show-img img {
    max-width: 150px;
    max-height: 100px;
    width: auto; height: auto;
}

#event-details { font-family: Verdana, sans-serif; font-size: 1.1em; }

div#event-thumbnail {
    float: left;
    max-width: 35%;
    margin-bottom: 150px;
    margin-right: 50px;
    border: 1px solid rgba(0,0,0,0.2);
    padding: 5px;
    position: relative;
}
div#waitlist-form {
    margin: 50px;
    padding: 20px;
    background-color: var(--rise-bg-purple-tint);
    clear: both;
}
a#ticket-button img { margin-bottom: 20px; }

/* Ticket / scheduling buttons */
.tix-button-pg, .tix-button-sched {
    padding: 5px 15px !important;
    text-transform: capitalize;
    font-size: 1.2em;
    text-align: center;
    clear: both;
    color: #fff;
    font-weight: bold;
    font-family: Arial, sans-serif;
    border-radius: var(--rise-radius-md);
    border: 2px solid white !important;
    margin-top: 25px !important;
}
/* Dark bg buttons → light text (inherits #fff from .tix-button-sched) */
.sign-up-button, .get-tix-now-button { background-color: var(--rise-accent); }
/* Light bg buttons → dark text */
.free-show-button { background-color: var(--rise-secondary); color: var(--rise-bg-dark); }
.join-waitlist-button { background-color: #fffacd; color: var(--rise-text-dark); }
.special-notes {
    border-radius: var(--rise-radius-md);
    background-color: orange;
    padding: 10px;
}

/* Class/event state indicators */
.online { background-color: lightblue; color: black; }
.in-person-den, .in-person-cos { background-color: #d4f5e9; color: black; }
.special-link { background-color: yellow; }
.special-link a { color: black !important; }
div.online-class {
    clear: both; width: 100%;
    font-weight: bold; font-style: italic;
    background-color: lightblue;
    margin: 5px 0;
    border: 1px solid rgba(0,0,0,0.15);
    color: black;
}
div.on-site-class {
    clear: both; width: 100%;
    font-weight: bold; font-style: italic;
    background-color: lightgoldenrodyellow;
    margin: 5px 0;
    border: 1px solid rgba(0,0,0,0.15);
}
div.sold-out-event {
    width: 100%;
    font-weight: bold; font-style: italic;
    background-color: lightpink;
    margin: 5px 0;
    border: 1px solid rgba(0,0,0,0.15);
    color: black;
}
div.available-event {
    width: 100%;
    font-weight: bold; font-style: italic;
    background-color: #c8f7e3;
    margin: 5px 0;
    border: 1px solid rgba(0,0,0,0.15);
}

/* Bio box */
.bio {
    background-color: var(--rise-bg-purple-tint);
    border-radius: var(--rise-radius-md);
    padding: 20px;
    font-size: 12px !important;
}

/* Social Burner widget */
.sb-item-text .sb-fs {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
}
.rplg-box { box-shadow: 1px 1px 3px rgba(0,0,0,0.2); }

/* Review plugin name truncation */
.elementor-text-editor ul li:last-child,
.elementor-text-editor ol li:last-child { margin-bottom: 20px; }

div.event-meta hr { margin-top: 5px; margin-bottom: 5px; }
th { line-height: 1em !important; }


/* ============================================================
   HERO SLIDESHOW (front page Elementor)
   ============================================================ */

/* Force hero fallback image before Swiper loads */
.elementor-background-slideshow {
    background-image: url('https://risecomedy.com/wp-content/uploads/2025/05/voodoo-comedy-playhouse-patio.webp') !important;
    background-size: cover !important;
    background-position: center center !important;
}
.elementor-element-1b8ffd8 .elementor-background-slideshow {
    opacity: 0 !important;
    transition: opacity 1.5s ease !important;
}
.elementor-element-1b8ffd8::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('https://risecomedy.com/wp-content/uploads/2025/05/voodoo-comedy-playhouse-patio.webp');
    background-size: cover;
    background-position: center center;
    z-index: 0;
    transition: opacity 1.5s ease;
}
.elementor-element-1b8ffd8.rise-slideshow-active .elementor-background-slideshow { opacity: 1 !important; }
.elementor-element-1b8ffd8.rise-slideshow-active::before { opacity: 0; }


/* ============================================================
   TEMPLATE-SPECIFIC OVERRIDES
   ============================================================ */

body.tmpl-post .elementor-post__title a,
body.tmpl-post .entry-title a { color: var(--rise-bg-dark); text-decoration: none; }
body.tmpl-post .elementor-post__title a:hover,
body.tmpl-post .entry-title a:hover { color: var(--rise-primary); }
body.tmpl-post .elementor-post__meta-data,
body.tmpl-post .elementor-post-info { color: var(--rise-text-mid); font-size: 0.9em; }
body.tmpl-post .entry-content a { color: var(--rise-primary); font-weight: bold; }
body.tmpl-post .entry-content a:hover { color: var(--rise-primary-hover); }

body.tmpl-archive .elementor-post__title a { color: var(--rise-bg-dark); }
body.tmpl-archive .elementor-post__title a:hover { color: var(--rise-primary); }
body.tmpl-archive .elementor-post__read-more { color: var(--rise-primary); border-bottom: 1px solid var(--rise-primary); }
body.tmpl-archive .elementor-post__read-more:hover { color: var(--rise-primary-hover); border-bottom-color: var(--rise-primary-hover); }

/* Calendar page */
body.page-denver-comedy-show-event-calendar #tribe-events-content,
body.page-calendar #tribe-events-content { padding: 0 20px 20px 20px; }


/* ============================================================
   UTILITY CLASSES
   ============================================================ */

.rise-text-primary  { color: var(--rise-primary) !important; }
.rise-text-secondary { color: var(--rise-secondary) !important; }
.rise-text-accent   { color: var(--rise-accent) !important; }
.rise-bg-dark       { background-color: var(--rise-bg-dark) !important; }
.rise-bg-purple-tint { background-color: var(--rise-bg-purple-tint) !important; }
.rise-border-top    { border-top: 2px solid var(--rise-border) !important; }
.rise-border-bottom { border-bottom: 2px solid var(--rise-border) !important; }
.rise-divider       { border: none; border-top: 1px solid var(--rise-border); margin: 1.5em 0; opacity: 0.5; }
.rise-callout       { border-left: 4px solid var(--rise-primary) !important; background-color: var(--rise-bg-purple-tint) !important; padding: 1em 1.5em !important; }
.page-anchor        { margin: -100px 0 100px 0 !important; }


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

/* Hide extended label text when viewport is too narrow for full labels */
@media (max-width: 1500px) {
    .rise-nav-extra { display: none; }
}

@media (max-width: 1200px) {
    .rise-nav > li > a { padding: 10px 9px; font-size: 12px; }
    .rise-header-search input[type="search"] {
        width: 36px;
        padding: 8px;
        color: transparent;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.5' y1='16.5' x2='22' y2='22'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
        cursor: pointer;
        transition: width var(--rise-dur-slow) var(--rise-ease), padding var(--rise-dur-slow) var(--rise-ease), color var(--rise-dur-slow) var(--rise-ease);
    }
    .rise-header-search input[type="search"]::placeholder { color: transparent; }
    .rise-header-search input[type="search"]:focus {
        width: 200px;
        padding: 8px 16px;
        color: var(--rise-text-dark);
        background-image: none;
        cursor: text;
    }
}

@media (max-width: 960px) {
    .rise-nav { display: none; }
    .rise-hamburger { display: flex; }
    .rise-header-search { display: none; }
    .rise-footer-inner { grid-template-columns: 1fr 1fr; }
    .rise-page-banner-title { font-size: 32px; }
    .rise-paper { padding: 24px; }
    .elementor-post__excerpt { display: none; }

    /* Event list cards go full width on tablet */
    .eo-eb-event-box, .tribe-events-calendar-list__event-row {
        width: 95% !important;
        clear: both;
        position: initial !important;
    }
    .eo-eb-event-meta-container { width: 100% !important; }
}

@media (max-width: 768px) {
    #tribe-events-content { padding: 0 20px 20px 20px; }
    #event-info-left-column, #event-info-right-column {
        width: 100% !important;
        float: none !important;
        clear: both !important;
        margin: 0 0 20px 0 !important;
    }
    .event-thumbnail { width: 100% !important; }
    .gform_button { width: 100% !important; }
    .gform_page_footer, .gform_footer { min-height: 100px; }
    .event-header { font-size: 1em; }
    #event-details { font-size: 0.8em; }
    .tribe-events-widget-events-list__events { flex-direction: column !important; }
    .event-thumbnail { margin-bottom: 10px !important; }
}

@media (max-width: 640px) {
    .rise-header { padding: 0 16px; }
    .rise-paper { padding: 20px 16px; }
    .rise-page-banner-title { font-size: 24px; }
    .rise-archive-grid { grid-template-columns: 1fr; }
    .rise-mobile-nav .menu-item a { font-size: 26px; }
    .rise-footer { padding: 28px 20px 0; }
    .rise-footer-inner { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
    .rise-footer-col:first-child { grid-column: 1 / -1; }
    .rise-footer-col:last-child  { grid-column: 1 / -1; }
    .rise-footer-fine { display: none; }
    .rise-footer-bottom { margin-top: 20px; font-size: 11px; }
    .rise-social-row { gap: 14px; }
}

@media (max-width: 480px) {
    :root { --rise-fs-body: var(--rise-fs-body-mobile); }
}
