/* Custom Fonts */
.font-josefin { font-family: 'Josefin Sans'; }
.font-open { font-family: 'Open Sans'; }

/* Gradients */
.bg-purple-gradient {
    background-color: #2F0C33;
    background-image: linear-gradient(to bottom, #000000 0%, #2F0C33 50%, #2F0C33 50%, #000000 100%);
}
.bg-blue-gradient {
    background-color: #0A1C39;
    background-image: linear-gradient(to bottom, #000000 0%, #0A1C39 50%, #0A1C39 50%, #000000 100%);
}
.bg-deep-purple-gradient {
    background-color: #410E45;
    background-image: linear-gradient(to bottom, #000000 0%, #410E45 50%, #410E45 50%, #000000 100%);
}

.text-orange-accent { color: #FF8A00; }

/* Smooth Buttons */
.smooth-btn {
    transition: transform 0.35s ease, box-shadow 0.45s ease, background 0.45s ease,
                opacity 0.35s ease, color 0.35s ease;
}
.smooth-btn:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 8px 30px rgba(0,0,0,0.35);
}

/* Button Text Hover */
.button-text-hover {
    display: inline-block;
    transition: transform 0.3s ease;
}
.smooth-btn:hover .button-text-hover {
    transform: scale(1.1);
}

/* Contact Button */
.contact-us-btn {
    transition: all 0.35s ease-in-out;
    box-shadow: 0 0 10px 1px rgba(66,102,135);
    border: 4px solid #426687;
    background-color: white;
    color: black;
}
.contact-us-btn:hover {
    transform: translateY(-2px) scale(1.07);
    box-shadow: 0 0 20px 3px rgba(66,102,135,0.9);
}

/* Hover Zoom */
.image-zoom-hover,
.icon-zoom-hover {
    transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out;
}
.image-zoom-hover:hover,
.icon-zoom-hover:hover {
    transform: scale(1.05);
}

/* Scroll Reveal */
.scroll-reveal {
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}
.scroll-reveal-hidden {
    opacity: 0;
    transform: translateY(30px);
}
.scroll-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Image Outer Blur */
.blur-border {
    position: relative;
}
.blur-border::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 20px;
    box-shadow: 0 0 40px 25px rgba(0,0,0,0.7);
    filter: blur(50px);
    z-index: -1;
}

/* Line Animation */
.scroll-reveal-line {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}
.scroll-reveal-line.is-visible {
    opacity: 1;
    transform: translateY(0);
}
