/* Base styles for all our CTA buttons */
.cta-button {
    display: inline-block; /* Allows setting padding and margin */
    padding: 12px 24px;   /* Vertical and horizontal padding */
    margin: 25px 0px 20px 0px;
    font-size: 1rem;      /* 16px by default */
    font-weight: 600;     /* Bold text to stand out */
    text-align: center;
    text-decoration: none;  /* Remove underline if used on an <a> tag */
    cursor: pointer;        /* Changes cursor to a pointer on hover */
    border-radius: 8px;     /* Gives the button rounded corners */
    user-select: none;      /* Prevents text selection on click */
    background-color: var(--primary-color);
    border: 1px solid #404040;
}

/* Style for the Solid Button */
.cta-solid {
    background-color: #040404; /* A nice, standard blue */
    border: 1px solid #343434;              /* No border for a flat, modern look */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
}

/* --- INTERACTION STATES --- */

/* Hover: When the mouse is over the button */
.cta-solid:hover {
    background-color: #111111; /* A darker shade of blue */
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15); /* A slightly larger shadow */
    transform: translateY(-2px); /* Lifts the button up slightly */
    color: #ffffff !important;
}

/* Active: When the button is being clicked */
.cta-solid:active {
    background-color: #111111; /* An even darker shade */
    transform: translateY(0);  /* Pushes the button back down */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Smaller shadow */
}

/* Focus: For accessibility (e.g., when tabbing with a keyboard) */
.cta-solid:focus {
    outline: 2px solid #111111; /* Adds a visible outline */
    outline-offset: 2px;      /* Adds space between the button and the outline */
}

/* Make sure you have the .cta-button base styles from Option 1! */

.cta-outline {
    background-color: #040404 !important;
    border: 1px solid #ffffff !important;
    color: #ffffff !important;
}

/* --- INTERACTION STATES --- */

.cta-outline:hover {
    background-color: #ffffff !important;
    color: #000000 !important;
}

.cta-outline:active {
    background-color: #ffffff !important;
    border-color: #ffffff !important;
    color: #000000 !important;
}

.cta-outline:focus {
    outline: 2px solid #6c757d;
    outline-offset: 2px;
}

/* Make sure you have the .cta-button base styles from Option 1! */

.cta-gradient {
    /* A vibrant, diagonal gradient */
    background-image: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
    color: #ffffff;
    border: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    
    /* We set a background size larger than the button to animate its position */
    background-size: 200% auto;
}

/* --- INTERACTION STATES --- */

.cta-gradient:hover {
    /* This moves the background, creating a sliding gradient effect */
    background-position: right center; 
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
    transform: translateY(-3px);
}

.cta-gradient:active {
    transform: translateY(0);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.cta-gradient:focus {
    outline: 2px solid #dc2743; /* Use a color from the gradient */
    outline-offset: 2px;
}