@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap');

/* Typography Overrides */
body,
p,
span,
div,
li,
a {
    font-family: 'Open Sans', sans-serif !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title {
    font-family: 'Poppins', sans-serif !important;
}

/* Global Image Fixes - Prevent aspect ratio distortion */
img {
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    /* Contain is safer for logos, cover for hero. We will use contain to not crop important parts */
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

/* Elegant Buttons Override */
.elementor-button,
.btn,
button,
input[type="submit"] {
    border-radius: 50px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
    font-family: 'Poppins', sans-serif !important;
    font-weight: 500 !important;
    cursor: pointer !important;
}

.elementor-button:hover,
.btn:hover,
button:hover,
input[type="submit"]:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2), 0 4px 6px -2px rgba(0, 0, 0, 0.1) !important;
}

/* Interactive Cards / Containers */
.elementor-column-wrap,
.elementor-widget-wrap {
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

/* We don't want to break the layout, so we only apply hover effects to obvious cards */
.elementor-widget-icon-box:hover .elementor-icon-box-wrapper,
.elementor-widget-image-box:hover,
.elementor-widget-testimonial:hover {
    transform: translateY(-5px);
    /* Glassmorphism subtle glow */
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
}

/* Scroll Animation Classes */
.vt-reveal-up {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: opacity, transform;
}

.vt-reveal-fade {
    opacity: 0;
    transition: opacity 1s ease-in-out;
    will-change: opacity;
}

.vt-reveal-zoom {
    opacity: 0;
    transform: scale(0.95);
    transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: opacity, transform;
}

/* Active Class applied by JS */
.vt-visible {
    opacity: 1 !important;
    transform: translateY(0) scale(1) !important;
}