:root {
    --background: 0 0% 100%;
    --foreground: 240 10% 3.9%;
    --card: 0 0% 100%;
    --card-foreground: 240 10% 3.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 240 10% 3.9%;
    --primary: 221 83% 53%;
    --primary-foreground: 0 0% 98%;
    --secondary: 240 4.8% 95.9%;
    --secondary-foreground: 240 5.9% 10%;
    --muted: 240 4.8% 95.9%;
    --muted-foreground: 240 3.8% 46.1%;
    --accent: 240 4.8% 95.9%;
    --accent-foreground: 240 5.9% 10%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 240 5.9% 90%;
    --input: 240 5.9% 90%;
    --ring: 221 83% 53%;
    --radius: 1rem;
}

.dark {
    --background: 240 10% 3.9%;
    --foreground: 0 0% 98%;
    --card: 240 10% 3.9%;
    --card-foreground: 0 0% 98%;
    --popover: 240 10% 3.9%;
    --popover-foreground: 0 0% 98%;
    --primary: 217 91% 60%;
    --primary-foreground: 240 5.9% 10%;
    --secondary: 240 3.7% 15.9%;
    --secondary-foreground: 0 0% 98%;
    --muted: 240 3.7% 15.9%;
    --muted-foreground: 240 5% 64.9%;
    --accent: 240 3.7% 15.9%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 0 0% 98%;
    --border: 240 3.7% 15.9%;
    --input: 240 3.7% 15.9%;
    --ring: 217 91% 60%;
}

body {
    font-family: 'Inter', sans-serif;
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
}

/* Additional styles for components that are hard to replicate with just Tailwind */
[data-state=open]>div {
    display: block;
}

[data-state=closed]>div {
    display: none;
}

.accordion-content {
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}

.tabs-list button[aria-selected="true"] {
    background-color: hsl(var(--foreground));
    color: hsl(var(--background));
}

.tabs-list button {
    background-color: hsl(var(--muted));
    color: hsl(var(--muted-foreground));
}

.dark .tabs-list button[aria-selected="true"] {
    background-color: hsl(var(--foreground));
    color: hsl(var(--background));
}

.dark .tabs-list button {
    background-color: hsl(var(--muted));
    color: hsl(var(--foreground));
}

/* Map marker animations */
.map-marker {
    animation: pulse 2s infinite;
    transform: translate(-50%, -50%);
    will-change: transform, opacity;
}

@keyframes pulse {

    0%,
    100% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }

    50% {
        opacity: 0.8;
        transform: translate(-50%, -50%) scale(1.3);
    }
}

.map-marker:hover {
    animation: none;
    transform: translate(-50%, -50%) scale(1.4);
    opacity: 1;
}

/* Ensure map container has proper positioning context */
.map-container {
    position: relative;
    display: inline-block;
    width: 100%;
}

b,
strong {
    font-weight: bolder;
}

/* === NeuralNest Tech Blue Palette Overrides === */
:root{
  --nn-primary:#2563EB;      /* blue-600 */
  --nn-primary-dark:#1E40AF; /* blue-900 */
  --nn-accent:#1D4ED8;       /* blue-700 */
  --nn-ring:#60A5FA;         /* blue-400 */
}

/* Primary buttons */
.btn-primary,
button.btn-primary,
a.btn-primary{
  background:var(--nn-primary) !important;
  border-color:var(--nn-primary) !important;
  color:#fff !important;
}
.btn-primary:hover,
button.btn-primary:hover,
a.btn-primary:hover{
  background:var(--nn-accent) !important;
  border-color:var(--nn-accent) !important;
}

/* Links */
a, .link-primary, .text-primary{
  color:var(--nn-primary) !important;
}
a:hover, .link-primary:hover{
  color:var(--nn-accent) !important;
}

/* Gradient helpers (if present in DOM) */
.hero-gradient, .bg-gradient-primary{
  background-image:linear-gradient(135deg,var(--nn-primary),var(--nn-primary-dark)) !important;
}

/* Focus ring */
:focus{
  outline-color:var(--nn-ring) !important;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--nn-ring) 45%, transparent) !important;
}

/* === NeuralNest Fusion Palette: Blue-Purple Gradient + Dark Gray Background === */
:root{
  --nn-bg:#0f172a;              /* slate-900 background */
  --nn-bg-alt:#1e293b;          /* slate-800 alt background */
  --nn-primary:#6366F1;         /* indigo-500 */
  --nn-secondary:#3B82F6;       /* blue-500 */
  --nn-accent:#8B5CF6;          /* purple-500 */
  --nn-text:#f3f4f6;            /* gray-100 text */
  --nn-subtext:#9ca3af;         /* gray-400 subtext */
  --nn-hover:#a78bfa;           /* purple-400 hover */
}

/* Backgrounds */
body{
  background:var(--nn-bg);
  color:var(--nn-text);
}
.section,
.header,
.footer{
  background:var(--nn-bg-alt);
  color:var(--nn-text);
}

/* Hero gradient */
.hero-gradient,
.bg-gradient-primary{
  background-image:linear-gradient(135deg,var(--nn-primary),var(--nn-accent)) !important;
}

/* Buttons */
.btn-primary,
button.btn-primary,
a.btn-primary{
  background:linear-gradient(135deg,var(--nn-primary),var(--nn-secondary)) !important;
  border:none !important;
  color:#fff !important;
}
.btn-primary:hover,
button.btn-primary:hover,
a.btn-primary:hover{
  background:linear-gradient(135deg,var(--nn-accent),var(--nn-primary)) !important;
  transform:translateY(-1px);
}

/* Links */
a, .link-primary{
  color:var(--nn-accent) !important;
}
a:hover, .link-primary:hover{
  color:var(--nn-hover) !important;
}

/* Cards & Shadows */
.card, .feature-card{
  background:var(--nn-bg-alt);
  border:1px solid rgba(255,255,255,0.05);
  box-shadow:0 2px 8px rgba(0,0,0,0.3);
  color:var(--nn-text);
}

/* Headings */
h1,h2,h3,h4,h5,h6{
  color:var(--nn-text);
}

/* Footer */
footer{
  background:var(--nn-bg-alt);
  color:var(--nn-subtext);
}

/* Smooth hover glow */
.btn-primary, a:hover{
  transition:all 0.2s ease-in-out;
}
