/*
Theme Name:  Mustang Lounge
Theme URI:   https://mustangloungebar.com
Author:      Kennedy Media Group
Author URI:  https://kennedymedia.com
Description: Custom theme for Mustang Lounge Bar — Weslaco's Country & Tejano Party Hub. Built for speed, WooCommerce ticketing, and The Events Calendar Pro integration. No page builder dependencies.
Version:     1.0.0
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.1
License:     Proprietary
License URI: https://mustangloungebar.com
Text Domain: mustang-lounge
Tags:        nightlife, events, woocommerce, custom, full-site-editing
*/

/* ==========================================================================
   TABLE OF CONTENTS
   1.  CSS Custom Properties (Design Tokens)
   2.  CSS Reset & Box Model
   3.  Base Typography
   4.  Layout Utilities
   5.  Header & Navigation
   6.  Hero Section
   7.  Trust Bar
   8.  Event Cards
   9.  Event Single Page
   10. Ticket Tiers (Cover / GA / Reserved)
   11. VIP / Reservations
   12. WooCommerce — Cart & Checkout
   13. Contact Page
   14. Footer
   15. Utility Classes
   16. Accessibility
   17. Animations
   18. Responsive Breakpoints
   ========================================================================== */


/* ==========================================================================
   1. CSS CUSTOM PROPERTIES — Design Tokens
   ========================================================================== */

:root {
    /* Brand Colors */
    --color-black:        #0A0A0A;
    --color-dark:         #111111;
    --color-dark-2:       #1A1A1A;
    --color-dark-3:       #222222;
    --color-border:       #2C2C2C;
    --color-border-light: #3A3A3A;
    --color-gold:         #C9A84C;
    --color-gold-light:   #E8C97A;
    --color-gold-pale:    #F5E5B0;
    --color-white:        #F5F0E8;
    --color-muted:        #888888;
    --color-muted-light:  #AAAAAA;
    --color-text:         #DDDDDD;
    --color-success:      #4CAF6E;
    --color-danger:       #E24B4A;

    /* Ticket Tier Colors */
    --color-cover:        #C9A84C;  /* General cover charge */
    --color-ga:           #5B9BD5;  /* General admission */
    --color-reserved:     #9B59B6;  /* Reserved seating */
    --color-vip:          #E8C97A;  /* VIP tables */

    /* Typography */
    --font-display:  'Oswald', 'Impact', 'Arial Narrow', sans-serif;
    --font-serif:    'Playfair Display', 'Georgia', serif;
    --font-body:     'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-mono:     'JetBrains Mono', 'Courier New', monospace;

    /* Type Scale */
    --text-xs:   0.75rem;   /* 12px */
    --text-sm:   0.875rem;  /* 14px */
    --text-base: 1rem;      /* 16px */
    --text-lg:   1.125rem;  /* 18px */
    --text-xl:   1.25rem;   /* 20px */
    --text-2xl:  1.5rem;    /* 24px */
    --text-3xl:  1.875rem;  /* 30px */
    --text-4xl:  2.25rem;   /* 36px */
    --text-5xl:  3rem;      /* 48px */
    --text-6xl:  3.75rem;   /* 60px */
    --text-hero: clamp(2.5rem, 7vw, 5.5rem);

    /* Spacing Scale */
    --space-1:  0.25rem;
    --space-2:  0.5rem;
    --space-3:  0.75rem;
    --space-4:  1rem;
    --space-5:  1.25rem;
    --space-6:  1.5rem;
    --space-8:  2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;

    /* Border Radius */
    --radius-sm:  4px;
    --radius-md:  6px;
    --radius-lg:  10px;
    --radius-xl:  16px;
    --radius-pill: 50px;

    /* Transitions */
    --transition-fast:   150ms ease;
    --transition-base:   250ms ease;
    --transition-slow:   400ms ease;

    /* Layout */
    --container-max:  1200px;
    --container-wide: 1400px;
    --header-height:  72px;
    --sidebar-width:  320px;

    /* Z-index Scale */
    --z-base:    1;
    --z-dropdown: 100;
    --z-sticky:  200;
    --z-overlay: 300;
    --z-modal:   400;
}


/* ==========================================================================
   2. CSS RESET & BOX MODEL
   ========================================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    font-size: 16px;
}

body {
    background-color: var(--color-dark);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

img,
video,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: var(--color-gold);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--color-gold-light);
}

ul,
ol {
    list-style: none;
}

button {
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
}

input,
textarea,
select {
    font-family: inherit;
    font-size: inherit;
}

table {
    border-collapse: collapse;
    width: 100%;
}


/* ==========================================================================
   3. BASE TYPOGRAPHY
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 700;
    line-height: 1.1;
    color: var(--color-white);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

h1 { font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl)); }
h2 { font-size: clamp(var(--text-2xl), 4vw, var(--text-4xl)); }
h3 { font-size: clamp(var(--text-xl), 3vw, var(--text-3xl)); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); }

p {
    margin-bottom: var(--space-4);
    color: var(--color-text);
    line-height: 1.75;
}

p:last-child {
    margin-bottom: 0;
}

strong, b {
    font-weight: 700;
    color: var(--color-white);
}

.eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: var(--space-3);
}

.section-title {
    font-family: var(--font-display);
    font-size: clamp(var(--text-2xl), 4vw, var(--text-4xl));
    color: var(--color-white);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-2);
}

.section-subtitle {
    font-size: var(--text-lg);
    color: var(--color-muted-light);
    font-weight: 400;
    margin-bottom: var(--space-8);
    text-transform: none;
    letter-spacing: 0;
    font-family: var(--font-body);
}


/* ==========================================================================
   4. LAYOUT UTILITIES
   ========================================================================== */

.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--space-6);
}

.container--wide {
    max-width: var(--container-wide);
}

.container--narrow {
    max-width: 760px;
}

.section {
    padding-block: var(--space-20);
}

.section--sm {
    padding-block: var(--space-12);
}

.section--lg {
    padding-block: var(--space-24);
}

.section--dark {
    background-color: var(--color-dark);
}

.section--darker {
    background-color: var(--color-black);
}

.section--card {
    background-color: var(--color-dark-2);
}

.grid {
    display: grid;
    gap: var(--space-6);
}

.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }

.grid--auto-3 {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

.grid--auto-4 {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.flex {
    display: flex;
    gap: var(--space-4);
}

.flex--center {
    align-items: center;
    justify-content: center;
}

.flex--between {
    align-items: center;
    justify-content: space-between;
}

.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }


/* ==========================================================================
   5. HEADER & NAVIGATION
   ========================================================================== */

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: var(--z-sticky);
    height: var(--header-height);
    background: rgba(10, 10, 10, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--color-border);
    transition: background var(--transition-base),
                border-color var(--transition-base);
}

.site-header.scrolled {
    background: rgba(10, 10, 10, 0.98);
    border-bottom-color: rgba(201, 168, 76, 0.2);
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    padding-inline: var(--space-6);
    max-width: var(--container-wide);
    margin-inline: auto;
}

/* Top utility bar — phone + email */
.site-topbar {
    background: var(--color-black);
    border-bottom: 1px solid var(--color-border);
    padding-block: var(--space-2);
    font-size: var(--text-xs);
}

.site-topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: var(--container-wide);
    margin-inline: auto;
    padding-inline: var(--space-6);
}

.site-topbar a {
    color: var(--color-muted-light);
    font-weight: 600;
    letter-spacing: 0.04em;
    transition: color var(--transition-fast);
}

.site-topbar a:hover {
    color: var(--color-gold);
}

/* Logo */
.site-logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.site-logo img {
    height: 48px;
    width: auto;
}

/* Primary Nav wrapper — flex row, items aligned center */
.site-nav {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
}

/* WordPress wraps wp_nav_menu() in a div — flatten it */
.site-nav > div {
    display: contents;
}

/* The <ul> WordPress outputs — ul#primary-menu */
.site-nav__list,
ul#primary-menu,
nav#site-navigation ul {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
}

/* Each <li> — strip all default browser/theme margins */
.site-nav__list > li,
ul#primary-menu > li,
nav#site-navigation ul > li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* Every nav <a> — WordPress generates without our custom class */
.site-nav__list > li > a,
ul#primary-menu > li > a,
nav#site-navigation ul > li > a {
    display: block !important;
    padding: 8px 14px !important;
    font-family: var(--font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    color: #AAAAAA !important;
    border-radius: var(--radius-sm) !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    background: transparent !important;
    line-height: 1 !important;
    transition: color 0.15s ease, background 0.15s ease !important;
}

/* Hover */
.site-nav__list > li > a:hover,
ul#primary-menu > li > a:hover,
nav#site-navigation ul > li > a:hover {
    color: #C9A84C !important;
    background: rgba(201, 168, 76, 0.08) !important;
}

/* Current / active page */
.site-nav__list > li.current-menu-item > a,
.site-nav__list > li.current_page_item > a,
.site-nav__list > li.current-menu-ancestor > a,
ul#primary-menu > li.current-menu-item > a,
ul#primary-menu > li.current_page_item > a,
ul#primary-menu > li.current-menu-ancestor > a,
nav#site-navigation ul > li.current-menu-item > a {
    color: #C9A84C !important;
    background: rgba(201, 168, 76, 0.08) !important;
}

/* CTA Button — Reserve a Table */
a.site-nav__cta,
.site-nav__cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin-left: 16px !important;
    padding: 10px 18px !important;
    background: #C9A84C !important;
    color: #0A0A0A !important;
    font-family: var(--font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    border-radius: var(--radius-md) !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    flex-shrink: 0 !important;
    transition: background 0.15s ease, transform 0.15s ease !important;
}

a.site-nav__cta:hover,
.site-nav__cta:hover {
    background: #E8C97A !important;
    color: #0A0A0A !important;
    transform: translateY(-1px) !important;
}

/* Hide the WP emoji <img> that gets injected for the 🪑 emoji */
.site-nav__cta img.emoji {
    display: none !important;
}

/* Hamburger — mobile */
.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: var(--space-2);
    cursor: pointer;
    border: none;
    background: none;
}

.nav-toggle__bar {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-white);
    border-radius: 2px;
    transition: transform var(--transition-base),
                opacity var(--transition-base);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2) {
    opacity: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}


/* ==========================================================================
   6. HERO SECTION
   ========================================================================== */

.hero {
    position: relative;
    min-height: 85vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding-top: var(--header-height);
    background-color: var(--color-black);
}

.hero__media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero__media video,
.hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(10, 10, 10, 0.3) 0%,
        rgba(10, 10, 10, 0.6) 50%,
        rgba(10, 10, 10, 0.95) 100%
    );
    z-index: 1;
}

.hero__content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: var(--space-12) var(--space-6);
    max-width: 800px;
    margin-inline: auto;
}

.hero__eyebrow {
    display: inline-block;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--color-gold);
    border: 1px solid rgba(201, 168, 76, 0.4);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-sm);
    margin-bottom: var(--space-5);
}

.hero__title {
    font-family: var(--font-display);
    font-size: var(--text-hero);
    font-weight: 900;
    color: var(--color-white);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.0;
    margin-bottom: var(--space-5);
    text-shadow: 0 2px 40px rgba(0, 0, 0, 0.8);
}

.hero__title span {
    color: var(--color-gold);
}

.hero__sub {
    font-size: var(--text-lg);
    color: rgba(245, 240, 232, 0.85);
    max-width: 560px;
    margin-inline: auto;
    margin-bottom: var(--space-8);
    line-height: 1.6;
    font-weight: 400;
}

.hero__actions {
    display: flex;
    gap: var(--space-4);
    justify-content: center;
    flex-wrap: wrap;
}


/* ==========================================================================
   BUTTONS — Global
   ========================================================================== */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1;
    border-radius: var(--radius-md);
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background var(--transition-fast),
                border-color var(--transition-fast),
                color var(--transition-fast),
                transform var(--transition-fast),
                box-shadow var(--transition-fast);
    white-space: nowrap;
}

.btn:focus-visible {
    outline: 2px solid var(--color-gold);
    outline-offset: 3px;
}

/* Primary — Gold fill */
.btn--primary {
    background: var(--color-gold);
    color: var(--color-black);
    border-color: var(--color-gold);
    padding: var(--space-4) var(--space-8);
}

.btn--primary:hover {
    background: var(--color-gold-light);
    border-color: var(--color-gold-light);
    color: var(--color-black);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(201, 168, 76, 0.3);
}

/* Secondary — Gold outline */
.btn--secondary {
    background: transparent;
    color: var(--color-gold);
    border-color: var(--color-gold);
    padding: var(--space-4) var(--space-8);
}

.btn--secondary:hover {
    background: rgba(201, 168, 76, 0.12);
    color: var(--color-gold-light);
    border-color: var(--color-gold-light);
    transform: translateY(-2px);
}

/* Ghost — subtle outline */
.btn--ghost {
    background: transparent;
    color: var(--color-muted-light);
    border-color: var(--color-border-light);
    padding: var(--space-3) var(--space-6);
}

.btn--ghost:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
}

/* Danger */
.btn--danger {
    background: var(--color-danger);
    color: var(--color-white);
    border-color: var(--color-danger);
    padding: var(--space-3) var(--space-6);
}

/* Size modifiers */
.btn--sm { padding: var(--space-2) var(--space-4); font-size: var(--text-xs); }
.btn--lg { padding: var(--space-5) var(--space-10); font-size: var(--text-base); }
.btn--full { width: 100%; }


/* ==========================================================================
   7. TRUST BAR
   ========================================================================== */

.trust-bar {
    background: #0D1520;
    border-top: 1px solid rgba(201, 168, 76, 0.15);
    border-bottom: 1px solid rgba(201, 168, 76, 0.15);
    padding-block: var(--space-4);
}

.trust-bar__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    text-align: center;
}

.trust-bar__stars {
    color: var(--color-gold);
    font-size: var(--text-lg);
    letter-spacing: 2px;
}

.trust-bar__text {
    font-size: var(--text-sm);
    color: var(--color-muted-light);
    font-weight: 500;
}

.trust-bar__text strong {
    color: var(--color-white);
}

.trust-bar__divider {
    color: var(--color-border-light);
    font-size: var(--text-xs);
}

.trust-bar__link {
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--color-gold);
    letter-spacing: 0.04em;
    border-bottom: 1px solid rgba(201, 168, 76, 0.4);
    transition: color var(--transition-fast),
                border-color var(--transition-fast);
}

.trust-bar__link:hover {
    color: var(--color-gold-light);
    border-color: var(--color-gold-light);
}


/* ==========================================================================
   8. EVENT CARDS
   ========================================================================== */

.events-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--space-6);
}

.event-card {
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: border-color var(--transition-base),
                transform var(--transition-base),
                box-shadow var(--transition-base);
}

.event-card:hover {
    border-color: rgba(201, 168, 76, 0.5);
    transform: translateY(-4px);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    cursor: pointer;
}

/* Prevent double-click conflict on inner links */
.event-card .event-card__title a,
.event-card .event-card__footer a {
    position: relative;
    z-index: 1;
}

.event-card__image {
    position: relative;
    /* Portrait ratio to show full concert flyer posters */
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--color-black);
}

.event-card__image img {
    width: 100%;
    height: 100%;
    /* contain = full poster visible, no cropping */
    object-fit: contain;
    object-position: center top;
    transition: transform var(--transition-slow);
}

.event-card:hover .event-card__image img {
    transform: scale(1.02);
}

/* Ticket type badge on card image */
.event-card__badge {
    position: absolute;
    top: var(--space-3);
    left: var(--space-3);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.event-card__badge--cover   { background: var(--color-cover);   color: var(--color-black); }
.event-card__badge--ga      { background: var(--color-ga);      color: var(--color-white); }
.event-card__badge--reserved{ background: var(--color-reserved); color: var(--color-white); }
.event-card__badge--vip     { background: var(--color-vip);     color: var(--color-black); }

/* Date chip on card image */
.event-card__date-chip {
    position: absolute;
    bottom: var(--space-3);
    right: var(--space-3);
    background: rgba(10, 10, 10, 0.88);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: var(--space-2) var(--space-3);
    text-align: center;
    backdrop-filter: blur(4px);
}

.event-card__date-chip .month {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-gold);
    line-height: 1;
}

.event-card__date-chip .day {
    display: block;
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 900;
    color: var(--color-white);
    line-height: 1;
    margin-top: 2px;
}

.event-card__body {
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: var(--space-3);
}

.event-card__title {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-white);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.2;
}

.event-card__title a {
    color: inherit;
    transition: color var(--transition-fast);
}

.event-card__title a:hover {
    color: var(--color-gold);
}

.event-card__meta {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    font-size: var(--text-sm);
    color: var(--color-muted-light);
    flex-wrap: wrap;
}

.event-card__meta-item {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.event-card__excerpt {
    font-size: var(--text-sm);
    color: var(--color-muted-light);
    line-height: 1.6;
    flex: 1;

    /* Clamp to 3 lines */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.event-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border);
    gap: var(--space-3);
    margin-top: auto;
}

.event-card__price {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 900;
    color: var(--color-gold);
    letter-spacing: 0.02em;
}

.event-card__price .age {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--color-muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-left: var(--space-1);
    font-family: var(--font-body);
}


/* ==========================================================================
   9. EVENT SINGLE PAGE
   ========================================================================== */

.single-event {
    padding-top: var(--header-height);
}

/* Event Hero — full-width flyer + overlay */
.single-event__hero {
    position: relative;
    min-height: 60vh;
    display: flex;
    align-items: flex-end;
    background: var(--color-black);
    overflow: hidden;
}

.single-event__hero-image {
    position: absolute;
    inset: 0;
}

.single-event__hero-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.single-event__hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(10, 10, 10, 0.7) 60%,
        rgba(10, 10, 10, 0.98) 100%
    );
}

.single-event__hero-content {
    position: relative;
    z-index: 2;
    padding: var(--space-12) var(--space-6);
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
}

/* Event body layout */
.single-event__layout {
    display: grid;
    grid-template-columns: 1fr var(--sidebar-width);
    gap: var(--space-8);
    max-width: var(--container-max);
    margin-inline: auto;
    padding: var(--space-10) var(--space-6);
    align-items: start;
}

.single-event__main { min-width: 0; }

.single-event__sidebar {
    position: sticky;
    top: calc(var(--header-height) + var(--space-6));
}

/* Schedule grid */
.event-schedule {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-8);
}

.event-schedule__cell {
    background: var(--color-dark-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-4) var(--space-4);
}

.event-schedule__label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: var(--space-1);
    display: block;
}

.event-schedule__value {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-white);
    line-height: 1.3;
}

/* Event description */
.event-content {
    font-size: var(--text-base);
    line-height: 1.8;
    color: var(--color-text);
}

.event-content p  { margin-bottom: var(--space-4); }
.event-content ul,
.event-content ol { margin-bottom: var(--space-4); padding-left: var(--space-5); list-style: revert; }
.event-content li { margin-bottom: var(--space-2); }
.event-content strong { color: var(--color-white); }
.event-content a  { color: var(--color-gold); }
.event-content a:hover { color: var(--color-gold-light); }


/* ==========================================================================
   10. TICKET TIERS
   ========================================================================== */

.ticket-tiers {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
}

.ticket-tier {
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-5) var(--space-5);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    transition: border-color var(--transition-fast);
}

.ticket-tier:hover {
    border-color: var(--color-border-light);
}

/* Left accent stripe by tier type */
.ticket-tier--cover   { border-left: 3px solid var(--color-cover); }
.ticket-tier--ga      { border-left: 3px solid var(--color-ga); }
.ticket-tier--reserved{ border-left: 3px solid var(--color-reserved); }
.ticket-tier--vip     { border-left: 3px solid var(--color-vip); }

.ticket-tier__info { flex: 1; min-width: 0; }

.ticket-tier__name {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-white);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-bottom: var(--space-1);
}

.ticket-tier__desc {
    font-size: var(--text-sm);
    color: var(--color-muted);
    line-height: 1.4;
}

.ticket-tier__tag {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    margin-bottom: var(--space-2);
}

.ticket-tier--cover   .ticket-tier__tag { background: rgba(201, 168, 76, 0.15); color: var(--color-cover); }
.ticket-tier--ga      .ticket-tier__tag { background: rgba(91, 155, 213, 0.15);  color: var(--color-ga); }
.ticket-tier--reserved .ticket-tier__tag{ background: rgba(155, 89, 182, 0.15);  color: var(--color-reserved); }
.ticket-tier--vip     .ticket-tier__tag { background: rgba(232, 201, 122, 0.15); color: var(--color-vip); }

.ticket-tier__price {
    text-align: right;
    flex-shrink: 0;
}

.ticket-tier__amount {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 900;
    color: var(--color-gold);
    display: block;
    line-height: 1;
}

.ticket-tier__availability {
    font-size: var(--text-xs);
    color: var(--color-muted);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-top: var(--space-1);
    display: block;
}

.ticket-tier__availability.low {
    color: #E87C4C;
    font-weight: 700;
}

.ticket-tier__availability.sold-out {
    color: var(--color-danger);
    font-weight: 700;
}

/* TEC Tickets block wrapper override */
.tribe-tickets__form,
.tribe-block__tickets {
    background: transparent !important;
}

.tribe-tickets-loader--saving { color: var(--color-gold) !important; }


/* ==========================================================================
   11. VIP / RESERVATIONS
   ========================================================================== */

.vip-table-map {
    background: var(--color-dark-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    margin-bottom: var(--space-6);
    overflow-x: auto;
}

.table-map {
    display: grid;
    grid-template-areas:
        "stage stage stage"
        "bar   floor  bar2"
        "seats seats  seats";
    gap: var(--space-2);
    min-width: 360px;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
}

.table-map__stage {
    grid-area: stage;
    background: rgba(201, 168, 76, 0.15);
    border: 1px solid var(--color-gold);
    color: var(--color-gold);
    padding: var(--space-3);
    border-radius: var(--radius-sm);
}

.table-map__seat {
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    color: var(--color-muted-light);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background var(--transition-fast),
                border-color var(--transition-fast),
                color var(--transition-fast);
}

.table-map__seat:hover:not(.taken) {
    background: rgba(201, 168, 76, 0.12);
    border-color: var(--color-gold);
    color: var(--color-gold);
}

.table-map__seat.taken {
    background: rgba(226, 75, 74, 0.1);
    border-color: rgba(226, 75, 74, 0.3);
    color: var(--color-danger);
    cursor: not-allowed;
    opacity: 0.6;
}

/* VIP perks list */
.vip-perks {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
}

.vip-perk {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.vip-perk__icon {
    font-size: var(--text-xl);
    flex-shrink: 0;
    line-height: 1;
}

.vip-perk__text strong {
    display: block;
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--color-white);
    margin-bottom: 2px;
}

.vip-perk__text span {
    font-size: var(--text-xs);
    color: var(--color-muted);
}


/* ==========================================================================
   12. WOOCOMMERCE — Cart, Checkout, My Account
   ========================================================================== */

/* Override WooCommerce defaults to match dark theme */
.woocommerce,
.woocommerce-page {
    color: var(--color-text);
}

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
    color: var(--color-muted);
    font-size: var(--text-sm);
    margin-bottom: var(--space-6);
}

.woocommerce .woocommerce-breadcrumb a {
    color: var(--color-gold);
}

/* Notices */
.woocommerce-message,
.woocommerce-info {
    background: rgba(201, 168, 76, 0.08) !important;
    border-top: 3px solid var(--color-gold) !important;
    color: var(--color-white) !important;
    border-radius: 0 0 var(--radius-md) var(--radius-md) !important;
}

.woocommerce-error {
    background: rgba(226, 75, 74, 0.08) !important;
    border-top: 3px solid var(--color-danger) !important;
    color: var(--color-white) !important;
    border-radius: 0 0 var(--radius-md) var(--radius-md) !important;
}

/* Forms */
.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
    color: var(--color-muted-light);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.04em;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    background: var(--color-dark-3) !important;
    border: 1px solid var(--color-border-light) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-white) !important;
    padding: var(--space-3) var(--space-4) !important;
    transition: border-color var(--transition-fast) !important;
    width: 100%;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--color-gold) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.15) !important;
}

/* WooCommerce buttons */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    background: var(--color-gold) !important;
    color: var(--color-black) !important;
    font-family: var(--font-body) !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    border-radius: var(--radius-md) !important;
    border: none !important;
    padding: var(--space-3) var(--space-6) !important;
    transition: background var(--transition-fast),
                transform var(--transition-fast) !important;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: var(--color-gold-light) !important;
    color: var(--color-black) !important;
    transform: translateY(-1px) !important;
}

/* Cart table */
.woocommerce table.shop_table {
    background: var(--color-dark-2);
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.woocommerce table.shop_table thead tr {
    background: var(--color-dark-3);
}

.woocommerce table.shop_table thead th {
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-gold);
    border-bottom: 1px solid var(--color-border) !important;
    padding: var(--space-4) var(--space-5) !important;
}

.woocommerce table.shop_table tbody td {
    border-bottom: 1px solid var(--color-border) !important;
    padding: var(--space-4) var(--space-5) !important;
    color: var(--color-text);
    vertical-align: middle;
}

.woocommerce table.shop_table tbody tr:last-child td {
    border-bottom: none !important;
}

/* Cart totals */
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
}

.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-page .cart-collaterals .cart_totals h2 {
    font-size: var(--text-lg);
    color: var(--color-gold);
    margin-bottom: var(--space-4);
    letter-spacing: 0.1em;
}

.woocommerce table.shop_table tfoot tr th,
.woocommerce table.shop_table tfoot tr td {
    color: var(--color-white);
    font-weight: 700;
    border-top: 1px solid var(--color-border) !important;
    padding: var(--space-3) var(--space-5) !important;
}

/* Order total row */
.woocommerce table.shop_table .order-total th,
.woocommerce table.shop_table .order-total td {
    color: var(--color-gold);
    font-size: var(--text-xl);
}

/* Checkout steps */
.woocommerce .checkout_coupon,
.woocommerce .login,
.woocommerce .register {
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
}

/* Payment section */
.woocommerce #payment {
    background: var(--color-dark-2) !important;
    border-radius: var(--radius-lg) !important;
    border: 1px solid var(--color-border) !important;
}

.woocommerce #payment ul.payment_methods {
    border-bottom: 1px solid var(--color-border) !important;
}

.woocommerce #payment ul.payment_methods li {
    color: var(--color-text);
}

.woocommerce #payment div.payment_box {
    background: var(--color-dark-3) !important;
    color: var(--color-muted-light) !important;
}

.woocommerce #payment div.payment_box::before {
    border-bottom-color: var(--color-dark-3) !important;
}


/* ==========================================================================
   13. CONTACT PAGE
   ========================================================================== */

.contact-page {
    padding-top: var(--header-height);
}

.contact-hero {
    background: radial-gradient(ellipse at 50% 0%, rgba(201, 168, 76, 0.1) 0%, transparent 70%),
                var(--color-black);
    padding: var(--space-20) var(--space-6) var(--space-16);
    text-align: center;
    border-bottom: 1px solid var(--color-border);
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-8);
    max-width: var(--container-max);
    margin-inline: auto;
    padding: var(--space-12) var(--space-6);
    align-items: start;
}

.contact-card {
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    transition: border-color var(--transition-base);
}

.contact-card:hover {
    border-color: rgba(201, 168, 76, 0.35);
}

.contact-card__icon {
    width: 44px;
    height: 44px;
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201, 168, 76, 0.25);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-4);
}

.contact-card__label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-border);
    display: block;
}

.contact-card__primary {
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-white);
    display: block;
    margin-bottom: var(--space-2);
    line-height: 1.3;
}

.contact-card__primary a {
    color: inherit;
    transition: color var(--transition-fast);
}

.contact-card__primary a:hover {
    color: var(--color-gold);
}

.contact-card__note {
    font-size: var(--text-sm);
    color: var(--color-muted);
    line-height: 1.5;
}

/* Hours grid */
.hours-table {
    width: 100%;
    border-collapse: collapse;
}

.hours-table tr {
    border-bottom: 1px solid var(--color-border);
}

.hours-table tr:last-child {
    border-bottom: none;
}

.hours-table td {
    padding: var(--space-3) 0;
    font-size: var(--text-sm);
}

.hours-table td:first-child {
    color: var(--color-muted-light);
    font-weight: 600;
}

.hours-table td:last-child {
    color: var(--color-white);
    font-weight: 700;
    text-align: right;
}

/* Social links */
.social-links {
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.social-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    background: var(--color-dark-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-muted-light);
    letter-spacing: 0.04em;
    transition: border-color var(--transition-fast),
                color var(--transition-fast),
                background var(--transition-fast);
}

.social-link:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    background: rgba(201, 168, 76, 0.06);
}

/* Contact form */
.contact-form-wrap {
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-8);
}

.contact-form-wrap input,
.contact-form-wrap textarea,
.contact-form-wrap select {
    width: 100%;
    background: var(--color-dark-3);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    color: var(--color-white);
    padding: var(--space-3) var(--space-4);
    font-family: var(--font-body);
    font-size: var(--text-base);
    margin-bottom: var(--space-4);
    transition: border-color var(--transition-fast);
}

.contact-form-wrap input:focus,
.contact-form-wrap textarea:focus,
.contact-form-wrap select:focus {
    outline: none;
    border-color: var(--color-gold);
    box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.15);
}

.contact-form-wrap label {
    display: block;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-muted-light);
    letter-spacing: 0.04em;
    margin-bottom: var(--space-2);
}

.contact-form-wrap textarea {
    resize: vertical;
    min-height: 120px;
}


/* ==========================================================================
   14. FOOTER
   ========================================================================== */

.site-footer {
    background: var(--color-black);
    border-top: 1px solid var(--color-border);
    padding-top: var(--space-16);
}

.site-footer__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: var(--space-8);
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--space-6);
    padding-bottom: var(--space-12);
}

.footer-brand__logo {
    margin-bottom: var(--space-4);
}

.footer-brand__logo img {
    height: 56px;
    width: auto;
}

.footer-brand__tagline {
    font-size: var(--text-sm);
    color: var(--color-muted);
    line-height: 1.6;
    margin-bottom: var(--space-5);
    max-width: 280px;
}

.footer-brand__address {
    font-style: normal;
    font-size: var(--text-sm);
    color: var(--color-muted-light);
    line-height: 1.8;
}

.footer-col__title {
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-border);
}

.footer-nav {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.footer-nav a {
    font-size: var(--text-sm);
    color: var(--color-muted-light);
    transition: color var(--transition-fast);
    padding: var(--space-1) 0;
}

.footer-nav a:hover {
    color: var(--color-gold);
}

.footer-hours {
    font-size: var(--text-sm);
    color: var(--color-muted-light);
}

.footer-hours p {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 0;
    color: var(--color-muted-light);
}

.footer-hours p strong {
    color: var(--color-white);
    font-weight: 600;
}

.footer-hours p:last-child {
    border-bottom: none;
}

.site-footer__bottom {
    background: rgba(0, 0, 0, 0.4);
    border-top: 1px solid var(--color-border);
    padding-block: var(--space-5);
}

.site-footer__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-4);
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--space-6);
}

.footer-legal {
    font-size: var(--text-xs);
    color: var(--color-muted);
}

.footer-legal a {
    color: var(--color-muted);
    margin-left: var(--space-4);
}

.footer-legal a:hover {
    color: var(--color-gold);
}

.footer-social {
    display: flex;
    gap: var(--space-3);
}

.footer-social a {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-dark-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    color: var(--color-muted-light);
    font-size: var(--text-sm);
    transition: border-color var(--transition-fast),
                color var(--transition-fast),
                background var(--transition-fast);
}

.footer-social a:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    background: rgba(201, 168, 76, 0.08);
}


/* ==========================================================================
   15. UTILITY CLASSES
   ========================================================================== */

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

.divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin-block: var(--space-8);
}

.badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-sm);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1;
}

.badge--gold    { background: rgba(201, 168, 76, 0.15); color: var(--color-gold); border: 1px solid rgba(201, 168, 76, 0.3); }
.badge--success { background: rgba(76, 175, 110, 0.15); color: var(--color-success); border: 1px solid rgba(76, 175, 110, 0.3); }
.badge--danger  { background: rgba(226, 75, 74, 0.15);  color: var(--color-danger);  border: 1px solid rgba(226, 75, 74, 0.3); }
.badge--muted   { background: var(--color-dark-3); color: var(--color-muted); border: 1px solid var(--color-border); }

.notice {
    border-radius: var(--radius-md);
    padding: var(--space-4) var(--space-5);
    font-size: var(--text-sm);
    margin-bottom: var(--space-5);
}

.notice--gold   { background: rgba(201, 168, 76, 0.08); border: 1px solid rgba(201, 168, 76, 0.3); color: var(--color-gold-light); }
.notice--success{ background: rgba(76, 175, 110, 0.08); border: 1px solid rgba(76, 175, 110, 0.3); color: var(--color-success); }
.notice--danger { background: rgba(226, 75, 74, 0.08);  border: 1px solid rgba(226, 75, 74, 0.3);  color: var(--color-danger); }

.map-embed {
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid var(--color-border);
    aspect-ratio: 16 / 9;
}

.map-embed iframe {
    width: 100%;
    height: 100%;
    display: block;
}

.section-header {
    margin-bottom: var(--space-10);
}

.section-label {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-border);
}


/* ==========================================================================
   16. ACCESSIBILITY
   ========================================================================== */

:focus-visible {
    outline: 2px solid var(--color-gold);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.skip-link {
    position: absolute;
    top: -100%;
    left: var(--space-4);
    background: var(--color-gold);
    color: var(--color-black);
    font-weight: 700;
    padding: var(--space-3) var(--space-5);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    z-index: 9999;
    text-decoration: none;
}

.skip-link:focus {
    top: 0;
}


/* ==========================================================================
   17. ANIMATIONS
   ========================================================================== */

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes pulse-gold {
    0%, 100% { box-shadow: 0 0 0 0 rgba(201, 168, 76, 0.4); }
    50%       { box-shadow: 0 0 0 8px rgba(201, 168, 76, 0); }
}

.animate-fade-up {
    opacity: 0;
    animation: fadeUp 0.6s ease forwards;
}

.animate-fade-up--delay-1 { animation-delay: 0.1s; }
.animate-fade-up--delay-2 { animation-delay: 0.2s; }
.animate-fade-up--delay-3 { animation-delay: 0.3s; }

.btn--pulse {
    animation: pulse-gold 2s infinite;
}


/* ==========================================================================
   18. RESPONSIVE BREAKPOINTS
   ========================================================================== */

/* Tablet — 768px */
@media (max-width: 768px) {

    :root {
        --header-height: 60px;
    }

    .site-nav {
        display: none;
        position: fixed;
        top: var(--header-height);
        left: 0;
        right: 0;
        bottom: 0;
        background: var(--color-black);
        flex-direction: column;
        align-items: stretch;
        padding: var(--space-6);
        overflow-y: auto;
        z-index: var(--z-overlay);
    }

    .site-nav.is-open {
        display: flex;
    }

    /* Mobile: unwrap the display:contents div and stack the list */
    .site-nav > div {
        display: block;
    }

    .site-nav__list,
    #primary-menu,
    .site-nav ul {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: 100%;
    }

    .site-nav__list > li > a,
    #primary-menu > li > a,
    .site-nav ul > li > a,
    .site-nav__link {
        padding: 16px var(--space-4);
        font-size: var(--text-base);
        border-bottom: 1px solid var(--color-border);
        border-radius: 0;
        display: block;
    }

    .site-nav__cta {
        margin-left: 0;
        margin-top: var(--space-4);
        justify-content: center;
        padding: var(--space-4);
        font-size: var(--text-base);
    }

    .nav-toggle {
        display: flex;
    }

    .site-topbar { display: none; }

    .single-event__layout {
        grid-template-columns: 1fr;
    }

    .single-event__sidebar {
        position: static;
    }

    .contact-grid {
        grid-template-columns: 1fr;
    }

    .vip-perks {
        grid-template-columns: 1fr;
    }

    .site-footer__grid {
        grid-template-columns: 1fr 1fr;
    }

    .hero__actions {
        flex-direction: column;
        align-items: center;
    }

    .btn--primary,
    .btn--secondary {
        width: 100%;
        max-width: 320px;
        justify-content: center;
    }

    .grid--3,
    .grid--4 {
        grid-template-columns: 1fr 1fr;
    }
}

/* Mobile — 480px */
@media (max-width: 480px) {

    .container {
        padding-inline: var(--space-4);
    }

    .section {
        padding-block: var(--space-12);
    }

    .events-grid {
        grid-template-columns: 1fr;
    }

    .grid--2,
    .grid--3,
    .grid--4 {
        grid-template-columns: 1fr;
    }

    .trust-bar__inner {
        flex-direction: column;
        gap: var(--space-2);
    }

    .trust-bar__divider {
        display: none;
    }

    .site-footer__grid {
        grid-template-columns: 1fr;
    }

    .site-footer__bottom-inner {
        flex-direction: column;
        text-align: center;
    }

    .ticket-tier {
        flex-direction: column;
        align-items: flex-start;
    }

    .ticket-tier__price {
        text-align: left;
    }
}


/* ==========================================================================
   19. THE EVENTS CALENDAR — FULL CONTRAST OVERRIDE
   TEC ships dark-blue-on-dark defaults. These rules force readable contrast
   across the Month, List, and Day views, using the brand color system.
   ========================================================================== */

/* ── TEC CSS variable override — kills the navy/dark-blue palette ── */
:root {
    --tec-color-accent-primary:            #C9A84C;
    --tec-color-accent-primary-hover:      #E8C97A;
    --tec-color-accent-primary-active:     #E8C97A;
    --tec-color-accent-secondary:          #C9A84C;
    --tec-color-background:                #111111;
    --tec-color-background-secondary:      #1A1A1A;
    --tec-color-background-events:         #111111;
    --tec-color-day-background:            #111111;
    --tec-color-day-background-hover:      #1A1A1A;
    --tec-color-full-background:           #111111;
    --tec-color-text-primary:              #F5F0E8;
    --tec-color-text-secondary:            #AAAAAA;
    --tec-color-text-disabled:             #666666;
    --tec-color-text-events-title:         #F5F0E8;
    --tec-color-text-event-date:           #C9A84C;
    --tec-color-link-accent:               #C9A84C;
    --tec-color-link-accent-hover:         #E8C97A;
    --tec-color-border-default:            #2C2C2C;
    --tec-color-border-active:             #C9A84C;
    --tec-color-day-grid-cell:             #1A1A1A;
    --tec-color-month-grid-column-header:  #222222;
    --tec-color-today-background:          rgba(201, 168, 76, 0.1);
    --tec-color-event-featured-bar:        #C9A84C;
    --tec-font-size-1:                     0.75rem;
    --tec-font-size-2:                     0.875rem;
    --tec-font-size-3:                     1rem;
    --tec-font-size-4:                     1.125rem;
}

/* ── Calendar wrapper ── */
.tribe-events,
.tribe-common,
.tribe-events-calendar,
#tribe-events,
#tribe-events-content,
.tribe-events__inner,
.tribe-common__inner {
    background: var(--color-dark) !important;
    color: var(--color-white) !important;
    font-family: var(--font-body) !important;
}

/* ── Month view: day column headers (M T W T F S S) ── */
.tribe-events-calendar thead th,
.tribe-events-calendar thead td,
.tribe-events-pro-month-grid-header__item,
.tribe-events-pro-month-grid__header-item,
.tribe-common-b2--bold,
.tribe-events-pro-month-grid-header {
    color: var(--color-gold) !important;
    background: var(--color-dark-3) !important;
    border-color: var(--color-border) !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    font-size: 0.7rem !important;
}

/* ── Month grid cells ── */
.tribe-events-calendar td,
.tribe-events-pro-month-grid__cell,
.tribe-events-pro-month-grid-cell,
.tribe-events-calendar-month__calendar-event,
.tribe-events-pro-month-week-grid__cell {
    background: var(--color-dark-2) !important;
    border-color: var(--color-border) !important;
    color: var(--color-white) !important;
}

/* ── Day number in each cell ── */
.tribe-events-calendar .tribe-events-calendar__body-row--date,
.tribe-events-pro-month-grid-cell__date,
.tribe-events-pro-month-grid__cell-header,
.tribe-events-calendar-month__calendar-event-datetime,
.tribe-events-calendar td.tribe_events_cat-country-music,
.tribe-events-pro-month-grid-cell__date-number,
.tribe-events-calendar-month__calendar-event-title,
.tribe-events-pro-month-grid__cell-date {
    color: var(--color-muted-light) !important;
    font-weight: 600 !important;
    font-size: var(--text-sm) !important;
}

/* ── Today highlight ── */
.tribe-events-calendar .tribe-events-present td,
.tribe-events-calendar td.tribe-events-today,
.tribe-events-pro-month-grid-cell--today,
.tribe-events-calendar-month__calendar-event--featured {
    background: rgba(201, 168, 76, 0.08) !important;
    border-color: rgba(201, 168, 76, 0.3) !important;
}

/* ── Event pills/dots inside month cells ── */
.tribe-events-calendar a,
.tribe-events-pro-month-grid-cell__events a,
.tribe-events-calendar-month__calendar-event a,
.tribe-events-pro-month-grid-cell .tribe-event-url {
    color: var(--color-gold-light) !important;
    text-decoration: none !important;
    font-size: var(--text-xs) !important;
    font-weight: 600 !important;
}

.tribe-events-calendar a:hover,
.tribe-events-pro-month-grid-cell__events a:hover {
    color: var(--color-gold) !important;
    text-decoration: underline !important;
}

/* ── Event dot / featured bar ── */
.tribe-events-pro-month-grid-cell__featured-bar,
.tribe-events-calendar__event--featured::before {
    background: var(--color-gold) !important;
}

/* ── Search bar ── */
.tribe-search-form,
.tribe-events-pro-filter-bar,
.tribe-common-form-control-text__input,
.tribe-common-form-control-text,
.tribe-events-c-search__input-control,
.tribe-events-c-search__button {
    background: var(--color-dark-3) !important;
    border-color: var(--color-border-light) !important;
    color: var(--color-white) !important;
    border-radius: var(--radius-md) !important;
}

.tribe-events-c-search__input-control:focus,
.tribe-common-form-control-text__input:focus {
    border-color: var(--color-gold) !important;
    box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.15) !important;
    outline: none !important;
}

/* "Find Events" button */
.tribe-events-c-search__button,
.tribe-common-c-btn,
.tribe-common-c-btn-primary {
    background: var(--color-gold) !important;
    color: var(--color-black) !important;
    border: none !important;
    font-weight: 800 !important;
    letter-spacing: 0.05em !important;
    border-radius: var(--radius-md) !important;
    transition: background var(--transition-fast) !important;
}

.tribe-events-c-search__button:hover,
.tribe-common-c-btn:hover,
.tribe-common-c-btn-primary:hover {
    background: var(--color-gold-light) !important;
    color: var(--color-black) !important;
}

/* ── View toggles (List / Month / Day tabs) ── */
.tribe-events-c-view-selector__list,
.tribe-events-header__top-bar-left,
.tribe-events-header__top-bar-right,
.tribe-events-c-view-selector {
    background: transparent !important;
}

.tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__list-item-text {
    color: var(--color-muted-light) !important;
    font-weight: 600 !important;
    font-size: var(--text-sm) !important;
    border-bottom: 2px solid transparent !important;
    transition: color var(--transition-fast), border-color var(--transition-fast) !important;
}

.tribe-events-c-view-selector__list-item-link:hover,
.tribe-events-c-view-selector__list-item-link--active,
.tribe-events-c-view-selector__list-item-text--active {
    color: var(--color-gold) !important;
    border-bottom-color: var(--color-gold) !important;
    background: transparent !important;
}

/* ── Month navigation arrows and "This Month" button ── */
.tribe-events-c-nav__list-item-link,
.tribe-events-c-nav__next,
.tribe-events-c-nav__prev,
.tribe-events-c-nav__today {
    color: var(--color-muted-light) !important;
    border: 1px solid var(--color-border) !important;
    background: var(--color-dark-2) !important;
    border-radius: var(--radius-md) !important;
    font-weight: 600 !important;
    transition: border-color var(--transition-fast), color var(--transition-fast) !important;
}

.tribe-events-c-nav__list-item-link:hover,
.tribe-events-c-nav__next:hover,
.tribe-events-c-nav__prev:hover,
.tribe-events-c-nav__today:hover {
    color: var(--color-gold) !important;
    border-color: var(--color-gold) !important;
    background: rgba(201, 168, 76, 0.06) !important;
}

/* ── Month heading (August 2026) ── */
.tribe-events-c-top-bar__datepicker,
.tribe-events-c-top-bar__datepicker-button,
.tribe-events-header__top-bar-title,
.tribe-events-pro-month-grid__header-date-title {
    color: var(--color-white) !important;
    font-family: var(--font-display) !important;
    font-size: clamp(1.25rem, 3vw, 1.75rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}

/* ── List view event rows ── */
.tribe-events-pro-summary__event,
.tribe-events-pro-summary__event-row,
.tribe-events-pro-list__event-row,
.tribe-events-calendar-list__event,
.tribe-events-calendar-list__event-row {
    background: var(--color-dark-2) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    margin-bottom: var(--space-4) !important;
    overflow: hidden !important;
    transition: border-color var(--transition-base) !important;
}

.tribe-events-pro-summary__event:hover,
.tribe-events-calendar-list__event:hover {
    border-color: rgba(201, 168, 76, 0.4) !important;
}

/* List view event title */
.tribe-events-calendar-list__event-title,
.tribe-events-pro-summary__event-title,
.tribe-events-calendar-list__event-title-link,
.tribe-events-pro-list__event-title {
    color: var(--color-white) !important;
    font-family: var(--font-display) !important;
    font-size: var(--text-xl) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
}

.tribe-events-calendar-list__event-title-link:hover,
.tribe-events-pro-summary__event-title-link:hover {
    color: var(--color-gold) !important;
}

/* List view date headers */
.tribe-events-calendar-list__month-separator-title,
.tribe-events-pro-summary__date-tag-datetime,
.tribe-events-calendar-list__event-datetime,
.tribe-events-pro-summary__event-datetime {
    color: var(--color-gold) !important;
    font-weight: 700 !important;
    font-size: var(--text-sm) !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* List view event description */
.tribe-events-calendar-list__event-description,
.tribe-events-pro-summary__event-description {
    color: var(--color-muted-light) !important;
    font-size: var(--text-sm) !important;
    line-height: 1.6 !important;
}

/* Cost in list view */
.tribe-events-pro-summary__event-cost,
.tribe-events-calendar-list__event-cost,
.tribe-event-cost {
    color: var(--color-gold) !important;
    font-weight: 900 !important;
    font-family: var(--font-display) !important;
    font-size: var(--text-lg) !important;
}

/* "Read More" links in list */
.tribe-events-calendar-list__event-website-link,
.tribe-events-pro-summary__event-website-link {
    color: var(--color-gold) !important;
    font-weight: 700 !important;
    font-size: var(--text-sm) !important;
    border-bottom: 1px solid rgba(201, 168, 76, 0.3) !important;
}

/* ── Day view ── */
.tribe-events-calendar-day__event,
.tribe-events-calendar-day__event-row {
    background: var(--color-dark-2) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    margin-bottom: var(--space-4) !important;
}

/* ── Pagination ── */
.tribe-events-c-nav__next-text,
.tribe-events-c-nav__prev-text {
    color: var(--color-muted-light) !important;
}

/* ── "No events" message ── */
.tribe-events-calendar-latest-past__event,
.tribe-events-notice-archive {
    color: var(--color-muted) !important;
    background: var(--color-dark-2) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    padding: var(--space-8) !important;
    text-align: center !important;
}


/* ==========================================================================
   20. EVENT TICKETS / WOOCOMMERCE TICKET BLOCK — FULL RESTYLE
   Kills the default blue/gray TEC ticket widget and replaces with
   Mustang brand styling. Targets both TEC Tickets Commerce and the
   legacy WooCommerce ticket integration.
   ========================================================================== */

/* ── Ticket block outer container ── */
.tribe-tickets,
.tribe-block__tickets,
.tribe-tickets__form,
.woocommerce-product-details__short-description + .cart,
#tribe-tickets {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin-top: var(--space-6) !important;
}

/* ── Ticket header / title bar ── */
.tribe-tickets__title,
.tribe-block__tickets__title,
.tribe-tickets-header {
    font-family: var(--font-display) !important;
    font-size: var(--text-lg) !important;
    font-weight: 700 !important;
    color: var(--color-gold) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    margin-bottom: var(--space-4) !important;
    padding-bottom: var(--space-3) !important;
    border-bottom: 1px solid var(--color-border) !important;
}

/* ── Each individual ticket row ── */
.tribe-tickets__item,
.tribe-block__tickets__item,
.tribe-common-c-list__item.tribe-tickets__item {
    background: var(--color-dark-2) !important;
    border: 1px solid var(--color-border) !important;
    border-left: 3px solid var(--color-gold) !important;
    border-radius: var(--radius-lg) !important;
    padding: var(--space-5) !important;
    margin-bottom: var(--space-3) !important;
    transition: border-color var(--transition-fast) !important;
}

.tribe-tickets__item:hover,
.tribe-block__tickets__item:hover {
    border-color: rgba(201, 168, 76, 0.5) !important;
    border-left-color: var(--color-gold-light) !important;
}

/* ── Ticket name ── */
.tribe-tickets__item__content__title,
.tribe-block__tickets__item__content__title,
.tribe-tickets__item-title,
h5.tribe-tickets__item__content__title {
    font-family: var(--font-display) !important;
    font-size: var(--text-lg) !important;
    font-weight: 700 !important;
    color: var(--color-white) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    margin-bottom: var(--space-1) !important;
}

/* ── Ticket description ── */
.tribe-tickets__item__content__description,
.tribe-block__tickets__item__content__description,
.tribe-tickets__item-description {
    font-size: var(--text-sm) !important;
    color: var(--color-muted) !important;
    line-height: 1.5 !important;
}

/* ── Ticket price ── */
.tribe-tickets__item__price,
.tribe-block__tickets__item__price,
.tribe-tickets__item__price-amount,
.tribe-amount,
.tribe-tickets__sale_price {
    font-family: var(--font-display) !important;
    font-size: var(--text-2xl) !important;
    font-weight: 900 !important;
    color: var(--color-gold) !important;
    letter-spacing: 0.02em !important;
}

/* ── Quantity input ── */
.tribe-tickets__item__quantity,
.tribe-tickets__item__quantity__spinner,
.tribe-block__tickets__item__quantity {
    background: var(--color-dark-3) !important;
    border: 1px solid var(--color-border-light) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-white) !important;
    font-weight: 700 !important;
    font-size: var(--text-base) !important;
}

.tribe-tickets__item__quantity-add,
.tribe-tickets__item__quantity-remove,
.tribe-block__tickets__item__quantity-add,
.tribe-block__tickets__item__quantity-remove {
    color: var(--color-gold) !important;
    background: transparent !important;
    border: none !important;
    font-size: var(--text-xl) !important;
    cursor: pointer !important;
    padding: 0 var(--space-2) !important;
    transition: color var(--transition-fast) !important;
}

.tribe-tickets__item__quantity-add:hover,
.tribe-tickets__item__quantity-remove:hover {
    color: var(--color-gold-light) !important;
}

/* ── "Available" / "X left" status ── */
.tribe-tickets__item__availability,
.tribe-block__tickets__item__availability,
.tribe-tickets__item-available {
    font-size: var(--text-xs) !important;
    color: var(--color-muted) !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
    margin-top: var(--space-2) !important;
}

/* ── "Get Tickets" / "Add to Cart" button ── */
.tribe-tickets__buy,
.tribe-block__tickets__footer__quantity__add,
.tribe-tickets__footer__quantity__add,
.tribe-common-c-btn.tribe-tickets__buy,
#tribe-tickets .tribe-common-c-btn,
.tribe-tickets-form .tribe-common-c-btn,
button.tribe-tickets__buy,
input.tribe-tickets__buy,
.tribe-tickets .tribe-common-c-btn-primary,
.tribe-block__tickets .tribe-common-c-btn-primary {
    background: var(--color-gold) !important;
    color: var(--color-black) !important;
    font-family: var(--font-body) !important;
    font-weight: 800 !important;
    font-size: var(--text-sm) !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    border: none !important;
    border-radius: var(--radius-md) !important;
    padding: var(--space-4) var(--space-8) !important;
    cursor: pointer !important;
    width: 100% !important;
    margin-top: var(--space-4) !important;
    transition: background var(--transition-fast), transform var(--transition-fast) !important;
}

.tribe-tickets__buy:hover,
.tribe-block__tickets__footer__quantity__add:hover,
.tribe-tickets .tribe-common-c-btn-primary:hover {
    background: var(--color-gold-light) !important;
    color: var(--color-black) !important;
    transform: translateY(-1px) !important;
}

/* ── Ticket footer (total area) ── */
.tribe-tickets__footer,
.tribe-block__tickets__footer,
.tribe-tickets-form__footer {
    background: var(--color-dark-3) !important;
    border-top: 1px solid var(--color-border) !important;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg) !important;
    padding: var(--space-4) var(--space-5) !important;
    margin-top: var(--space-3) !important;
}

/* ── Total price in footer ── */
.tribe-tickets__footer__total,
.tribe-block__tickets__footer__total,
.tribe-tickets-form__footer-total {
    font-family: var(--font-display) !important;
    font-size: var(--text-xl) !important;
    font-weight: 900 !important;
    color: var(--color-gold) !important;
}

/* ── "Add to Calendar" button (on single event page) ── */
.tribe-events-cal-links a,
.tribe-add-to-calendar a,
.tribe-add-to-calendar__link,
.tribe-add-to-calendar button {
    display: inline-flex !important;
    align-items: center !important;
    gap: var(--space-2) !important;
    background: transparent !important;
    border: 1px solid var(--color-border-light) !important;
    color: var(--color-muted-light) !important;
    font-size: var(--text-sm) !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    padding: var(--space-2) var(--space-4) !important;
    border-radius: var(--radius-md) !important;
    text-decoration: none !important;
    transition: border-color var(--transition-fast), color var(--transition-fast) !important;
    margin-right: var(--space-2) !important;
    margin-bottom: var(--space-2) !important;
}

.tribe-events-cal-links a:hover,
.tribe-add-to-calendar a:hover,
.tribe-add-to-calendar button:hover {
    border-color: var(--color-gold) !important;
    color: var(--color-gold) !important;
}

/* ── "Add to calendar" dropdown ── */
.tribe-add-to-calendar__dropdown {
    background: var(--color-dark-2) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5) !important;
    overflow: hidden !important;
    z-index: var(--z-dropdown) !important;
}

.tribe-add-to-calendar__dropdown a {
    display: block !important;
    padding: var(--space-3) var(--space-4) !important;
    color: var(--color-muted-light) !important;
    font-size: var(--text-sm) !important;
    border-bottom: 1px solid var(--color-border) !important;
    transition: background var(--transition-fast), color var(--transition-fast) !important;
}

.tribe-add-to-calendar__dropdown a:last-child {
    border-bottom: none !important;
}

.tribe-add-to-calendar__dropdown a:hover {
    background: rgba(201, 168, 76, 0.08) !important;
    color: var(--color-gold) !important;
}

/* ── Single event — schedule/datetime on the standard TEC template ── */
.tribe-events-schedule__datetime,
.tribe-block__events-datetime,
.tribe-events-schedule__datetime *,
.tribe-block__events-datetime * {
    color: var(--color-gold) !important;
    font-weight: 700 !important;
    font-size: var(--text-base) !important;
    text-decoration: none !important;
    border-bottom: none !important;
}

.tribe-events-schedule__datetime .tribe-events-divider,
.tribe-events-schedule__datetime .tribe-events-schedule__separator {
    color: var(--color-muted) !important;
    font-weight: 400 !important;
}

.tribe-events-schedule__datetime .tribe-events-schedule__timezone {
    font-size: var(--text-xs) !important;
    color: var(--color-muted) !important;
    font-weight: 400 !important;
}

/* ── Price block on standard TEC single event ── */
.tribe-block__event-price,
.tribe-events-cost,
.tribe-events-single .tribe-events-cost {
    background: rgba(201, 168, 76, 0.08) !important;
    border: 1px solid rgba(201, 168, 76, 0.3) !important;
    border-radius: var(--radius-md) !important;
    padding: var(--space-3) var(--space-4) !important;
    margin-bottom: var(--space-4) !important;
}

.tribe-block__event-price *,
.tribe-block__event-price__cost,
.tribe-block__event-price__description,
.tribe-events-cost span,
.tribe-events-cost {
    color: var(--color-gold) !important;
    font-weight: 900 !important;
    font-family: var(--font-display) !important;
    font-size: var(--text-xl) !important;
}

.tribe-block__event-price__description {
    font-family: var(--font-body) !important;
    font-size: var(--text-sm) !important;
    font-weight: 400 !important;
    color: var(--color-muted) !important;
    display: block !important;
    margin-top: var(--space-1) !important;
}

/* ── Venue block on standard TEC single event ── */
.tribe-venue-location,
.tribe-block__event-venue,
.tribe-events-single-section.tribe-events-event-meta {
    background: var(--color-dark-2) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    padding: var(--space-5) !important;
    margin-bottom: var(--space-4) !important;
}

.tribe-events-single-section.tribe-events-event-meta h3,
.tribe-events-single-section.tribe-events-event-meta h2,
.tribe-block__event-venue__name {
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    color: var(--color-gold) !important;
    margin-bottom: var(--space-3) !important;
    padding-bottom: var(--space-2) !important;
    border-bottom: 1px solid var(--color-border) !important;
}

.tribe-venue,
.tribe-venue-location address,
.tribe-address,
.tribe-block__event-venue__address {
    color: var(--color-muted-light) !important;
    font-style: normal !important;
    font-size: var(--text-sm) !important;
    line-height: 1.7 !important;
}

.tribe-venue-location a,
.tribe-block__event-venue a {
    color: var(--color-gold) !important;
    font-weight: 600 !important;
}

.tribe-venue-location a:hover,
.tribe-block__event-venue a:hover {
    color: var(--color-gold-light) !important;
}

/* ── Prev/next event navigation ── */
.tribe-events-single .tribe-events-nav-pagination ul,
.tribe-events-nav-list {
    display: flex !important;
    justify-content: space-between !important;
    border-top: 1px solid var(--color-border) !important;
    padding-top: var(--space-5) !important;
    margin-top: var(--space-8) !important;
    list-style: none !important;
    padding-left: 0 !important;
    gap: var(--space-3) !important;
}

.tribe-events-single .tribe-events-nav-pagination ul li a,
.tribe-events-nav-list a {
    display: inline-flex !important;
    align-items: center !important;
    gap: var(--space-2) !important;
    color: var(--color-gold) !important;
    font-size: var(--text-sm) !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    padding: var(--space-2) var(--space-4) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    text-decoration: none !important;
    transition: border-color var(--transition-fast), background var(--transition-fast) !important;
}

.tribe-events-single .tribe-events-nav-pagination ul li a:hover,
.tribe-events-nav-list a:hover {
    border-color: var(--color-gold) !important;
    background: rgba(201, 168, 76, 0.08) !important;
}

/* ── "← All Events" back link ── */
.tribe-events-back,
.tribe-events-back a {
    color: var(--color-muted-light) !important;
    font-size: var(--text-sm) !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: var(--space-1) !important;
    margin-bottom: var(--space-5) !important;
    transition: color var(--transition-fast) !important;
}

.tribe-events-back a:hover {
    color: var(--color-gold) !important;
}

/* ── Organizer block ── */
.tribe-organizer,
.tribe-block__event-organizer {
    background: var(--color-dark-2) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    padding: var(--space-5) !important;
    margin-bottom: var(--space-4) !important;
}

.tribe-organizer-url a,
.tribe-block__event-organizer a {
    color: var(--color-gold) !important;
}

/* ── Attendee / ticket list section ── */
.tribe-tickets-attendees,
.tribe-block__tickets__attendees {
    margin-top: var(--space-6) !important;
    padding-top: var(--space-6) !important;
    border-top: 1px solid var(--color-border) !important;
}

/* ── Map embed in venue block ── */
.tribe-venue-map,
.tribe-block__event-venue__map {
    border-radius: var(--radius-md) !important;
    overflow: hidden !important;
    border: 1px solid var(--color-border) !important;
    margin-top: var(--space-3) !important;
}
