@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");
@import "tailwindcss";

/* Theme Variables */
:root {
  --color-brand-purple: #7847e3;
  --color-brand-purple-dark: #6a3ece;
  --color-brand-purple-light: #2b1a4a;
  --font-ibm-plex-sans: "IBM Plex Sans", sans-serif;
  --font-montserrat: "Montserrat", sans-serif;
}

body {
  font-family: var(--font-montserrat);
}

@layer utilities {
  /* Brand Colors */
  .bg-brand-purple {
    background-color: var(--color-brand-purple);
  }

  .text-brand-purple {
    color: var(--color-brand-purple);
  }

  .border-brand-purple {
    border-color: var(--color-brand-purple);
  }

  /* Typography */
  .text-heading-h1 {
    font-family: var(--font-ibm-plex-sans);
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 0.5px;
    font-size: 28px;
    color: black;
  }

  .text-heading-h2 {
    font-family: var(--font-ibm-plex-sans);
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 0.5px;
    font-size: 22px;
  }

  .text-heading-h3 {
    font-family: var(--font-ibm-plex-sans);
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 0.5px;
    font-size: 20px;
  }

  .text-heading-h4 {
    font-family: var(--font-ibm-plex-sans);
    font-weight: semibold;
    line-height: 1.3;
    font-size: 16px;
  }

  .text-heading-h5 {
    font-family: var(--font-ibm-plex-sans);
    font-weight: bold;
    line-height: 1.3;
    font-size: 14px;
  }

  .text-heading-h6 {
    font-family: var(--font-ibm-plex-sans);
    font-weight: bold;
    line-height: 1.3;
    font-size: 12px;
  }

  .text-body-regular {
    font-family: var(--font-montserrat);
    font-size: 15px;
    line-height: 1.5;
  }

  .text-body-small {
    font-family: var(--font-montserrat);
    font-size: 13px;
    line-height: 1.5;
  }

  .text-caption {
    font-family: var(--font-montserrat);
    font-size: 12px;
    line-height: 1.4;
  }

  .text-navbar {
    font-size: 14px;
    font-family: var(--font-montserrat);
    line-height: 1.4;
    font-weight: 600;
  }

  /* Animations */
  .animate-slide-in {
    animation: slideIn 0.3s ease-out forwards;
  }

  @keyframes slideIn {
    from {
      transform: translateX(-100%);
      opacity: 0;
    }
    to {
      transform: translateX(0);
      opacity: 1;
    }
  }

  /* Transitions */
  .transition-fast {
    transition: all 0.2s ease;
  }

  .transition-normal {
    transition: all 0.3s ease;
  }

  .transition-slow {
    transition: all 0.7s ease;
  }

  /* Hover Effects */
  .hover-card-shadow {
    transition: all 0.3s ease;
  }

  .hover-card-shadow:hover {
    box-shadow: 0 8px 25px rgba(120, 71, 227, 0.15);
    transform: translateY(-2px);
  }

  /* Discovery Tab Background */
  .bg-discovery-tabs {
    background-color: rgba(120, 71, 227, 0.1);
  }

  /* Footer List */
  .footer-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .footer-list-item {
    font-size: 14px;
    line-height: 2;
    font-weight: normal;
    font-family: var(--font-montserrat);
    white-space: nowrap;
    color: white;
  }

  /* Responsive Typography */
  @media (min-width: 640px) {
    .text-heading-h1 {
      font-size: 32px;
    }
    .text-heading-h2 {
      font-size: 24px;
    }
    .text-heading-h3 {
      font-size: 22px;
    }
    .text-heading-h4 {
      font-size: 18px;
    }
    .text-heading-h5 {
      font-size: 16px;
    }
    .text-heading-h6 {
      font-size: 14px;
    }
    .text-body-regular {
      font-size: 16px;
    }
    .text-body-small {
      font-size: 14px;
    }
    .text-caption {
      font-size: 13px;
    }
  }

  @media (min-width: 1024px) {
    .text-heading-h1 {
      font-size: 36px;
    }
    .text-heading-h2 {
      font-size: 28px;
    }
    .text-heading-h3 {
      font-size: 24px;
    }
    .text-heading-h4 {
      font-size: 20px;
    }
    .text-heading-h5 {
      font-size: 18px;
    }
    .text-heading-h6 {
      font-size: 16px;
    }
    .text-body-regular {
      font-size: 18px;
    }
    .text-body-small {
      font-size: 16px;
    }
    .text-caption {
      font-size: 14px;
    }
  }
}
