:root {
    --tce-bg: #07080b;
    --tce-surface: #101218;
    --tce-card: #151820;
    --tce-text: #f7f8fb;
    --tce-muted: #a9afbd;
    --tce-line: rgba(255,255,255,.10);
    --tce-accent-a: #36c7ff;
    --tce-accent-b: #7a5cff;
    --tce-accent-c: #ff4fd8;
    --tce-max: 1180px;
    --tce-radius: 18px;
}

.tce-public-view { background: var(--tce-bg); }
.tce-shell { background: var(--tce-bg); color: var(--tce-text); font-family: inherit; line-height: 1.65; overflow: hidden; }
.tce-shell *, .tce-shell *::before, .tce-shell *::after { box-sizing: border-box; }
.tce-shell a { color: inherit; text-decoration: none; }
.tce-shell img { display: block; max-width: 100%; }

.tce-hero { position: relative; min-height: 560px; display: grid; align-items: end; background: radial-gradient(circle at 80% 10%, rgba(122,92,255,.25), transparent 36%), #0b0d12; }
.tce-hero-media { position: absolute; inset: 0; overflow: hidden; }
.tce-hero-image { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.tce-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,6,9,.96) 0%, rgba(5,6,9,.82) 42%, rgba(5,6,9,.28) 75%, rgba(5,6,9,.18) 100%), linear-gradient(0deg, #07080b 0%, transparent 36%); }
.tce-hero-content { position: relative; z-index: 2; width: min(var(--tce-max), calc(100% - 40px)); margin: 0 auto; padding: 90px 0 72px; }
.tce-kicker, .tce-card-eyebrow { text-transform: uppercase; letter-spacing: .16em; font-size: 12px; font-weight: 800; color: #cfd3df; }
.tce-kicker::before { content: ""; display: inline-block; width: 32px; height: 2px; margin: 0 10px 4px 0; background: linear-gradient(90deg, var(--tce-accent-a), var(--tce-accent-b), var(--tce-accent-c)); }
.tce-hero h1 { color: #fff; font-size: clamp(44px, 7vw, 88px); line-height: .96; letter-spacing: -.045em; margin: 18px 0 20px; max-width: 900px; }
.tce-hero-summary { max-width: 760px; color: #e2e4eb; font-size: clamp(17px, 2vw, 21px); margin: 24px 0 0; }
.tce-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.tce-chip { border: 1px solid rgba(255,255,255,.18); background: rgba(10,12,17,.48); backdrop-filter: blur(8px); color: #fff; border-radius: 999px; padding: 7px 12px; font-size: 12px; font-weight: 700; }
.tce-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.tce-btn { display: inline-flex; justify-content: center; align-items: center; gap: 12px; min-height: 50px; padding: 0 22px; border-radius: 999px; font-weight: 850; letter-spacing: .04em; font-size: 13px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.tce-btn:hover { transform: translateY(-2px); }
.tce-btn-primary { color: #fff !important; background: linear-gradient(100deg, var(--tce-accent-a), var(--tce-accent-b) 55%, var(--tce-accent-c)); box-shadow: 0 10px 34px rgba(87,84,255,.27); }
.tce-btn-secondary { color: #fff !important; border: 1px solid rgba(255,255,255,.25); background: rgba(10,12,17,.38); }
.tce-btn-block { width: 100%; }
.tce-affiliate-note { color: #8e95a5; font-size: 11px; margin: 12px 0 0; max-width: 650px; }

.tce-main-grid { width: min(var(--tce-max), calc(100% - 40px)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 70px; padding: 78px 0 96px; }
.tce-section { padding: 0 0 62px; margin-bottom: 62px; border-bottom: 1px solid var(--tce-line); }
.tce-section:last-child { border-bottom: 0; }
.tce-section-heading { display: flex; gap: 14px; align-items: baseline; margin-bottom: 24px; }
.tce-section-heading > span { color: #6f7687; font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.tce-section-heading h2 { color: #fff; font-size: clamp(27px, 3.2vw, 42px); line-height: 1.1; letter-spacing: -.025em; margin: 0; }
.tce-prose { color: #ced2dc; font-size: 17px; }
.tce-prose p:first-child { margin-top: 0; }
.tce-prose p:last-child { margin-bottom: 0; }
.tce-prose a { color: #76d7ff; text-decoration: underline; text-underline-offset: 3px; }
.tce-highlight-section { position: relative; padding: 38px; background: linear-gradient(135deg, rgba(54,199,255,.07), rgba(122,92,255,.08), rgba(255,79,216,.05)); border: 1px solid rgba(123,127,255,.18); border-radius: var(--tce-radius); }
.tce-highlight-section + .tce-section { margin-top: 62px; }

.tce-sidebar { min-width: 0; }
.tce-info-card { position: sticky; top: 28px; background: var(--tce-card); border: 1px solid var(--tce-line); border-radius: var(--tce-radius); padding: 28px; box-shadow: 0 24px 60px rgba(0,0,0,.18); }
.tce-info-card + .tce-info-card { position: relative; top: 0; margin-top: 22px; }
.tce-info-card h2 { color: #fff; font-size: 25px; margin: 7px 0 22px; }
.tce-facts { margin: 0; }
.tce-facts > div { padding: 15px 0; border-top: 1px solid var(--tce-line); }
.tce-facts dt { color: #7f8798; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; font-weight: 800; }
.tce-facts dd { color: #f1f2f6; margin: 4px 0 0; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.tce-sidebar-cta { margin-top: 22px; }
.tce-tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.tce-tag-cloud span { padding: 6px 10px; border-radius: 999px; border: 1px solid var(--tce-line); color: #cbd0dc; font-size: 12px; }
.tce-spaced-eyebrow { margin-top: 26px; }

.tce-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tce-insight-card { border: 1px solid var(--tce-line); border-radius: var(--tce-radius); padding: 26px; background: var(--tce-surface); }
.tce-editor-card { background: linear-gradient(145deg, rgba(122,92,255,.10), rgba(255,79,216,.06)); }
.tce-insight-card .tce-prose { margin-top: 12px; font-size: 15px; }

.tce-accordion-stack { border-top: 1px solid var(--tce-line); }
.tce-disclosure { border-bottom: 1px solid var(--tce-line); }
.tce-disclosure summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 18px 0; color: #fff; font-weight: 800; }
.tce-disclosure summary::-webkit-details-marker { display: none; }
.tce-disclosure summary span { font-size: 22px; color: #80889a; transition: transform .2s ease; }
.tce-disclosure[open] summary span { transform: rotate(45deg); }
.tce-disclosure-content { color: #c9ced8; padding: 0 0 22px; }

.tce-band { border-top: 1px solid var(--tce-line); border-bottom: 1px solid var(--tce-line); background: #0c0e13; }
.tce-band-inner { width: min(var(--tce-max), calc(100% - 40px)); margin: 0 auto; padding: 70px 0; }
.tce-band-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 28px; }
.tce-band-heading h2 { color: #fff; font-size: clamp(28px, 4vw, 44px); line-height: 1.05; margin: 8px 0 0; letter-spacing: -.03em; }
.tce-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.tce-event-card, .tce-place-card { overflow: hidden; border: 1px solid var(--tce-line); border-radius: var(--tce-radius); background: var(--tce-card); transition: transform .2s ease, border-color .2s ease; }
.tce-event-card:hover, .tce-place-card:hover { transform: translateY(-4px); border-color: rgba(115,139,255,.38); }
.tce-card-media { position: relative; aspect-ratio: 16/10; overflow: hidden; background: #0a0c10; }
.tce-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.tce-event-card:hover .tce-card-media img, .tce-place-card:hover .tce-card-media img { transform: scale(1.035); }
.tce-media-placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: #5d6472; text-transform: uppercase; letter-spacing: .18em; font-size: 11px; }
.tce-card-body { padding: 22px; }
.tce-card-type-row { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 10px; }
.tce-card-type-badge { display: inline-flex; align-items: center; min-height: 25px; padding: 4px 9px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; background: rgba(255,255,255,.045); color: #d7dbe5; text-transform: uppercase; letter-spacing: .10em; font-size: 9px; line-height: 1.2; font-weight: 850; }
.tce-card-body h2, .tce-card-body h3 { color: #fff; line-height: 1.15; letter-spacing: -.02em; margin: 8px 0 10px; }
.tce-card-body h2 { font-size: 24px; }
.tce-card-body h3 { font-size: 21px; }
.tce-card-body p { color: #aeb5c2; font-size: 14px; line-height: 1.55; }
.tce-text-link { display: inline-block; color: #8edfff !important; font-size: 12px; font-weight: 850; letter-spacing: .07em; margin-top: 8px; }
.tce-event-count { color: #aeb5c2; font-size: 12px; margin: 10px 0; }

.tce-archive { min-height: 70vh; }
.tce-archive-hero { padding: 100px 20px 70px; text-align: center; background: radial-gradient(circle at 50% 0%, rgba(122,92,255,.20), transparent 42%), #0b0d12; border-bottom: 1px solid var(--tce-line); }
.tce-archive-hero h1 { color: #fff; font-size: clamp(45px, 7vw, 80px); line-height: 1; letter-spacing: -.045em; margin: 14px 0; }
.tce-archive-hero p { max-width: 700px; margin: 0 auto; color: #b8beca; font-size: 18px; }
.tce-archive-inner { width: min(var(--tce-max), calc(100% - 40px)); margin: 0 auto; padding: 60px 0 90px; }
.tce-pagination { margin-top: 45px; color: #fff; }
.tce-pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.tce-pagination .page-numbers { padding: 9px 13px; border: 1px solid var(--tce-line); border-radius: 10px; }
.tce-pagination .current { background: #fff; color: #07080b; }

@media (max-width: 960px) {
    .tce-hero { min-height: 520px; }
    .tce-hero-overlay { background: linear-gradient(0deg, rgba(5,6,9,.98) 0%, rgba(5,6,9,.74) 55%, rgba(5,6,9,.42) 100%); }
    .tce-main-grid { grid-template-columns: 1fr; gap: 22px; padding-top: 58px; }
    .tce-sidebar { order: -1; }
    .tce-info-card { position: relative; top: 0; }
    .tce-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .tce-hero { min-height: 500px; }
    .tce-hero-content { width: min(100% - 28px, var(--tce-max)); padding: 72px 0 42px; }
    .tce-hero h1 { font-size: clamp(40px, 13vw, 58px); }
    .tce-hero-summary { font-size: 16px; }
    .tce-main-grid, .tce-band-inner, .tce-archive-inner { width: calc(100% - 28px); }
    .tce-main-grid { padding: 44px 0 64px; }
    .tce-section { padding-bottom: 42px; margin-bottom: 42px; }
    .tce-highlight-section { padding: 24px; }
    .tce-insight-grid, .tce-card-grid { grid-template-columns: 1fr; }
    .tce-band-inner { padding: 50px 0; }
    .tce-btn { width: 100%; }
    .tce-hero-actions { width: 100%; }
    .tce-info-card { padding: 22px; }
    .tce-archive-hero { padding: 72px 18px 50px; }
}

/* Talk City premium photo gallery */
.tce-gallery-section { overflow: visible; }
.tce-gallery-heading { position: relative; padding-right: 90px; }
.tce-gallery-count-label { margin-left: auto; color: #7f8798 !important; letter-spacing: .08em !important; white-space: nowrap; }
.tce-gallery { position: relative; margin-top: 10px; }
.tce-gallery-track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; scrollbar-width: none; scroll-behavior: smooth; padding: 2px 0 8px; outline: none; }
.tce-gallery-track::-webkit-scrollbar { display: none; }
.tce-gallery-track:focus-visible { border-radius: var(--tce-radius); box-shadow: 0 0 0 2px rgba(54,199,255,.45); }
.tce-gallery-slide { flex: 0 0 min(82%, 760px); scroll-snap-align: start; margin: 0; min-width: 0; }
.tce-gallery-open { position: relative; width: 100%; padding: 0; border: 0; border-radius: calc(var(--tce-radius) + 2px); overflow: hidden; background: #0b0d12; cursor: zoom-in; box-shadow: 0 20px 50px rgba(0,0,0,.22); }
.tce-gallery-open::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.08); border-radius: inherit; pointer-events: none; transition: border-color .2s ease, background .2s ease; }
.tce-gallery-open:hover::after { border-color: rgba(116,187,255,.34); background: rgba(255,255,255,.015); }
.tce-gallery-image { width: 100%; aspect-ratio: 16/10; object-fit: cover; transition: transform .45s cubic-bezier(.2,.65,.3,1); }
.tce-gallery-open:hover .tce-gallery-image { transform: scale(1.025); }
.tce-gallery-expand { position: absolute; top: 16px; right: 16px; width: 38px; height: 38px; display: grid; place-items: center; color: #fff; background: rgba(7,8,11,.72); border: 1px solid rgba(255,255,255,.15); border-radius: 999px; backdrop-filter: blur(9px); font-size: 16px; }
.tce-gallery-slide figcaption { color: #8f96a5; font-size: 12px; line-height: 1.5; padding: 10px 4px 0; }
.tce-gallery-nav { position: absolute; z-index: 4; top: 50%; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; color: #fff; background: rgba(7,8,11,.78); backdrop-filter: blur(10px); box-shadow: 0 10px 30px rgba(0,0,0,.26); transform: translateY(-72%); cursor: pointer; transition: opacity .2s ease, transform .2s ease, border-color .2s ease; }
.tce-gallery-nav:hover:not(:disabled) { border-color: rgba(116,187,255,.5); transform: translateY(-72%) scale(1.05); }
.tce-gallery-nav:disabled { opacity: .24; cursor: default; }
.tce-gallery-prev { left: -22px; }
.tce-gallery-next { right: -22px; }
.tce-gallery-status { display: inline-flex; align-items: center; gap: 3px; margin-top: 13px; color: #737b8c; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.tce-gallery-current { color: #fff; }

html.tce-lightbox-open, html.tce-lightbox-open body { overflow: hidden; }
.tce-lightbox { position: fixed; inset: 0; z-index: 999999; display: none; place-items: center; padding: 28px; }
.tce-lightbox.is-open { display: grid; }
.tce-lightbox-backdrop { position: absolute; inset: 0; background: rgba(2,3,5,.94); backdrop-filter: blur(14px); }
.tce-lightbox-dialog { position: relative; z-index: 2; width: min(1320px, 100%); height: min(88vh, 900px); display: grid; grid-template-columns: 64px minmax(0,1fr) 64px; align-items: center; }
.tce-lightbox-stage { min-width: 0; max-height: 88vh; display: grid; place-items: center; }
.tce-lightbox-stage img { max-width: 100%; max-height: 80vh; width: auto; height: auto; object-fit: contain; border-radius: 14px; box-shadow: 0 30px 90px rgba(0,0,0,.52); }
.tce-lightbox-caption { max-width: 800px; margin: 14px auto 0; color: #bcc2ce; text-align: center; font-size: 13px; }
.tce-lightbox-close, .tce-lightbox-nav { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #fff; background: rgba(18,20,27,.78); cursor: pointer; font-size: 22px; }
.tce-lightbox-close { position: absolute; z-index: 3; top: 0; right: 0; font-size: 30px; line-height: 1; }
.tce-lightbox-nav { justify-self: center; }
.tce-lightbox-close:hover, .tce-lightbox-nav:hover { border-color: rgba(116,187,255,.5); background: rgba(31,34,45,.95); }

@media (max-width: 960px) {
    .tce-gallery-prev { left: 10px; }
    .tce-gallery-next { right: 10px; }
    .tce-gallery-nav { top: 46%; }
}

@media (max-width: 640px) {
    .tce-gallery-heading { padding-right: 0; flex-wrap: wrap; }
    .tce-gallery-count-label { width: 100%; margin: -10px 0 0 44px; }
    .tce-gallery-slide { flex-basis: 92%; }
    .tce-gallery-image { aspect-ratio: 4/5; }
    .tce-gallery-nav { display: none; }
    .tce-gallery-expand { top: 12px; right: 12px; width: 34px; height: 34px; }
    .tce-lightbox { padding: 12px; }
    .tce-lightbox-dialog { width: 100%; height: 92vh; grid-template-columns: 44px minmax(0,1fr) 44px; }
    .tce-lightbox-stage img { max-height: 78vh; border-radius: 10px; }
    .tce-lightbox-close { width: 42px; height: 42px; top: 4px; right: 4px; }
    .tce-lightbox-nav { width: 40px; height: 40px; }
}

/* Bottom-of-page affiliate disclosure */
.tce-affiliate-footer { border-top: 1px solid var(--tce-line); background: linear-gradient(180deg, rgba(13,15,21,.92), #090b0f); }
.tce-affiliate-footer-inner { width: min(var(--tce-max), calc(100% - 40px)); margin: 0 auto; padding: 34px 0 40px; }
.tce-affiliate-footer .tce-affiliate-note { margin: 8px 0 0; max-width: 900px; color: #8e95a5; font-size: 12px; line-height: 1.65; }
@media (max-width: 640px) {
    .tce-affiliate-footer-inner { width: calc(100% - 28px); padding: 28px 0 34px; }
}

/* v1.2 discovery directory filters */
.tce-filter-bar { display: grid; grid-template-columns: minmax(220px,1.35fr) repeat(4,minmax(140px,1fr)); gap: 12px; padding: 18px; margin: 0 0 14px; border: 1px solid var(--tce-line); border-radius: var(--tce-radius); background: linear-gradient(135deg, rgba(54,199,255,.045), rgba(122,92,255,.055), rgba(255,79,216,.025)), var(--tce-surface); box-shadow: 0 20px 55px rgba(0,0,0,.15); }
.tce-filter-bar-venues { grid-template-columns: minmax(240px,1.5fr) minmax(180px,1fr) minmax(180px,1fr) auto; }
.tce-filter-search input, .tce-filter-bar select { width: 100%; min-height: 48px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; outline: none; background: #0c0f15; color: #f7f8fb; padding: 0 14px; font: inherit; font-size: 13px; }
.tce-filter-search input::placeholder { color: #747d8e; }
.tce-filter-search input:focus, .tce-filter-bar select:focus { border-color: rgba(54,199,255,.58); box-shadow: 0 0 0 3px rgba(54,199,255,.08); }
.tce-filter-bar select { appearance: auto; }
.tce-filter-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding-top: 2px; }
.tce-filter-bar-venues .tce-filter-actions { grid-column: auto; padding-top: 0; }
.tce-filter-submit { min-height: 46px; border: 0; border-radius: 999px; padding: 0 22px; color: #fff; background: linear-gradient(100deg, var(--tce-accent-a), var(--tce-accent-b) 55%, var(--tce-accent-c)); font-weight: 850; letter-spacing: .06em; font-size: 11px; cursor: pointer; box-shadow: 0 9px 28px rgba(87,84,255,.20); }
.tce-filter-reset { color: #8f97a8 !important; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.tce-filter-reset:hover { color: #fff !important; }
.tce-results-meta { margin: 0 0 24px; color: #727a8a; font-size: 12px; text-transform: uppercase; letter-spacing: .11em; font-weight: 800; }

@media (max-width: 1100px) {
    .tce-filter-bar { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .tce-filter-search { grid-column: span 3; }
    .tce-filter-bar-venues { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .tce-filter-bar-venues .tce-filter-search { grid-column: span 2; }
    .tce-filter-bar-venues .tce-filter-actions { grid-column: span 2; justify-content: flex-end; }
}
@media (max-width: 640px) {
    .tce-filter-bar, .tce-filter-bar-venues { grid-template-columns: 1fr; padding: 14px; }
    .tce-filter-search, .tce-filter-bar-venues .tce-filter-search, .tce-filter-bar-venues .tce-filter-actions { grid-column: auto; }
    .tce-filter-actions, .tce-filter-bar-venues .tce-filter-actions { justify-content: stretch; }
    .tce-filter-submit { flex: 1; }
}

/* v1.10 branded single Event experience */
.tce-event-single .tce-event-hero { min-height: 620px; }
.tce-event-single .tce-chip-status { border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.08); color: #d9dde7; }
.tce-event-single .tce-event-content { min-width: 0; }
.tce-event-single .tce-event-content > *:first-child { margin-top: 0; }
.tce-event-single .tce-event-content h2,
.tce-event-single .tce-event-content h3,
.tce-event-single .tce-event-content h4 { color: #fff; line-height: 1.16; letter-spacing: -.02em; margin: 34px 0 14px; }
.tce-event-single .tce-event-content h2 { font-size: clamp(26px, 3vw, 38px); }
.tce-event-single .tce-event-content h3 { font-size: clamp(22px, 2.4vw, 30px); }
.tce-event-single .tce-event-content ul,
.tce-event-single .tce-event-content ol { color: #ced2dc; padding-left: 1.35em; }
.tce-event-single .tce-event-content li + li { margin-top: 7px; }
.tce-event-single .tce-event-content img { border-radius: 16px; margin: 22px auto; }
.tce-event-single .tce-event-content iframe { width: 100%; max-width: 100%; border: 0; border-radius: 16px; }
.tce-event-single .tce-event-content .wp-block-image,
.tce-event-single .tce-event-content figure { max-width: 100%; }
.tce-inline-link { color: #8edfff !important; text-decoration: none !important; }
.tce-inline-link:hover { text-decoration: underline !important; text-underline-offset: 3px; }
.tce-event-venue-feature { display: grid; grid-template-columns: minmax(220px, 42%) minmax(0, 1fr); overflow: hidden; border: 1px solid var(--tce-line); border-radius: var(--tce-radius); background: linear-gradient(145deg, rgba(54,199,255,.045), rgba(122,92,255,.055)), var(--tce-surface); }
.tce-event-venue-media { min-height: 260px; background: #0a0c10; }
.tce-event-venue-media img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
.tce-event-venue-body { padding: 30px; align-self: center; }
.tce-event-venue-body h3 { color: #fff; margin: 8px 0 10px; font-size: clamp(25px, 3vw, 34px); line-height: 1.08; letter-spacing: -.025em; }
.tce-event-venue-body p { color: #aeb5c2; margin: 10px 0; }
.tce-event-venue-address { color: #d7dae2 !important; font-size: 13px; }
.tce-event-taxonomy-cloud { margin-bottom: 18px; }
.tce-event-info-card .tce-sidebar-cta { margin-top: 24px; }
.tce-past-event-note { margin-top: 22px; padding: 15px 16px; border: 1px solid var(--tce-line); border-radius: 12px; color: #aeb5c2; background: rgba(255,255,255,.025); font-size: 13px; line-height: 1.55; }

@media (max-width: 960px) {
    .tce-event-single .tce-event-hero { min-height: 560px; }
    .tce-event-venue-feature { grid-template-columns: 1fr; }
    .tce-event-venue-media,
    .tce-event-venue-media img { min-height: 0; aspect-ratio: 16/9; }
}

@media (max-width: 640px) {
    .tce-event-single .tce-event-hero { min-height: 520px; }
    .tce-event-venue-body { padding: 22px; }
}

/* v1.10.1 single Event repair -------------------------------------------------
 * TEC occurrence/series pages can inherit aggressive theme/TEC image and text
 * rules. Keep the Talk City event hero/content fully self-contained.
 */
.tce-event-single .tce-event-hero {
    position: relative;
    isolation: isolate;
    min-height: clamp(540px, 65vw, 720px);
    overflow: hidden;
    background: radial-gradient(circle at 80% 10%, rgba(122,92,255,.22), transparent 38%), #090b10;
}
.tce-event-single .tce-event-hero .tce-hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}
.tce-event-single .tce-event-hero .tce-hero-media .tce-hero-image,
.tce-event-single .tce-event-hero .tce-hero-media img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    object-fit: cover !important;
    object-position: center 32% !important;
}
.tce-event-single .tce-event-hero .tce-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(5,6,9,.97) 0%, rgba(5,6,9,.88) 34%, rgba(5,6,9,.58) 58%, rgba(5,6,9,.20) 100%),
        linear-gradient(0deg, #07080b 0%, rgba(7,8,11,.20) 34%, transparent 60%);
}
.tce-event-single .tce-event-hero .tce-hero-content {
    position: relative;
    z-index: 2;
}
.tce-event-single .tce-event-hero h1 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #fff !important;
    max-width: 980px;
    text-shadow: 0 8px 34px rgba(0,0,0,.38);
}
.tce-event-single .tce-event-hero.no-image .tce-hero-content {
    max-width: var(--tce-max);
}
.tce-event-single .tce-event-main-grid {
    align-items: start;
}
.tce-event-single .tce-event-content,
.tce-event-single .tce-event-content p,
.tce-event-single .tce-event-content li,
.tce-event-single .tce-event-content blockquote {
    color: #ced2dc !important;
}
.tce-event-single .tce-event-content strong {
    color: #fff !important;
}
.tce-event-single .tce-event-content p {
    font-size: 17px;
    line-height: 1.78;
    margin: 0 0 18px;
}
.tce-event-single .tce-event-content h2,
.tce-event-single .tce-event-content h3,
.tce-event-single .tce-event-content h4 {
    color: #fff !important;
}
.tce-event-sponsored-ad {
    margin-top: 42px;
    padding-top: 6px;
    color: #7f8798;
    font-size: 12px;
}
.tce-event-sponsored-ad hr {
    border: 0;
    border-top: 1px solid var(--tce-line);
    margin: 0 0 16px;
}
.tce-event-description-featured {
    margin: 32px 0 20px;
    overflow: hidden;
    border-radius: 16px;
}
.tce-event-description-featured img {
    width: 100%;
    height: auto;
}

/* Safety net: when TEC/theme legacy single-event fragments are hooked outside
 * the editor content, the Talk City template remains the one public layout. */
body.tce-event-view .tribe-events-back,
body.tce-event-view .tribe-events-single-event-title,
body.tce-event-view .tribe-events-schedule,
body.tce-event-view .tribe-events-event-image,
body.tce-event-view .tribe-events-event-meta,
body.tce-event-view .tribe-events-related-events-title,
body.tce-event-view .tribe-related-events,
body.tce-event-view .tribe-events-sub-nav {
    display: none !important;
}

@media (max-width: 960px) {
    .tce-event-single .tce-event-hero {
        min-height: 600px;
    }
    .tce-event-single .tce-event-hero .tce-hero-overlay {
        background:
            linear-gradient(0deg, rgba(5,6,9,.98) 0%, rgba(5,6,9,.88) 48%, rgba(5,6,9,.30) 82%, rgba(5,6,9,.18) 100%);
    }
    .tce-event-single .tce-event-hero .tce-hero-media .tce-hero-image,
    .tce-event-single .tce-event-hero .tce-hero-media img {
        object-position: center 28% !important;
    }
}

@media (max-width: 640px) {
    .tce-event-single .tce-event-hero {
        min-height: 560px;
    }
    .tce-event-single .tce-event-hero h1 {
        font-size: clamp(38px, 12vw, 58px);
        line-height: .98;
    }
}

/* v1.10.2 — occurrence-safe Event facts + countdown ----------------------- */
.tce-event-countdown {
    width: min(640px, 100%);
    margin-top: 26px;
    padding: 16px 18px 17px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(12,15,23,.80), rgba(18,18,31,.62));
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 50px rgba(0,0,0,.22);
}
.tce-countdown-topline {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 12px;
    color: #dce1ec;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .16em;
}
.tce-countdown-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ff4fd8;
    box-shadow: 0 0 14px rgba(255,79,216,.8);
}
.tce-countdown-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}
.tce-countdown-grid > div {
    min-width: 0;
    padding: 10px 10px 9px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 12px;
    background: rgba(255,255,255,.045);
    text-align: center;
}
.tce-countdown-grid strong {
    display: block;
    color: #fff;
    font-size: clamp(22px, 3.1vw, 34px);
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.035em;
}
.tce-countdown-grid span {
    display: block;
    margin-top: 6px;
    color: #929aab;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .10em;
    text-transform: uppercase;
}
.tce-event-countdown.is-arrived .tce-countdown-dot {
    background: #36c7ff;
    box-shadow: 0 0 14px rgba(54,199,255,.8);
}
.tce-event-venue-feature.no-media {
    grid-template-columns: 1fr;
}
.tce-event-venue-feature.no-media .tce-event-venue-body {
    min-height: 220px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: radial-gradient(circle at 88% 15%, rgba(54,199,255,.08), transparent 32%), radial-gradient(circle at 70% 100%, rgba(255,79,216,.07), transparent 35%);
}

@media (max-width: 640px) {
    .tce-event-countdown {
        padding: 13px;
        border-radius: 14px;
    }
    .tce-countdown-grid {
        gap: 6px;
    }
    .tce-countdown-grid > div {
        padding: 9px 4px 8px;
        border-radius: 10px;
    }
    .tce-countdown-grid strong {
        font-size: clamp(21px, 8vw, 30px);
    }
    .tce-countdown-grid span {
        font-size: 7px;
        letter-spacing: .06em;
    }
}


/* v1.10.3 — native theme header + mobile event discovery ------------------ */
/* The active theme still owns the real logo/menu/header. Talk City only fixes
 * the stacking order so a full-bleed Event/Venue/Hotel hero cannot cover it. */
body.tce-public-view .tce-shell {
    position: relative;
    z-index: 1;
}
body.tce-public-view .tce-native-site-header,
body.tce-public-view #masthead,
body.tce-public-view #site-header,
body.tce-public-view header[role="banner"] {
    z-index: 99990 !important;
    pointer-events: auto !important;
}
body.tce-public-view .tce-native-site-header {
    opacity: 1 !important;
    visibility: visible !important;
}

/* A few themes apply mobile-only rules to generic event grids. Keep Talk City's
 * own More Events band explicitly available and readable at every breakpoint. */
body.tce-event-view .tce-events-band {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}
body.tce-event-view .tce-events-band .tce-band-inner,
body.tce-event-view .tce-events-band .tce-band-heading,
body.tce-event-view .tce-events-band .tce-event-grid,
body.tce-event-view .tce-events-band .tce-event-card {
    visibility: visible !important;
    opacity: 1 !important;
}

@media (max-width: 640px) {
    body.tce-event-view .tce-events-band .tce-band-inner {
        display: block !important;
        width: calc(100% - 28px) !important;
        padding: 46px 0 52px !important;
    }
    body.tce-event-view .tce-events-band .tce-band-heading {
        display: flex !important;
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 10px !important;
        margin-bottom: 22px !important;
    }
    body.tce-event-view .tce-events-band .tce-event-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        width: 100% !important;
    }
    body.tce-event-view .tce-events-band .tce-event-card {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }
    body.tce-event-view .tce-events-band .tce-card-media {
        display: block !important;
        width: 100% !important;
        aspect-ratio: 16 / 10 !important;
    }
    body.tce-event-view .tce-events-band .tce-card-body {
        display: block !important;
    }
}

/* v1.10.4 — resilient site navigation, mobile event artwork + floating CTA --- */
/* The active theme gets first priority. This bridge uses the site's actual
 * Custom Logo + assigned WordPress menu only when the legacy theme does not
 * expose a visible header on Talk City custom templates. */
.tce-theme-bridge-header {
    position: relative;
    z-index: 99991;
    width: 100%;
    background: rgba(7,8,11,.98);
    border-bottom: 1px solid rgba(255,255,255,.10);
    color: #fff;
    box-shadow: 0 12px 34px rgba(0,0,0,.16);
}
body.tce-native-header-present .tce-theme-bridge-header {
    display: none !important;
}
.tce-theme-bridge-inner {
    width: min(1220px, calc(100% - 36px));
    min-height: 74px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}
.tce-theme-bridge-brand {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 0 0 auto;
}
.tce-theme-bridge-brand .custom-logo-link,
.tce-theme-bridge-title {
    display: inline-flex;
    align-items: center;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 850;
    letter-spacing: .02em;
    white-space: nowrap;
}
.tce-theme-bridge-brand img,
.tce-theme-bridge-brand .custom-logo {
    display: block;
    width: auto !important;
    max-width: min(260px, 42vw) !important;
    height: auto !important;
    max-height: 42px !important;
    margin: 0 !important;
}
.tce-theme-bridge-nav {
    display: block;
    margin-left: auto;
}
.tce-theme-bridge-menu,
.tce-theme-bridge-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.tce-theme-bridge-menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
}
.tce-theme-bridge-menu > li {
    position: relative;
    margin: 0;
    padding: 0;
}
.tce-theme-bridge-menu a {
    display: block;
    padding: 27px 0 25px;
    color: #e9ebf1 !important;
    text-decoration: none !important;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .055em;
    white-space: nowrap;
}
.tce-theme-bridge-menu a:hover,
.tce-theme-bridge-menu .current-menu-item > a {
    color: #fff !important;
}
.tce-theme-bridge-menu > li > a::after {
    content: "";
    display: block;
    height: 2px;
    width: 0;
    margin-top: 5px;
    background: linear-gradient(90deg, var(--tce-accent-a), var(--tce-accent-b), var(--tce-accent-c));
    transition: width .2s ease;
}
.tce-theme-bridge-menu > li:hover > a::after,
.tce-theme-bridge-menu .current-menu-item > a::after {
    width: 100%;
}
.tce-theme-bridge-menu .sub-menu {
    position: absolute;
    top: calc(100% - 10px);
    right: 0;
    z-index: 20;
    display: none;
    min-width: 220px;
    padding: 10px 14px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 13px;
    background: #101218;
    box-shadow: 0 20px 55px rgba(0,0,0,.34);
}
.tce-theme-bridge-menu li:hover > .sub-menu { display: block; }
.tce-theme-bridge-menu .sub-menu a { padding: 10px 4px; white-space: normal; }
.tce-theme-bridge-toggle {
    display: none;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    background: rgba(255,255,255,.045);
    cursor: pointer;
}
.tce-theme-bridge-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 4px;
    background: #fff;
    transition: transform .2s ease, opacity .2s ease;
}
.tce-theme-bridge-header.is-menu-open .tce-theme-bridge-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.tce-theme-bridge-header.is-menu-open .tce-theme-bridge-toggle span:nth-child(2) { opacity: 0; }
.tce-theme-bridge-header.is-menu-open .tce-theme-bridge-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* When an existing site-wide ticket bar is injected by another snippet/plugin,
 * remove its white tray so the gradient button floats naturally over Talk
 * City's dark page design. JS adds these classes only to the external fixed CTA. */
body.tce-public-view .tce-external-ticket-float {
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}
body.tce-public-view .tce-external-ticket-float::before,
body.tce-public-view .tce-external-ticket-float::after {
    background: transparent !important;
    box-shadow: none !important;
}
body.tce-public-view .tce-external-ticket-float-link {
    box-shadow: 0 14px 42px rgba(0,0,0,.34), 0 0 34px rgba(54,199,255,.12) !important;
}

/* Intentional second presentation of the event artwork after the description. */
.tce-event-repeat-artwork {
    margin: 34px 0 4px;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 18px;
    background: #0b0d12;
    box-shadow: 0 24px 64px rgba(0,0,0,.22);
}
.tce-event-repeat-artwork .tce-event-repeat-image,
.tce-event-repeat-artwork img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-height: 760px;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    object-fit: contain !important;
    background: #0b0d12;
}

@media (max-width: 1040px) {
    .tce-theme-bridge-menu { gap: 13px; }
    .tce-theme-bridge-menu a { font-size: 10px; letter-spacing: .035em; }
}

@media (max-width: 820px) {
    .tce-theme-bridge-inner { min-height: 66px; width: calc(100% - 28px); }
    .tce-theme-bridge-brand img,
    .tce-theme-bridge-brand .custom-logo { max-height: 36px !important; max-width: 220px !important; }
    .tce-theme-bridge-toggle { display: inline-flex; }
    .tce-theme-bridge-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 99992;
        display: none;
        max-height: calc(100vh - 80px);
        overflow-y: auto;
        padding: 12px 20px 22px;
        border-top: 1px solid rgba(255,255,255,.08);
        background: rgba(7,8,11,.985);
        box-shadow: 0 24px 60px rgba(0,0,0,.38);
    }
    .tce-theme-bridge-header.is-menu-open .tce-theme-bridge-nav { display: block; }
    .tce-theme-bridge-menu { display: block; }
    .tce-theme-bridge-menu > li { border-bottom: 1px solid rgba(255,255,255,.08); }
    .tce-theme-bridge-menu a { padding: 15px 2px; font-size: 13px; letter-spacing: .045em; }
    .tce-theme-bridge-menu > li > a::after { display: none; }
    .tce-theme-bridge-menu .sub-menu {
        position: static;
        display: block;
        min-width: 0;
        padding: 0 0 8px 14px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    .tce-theme-bridge-menu .sub-menu a { padding: 9px 2px; color: #aeb5c2 !important; }
}

@media (max-width: 640px) {
    /* Mobile hero becomes a composed artwork + information hero instead of
     * forcing a landscape image to cover a very tall text area. This preserves
     * the full event artwork and dramatically reduces destructive cropping. */
    .tce-event-single .tce-event-hero {
        display: block !important;
        min-height: 0 !important;
        overflow: visible;
        background: #07080b !important;
    }
    .tce-event-single .tce-event-hero .tce-hero-media {
        position: relative !important;
        inset: auto !important;
        z-index: 0;
        width: 100% !important;
        height: clamp(235px, 70vw, 330px) !important;
        min-height: 0 !important;
        overflow: hidden;
        background: #07080b;
    }
    .tce-event-single .tce-event-hero .tce-hero-media .tce-hero-image,
    .tce-event-single .tce-event-hero .tce-hero-media img {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        object-fit: contain !important;
        object-position: center center !important;
        background: #07080b !important;
    }
    .tce-event-single .tce-event-hero .tce-hero-overlay {
        background: linear-gradient(0deg, #07080b 0%, rgba(7,8,11,.72) 22%, rgba(7,8,11,.10) 54%, rgba(7,8,11,.03) 100%) !important;
    }
    .tce-event-single .tce-event-hero .tce-hero-content {
        width: calc(100% - 28px) !important;
        margin: -34px auto 0 !important;
        padding: 54px 0 42px !important;
    }
    .tce-event-single .tce-event-hero h1 {
        max-width: none !important;
        font-size: clamp(34px, 9.5vw, 46px) !important;
        line-height: 1.02 !important;
        letter-spacing: -.035em !important;
        margin: 14px 0 17px !important;
    }
    .tce-event-single .tce-hero-summary {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;
        overflow: hidden;
        margin-top: 20px;
        font-size: 15px;
        line-height: 1.6;
    }
    .tce-event-repeat-artwork {
        margin-top: 28px;
        border-radius: 14px;
    }
}
