:root {
  --primary: #0ea5e9;
  --primary-dark: #0284c7;
  --font-heading: 'Outfit', sans-serif;
  --font-body: 'Inter', sans-serif;
}

body {
  font-family: var(--font-body);
  color: #334155;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6, .navbar-brand {
  font-family: var(--font-heading);
}

.text-primary { color: var(--primary) !important; }
.bg-primary { background-color: var(--primary) !important; }
.bg-primary-subtle { background-color: #e0f2fe !important; color: var(--primary-dark) !important; }
.btn-primary { background-color: var(--primary); border-color: var(--primary); }
.btn-primary:hover { background-color: var(--primary-dark); border-color: var(--primary-dark); }
.btn-outline-primary { color: var(--primary); border-color: var(--primary); }
.btn-outline-primary:hover { background-color: var(--primary); color: white; }

.fw-extrabold { font-weight: 800; }
.tracking-wide { letter-spacing: 0.05em; }

.hover-lift {
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.hover-lift:hover {
  transform: translateY(-3px);
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important;
}

/* Animations */
.floating-animation {
  animation: float 6s ease-in-out infinite;
}

@keyframes float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
  100% { transform: translateY(0); }
}

/* Custom Cards */
.custom-hover-card {
  transition: all 0.3s ease;
  border-bottom: 4px solid transparent !important;
}
.custom-hover-card:hover {
  transform: translateY(-8px);
  border-bottom-color: var(--primary) !important;
  box-shadow: 0 1rem 3rem rgba(0,0,0,.1) !important;
}

.custom-doctor-card {
  transition: all 0.3s ease;
  border-top: 4px solid var(--primary) !important;
}
.custom-doctor-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 1rem 3rem rgba(0,0,0,.1) !important;
}
.custom-doctor-card .doctor-img {
  height: 350px;
  width: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform 0.5s ease;
}
.custom-doctor-card:hover .doctor-img {
  transform: scale(1.05);
}
