:root {
  /* Premium Primary (Blue) - Slightly more vibrant */
  --bs-primary: #1e3a8a;
  --bs-primary-rgb: 30, 58, 138;

  /* Premium Warning (Orange) - Slightly more refined */
  --bs-warning: #f97316;
  --bs-warning-rgb: 249, 115, 22;

  --bs-link-color: #1e3a8a;
  --bs-link-hover-color: #1e40af;

  /* Player */
  --plyr-color-main: #1e3a8a;

  /* Plus Jakarta Sans fallback */
  --bs-body-font-family: "Plus Jakarta Sans", sans-serif;
}

/* Primary text/bg */
.text-primary {
  color: var(--bs-primary) !important;
}
.bg-primary,
.text-bg-primary {
  background-color: var(--bs-primary) !important;
  color: #fff !important;
}

/* Global Link Overrides */
a {
  color: var(--bs-primary);
  text-decoration: none !important;
}
a:not(.btn):hover {
  color: var(--bs-link-hover-color) !important;
}
.bg-primary a.text-white:hover,
.bg-primary a.text-white:focus,
a.bg-primary.text-white:hover,
a.bg-primary.text-white:focus {
  color: #fff !important;
}

/* Warning text/bg */
.text-warning {
  color: var(--bs-warning) !important;
}
.bg-warning,
.text-bg-warning {
  background-color: var(--bs-warning) !important;
  color: #fff !important;
}

/* Buttons */
.btn-primary {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #fff !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--bs-warning) !important;
  border-color: var(--bs-warning) !important;
  color: #fff !important;
}
.btn-primary:disabled,
.btn-primary.disabled {
  background-color: rgba(var(--bs-primary-rgb), 0.5) !important;
  border-color: rgba(var(--bs-primary-rgb), 0.5) !important;
  color: #fff !important;
  opacity: 0.65;
}

/* Outline buttons */
.btn-outline-primary {
  color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  background-color: transparent !important;
}
.btn-outline-primary:hover {
  color: #fff !important;
  background-color: var(--bs-primary) !important;
}

/* Warning Buttons */
.btn-warning {
  background-color: var(--bs-warning) !important;
  border-color: var(--bs-warning) !important;
  color: #fff !important;
}
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active {
  background-color: #e66710 !important; /* Slightly darker orange */
  border-color: #e66710 !important;
  color: #fff !important;
}
.btn-warning:disabled,
.btn-warning.disabled {
  background-color: rgba(var(--bs-warning-rgb), 0.5) !important;
  border-color: rgba(var(--bs-warning-rgb), 0.5) !important;
  color: #fff !important;
}

.btn-outline-warning {
  color: var(--bs-warning) !important;
  border-color: var(--bs-warning) !important;
  background-color: transparent !important;
}
.btn-outline-warning:hover {
  color: #fff !important;
  background-color: var(--bs-warning) !important;
}

/* Nav pills and tabs */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--bs-primary) !important;
  color: #fff !important;
}
.nav-tabs .nav-link.active {
  border-color: var(--bs-primary) var(--bs-primary) #fff !important;
  color: var(--bs-primary) !important;
}

/* List group */
.list-group-item.active {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #fff !important;
}

/* Progress bar */
.progress-bar.bg-primary {
  background-color: var(--bs-primary) !important;
}

/* Alerts (solid style) */
.alert-primary {
  background-color: rgba(var(--bs-primary-rgb), 0.1) !important;
  border-color: var(--bs-primary) !important;
  color: var(--bs-primary) !important;
}

/* Badges and Secondary */
.badge-primary,
.bg-primary {
  background-color: var(--bs-primary) !important;
  color: #fff !important;
}

.text-secondary {
  color: var(--bs-secondary) !important;
}
.bg-secondary {
  background-color: var(--bs-secondary) !important;
  color: #fff !important;
}
.btn-secondary {
  background-color: var(--bs-secondary) !important;
  border-color: var(--bs-secondary) !important;
  color: #fff !important;
}
.btn-secondary:hover {
  background-color: #152961 !important;
  border-color: #152961 !important;
}

/* Form controls focus */
.form-control:focus,
.form-select:focus {
  border-color: var(--bs-primary) !important;
}

.form-check-input:checked {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}

/* Outline color for accessibility */
:focus {
  outline-color: var(--bs-primary) !important;
}

/* Custom player color */
.plyr--full-ui input[type="range"]::-webkit-slider-thumb {
  background: var(--bs-primary) !important;
}

/* Accordion */
.accordion-button:not(.collapsed) {
  color: var(--bs-primary) !important;
  background-color: rgba(var(--bs-primary-rgb), 0.05) !important;
}

/* Pagination */
.page-link {
  color: var(--bs-primary) !important;
}
.page-item.active .page-link {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #fff !important;
}

/* Reset text color inside content wrapper (overrides .bg-warning color inheritance) */
.boxed-content > .bg-white {
  color: #212529;
}

/* Page shell: richer atmosphere in gutters outside boxed content
   (does not change .bg-warning on buttons, badges, or in-page hero panels) */
body.bg-warning {
  background-color: #ea580c !important;
  background-image:
    radial-gradient(ellipse 80% 50% at 10% 20%, rgba(255, 255, 255, 0.18), transparent 55%),
    radial-gradient(ellipse 70% 45% at 90% 80%, rgba(30, 58, 138, 0.22), transparent 50%),
    radial-gradient(ellipse 60% 40% at 50% 0%, rgba(255, 237, 213, 0.2), transparent 45%),
    repeating-linear-gradient(
      -18deg,
      transparent,
      transparent 11px,
      rgba(255, 255, 255, 0.04) 11px,
      rgba(255, 255, 255, 0.04) 12px
    ),
    linear-gradient(165deg, #fb923c 0%, #f97316 42%, #ea580c 78%, #c2410c 100%) !important;
  background-attachment: fixed;
  background-size: auto, auto, auto, auto, auto;
}

body.bg-warning > .bg-warning.min-vh-100 {
  background-color: transparent !important;
  background-image: none !important;
}

/* Boxed Content Layout */
@media (min-width: 992px) {
  .boxed-content {
    margin-left: 6rem;
    margin-right: 6rem;
  }
  .boxed-content.container-fluid {
    max-width: calc(100% - 12rem);
  }
}

/* Image Fade-In Utility */
.img-fade-in {
  opacity: 0;
  animation: fadeInImage 0.5s ease-in forwards;
}

@keyframes fadeInImage {
  to {
    opacity: 1;
  }
}

/* Skeleton Loading Placeholder for ratio boxes */
.bg-light-skeleton {
  background: #f8f9fa;
  background: linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%);
  background-size: 200% 100%;
  animation: 1.5s shimmer linear infinite;
}

@keyframes shimmer {
  to {
    background-position-x: -200%;
  }
}

/* Utils */
.w-32 {
  width: 32px !important;
}
.h-32 {
  height: 32px !important;
}

/* Footer Heading */
footer h6 {
  color: #fff !important;
}

/* Footer Links (Static) */
footer a {
  color: #fff !important;
  opacity: 1 !important;
  transform: none !important;
}
footer a:hover {
  color: #fff !important;
  opacity: 1 !important;
  text-decoration: none !important;
}

.play-overlay {
  transition: background-color 0.3s;
}
.play-overlay:hover {
  background-color: rgba(0, 0, 0, 0.4) !important;
}
.play-btn {
  transition: transform 0.2s;
}
.play-btn:hover {
  transform: scale(1.1);
}

/* PACE progress — use canonical warning */
.pace .pace-progress {
  background: var(--bs-warning) !important;
}
