:root {
  --brand-primary: #1d4ed8;          /* Catapult blue */
  --brand-primary-2: #60a5fa;        /* Light blue */
  --brand-accent: #f97316;           /* Orange accent */
  --hero-from: #f5f8ff;              /* Light gradient top */
  --hero-to: #edf2fc;                /* Light gradient bottom */
  --hero-from-dark: #121212;
  --hero-to-dark: #1e1e1e;

  /* Bootstrap color overrides to match brand */
  --bs-primary: var(--brand-primary);
  --bs-primary-rgb: 29, 78, 216;
}

html { scroll-behavior: smooth; }

/* Global font family */
body, .navbar, h1, h2, h3, h4, h5, h6, .btn, .nav-link {
  font-family: 'Nunito', sans-serif;
}

body[data-bs-theme="light"] .hero-section {
  background: linear-gradient(180deg, var(--hero-from), var(--hero-to));
}
body[data-bs-theme="dark"] .hero-section {
  background: linear-gradient(180deg, var(--hero-from-dark), var(--hero-to-dark));
}

.brand-text { color: var(--brand-primary); }

/* Navbar link color to match design */
.navbar .nav-link { color: var(--brand-primary); }
.navbar .nav-link:hover { color: #3b82f6; }

.text-accent { color: var(--brand-accent); }

.btn-accent {
  background-color: var(--brand-accent);
  color: #fff;
}
.btn-accent:hover { background-color: #ea580c; color: #fff; }

/* Hero title sizing closer to reference */
.hero-title { 
  font-size: clamp(2.5rem, 1.6rem + 2.5vw, 4rem); 
  font-weight: 800; 
  letter-spacing: 0.2px;
}

.hero-image { transition: transform .3s ease; }
.hero-image:hover { transform: scale(1.03); }

.hero-photo { 
  border-radius: 1rem; 
  overflow: hidden; 
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,.15), 0 .25rem 1rem rgba(0,0,0,.08);
}

/* Hero: video background layout */
.hero-video-section {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
}
.hero-video-section .container { position: relative; z-index: 2; }
.hero-video {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}
.hero-video-el {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-video-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.35));
}
.hero-panel {
  max-width: 760px;
  background: rgba(0,0,0,.60);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 .75rem 2rem rgba(0,0,0,.2);
}
@media (min-width: 992px) {
  .hero-panel { padding: 2.5rem 3rem; }
}
body[data-bs-theme="dark"] .hero-video-overlay { background: linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.5)); }
body[data-bs-theme="dark"] .hero-panel { background: rgba(0,0,0,.55); color: #f5f5f5; }
.hero-panel .hero-panel-text { color: inherit; }

/* Hide legacy column content inside hero panel (from previous layout) */
.hero-panel .col-lg-6,
.hero-panel .hero-photo { display: none !important; }

.cta-section { background-color: #1d4ed8; }
body[data-bs-theme="dark"] .cta-section { background-color: #1e40af; }

.scroll-top {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  width: 44px;
  height: 44px;
  display: none;
  z-index: 1030;
}

/* Card polish */
.card-img-top { object-fit: cover; height: 220px; }

/* Section spacing helpers */
.py-lg-6 { padding-top: 5rem !important; padding-bottom: 5rem !important; }

/* Award badge styling */
.award-badge {
  background: #f5b214;
  color: var(--brand-primary);
  border-radius: 999px;
  padding: .5rem .875rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  box-shadow: 0 2px 6px rgba(13, 110, 253, .12);
}
.award-badge .trophy { filter: saturate(1.1); }

/* Accent button polish */
.btn-accent {
  background-color: var(--brand-accent);
  color: #fff;
  border: 0;
  border-radius: .65rem;
  box-shadow: 0 .25rem .75rem rgba(249, 115, 22, .35);
}
.btn-accent:hover { background-color: #ea580c; color: #fff; }

/* Theme toggle as round icon button */
#themeToggle {
  width: 36px; height: 36px;
  display: inline-flex; align-items:center; justify-content:center;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.1);
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}

/* --- Game section helpers --- */
.bg-blue-soft { background: #eaf1ff; }
.bg-orange-soft { background: #fff3e9; }
.num-badge {
  background: var(--brand-primary);
  color: #fff;
  width: 28px; height: 28px; border-radius: 999px;
  font-weight: 700; font-size: .9rem;
  display: inline-flex; align-items:center; justify-content:center;
  flex: 0 0 28px;
}

/* Expansions section background to match reference */
.bg-expansions { background-color: rgb(237 242 252 / var(--tw-bg-opacity, 1)); }

/* Reviews section */
.rating-badge {
  display: inline-block;
  background: #fff7d6;
  color: #8a6d00;
  border-radius: 999px;
  padding: .4rem .75rem;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(0,0,0,.06);
}
.stars { color: #f59e0b; }
.review-card { background: #eef5ff; }

/* Award / Top-25 highlight cards */
.award-card {
  color: #fff;
  background: linear-gradient(135deg, #1d4ed8, #3b82f6);
}
.top25-card {
  color: #fff;
  background: linear-gradient(135deg, #f97316, #ea580c);
}
.award-icon {
  background: #fff;
  width: 96px; height: 96px; border-radius: 999px;
  display:flex; align-items:center; justify-content:center;
  margin-inline: auto;
  box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.15);
}

/* Community section */
.community-section { background-color: rgb(237 242 252 / var(--tw-bg-opacity, 1)); }
.community-card { background:#fff; border-radius: 1rem; box-shadow: 0 6px 16px rgba(0,0,0,.06); }
/* Ensure perfect 2x2 square gallery tiles */
.community-gallery .community-tile {
  overflow: hidden;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
}
.community-gallery .community-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Utility if needed elsewhere */
.object-fit-cover { object-fit: cover; }

/* Global image hover zoom to match hero */
img { transition: transform .3s ease; }
img:hover { transform: scale(1.03); }
