/* Global color system: esoteric palette (obsidian, emerald, gold) */
:root {
  --theme-bg: #ffffff;
  --theme-text: #0f172a;
  --theme-primary: #0f2b46;
  --theme-primary-dark: #0b2034;
  --theme-secondary: #1a8f7a;
  --theme-accent: #d6a047;
  --theme-muted: #f3f6fa;
  --theme-border: #d9e1ee;
}

body {
  background: var(--theme-bg);
  color: var(--theme-text);
}

/* Force overall page background */
html, body {
  background-color: var(--theme-primary) !important;
}

/* Global purple preference */
a {
  color: var(--theme-primary);
}
a:hover {
  color: var(--theme-secondary);
}

button,
.btn,
.button {
  background-color: var(--theme-primary) !important;
  color: #ffffff !important;
  border-color: transparent !important;
}
button:hover,
.btn:hover,
.button:hover {
  background-color: var(--theme-primary-dark) !important;
}

/* Make default section backgrounds white and purple accents */
section {
  background-color: var(--theme-bg);
}

/* Neutral background alignment */
.bg-gray-50 {
  background-color: var(--theme-primary) !important;
}
.bg-white {
  background-color: var(--theme-primary) !important;
}
.bg-gray-100,
.bg-gray-200 {
  background-color: var(--theme-primary) !important;
}

/* Primary text */
.text-purple-600,
.text-purple-700,
.text-purple-800 {
  color: var(--theme-primary) !important;
}
.text-indigo-600,
.text-indigo-700,
.text-indigo-800 {
  color: var(--theme-secondary) !important;
}
.text-pink-500,
.text-pink-600,
.text-pink-700 {
  color: var(--theme-accent) !important;
}
.text-blue-600,
.text-blue-700,
.text-blue-800 {
  color: var(--theme-secondary) !important;
}
.text-green-600,
.text-green-700,
.text-green-800 {
  color: var(--theme-secondary) !important;
}
.text-red-600,
.text-red-700,
.text-red-800,
.text-yellow-600,
.text-yellow-700,
.text-yellow-800 {
  color: var(--theme-accent) !important;
}
.text-gray-600,
.text-gray-700,
.text-gray-800,
.text-gray-900 {
  color: #ffffff !important;
}

/* Primary backgrounds */
.bg-purple-600,
.bg-purple-700,
.bg-purple-800 {
  background-color: var(--theme-primary) !important;
}
.bg-indigo-600,
.bg-indigo-700,
.bg-indigo-800 {
  background-color: var(--theme-secondary) !important;
}
.bg-purple-50 {
  background-color: var(--theme-muted) !important;
}
.bg-indigo-50 {
  background-color: var(--theme-muted) !important;
}
.bg-pink-600,
.bg-pink-700,
.bg-pink-800 {
  background-color: var(--theme-accent) !important;
}
.bg-blue-600,
.bg-blue-700,
.bg-blue-800 {
  background-color: var(--theme-secondary) !important;
}
.bg-green-600,
.bg-green-700,
.bg-green-800 {
  background-color: var(--theme-secondary) !important;
}
.bg-red-600,
.bg-red-700,
.bg-red-800,
.bg-yellow-600,
.bg-yellow-700,
.bg-yellow-800 {
  background-color: var(--theme-accent) !important;
}

/* Borders */
.border-purple-300,
.border-purple-400,
.border-purple-500,
.border-purple-600 {
  border-color: var(--theme-border) !important;
}
.border-indigo-300,
.border-indigo-400,
.border-indigo-500,
.border-indigo-600 {
  border-color: var(--theme-border) !important;
}
.border-blue-300,
.border-blue-400,
.border-blue-500,
.border-blue-600,
.border-green-300,
.border-green-400,
.border-green-500,
.border-green-600 {
  border-color: var(--theme-border) !important;
}

/* Hover helpers */
.hover\:bg-purple-50:hover {
  background-color: var(--theme-muted) !important;
}
.hover\:bg-indigo-50:hover {
  background-color: var(--theme-muted) !important;
}
.hover\:text-purple-600:hover,
.hover\:text-purple-700:hover {
  color: var(--theme-primary) !important;
}
.hover\:text-indigo-600:hover,
.hover\:text-indigo-700:hover {
  color: var(--theme-secondary) !important;
}
.hover\:text-blue-600:hover,
.hover\:text-blue-700:hover,
.hover\:text-green-600:hover,
.hover\:text-green-700:hover {
  color: var(--theme-secondary) !important;
}
.hover\:text-red-600:hover,
.hover\:text-red-700:hover,
.hover\:text-yellow-600:hover,
.hover\:text-yellow-700:hover {
  color: var(--theme-accent) !important;
}
.hover\:bg-purple-700:hover {
  background-color: var(--theme-primary-dark) !important;
}
.hover\:bg-indigo-700:hover {
  background-color: var(--theme-primary-dark) !important;
}
.hover\:bg-pink-700:hover {
  background-color: var(--theme-primary) !important;
}
.hover\:bg-blue-700:hover,
.hover\:bg-green-700:hover {
  background-color: var(--theme-primary-dark) !important;
}
.hover\:bg-red-700:hover,
.hover\:bg-yellow-700:hover {
  background-color: var(--theme-accent) !important;
}

/* Service cards - purple background, white text */
.theme-service-card {
  background: var(--theme-primary) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
}
.theme-service-card h3,
.theme-service-card p,
.theme-service-card span,
.theme-service-card i {
  color: #ffffff !important;
}
.theme-service-card:hover {
  background: var(--theme-primary-dark) !important;
}

/* Gradient overrides (solid, no white/transparent wash) */
.bg-gradient-to-r,
.bg-gradient-to-l,
.bg-gradient-to-t,
.bg-gradient-to-b,
.bg-gradient-to-br,
.bg-gradient-to-bl,
.bg-gradient-to-tr,
.bg-gradient-to-tl {
  background-image: none !important;
  background-color: var(--theme-primary) !important;
}

/* Hero banner: force solid purple, remove image/overlay wash */
#heroCarousel .hero-slide,
#heroCarousel .hero-slide > .bg-gradient-to-r,
#heroCarousel .hero-slide > .bg-cover,
#heroCarousel .hero-slide > .absolute {
  background-image: none !important;
  background-color: var(--theme-primary) !important;
}
#heroCarousel .hero-slide > .bg-cover {
  display: none !important;
}
#heroCarousel .hero-slide > .absolute[style*="background:"] {
  background: transparent !important;
}
.from-purple-600,
.from-purple-500,
.from-purple-700 {
  --tw-gradient-from: var(--theme-primary) !important;
  --tw-gradient-to: var(--theme-primary) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.from-indigo-600,
.from-indigo-500,
.from-indigo-700 {
  --tw-gradient-from: var(--theme-secondary) !important;
  --tw-gradient-to: var(--theme-secondary) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.from-pink-600,
.from-pink-500,
.from-pink-700 {
  --tw-gradient-from: var(--theme-accent) !important;
  --tw-gradient-to: var(--theme-accent) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.to-purple-600,
.to-purple-500,
.to-purple-700 {
  --tw-gradient-to: var(--theme-primary) !important;
}
.to-indigo-600,
.to-indigo-500,
.to-indigo-700 {
  --tw-gradient-to: var(--theme-secondary) !important;
}
.to-pink-600,
.to-pink-500,
.to-pink-700 {
  --tw-gradient-to: var(--theme-accent) !important;
}

/* Services grid: purple background + white text */
.theme-service-card {
  background-color: var(--theme-primary) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.theme-service-card h3,
.theme-service-card p,
.theme-service-card span {
  color: #ffffff !important;
}
.theme-service-card .text-gray-900,
.theme-service-card .text-gray-600,
.theme-service-card .text-purple-600,
.theme-service-card .text-indigo-600,
.theme-service-card .text-teal-600,
.theme-service-card .text-red-600,
.theme-service-card .text-blue-600 {
  color: #ffffff !important;
}
.theme-service-card:hover {
  background-color: var(--theme-primary-dark) !important;
}
