/* Site-specific modern overrides. Keep vendor files untouched. */

:root {
  --bg: #0f1221;
  --surface: #171a2b;
  --text: #e7e9ee;
  --muted: #a2a7b5;
  --primary: #7c5cff;
  --primary-600: #6a49ff;
  --accent: #26e0a0;
  --danger: #ff5c7a;
  --radius: 12px;
  --shadow-1: 0 6px 24px rgba(0,0,0,.24), 0 2px 8px rgba(0,0,0,.18);
}

/* Base */
html { scroll-behavior: smooth; }
body {
  background: radial-gradient(1200px 800px at 20% -10%, #1b1f36 0%, var(--bg) 60%),
              linear-gradient(180deg, #121528 0%, #0e1020 100%);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { color: var(--accent); }
a:hover, a:focus { color: #3cf0b3; }

.tm-text-primary { color: var(--primary) !important; }

/* Navbar */
.tm-navbar {
  backdrop-filter: saturate(160%) blur(10px);
  background: linear-gradient(180deg, rgba(23,26,43,.75), rgba(23,26,43,.55)) !important;
  border-bottom: 1px solid rgba(255,255,255,.06);
  box-shadow: var(--shadow-1);
}
.tm-navbar.scroll { background: rgba(23,26,43,.9) !important; }
.navbar-brand { letter-spacing: .5px; }

.tm-nav-link {
  color: var(--text) !important;
  border-radius: 24px;
  padding: 8px 14px;
  margin: 0 2px;
}
.tm-navbar .tm-nav-link:hover,
.tm-navbar .tm-nav-link.current {
  background: var(--primary);
  color: #fff !important;
}

/* Hero */
#infinite { position: relative; }
#infinite::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(15,18,33,.55) 0%, rgba(15,18,33,.85) 65%);
  pointer-events: none;
  z-index: 0;
}
.tm-hero-text-container, .tm-intro-next { position: relative; z-index: 1; }
.tm-hero-text-container-inner { text-align: center; }
.tm-down-arrow { background: var(--primary); }
.tm-down-arrow:hover { background: var(--primary-600); }

/* Sections */
.tm-section-pad-top { padding-top: 96px; padding-bottom: 72px; }
.tm-content-box { padding-top: 24px; padding-bottom: 48px; }
.tm-section-title { color: var(--text); letter-spacing: .3px; }
.tm-section-desc { color: var(--muted); }

/* Buttons */
.tm-btn-primary {
  background: linear-gradient(180deg, var(--primary) 0%, var(--primary-600) 100%) !important;
  color: #fff !important;
  border: 0;
  border-radius: 999px;
  box-shadow: 0 6px 14px rgba(124,92,255,.35);
}
.tm-btn-primary:hover, .tm-btn-primary:focus {
  filter: brightness(1.05);
  transform: translateY(-1px);
}

/* Media and images */
.tm-testimonials-carousel img {
  border-radius: var(--radius);
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
}

/* Slick carousel tweaks */
.slick-dots li button:before { color: var(--primary); opacity: .6; }
.slick-dots li.slick-active button:before { opacity: 1; }

/* Cards/utilities (opt-in via class) */
.surface {
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
}

/* Show cards */
#shows .show-card.tf-card {
  overflow: hidden;
  width: 100%;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}
#shows .tf-card-header {
  padding: 14px 16px;
  background: linear-gradient(180deg, rgba(124,92,255,.18), rgba(124,92,255,.08));
  border-bottom: 1px solid rgba(255,255,255,.08);
}
#shows .tf-card-header .tm-intro-text {
  color: var(--text);
  font-weight: 600;
}
#shows .tf-card-body {
  padding: 12px 12px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
#shows .tf-card-img {
  width: 100% !important;
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
}

/* Forms and inputs */
input, textarea {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,.08);
  color: var(--text);
  border-radius: 10px;
}
input::placeholder, textarea::placeholder { color: #9aa0ae; }

/* Utilities */
.muted { color: var(--muted) !important; }
.rounded { border-radius: var(--radius) !important; }
.shadow { box-shadow: var(--shadow-1) !important; }
