/*
Theme Name: GeneratePress Child - Turn The Beat
Template: generatepress
Version: 3.0
*/

/* ================================
   DARK MODE VARIABLES (default)
   ================================ */
:root,
[data-theme="dark"] {
    --base-1: #0A0A0A;
    --base-2: #5C1018;
    --base-3: #8B0A1A;
    --accent-1: #D41F3C;
    --accent-2: #C9A86A;
    --accent-3: #E8C4A8;
    --contrast-1: #FFFFFF;
    --contrast-2: #F5F0EE;
    --contrast-3: #D9D0CE;
    --gradient-red: linear-gradient(135deg, #D41F3C 0%, #8B0A1A 50%, #5C1018 100%);
    --nav-bg: rgba(10, 10, 10, 0.97);
    --nav-border: #8B0A1A;
    --card-bg: #1A1A1A;
    --font-primary: 'Montserrat', sans-serif;
    --font-display: 'Playfair Display', serif;
    --section-padding: 6rem 5%;
    --max-width: 1400px;
}

/* ================================
   LIGHT MODE VARIABLES
   ================================ */
[data-theme="light"] {
    --base-1: #FAF8F6;
    --base-2: #F0EBE6;
    --base-3: #E8DDD6;
    --accent-1: #D41F3C;
    --accent-2: #B8893A;
    --accent-3: #8B4513;
    --contrast-1: #1A1A1A;
    --contrast-2: #2C2C2C;
    --contrast-3: #5C5C5C;
    --gradient-red: linear-gradient(135deg, #D41F3C 0%, #8B0A1A 50%, #5C1018 100%);
    --nav-bg: rgba(250, 248, 246, 0.97);
    --nav-border: #E8DDD6;
    --card-bg: #F0EBE6;
}

/* ================================
   SYSTEM PREFERENCE - LIGHT
   ================================ */
@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) {
        --base-1: #FAF8F6;
        --base-2: #F0EBE6;
        --base-3: #E8DDD6;
        --accent-1: #D41F3C;
        --accent-2: #B8893A;
        --accent-3: #8B4513;
        --contrast-1: #1A1A1A;
        --contrast-2: #2C2C2C;
        --contrast-3: #5C5C5C;
        --gradient-red: linear-gradient(135deg, #D41F3C 0%, #8B0A1A 50%, #5C1018 100%);
        --nav-bg: rgba(250, 248, 246, 0.97);
        --nav-border: #E8DDD6;
        --card-bg: #F0EBE6;
    }
}

/* ================================
   GLOBAL RESETS
   ================================ */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-primary);
    background-color: var(--base-1);
    color: var(--contrast-2);
    line-height: 1.6;
    overflow-x: hidden;
    transition: background-color 0.4s ease, color 0.4s ease;
}

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

a {
    color: var(--accent-1);
    text-decoration: none;
    transition: color 0.3s ease;
}

a:hover {
    color: var(--base-3);
}

/* ================================
   TYPOGRAPHY
   ================================ */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-primary);
    font-weight: 900;
    line-height: 1.1;
    color: var(--contrast-1);
}

h1 { font-size: clamp(2.5rem, 6vw, 5.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
h3 { font-size: clamp(1.5rem, 3vw, 2.5rem); }
h4 { font-size: clamp(1.2rem, 2vw, 1.8rem); }

p {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--contrast-2);
}

/* ================================
   UTILITIES
   ================================ */
.ttb-container {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 5%;
    width: 100%;
}

.ttb-section {
    padding: var(--section-padding);
}

.ttb-eyebrow {
    color: var(--accent-1);
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 1rem;
    display: block;
}

.ttb-gradient-text {
    background: var(--gradient-red);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.ttb-divider {
    width: 60px;
    height: 3px;
    background: var(--gradient-red);
    margin: 1.5rem 0;
}

.ttb-divider--center {
    margin: 1.5rem auto;
}

/* ================================
   BUTTONS
   ================================ */
.ttb-btn {
    padding: 1rem 2.5rem;
    font-size: 0.9rem;
    font-family: var(--font-primary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
    border-radius: 4px;
}

.ttb-btn--primary {
    background: var(--accent-1);
    color: #FFFFFF;
    box-shadow: 0 4px 20px rgba(212, 31, 60, 0.35);
}

.ttb-btn--primary:hover {
    background: #8B0A1A;
    color: #FFFFFF;
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(212, 31, 60, 0.5);
}

.ttb-btn--secondary {
    background: transparent;
    color: #FFFFFF;
    border: 2px solid #FFFFFF;
}

.ttb-btn--secondary:hover {
    background: #FFFFFF;
    color: #0A0A0A;
    transform: translateY(-3px);
}

.ttb-btn--gold {
    background: var(--accent-2);
    color: #0A0A0A;
    box-shadow: 0 4px 20px rgba(201, 168, 106, 0.35);
}

.ttb-btn--gold:hover {
    filter: brightness(1.1);
    transform: translateY(-3px);
}

/* ================================
   GENERATEPRESS OVERRIDES
   ================================ */
.page-template-ttb-hero-page .site-header,
.page-template-ttb-gallery-page .site-header {
    display: none;
}

.page-template-ttb-hero-page .site-main,
.page-template-ttb-gallery-page .site-main,
.page-template-ttb-hero-page .content-area,
.page-template-ttb-gallery-page .content-area {
    padding: 0;
    margin: 0;
    width: 100%;
}

.page-template-ttb-hero-page .entry-header,
.page-template-ttb-gallery-page .entry-header,
.page-template-ttb-hero-page .post-image,
.page-template-ttb-hero-page .featured-image,
.page-template-ttb-hero-page .post-thumbnail,
.page-template-ttb-gallery-page .post-image,
.page-template-ttb-gallery-page .featured-image,
.page-template-ttb-gallery-page .post-thumbnail {
    display: none;
}

body.page-template-ttb-hero-page,
body.page-template-ttb-gallery-page {
    margin: 0 !important;
    padding: 0 !important;
}

body.page-template-ttb-hero-page #page,
body.page-template-ttb-hero-page #content,
body.page-template-ttb-hero-page .site-content,
body.page-template-ttb-hero-page .content-area,
body.page-template-ttb-hero-page .site-main,
body.page-template-ttb-hero-page article,
body.page-template-ttb-gallery-page #page,
body.page-template-ttb-gallery-page #content,
body.page-template-ttb-gallery-page .site-content,
body.page-template-ttb-gallery-page .content-area,
body.page-template-ttb-gallery-page .site-main,
body.page-template-ttb-gallery-page article {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* ================================
   NAVIGATION - BASE
   ================================ */
.ttb-nav {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 9999;
    padding: 1.5rem 5%;
    transition: all 0.4s ease;
    /* Always transparent over hero */
    background: linear-gradient(to bottom, rgba(10,10,10,0.75) 0%, rgba(10,10,10,0) 100%);
    border-bottom: none;
}

/* Scrolled state - adapts to theme */
.ttb-nav.scrolled {
    background: var(--nav-bg);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 2px solid var(--nav-border);
    padding: 1rem 5%;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

.ttb-nav__container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: var(--max-width);
    margin: 0 auto;
    width: 100%;
    gap: 1rem;
}

/* ================================
   NAV LOGO
   Always white over hero, adapts when scrolled
   ================================ */
.ttb-nav__logo {
    font-size: 1.3rem;
    font-weight: 900;
    letter-spacing: 2px;
    white-space: nowrap;
    text-decoration: none;
    line-height: 1;
    color: #FFFFFF;
    transition: color 0.4s ease;
    flex-shrink: 0;
}

.ttb-nav__logo span {
    color: #D41F3C;
}

/* Logo adapts to theme when scrolled */
[data-theme="light"] .ttb-nav.scrolled .ttb-nav__logo {
    color: #1A1A1A;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .ttb-nav.scrolled .ttb-nav__logo {
        color: #1A1A1A;
    }
}

/* ================================
   NAV LINKS (desktop)
   Always white over hero, adapts when scrolled
   ================================ */
.ttb-nav__links {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 2rem;
    margin: 0;
    padding: 0;
    flex: 1;
    justify-content: center;
}

.ttb-nav__links li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ttb-nav__links li a {
    color: #FFFFFF;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: color 0.3s ease;
    position: relative;
    white-space: nowrap;
}

.ttb-nav__links li a::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background: #D41F3C;
    transition: width 0.3s ease;
}

.ttb-nav__links li a:hover,
.ttb-nav__links li.current-menu-item a {
    color: #D41F3C;
}

.ttb-nav__links li a:hover::after,
.ttb-nav__links li.current-menu-item a::after {
    width: 100%;
}

/* Nav links adapt to theme when scrolled */
[data-theme="light"] .ttb-nav.scrolled .ttb-nav__links li a {
    color: #1A1A1A;
}

[data-theme="light"] .ttb-nav.scrolled .ttb-nav__links li a:hover {
    color: #D41F3C;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .ttb-nav.scrolled .ttb-nav__links li a {
        color: #1A1A1A;
    }
    :root:not([data-theme="dark"]) .ttb-nav.scrolled .ttb-nav__links li a:hover {
        color: #D41F3C;
    }
}

.ttb-nav__links .sub-menu {
    display: none;
}

/* ================================
   NAV RIGHT SIDE (social + toggle + hamburger)
   ================================ */
.ttb-nav__social {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-left: 1.5rem;
    flex-shrink: 0;
}

/* Social icon links - always white, adapt when scrolled in light */
.ttb-nav__social a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    transition: color 0.3s ease;
    line-height: 1;
}

.ttb-nav__social a:hover {
    color: #D41F3C;
}

.ttb-nav__social a svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
    display: block;
}

[data-theme="light"] .ttb-nav.scrolled .ttb-nav__social a {
    color: #1A1A1A;
}

[data-theme="light"] .ttb-nav.scrolled .ttb-nav__social a:hover {
    color: #D41F3C;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .ttb-nav.scrolled .ttb-nav__social a {
        color: #1A1A1A;
    }
}

/* ================================
   THEME TOGGLE BUTTON
   ================================ */
.ttb-theme-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.35);
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
    padding: 0;
}

.ttb-theme-toggle:hover {
    background: rgba(212, 31, 60, 0.3);
    border-color: #D41F3C;
    transform: scale(1.1);
}

/* Moon SVG - fill based, white */
.ttb-theme-toggle .icon-moon {
    width: 14px;
    height: 14px;
    fill: #FFFFFF;
    stroke: none;
    display: block;
}

/* Sun SVG - stroke based, white */
.ttb-theme-toggle .icon-sun {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: #FFFFFF;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    display: none;
}

/* Show moon in dark, sun in light */
[data-theme="dark"] .ttb-theme-toggle .icon-moon { display: block; }
[data-theme="dark"] .ttb-theme-toggle .icon-sun  { display: none; }
[data-theme="light"] .ttb-theme-toggle .icon-moon { display: none; }
[data-theme="light"] .ttb-theme-toggle .icon-sun  { display: block; }

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .ttb-theme-toggle .icon-moon { display: none; }
    :root:not([data-theme="dark"]) .ttb-theme-toggle .icon-sun  { display: block; }
}

/* Toggle adapts when scrolled in light mode */
[data-theme="light"] .ttb-nav.scrolled .ttb-theme-toggle {
    background: rgba(0, 0, 0, 0.08);
    border-color: rgba(0, 0, 0, 0.2);
}

[data-theme="light"] .ttb-nav.scrolled .ttb-theme-toggle .icon-sun {
    stroke: #1A1A1A;
}

[data-theme="light"] .ttb-nav.scrolled .ttb-theme-toggle .icon-moon {
    fill: #1A1A1A;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .ttb-nav.scrolled .ttb-theme-toggle {
        background: rgba(0, 0, 0, 0.08);
        border-color: rgba(0, 0, 0, 0.2);
    }
    :root:not([data-theme="dark"]) .ttb-nav.scrolled .ttb-theme-toggle .icon-sun {
        stroke: #1A1A1A;
    }
    :root:not([data-theme="dark"]) .ttb-nav.scrolled .ttb-theme-toggle .icon-moon {
        fill: #1A1A1A;
    }
}

/* ================================
   HAMBURGER BUTTON
   ================================ */
.ttb-hamburger {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 26px;
    height: 18px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
}

.ttb-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: #FFFFFF;
    border-radius: 2px;
    transition: all 0.3s ease;
    transform-origin: center;
}

/* Hamburger adapts in light mode when scrolled */
[data-theme="light"] .ttb-nav.scrolled .ttb-hamburger span {
    background: #1A1A1A;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .ttb-nav.scrolled .ttb-hamburger span {
        background: #1A1A1A;
    }
}

/* Hamburger → X */
.ttb-hamburger.active span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.ttb-hamburger.active span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.ttb-hamburger.active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* Admin bar offset */
.admin-bar .ttb-nav { top: 32px; }

@media screen and (max-width: 782px) {
    .admin-bar .ttb-nav { top: 46px; }
}

/* ================================
   MOBILE MENU DRAWER
   ================================ */
.ttb-mobile-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.7);
    z-index: 9998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.ttb-mobile-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.ttb-mobile-menu {
    position: fixed;
    top: 0;
    right: -100%;
    width: 80%;
    max-width: 360px;
    height: 100vh;
    background: var(--base-1);
    border-left: 2px solid var(--base-3);
    z-index: 9999;
    padding: 5rem 2.5rem 3rem;
    transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex !important;
    flex-direction: column !important;
    overflow-y: auto;
}

.ttb-mobile-menu.active {
    right: 0;
}

.ttb-mobile-menu__close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    background: transparent;
    border: none;
    color: var(--contrast-1);
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0.5rem;
    line-height: 1;
    transition: color 0.3s ease;
}

.ttb-mobile-menu__close:hover {
    color: #D41F3C;
}

.ttb-mobile-menu__links {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1 0 auto;
}

.ttb-mobile-menu__links li {
    border-bottom: 1px solid rgba(139, 10, 26, 0.2);
}

.ttb-mobile-menu__links li a {
    display: block;
    padding: 1.25rem 0;
    color: var(--contrast-1);
    text-decoration: none;
    font-size: 1.3rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    transition: all 0.3s ease;
}

.ttb-mobile-menu__links li a:hover,
.ttb-mobile-menu__links li.current-menu-item a {
    color: #D41F3C;
    padding-left: 0.75rem;
}

.ttb-mobile-menu__social {
    display: flex !important;
    flex-direction: row !important;
    gap: 1.5rem !important;
    flex-shrink: 0 !important;
    padding-top: 2rem !important;
    padding-bottom: 1rem !important;
    margin-top: 2rem !important;
    border-top: 1px solid rgba(139, 10, 26, 0.3) !important;
}

.ttb-mobile-menu__social a {
    display: flex !important;
    align-items: center !important;
    color: var(--contrast-1) !important;
    transition: color 0.3s ease;
}

.ttb-mobile-menu__social a:hover {
    color: #D41F3C !important;
}

.ttb-mobile-menu__social svg {
    width: 26px !important;
    height: 26px !important;
    fill: currentColor !important;
    display: block !important;
}

/* ================================
   HERO SECTION - ALWAYS DARK
   ================================ */
.ttb-hero {
    position: relative;
    height: 100vh;
    min-height: 600px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #0A0A0A;
    width: 100%;
    float: none;
    clear: both;
}

.ttb-hero__video-wrap {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.ttb-hero__video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.ttb-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(10,10,10,0.45) 0%,
        rgba(10,10,10,0.65) 50%,
        rgba(10,10,10,0.85) 100%
    );
}

.ttb-hero__container {
    position: relative;
    z-index: 2;
    max-width: var(--max-width);
    width: 100%;
    margin: 0 auto;
    padding: 0 5%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.ttb-hero__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    animation: ttbFadeInUp 1.2s ease-out;
}

.ttb-hero__eyebrow {
    color: #E8C4A8;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 4px;
    margin-bottom: 1.5rem;
}

.ttb-hero__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 900;
    line-height: 0.85;
    letter-spacing: -2px;
    margin-bottom: 1.5rem;
    gap: 0.1em;
}

.ttb-hero__title--turn {
    font-size: clamp(5rem, 16vw, 14rem);
    color: #FFFFFF;
    text-shadow: 0 4px 30px rgba(0,0,0,0.5);
}

.ttb-hero__title--the {
    font-size: clamp(2.5rem, 7vw, 6rem);
    color: rgba(255,255,255,0.8);
    font-weight: 300;
    letter-spacing: 8px;
    text-transform: uppercase;
}

.ttb-hero__title--beat {
    font-size: clamp(5rem, 16vw, 14rem);
    background: var(--gradient-red);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 4px 20px rgba(212,31,60,0.4));
}

.ttb-hero__subtitle {
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    color: #FFFFFF;
    font-weight: 300;
    letter-spacing: 3px;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}

.ttb-hero__subtext {
    font-size: clamp(0.8rem, 1.5vw, 1rem);
    color: #E8C4A8;
    font-weight: 400;
    letter-spacing: 2px;
    margin-bottom: 3rem;
}

.ttb-hero__ctas {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

/* Scroll Indicator */
.ttb-scroll-indicator {
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.ttb-scroll-indicator span {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: rgba(255,255,255,0.6);
}

.ttb-scroll-indicator__arrow {
    width: 20px;
    height: 20px;
    border-right: 2px solid #D41F3C;
    border-bottom: 2px solid #D41F3C;
    transform: rotate(45deg);
    animation: ttbScrollBounce 1.5s infinite;
}

/* ================================
   INTRO SECTION - RESPONDS TO THEME
   ================================ */
.ttb-intro {
    background: var(--base-1);
    padding: 6rem 5%;
    position: relative;
    transition: background-color 0.4s ease;
    display: block;
    width: 100%;
    float: none;
    clear: both;
}

.ttb-intro::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--gradient-red);
    opacity: 0.04;
    z-index: 0;
}

.ttb-intro__container {
    max-width: var(--max-width);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
    position: relative;
    z-index: 1;
}

.ttb-intro__image img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    border: 3px solid var(--base-3);
    display: block;
}

.ttb-intro__title {
    display: flex;
    flex-direction: column;
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: -2px;
    margin-bottom: 1.5rem;
}

.ttb-intro__title--turn {
    color: var(--contrast-1);
    font-size: clamp(2.5rem, 5vw, 4.5rem);
}

.ttb-intro__title--beat {
    background: var(--gradient-red);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
}

.ttb-intro__subtitle {
    font-size: 1.2rem;
    color: var(--accent-2);
    margin-bottom: 0.5rem;
    font-weight: 300;
    letter-spacing: 1px;
}

.ttb-intro__subtext {
    font-size: 0.9rem;
    color: var(--contrast-3);
    margin-bottom: 2rem;
    letter-spacing: 1px;
}

.ttb-intro__description {
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--contrast-2);
    margin-bottom: 2.5rem;
    font-weight: 300;
}

.ttb-intro__stats {
    display: flex;
    gap: 3rem;
    margin-bottom: 3rem;
    padding: 1.5rem 0;
    border-top: 1px solid rgba(212,31,60,0.3);
    border-bottom: 1px solid rgba(212,31,60,0.3);
}

.ttb-intro__ctas {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}

/* In light mode, secondary button uses dark colors */
[data-theme="light"] .ttb-intro .ttb-btn--secondary {
    color: var(--contrast-1);
    border-color: var(--contrast-1);
}

[data-theme="light"] .ttb-intro .ttb-btn--secondary:hover {
    background: var(--contrast-1);
    color: var(--base-1);
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .ttb-intro .ttb-btn--secondary {
        color: var(--contrast-1);
        border-color: var(--contrast-1);
    }
}

/* ================================
   STATS
   ================================ */
.ttb-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
}

.ttb-stat__number {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
    color: var(--accent-1);
    line-height: 1;
}

.ttb-stat__label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--contrast-3);
}

/* ================================
   GALLERY HERO - ALWAYS DARK
   ================================ */
.ttb-gallery-hero {
    position: relative;
    height: 70vh;
    min-height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #0A0A0A;
}

.ttb-gallery-hero__image {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.ttb-gallery-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

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

.ttb-gallery-hero__content {
    position: relative;
    z-index: 2;
    text-align: center;
    animation: ttbFadeInUp 1s ease-out;
}

.ttb-gallery-hero__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 0.9;
    letter-spacing: -2px;
    margin-bottom: 1rem;
}

.ttb-gallery-hero__title--top {
    font-size: clamp(3rem, 8vw, 7rem);
    font-weight: 900;
    color: #FFFFFF;
    text-shadow: 0 4px 30px rgba(0,0,0,0.5);
    text-transform: uppercase;
}

.ttb-gallery-hero__title--bottom {
    font-size: clamp(3rem, 8vw, 7rem);
    font-weight: 900;
    background: var(--gradient-red);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 4px 20px rgba(212,31,60,0.4));
    text-transform: uppercase;
}

/* ================================
   VIDEO SECTION - RESPONDS TO THEME
   ================================ */
.ttb-gallery-videos {
    background: var(--base-1);
    padding: 5rem 5%;
    transition: background-color 0.4s ease;
}

.ttb-gallery-videos__container {
    max-width: var(--max-width);
    margin: 0 auto;
    text-align: center;
}

.ttb-gallery-videos__title {
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--contrast-1);
    margin-bottom: 1rem;
}

.ttb-video-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-top: 3rem;
}

.ttb-video-wrap {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: 8px;
    border: 2px solid var(--base-3);
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
}

.ttb-video-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 6px;
}

/* ================================
   PHOTO GRID - RESPONDS TO THEME
   ================================ */
.ttb-gallery-photos {
    background: var(--base-1);
    padding: 2rem 5% 6rem;
    transition: background-color 0.4s ease;
}

.ttb-gallery-photos__container {
    max-width: var(--max-width);
    margin: 0 auto;
    text-align: center;
}

.ttb-gallery-photos__title {
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--contrast-1);
    margin-bottom: 1rem;
}

.ttb-photo-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    margin-top: 3rem;
}

.ttb-photo-item {
    overflow: hidden;
    border-radius: 8px;
    border: 2px solid var(--base-3);
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
    aspect-ratio: 16/10;
    background: var(--base-2);
}

.ttb-photo-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.5s ease;
}

.ttb-photo-item:hover img {
    transform: scale(1.04);
}

.ttb-gallery-empty {
    color: var(--contrast-3);
    font-style: italic;
    margin-top: 3rem;
}

/* Hide native WP gallery block */
.page-template-ttb-gallery-page .wp-block-gallery {
    display: none !important;
}

/* ================================
   EVENTS
   ================================ */
.events-list {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 5%;
}

.event-item {
    background: var(--card-bg);
    border: 2px solid var(--base-3);
    border-radius: 8px;
    padding: 2rem;
    margin-bottom: 1.5rem;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.event-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(212,31,60,0.2);
}

.event-item.featured-event { border-color: #D41F3C; border-width: 3px; }
.event-item.status-cancelled { opacity: 0.6; border-color: #cc0000; }
.event-item.status-postponed { border-color: var(--accent-2); }

.featured-badge,
.event-status-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 1rem;
}

.featured-badge { background: #D41F3C; color: #FFFFFF; margin-right: 8px; }
.event-status-badge { background: var(--accent-2); color: #0A0A0A; }
.status-cancelled .event-status-badge { background: #cc0000; color: #FFFFFF; }

.event-title { font-size: 1.5rem; color: var(--contrast-1); margin: 0 0 0.75rem; }
.event-date { font-size: 1.1rem; color: var(--accent-2); margin-bottom: 1rem; font-weight: 600; }
.event-venue { margin-bottom: 1rem; color: var(--contrast-3); }
.event-venue strong { color: var(--contrast-1); }

.event-ticket-link {
    display: inline-block;
    background: #D41F3C;
    color: #FFFFFF;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-top: 1rem;
    transition: all 0.3s ease;
}

.event-ticket-link:hover {
    background: #8B0A1A;
    color: #FFFFFF;
    transform: translateY(-2px);
}

/* ================================
   FOOTER - RESPONDS TO THEME
   ================================ */
.ttb-footer {
    background: var(--base-1);
    border-top: 2px solid var(--base-3);
    padding: 3rem 5%;
    text-align: center;
    transition: background-color 0.4s ease;
    display: block;
    width: 100%;
    float: none;
    clear: both;
}

.ttb-footer__container {
    max-width: var(--max-width);
    margin: 0 auto;
}

.ttb-footer__logo {
    font-size: 1.5rem;
    font-weight: 900;
    letter-spacing: 3px;
    color: var(--contrast-1);
    margin-bottom: 0.5rem;
}

.ttb-footer__logo span { color: #D41F3C; }

.ttb-footer__sub {
    font-size: 0.85rem;
    color: var(--contrast-3);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
}

.ttb-footer__copy {
    font-size: 0.8rem;
    color: var(--contrast-3);
    opacity: 0.6;
}

/* ================================
   ANIMATIONS
   ================================ */
@keyframes ttbFadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes ttbFadeInRight {
    from { opacity: 0; transform: translateX(30px); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes ttbFadeInLeft {
    from { opacity: 0; transform: translateX(-30px); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes ttbSparkle {
    0%, 100% { opacity: 0; transform: scale(0); }
    50%       { opacity: 1; transform: scale(1); }
}

@keyframes ttbScrollBounce {
    0%, 100% { transform: rotate(45deg) translateY(0); }
    50%       { transform: rotate(45deg) translateY(5px); }
}

/* ================================
   RESPONSIVE - TABLET (1024px)
   ================================ */
@media (max-width: 1024px) {
    .ttb-intro__container { gap: 3rem; }
}

/* ================================
   RESPONSIVE - MOBILE (768px)
   ================================ */
@media (max-width: 768px) {

    /* Nav */
    .ttb-nav { padding: 0.9rem 4%; }
    .ttb-nav.scrolled { padding: 0.75rem 4%; }
    .ttb-nav__logo { font-size: 1rem; letter-spacing: 1px; }
    .ttb-nav__links { display: none !important; }
    .ttb-nav__social { margin-left: 0.5rem; gap: 0.6rem; }
    .ttb-nav__social a svg { width: 16px; height: 16px; }
    .ttb-theme-toggle { width: 28px; height: 28px; margin-left: 0.3rem; }
    .ttb-theme-toggle .icon-moon,
    .ttb-theme-toggle .icon-sun { width: 12px; height: 12px; }
    .ttb-hamburger { display: flex !important; margin-left: 0.5rem; }

    /* Hero */
    .ttb-hero {
        height: auto;
        min-height: 100svh;
        padding-bottom: 80px;
    }
    .ttb-hero__content { padding-top: 100px; padding-bottom: 80px; }
    .ttb-hero__container { flex-direction: column; justify-content: flex-start; }
    .ttb-hero__title--turn,
    .ttb-hero__title--beat { font-size: clamp(4rem, 20vw, 7rem); }
    .ttb-hero__title--the { font-size: clamp(1.5rem, 6vw, 3rem); letter-spacing: 6px; }
    .ttb-hero__ctas { flex-direction: column; align-items: center; width: 100%; padding: 0 2rem; }
    .ttb-scroll-indicator { display: none; }

    /* Intro */
    .ttb-intro__container { grid-template-columns: 1fr; gap: 3rem; text-align: center; }
    .ttb-intro__title { align-items: center; }
    .ttb-intro__stats { justify-content: center; }
    .ttb-intro__ctas { justify-content: center; }
    .ttb-intro__image { max-width: 480px; margin: 0 auto; }
    .ttb-stat { align-items: center; }
    .ttb-divider { margin: 1.5rem auto; }

    /* Gallery */
    .ttb-gallery-hero { height: 50vh; min-height: 350px; }
    .ttb-video-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .ttb-photo-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }

    /* Mobile menu */
    .ttb-mobile-menu,
    .ttb-mobile-overlay { display: flex !important; }
}

/* ================================
   RESPONSIVE - SMALL MOBILE (480px)
   ================================ */
@media (max-width: 480px) {

    .ttb-nav__logo { font-size: 0.9rem; }
    .ttb-nav__social { gap: 0.5rem; margin-left: 0.25rem; }

    .ttb-hero__title--turn,
    .ttb-hero__title--beat { font-size: clamp(3.5rem, 22vw, 5rem); }
    .ttb-hero__eyebrow { font-size: 0.7rem; letter-spacing: 2px; }
    .ttb-hero__subtext { margin-bottom: 1.5rem; }
    .ttb-hero__ctas { margin-bottom: 2rem; }

    .ttb-intro { padding: 4rem 5%; }
    .ttb-intro__stats { gap: 1.5rem; flex-wrap: wrap; }
    .ttb-intro__ctas { flex-direction: column; align-items: center; }
    .ttb-btn { width: 100%; text-align: center; }

    .ttb-photo-grid { grid-template-columns: 1fr; }
    .event-item { padding: 1.25rem; }
}

/* ================================
   DESKTOP ONLY
   ================================ */
@media (min-width: 769px) {
    .ttb-hamburger { display: none !important; }
    .ttb-mobile-overlay { display: none !important; }
    .ttb-mobile-menu:not(.active) { display: none !important; }
}

/* ================================
   LIGHT MODE BUTTON FIXES
   ================================ */

/* Secondary button in light mode intro section */
[data-theme="light"] .ttb-intro .ttb-btn--secondary {
    color: #1A1A1A;
    border-color: #1A1A1A;
}

[data-theme="light"] .ttb-intro .ttb-btn--secondary:hover {
    background: #1A1A1A;
    color: #FAF8F6;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .ttb-intro .ttb-btn--secondary {
        color: #1A1A1A;
        border-color: #1A1A1A;
    }
    :root:not([data-theme="dark"]) .ttb-intro .ttb-btn--secondary:hover {
        background: #1A1A1A;
        color: #FAF8F6;
    }
}

/* ================================
   FEATURED EVENTS SECTION
   ================================ */
.ttb-featured-events {
    background: var(--base-1);
    padding: 5rem 5%;
    transition: background-color 0.4s ease;
}

.ttb-featured-events__container {
    max-width: var(--max-width);
    margin: 0 auto;
    text-align: center;
}

.ttb-featured-events__title {
    font-size: clamp(2rem, 4vw, 3.5rem);
    color: var(--contrast-1);
    margin-bottom: 1rem;
}

.ttb-featured-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.ttb-featured-event-card {
    background: var(--card-bg);
    border: 2px solid var(--base-3);
    border-radius: 8px;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

.ttb-featured-event-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(212,31,60,0.2);
    border-color: var(--accent-1);
}

.ttb-featured-event-card__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    margin: 0 auto;
    background: var(--gradient-red);
    border-radius: 8px;
    color: #FFFFFF;
    flex-shrink: 0;
}

.ttb-featured-event-card__date .month {
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.ttb-featured-event-card__date .day {
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
}

.ttb-featured-event-card__content {
    flex: 1;
    text-align: center;
}

.event-card-title {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--contrast-1);
    margin-bottom: 0.75rem;
    line-height: 1.3;
}

.event-card-venue {
    font-size: 1.05rem;
    color: var(--accent-1);
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.event-card-location {
    font-size: 0.95rem;
    color: var(--contrast-2);
    margin-bottom: 0.25rem;
}

.event-card-time {
    font-size: 0.9rem;
    color: var(--contrast-3);
    margin-bottom: 0.25rem;
}

.event-card-price {
    font-size: 1rem;
    color: var(--accent-2);
    font-weight: 600;
    margin-top: 0.5rem;
}

.ttb-featured-event-card .ttb-btn {
    width: 100%;
    text-align: center;
}

@media (max-width: 768px) {
    .ttb-featured-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* ================================
   PAGE HERO (for Shows, About, etc)
   ================================ */
.ttb-page-hero {
    position: relative;
    height: 50vh;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg, #0A0A0A 0%, #5C1018 100%);
    padding-top: 80px;
}

.ttb-page-hero__overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, transparent 0%, rgba(10,10,10,0.4) 100%);
    z-index: 1;
}

.ttb-page-hero__content {
    position: relative;
    z-index: 2;
    text-align: center;
    animation: ttbFadeInUp 1s ease-out;
}

.ttb-page-hero__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 0.9;
    letter-spacing: -2px;
    margin-bottom: 1rem;
}

.ttb-page-hero__title--top {
    font-size: clamp(2.5rem, 7vw, 5rem);
    font-weight: 900;
    color: #FFFFFF;
    text-shadow: 0 4px 30px rgba(0,0,0,0.5);
    text-transform: uppercase;
}

.ttb-page-hero__title--bottom {
    font-size: clamp(2.5rem, 7vw, 5rem);
    font-weight: 900;
    background: var(--gradient-red);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 4px 20px rgba(212,31,60,0.4));
    text-transform: uppercase;
}

/* ================================
   SHOWS SECTION
   ================================ */
.ttb-shows-section {
    background: var(--base-1);
    padding: 5rem 5%;
    min-height: 50vh;
    transition: background-color 0.4s ease;
}

.ttb-shows-section__container {
    max-width: var(--max-width);
    margin: 0 auto;
}

.no-events-message {
    text-align: center;
    padding: 4rem 2rem;
}

@media (max-width: 768px) {
    .ttb-page-hero {
        height: 40vh;
        min-height: 300px;
    }
}

/* ================================
   FORM INPUTS - ALWAYS LIGHT FOR READABILITY
   ================================ */
[data-theme="dark"] .ttb-form-input,
[data-theme="dark"] .ttb-form-textarea,
[data-theme="dark"] .ttb-form-select {
    background: #FFFFFF !important;
    color: #1A1A1A !important;
    border-color: #E8DDD6 !important;
}

[data-theme="dark"] .ttb-form-input::placeholder,
[data-theme="dark"] .ttb-form-textarea::placeholder {
    color: #999999 !important;
}

/* ================================
   MEET THE SHOW - INTRO SECTION
   ================================ */
.ttb-meet-intro {
    background: var(--base-1);
    padding: 6rem 5%;
    transition: background-color 0.4s ease;
}

.ttb-meet-intro__container {
    max-width: var(--max-width);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
}

.ttb-meet-intro__image img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    border: 3px solid var(--base-3);
}

.ttb-meet-intro__title {
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--contrast-1);
    margin-bottom: 1.5rem;
    line-height: 1.3;
}

.ttb-meet-intro__text {
    font-size: 1.1rem;
    line-height: 1.9;
    color: var(--contrast-2);
}

/* ================================
   BIO SECTION
   ================================ */
.ttb-bio-section {
    background: var(--base-2);
    padding: 5rem 5%;
    transition: background-color 0.4s ease;
}

.ttb-bio-section__container {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

.ttb-bio-section__title {
    font-size: clamp(2.5rem, 5vw, 4rem);
    color: var(--contrast-1);
    margin-bottom: 1rem;
}

.ttb-bio-content {
    margin: 3rem 0;
}

.ttb-bio-content p {
    font-size: 1.1rem;
    line-height: 1.9;
    color: var(--contrast-2);
    margin-bottom: 1.5rem;
}

.ttb-credentials {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 2px solid rgba(212,31,60,0.3);
}

.ttb-credential {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.ttb-credential svg {
    color: var(--accent-1);
    width: 32px;
    height: 32px;
}

.ttb-credential span {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--contrast-1);
    text-align: center;
}

/* ================================
   SHOW DETAILS SECTION
   ================================ */
.ttb-show-details {
    background: var(--base-1);
    padding: 5rem 5%;
    transition: background-color 0.4s ease;
}

.ttb-show-details__container {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

.ttb-show-details__title {
    font-size: clamp(2.5rem, 5vw, 4rem);
    color: var(--contrast-1);
    margin-bottom: 1rem;
}

.ttb-show-description {
    margin: 3rem 0;
}

.ttb-show-description p {
    font-size: 1.1rem;
    line-height: 1.9;
    color: var(--contrast-2);
    margin-bottom: 1.5rem;
}

.ttb-production-stats {
    display: flex;
    justify-content: center;
    gap: 4rem;
    margin: 3rem 0;
    padding: 2rem 0;
    border-top: 1px solid rgba(212,31,60,0.3);
    border-bottom: 1px solid rgba(212,31,60,0.3);
}

.ttb-show-callout {
    background: var(--card-bg);
    border-left: 4px solid var(--accent-1);
    padding: 2rem;
    border-radius: 4px;
    margin-top: 3rem;
}

.ttb-show-callout p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--contrast-2);
    margin: 0;
}

/* ================================
   FINAL CTA SECTION
   ================================ */
.ttb-final-cta {
    background: var(--gradient-red);
    padding: 5rem 5%;
    text-align: center;
}

.ttb-final-cta__container {
    max-width: 900px;
    margin: 0 auto;
}

.ttb-final-cta__title {
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    color: #FFFFFF;
    line-height: 1.4;
    margin-bottom: 2rem;
    font-weight: 700;
}

.ttb-final-cta__text {
    font-size: 1.15rem;
    line-height: 1.9;
    color: rgba(255,255,255,0.95);
    margin-bottom: 3rem;
}

.ttb-final-cta__buttons {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.ttb-final-cta .ttb-btn--secondary {
    background: transparent;
    color: #FFFFFF;
    border: 2px solid #FFFFFF;
}

.ttb-final-cta .ttb-btn--secondary:hover {
    background: #FFFFFF;
    color: var(--accent-1);
}

/* ================================
   RESPONSIVE
   ================================ */
@media (max-width: 768px) {
    .ttb-meet-intro__container {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    
    .ttb-credentials {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .ttb-production-stats {
        flex-direction: column;
        gap: 2rem;
    }
    
    .ttb-final-cta__buttons {
        flex-direction: column;
        align-items: center;
    }
    
    .ttb-final-cta__buttons .ttb-btn {
        width: 100%;
        max-width: 300px;
    }
}
/* ================================
   PAGE HERO - FULL WIDTH FIX
   ================================ */
.ttb-page-hero--meet-show {
    height: 60vh;
    min-height: 500px;
}

.ttb-page-hero--meet-show .ttb-page-hero__image {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.ttb-page-hero--meet-show .ttb-page-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.ttb-page-hero--meet-show .ttb-page-hero__overlay {
    background: linear-gradient(
        to bottom,
        rgba(10,10,10,0.5) 0%,
        rgba(10,10,10,0.75) 60%,
        rgba(10,10,10,0.9) 100%
    );
}

/* ================================
   EPK PAGE STYLES
   ================================ */
.ttb-epk-header {
    background: var(--gradient-red);
    padding: 140px 5% 4rem;
    text-align: center;
}

.ttb-epk-header__container {
    max-width: 900px;
    margin: 0 auto;
}

.ttb-epk-header__title {
    font-size: clamp(2.5rem, 5vw, 4rem);
    color: #FFFFFF;
    margin-bottom: 1rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.ttb-epk-header__subtitle {
    font-size: clamp(1.2rem, 2.5vw, 1.8rem);
    color: rgba(255,255,255,0.95);
    margin-bottom: 0.5rem;
}

.ttb-epk-header__tagline {
    font-size: 1.1rem;
    color: rgba(255,255,255,0.85);
    font-weight: 300;
}

.ttb-epk-section {
    padding: 4rem 5%;
    transition: background-color 0.4s ease;
}

.ttb-epk-section:nth-child(even) {
    background: var(--base-1);
}

.ttb-epk-section:nth-child(odd) {
    background: var(--base-2);
}

.ttb-epk-container {
    max-width: 1100px;
    margin: 0 auto;
}

.ttb-epk-section-title {
    font-size: clamp(2rem, 4vw, 2.8rem);
    color: var(--contrast-1);
    margin-bottom: 2rem;
    text-align: center;
    position: relative;
    padding-bottom: 1rem;
}

.ttb-epk-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: var(--gradient-red);
}

/* Quick Facts Grid */
.ttb-epk-facts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}

.ttb-fact-item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ttb-fact-label {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--accent-1);
    font-weight: 700;
}

.ttb-fact-value {
    font-size: 1.1rem;
    color: var(--contrast-1);
    font-weight: 600;
}

/* Content */
.ttb-epk-content p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--contrast-2);
    margin-bottom: 1.5rem;
}

/* Bio Section */
.ttb-epk-bio-content {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 3rem;
    align-items: start;
}

.ttb-epk-bio-image img {
    width: 100%;
    border-radius: 8px;
    border: 3px solid var(--base-3);
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
}

.ttb-epk-bio-text h3 {
    color: var(--accent-1);
    font-size: 1.3rem;
    margin: 2rem 0 1rem;
}

.ttb-epk-bio-text ul {
    list-style: none;
    padding: 0;
}

.ttb-epk-bio-text li {
    padding: 0.5rem 0;
    padding-left: 1.5rem;
    position: relative;
    color: var(--contrast-2);
}

.ttb-epk-bio-text li::before {
    content: '▸';
    position: absolute;
    left: 0;
    color: var(--accent-1);
}

.ttb-epk-bio-text p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--contrast-2);
    margin-bottom: 1.5rem;
}

/* Setlist */
.ttb-epk-setlist-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin: 2rem 0;
}

.ttb-setlist-column ul {
    list-style: none;
    padding: 0;
}

.ttb-setlist-column li {
    padding: 0.75rem 0;
    padding-left: 2rem;
    position: relative;
    color: var(--contrast-1);
    font-size: 1.05rem;
    border-bottom: 1px solid rgba(212,31,60,0.1);
}

.ttb-setlist-column li::before {
    content: '♪';
    position: absolute;
    left: 0;
    color: var(--accent-1);
    font-size: 1.2rem;
}

/* Tech Requirements */
.ttb-epk-tech-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}

.ttb-tech-item {
    background: var(--card-bg);
    padding: 2rem;
    border-radius: 8px;
    border: 2px solid var(--base-3);
}

.ttb-tech-item h3 {
    color: var(--accent-1);
    font-size: 1.3rem;
    margin-bottom: 1rem;
}

.ttb-tech-item ul {
    list-style: none;
    padding: 0;
}

.ttb-tech-item li {
    padding: 0.5rem 0;
    color: var(--contrast-2);
    font-size: 0.95rem;
}

/* Venues Grid */
.ttb-venues-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
}

.ttb-venue-item {
    background: var(--card-bg);
    padding: 1.5rem;
    text-align: center;
    border-radius: 4px;
    border: 1px solid var(--base-3);
    color: var(--contrast-1);
    font-weight: 600;
}

/* Photos */
.ttb-epk-photo-instructions {
    text-align: center;
    color: var(--contrast-3);
    margin-bottom: 2rem;
    font-style: italic;
}

.ttb-epk-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.ttb-epk-photo-item {
    text-align: center;
}

.ttb-epk-photo-item img {
    width: 100%;
    border-radius: 8px;
    border: 2px solid var(--base-3);
    margin-bottom: 1rem;
}

.ttb-photo-download {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    background: var(--accent-1);
    color: #FFFFFF;
    text-decoration: none;
    border-radius: 4px;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

.ttb-photo-download:hover {
    background: #8B0A1A;
    transform: translateY(-2px);
}

/* Contact */
.ttb-epk-contact-content {
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
}

.ttb-epk-contact-intro {
    font-size: 1.1rem;
    color: var(--contrast-2);
    margin-bottom: 2rem;
}

.ttb-contact-info {
    background: var(--card-bg);
    padding: 2rem;
    border-radius: 8px;
    border: 2px solid var(--base-3);
    margin: 2rem 0;
}

.ttb-contact-item {
    padding: 1rem 0;
    font-size: 1.05rem;
    color: var(--contrast-2);
    border-bottom: 1px solid rgba(212,31,60,0.1);
}

.ttb-contact-item:last-child {
    border-bottom: none;
}

.ttb-contact-item strong {
    color: var(--contrast-1);
    margin-right: 0.5rem;
}

.ttb-contact-item a {
    color: var(--accent-1);
    text-decoration: none;
    font-weight: 600;
}

.ttb-contact-item a:hover {
    text-decoration: underline;
}

.ttb-epk-response-note {
    color: var(--contrast-3);
    font-style: italic;
    margin-top: 1.5rem;
}

/* Notes */
.ttb-epk-note {
    text-align: center;
    color: var(--contrast-3);
    font-style: italic;
    margin-top: 2rem;
}

/* Responsive */
@media (max-width: 768px) {
    .ttb-epk-bio-content {
        grid-template-columns: 1fr;
    }
    
    .ttb-epk-setlist-grid {
        grid-template-columns: 1fr;
    }
}

/* ================================
   HIDE BOOK THE SHOW BUTTONS (TEMPORARY)
   ================================ */
.ttb-btn--secondary {
    display: none !important;
}