/* Reset and Base Styles */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  /* Soft pastel palette */
  --background: hsl(210, 40%, 98%);
  --foreground: hsl(215, 25%, 27%);
  --card: hsl(0, 0%, 100%);
  --card-foreground: hsl(215, 25%, 27%);
  --primary:#251461;
  --primary-foreground: hsl(0, 0%, 100%);
  --primary-soft: hsl(200, 45%, 85%);
  --secondary: hsl(155, 35%, 75%);
  --secondary-foreground: hsl(155, 35%, 25%);
  --muted: hsl(270, 30%, 90%);
  --muted-foreground: hsl(215, 16%, 47%);
  --accent: hsl(350, 50%, 85%);
  --accent-foreground: hsl(350, 50%, 30%);
  --border: hsl(210, 30%, 88%);
  --radius: 1rem;
  
  /* Gradients and shadows */
  --gradient-hero: linear-gradient(135deg, hsl(200, 45%, 75%), hsl(270, 30%, 85%));
  --shadow-soft: 0 8px 30px -5px hsla(200, 45%, 65%, 0.15);
  --shadow-card: 0 4px 20px -2px hsla(200, 45%, 65%, 0.1);
  --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background-color: var(--background);
  color: var(--foreground);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.font-display {
  font-family: 'Playfair Display', Georgia, serif;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* Header Styles */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0;
  font-size: 0.875rem;
  color: var(--muted-foreground);
  border-bottom: 1px solid rgba(210, 230, 240, 0.5);
}

.header-top-left {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.header-top-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.icon-small {
  width: 1rem;
  height: 1rem;
  color: var(--primary);
}

.header-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
}

.logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--foreground);
}

.logo-circle {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 1.25rem;
}

.logo-text h1 {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0;
}

.logo-text p {
  font-size: 0.75rem;
  color: var(--muted-foreground);
  margin: 0;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius);
  font-weight: 500;
  font-size: 0.875rem;
  cursor: pointer;
  transition: var(--transition-smooth);
  border: none;
  text-decoration: none;
}



.btn-primary {

  background-color: var(--primary);

  color: var(--primary-foreground);

  box-shadow: var(--shadow-card);

}



.btn-primary:hover {

  background-color: hsl(200, 45%, 60%);

  box-shadow: var(--shadow-soft);

  transform: translateY(-1px);

}



.btn-outline {

  background-color: transparent;

  color: var(--primary);

  border: 2px solid var(--primary);

}



.btn-outline:hover {

  background-color: hsla(200, 45%, 65%, 0.1);

}



.btn-lg {

  padding: 1rem 2rem;

  font-size: 1rem;

}



.btn-icon {

  width: 1.25rem;

  height: 1.25rem;

}



/* Hero Section */

.hero {

  position: relative;

  min-height: 90vh;

  display: flex;

  align-items: center;

  justify-content: center;

  overflow: hidden;

  margin-top: 80px;

}



.hero-bg {

  position: absolute;

  inset: 0;

  z-index: 0;

}



.hero-bg img {

  width: 100%;

  height: 100%;

  object-fit: cover;

}



.hero-overlay {

  position: absolute;

  inset: 0;

  background: linear-gradient(to right, 

    hsla(210, 40%, 98%, 0.95), 

    hsla(210, 40%, 98%, 0.8), 

    hsla(210, 40%, 98%, 0.4));

}



.hero-decorative-circle-1 {

  position: absolute;

  top: 5rem;

  right: 2.5rem;

  width: 18rem;

  height: 18rem;

  background-color: hsla(200, 45%, 65%, 0.1);

  border-radius: 50%;

  filter: blur(75px);

}



.hero-decorative-circle-2 {

  position: absolute;

  bottom: 5rem;

  left: 2.5rem;

  width: 24rem;

  height: 24rem;

  background-color: hsla(155, 35%, 75%, 0.1);

  border-radius: 50%;

  filter: blur(75px);

}



.hero-content {

  position: relative;

  z-index: 10;

  text-align: center;

  max-width: 64rem;

}



.hero-badge {

  display: inline-block;

  padding: 0.5rem 1rem;

  background-color: rgba(255, 255, 255, 0.8);

  backdrop-filter: blur(8px);

  border-radius: 9999px;

  margin-bottom: 1.5rem;

  border: 1px solid var(--border);

  font-size: 0.875rem;

  font-weight: 500;

  color: var(--primary);

}



.hero-title {

  font-size: 4rem;

  font-weight: 700;

  margin-bottom: 1.5rem;

  line-height: 1.2;

}



.hero-title-gradient {

  background: linear-gradient(to right, var(--primary), var(--secondary), var(--accent));

  -webkit-background-clip: text;

  background-clip: text;

  -webkit-text-fill-color: transparent;

}



.hero-description {

  font-size: 1.125rem;

  color: var(--muted-foreground);

  margin-bottom: 2rem;

  max-width: 42rem;

  margin-left: auto;

  margin-right: auto;

  line-height: 1.7;

}



.hero-buttons {

  display: flex;

  flex-wrap: wrap;

  gap: 1rem;

  align-items: center;

  justify-content: center;

  margin-bottom: 3rem;

}



.hero-stats {

  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 1.5rem;

  max-width: 48rem;

  margin: 0 auto;

}



.hero-stat {

  text-align: center;

  padding: 1rem;

  background-color: rgba(255, 255, 255, 0.6);

  backdrop-filter: blur(8px);

  border-radius: 1rem;

  border: 1px solid var(--border);

}



.hero-stat-number {

  font-size: 1.875rem;

  font-weight: 700;

  color: var(--primary);

  margin-bottom: 0.25rem;

}



.hero-stat-label {

  font-size: 0.875rem;

  color: var(--muted-foreground);

}



/* About Section */

.about {

  padding: 5rem 0;

  background: linear-gradient(135deg, 

    hsla(200, 45%, 65%, 0.05), 

    hsla(155, 35%, 75%, 0.05), 

    hsla(350, 50%, 85%, 0.05));

}



.about-grid {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 3rem;

  align-items: center;

}



.about-content {

  padding-right: 2rem;

}



.section-badge {

  display: inline-block;

  padding: 0.5rem 1rem;

  background-color: var(--card);

  border-radius: 9999px;

  margin-bottom: 1rem;

  font-size: 0.875rem;

  font-weight: 500;

  color: var(--primary);

}



.section-title {

  font-size: 2.5rem;

  font-weight: 700;

  margin-bottom: 1.5rem;

  line-height: 1.2;

}



.about-description {

  font-size: 1.125rem;

  color: var(--muted-foreground);

  margin-bottom: 2rem;

  line-height: 1.7;

}



.about-description strong {

  color: var(--foreground);

}



.about-features {

  display: flex;

  flex-direction: column;

  gap: 1rem;

}



.about-feature {

  display: flex;

  align-items: start;

  gap: 0.75rem;

}



.check-icon {

  margin-top: 0.25rem;

  padding: 0.25rem;

  border-radius: 50%;

  background-color: hsla(200, 45%, 65%, 0.2);

  flex-shrink: 0;

}



.about-feature p {

  font-weight: 500;

  color: var(--foreground);

}



.about-visual {

  position: relative;

}



.about-card {

  background-color: rgba(255, 255, 255, 0.8);

  backdrop-filter: blur(8px);

  border: 1px solid rgba(210, 230, 240, 0.5);

  border-radius: 1rem;

  padding: 2rem;

  box-shadow: var(--shadow-soft);

}



.about-card-content {

  aspect-ratio: 1;

  border-radius: 1rem;

  background: linear-gradient(135deg, 

    hsla(200, 45%, 65%, 0.2), 

    hsla(155, 35%, 75%, 0.2), 

    hsla(350, 50%, 85%, 0.2));

  display: flex;

  align-items: center;

  justify-content: center;

  flex-direction: column;

  text-align: center;

}



.about-card-logo {

  width: 8rem;

  height: 8rem;

  border-radius: 50%;

  background: linear-gradient(135deg, var(--primary), var(--secondary));

  display: flex;

  align-items: center;

  justify-content: center;

  color: white;

  font-size: 3.75rem;

  font-weight: 700;

  margin-bottom: 1.5rem;

}



.about-card-text {

  color: var(--muted-foreground);

  font-size: 0.875rem;

}



/* Especialidades Section */

.especialidades {

  padding: 5rem 0;

  background-color: var(--background);

}



.section-header {

  text-align: center;

  margin-bottom: 3rem;

}



.section-description {

  font-size: 1.125rem;

  color: var(--muted-foreground);

  max-width: 42rem;

  margin: 0 auto;

}



.especialidades-grid {

  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 1.5rem;

}



.especialidad-card {

  background-color: rgba(255, 255, 255, 0.5);

  backdrop-filter: blur(8px);

  border: 1px solid rgba(210, 230, 240, 0.5);

  border-radius: 1rem;

  padding: 1.5rem;

  text-align: center;

  transition: var(--transition-smooth);

  cursor: pointer;

  box-shadow: var(--shadow-card);

}



.especialidad-card:hover {

  box-shadow: var(--shadow-soft);

  border-color: hsla(200, 45%, 65%, 0.5);

  transform: translateY(-4px);

}



.especialidad-icon-wrapper {

  margin-bottom: 1rem;

  display: flex;

  justify-content: center;

}



.especialidad-icon-bg {

  padding: 1rem;

  border-radius: 1rem;

  background: linear-gradient(135deg, 

    hsla(200, 45%, 65%, 0.1), 

    hsla(155, 35%, 75%, 0.1));

  transition: var(--transition-smooth);

}



.especialidad-card:hover .especialidad-icon-bg {

  transform: scale(1.1);

}



.especialidad-icon {

  width: 2rem;

  height: 2rem;

}



.icon-primary { color: var(--primary); }

.icon-secondary { color: var(--secondary); }

.icon-accent { color: var(--accent); }



.especialidad-name {

  font-weight: 600;

  color: var(--foreground);

  transition: var(--transition-smooth);

}



.especialidad-card:hover .especialidad-name {

  color: var(--primary);

}



/* Contact Section */

.contact {

  padding: 5rem 0;

  background-color: var(--background);

}



.contact-grid {

  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 1.5rem;

  max-width: 72rem;

  margin: 0 auto 3rem;

}



.contact-card {

  background-color: rgba(255, 255, 255, 0.5);

  backdrop-filter: blur(8px);

  border: 1px solid rgba(210, 230, 240, 0.5);

  border-radius: 1rem;

  padding: 1.5rem;

  text-align: center;

  transition: var(--transition-smooth);

}



.contact-card:hover {

  box-shadow: var(--shadow-soft);

  transform: translateY(-4px);

}



.contact-icon-wrapper {

  margin-bottom: 1rem;

  display: flex;

  justify-content: center;

}



.contact-icon-bg {

  padding: 1rem;

  border-radius: 1rem;

  transition: var(--transition-smooth);

}



.contact-icon-bg.primary { background-color: hsla(200, 45%, 65%, 0.1); }

.contact-icon-bg.secondary { background-color: hsla(155, 35%, 75%, 0.1); }

.contact-icon-bg.accent { background-color: hsla(350, 50%, 85%, 0.1); }



.contact-card:hover .contact-icon-bg.primary { background-color: hsla(200, 45%, 65%, 0.2); }

.contact-card:hover .contact-icon-bg.secondary { background-color: hsla(155, 35%, 75%, 0.2); }

.contact-card:hover .contact-icon-bg.accent { background-color: hsla(350, 50%, 85%, 0.2); }



.contact-icon {

  width: 1.5rem;

  height: 1.5rem;

}



.contact-title {

  font-weight: 600;

  color: var(--foreground);

  margin-bottom: 0.5rem;

}



.contact-info {

  color: var(--muted-foreground);

  font-size: 0.875rem;

  text-decoration: none;

  display: block;

  transition: var(--transition-smooth);

}



.contact-info:hover {

  color: var(--primary);

}



.contact-cta {

  text-align: center;

}



/* Footer */

.footer {

  background-color: var(--card);

  border-top: 1px solid var(--border);

  padding: 2rem 0;

}



.footer-content {

  display: flex;

  align-items: center;

  justify-content: space-between;

  flex-wrap: wrap;

  gap: 1rem;

}



.footer-logo {

  display: flex;

  align-items: center;

  gap: 0.5rem;

}



.footer-logo-circle {

  width: 2.5rem;

  height: 2.5rem;

  border-radius: 50%;

  background: linear-gradient(135deg, var(--primary), var(--accent));

  display: flex;

  align-items: center;

  justify-content: center;

  color: white;

  font-weight: 700;

  font-size: 1.125rem;

}



.footer-logo-text p:first-child {

  font-weight: 700;

  color: var(--foreground);

}



.footer-logo-text p:last-child {

  font-size: 0.75rem;

  color: var(--muted-foreground);

}



.footer-center {

  font-size: 0.875rem;

  color: var(--muted-foreground);

  display: flex;

  align-items: center;

  gap: 0.5rem;

}



.heart-icon {

  width: 1rem;

  height: 1rem;

  color: var(--accent);

  fill: var(--accent);

}



.footer-copyright {

  font-size: 0.875rem;

  color: var(--muted-foreground);

}





.chat-send-button:hover {

  background-color: hsl(200, 45%, 60%);

}



.chat-help-text {

  font-size: 0.75rem;

  color: var(--muted-foreground);

  text-align: center;

  margin-top: 0.5rem;

}



/* Responsive Design */

@media (max-width: 768px) {

  .header-top {

    display: none;

  }

  

  .hero-title {

    font-size: 2.5rem;

  }

  

  .hero-stats {

    grid-template-columns: repeat(2, 1fr);

  }

  

  .about-grid {

    grid-template-columns: 1fr;

  }

  

  .about-content {

    padding-right: 0;

  }

  

  .especialidades-grid {

    grid-template-columns: repeat(2, 1fr);

  }

  

  .contact-grid {

    grid-template-columns: repeat(2, 1fr);

  }

  

  .footer-content {

    flex-direction: column;

    text-align: center;

  }

  

  .chat-window {

    width: calc(100vw - 2rem);

    height: calc(100vh - 2rem);

    bottom: 1rem;

    right: 1rem;

  }

}



@media (max-width: 480px) {

  .hero-buttons {

    flex-direction: column;

    width: 100%;

  }

  

  .btn-lg {

    width: 100%;

  }

  

  .especialidades-grid {

    grid-template-columns: 1fr;

  }

  

  .contact-grid {

    grid-template-columns: 1fr;

  }

}



/* Smooth Scrolling */

html {

  scroll-behavior: smooth;

}



/* Utility Classes */

.hidden {

  display: none !important;

}