﻿@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Source+Sans+Pro:wght@400;600;700&family=Roboto:wght@300;400;500;700&display=swap');

@custom-variant dark (&:is(.dark *));

:root {
    --font-size: 16px;


    /* Font family variables */
    --font-inter: 'Inter', sans-serif;
    --font-source-sans-pro: 'Source Sans Pro', sans-serif;
    --font-roboto: 'Roboto', sans-serif;
}
@layer base {
    * {
        @apply border-border outline-ring/50;
    }

    body {
        @apply bg-background text-foreground;
        font-family: var(--font-roboto);
    }
}

/**
 * Base typography. This is not applied to elements which have an ancestor with a Tailwind text class.
 */
@layer base {
    :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) {
        h1 {
            font-family: var(--font-inter);
            font-size: var(--text-6xl);
            font-weight: var(--font-weight-bold);
            line-height: 1.2;
        }

        h2 {
            font-family: var(--font-inter);
            font-size: var(--text-5xl);
            font-weight: var(--font-weight-bold);
            line-height: 1.33;
        }

        h3 {
            font-family: var(--font-inter);
            font-size: var(--text-4xl);
            font-weight: var(--font-weight-medium);
            line-height: 1.2;
        }

        h4 {
            font-family: var(--font-source-sans-pro);
            font-size: var(--text-xl);
            font-weight: var(--font-weight-bold);
            line-height: 1.2;
        }

        p {
            font-family: var(--font-roboto);
            font-size: var(--text-base);
            font-weight: var(--font-weight-regular);
            line-height: 1.5;
        }

        label {
            font-family: var(--font-roboto);
            font-size: var(--text-xs);
            font-weight: var(--font-weight-regular);
            line-height: 1.33;
        }

        button {
            font-family: var(--font-roboto);
            font-size: var(--text-base);
            font-weight: var(--font-weight-medium);
            line-height: 1.5;
        }

        input {
            font-family: var(--font-roboto);
            font-size: var(--text-base);
            font-weight: var(--font-weight-regular);
            line-height: 1.5;
        }
    }
}

html {
    font-size: var(--font-size);
}

/* Animated border for primary CTA */
@keyframes borderFlow {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.animated-border-button {
    position: relative;
    z-index: 0;
}

.animated-border-button::before {
    content: '';
    position: absolute;
    inset: -5px;
    border-radius: 9999px;
    background: linear-gradient(
            90deg,
            rgba(100, 100, 100, 1) 0%,
            rgba(67, 64, 210, 1) 15%,
            rgba(37, 99, 235, 1) 30%,
            rgba(99, 188, 131, 1) 50%,
            rgba(37, 99, 235, 1) 70%,
            rgba(67, 64, 210, 1) 85%,
            rgba(100, 100, 100, 1) 100%
    );
    background-size: 300% 100%;
    animation: borderFlow 3s linear infinite;
    z-index: -1;
}

.animated-border-button::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 9999px;
    background: var(--primary);
    z-index: -1;
}


.section-title {
    text-align: center;
    font-size: 2.8rem;
    margin-bottom: 4rem;
    font-weight: normal;
}

.section-description{
    font-size: 1rem;
    text-align: center;
    margin-bottom: 3rem;
    color: #4A5568;
}

@media (max-width: 768px) {
    .section-title{
        margin-bottom: 2rem;
        line-height: 1;
    }
}