/* ===== Scrolling Image Effect ===== */
/* This effect works on any container with tall images */
/* The image scrolls from top to bottom on hover */

.scroll-image-container {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    background: rgba(0, 0, 0, 0.5);
    width: 100%;
    aspect-ratio: 9 / 16; /* Tall image ratio - adjust as needed */
}

.scroll-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: object-position 5s ease-in-out;
    display: block;
}

/* On hover, scroll from top to bottom */
.scroll-image-container:hover img {
    object-position: bottom center;
}

/* Overlay (optional - appears on hover) */
.scroll-image-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.7) 0%,
        rgba(0, 0, 0, 0.4) 40%,
        transparent 100%
    );
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
    border-radius: 16px;
    z-index: 2;
}

.scroll-image-container:hover .scroll-image-overlay {
    opacity: 1;
}

/* Label (optional - shown over image) */
.scroll-image-label {
    position: absolute;
    bottom: 24px;
    left: 24px;
    z-index: 3;
    opacity: 1;
    transform: translateY(0);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.scroll-image-container:hover .scroll-image-label {
    opacity: 0;
    transform: translateY(16px);
}

.scroll-image-label h3 {
    margin: 0;
    font-family: "Inter Display", "Inter", sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #ffffff;
    text-shadow: 0 4px 16px rgba(0, 0, 0, 0.6);
    letter-spacing: -0.02em;
}

/* Content (appears on hover) */
.scroll-image-content {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 32px;
    opacity: 0;
    transform: translateY(16px);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    z-index: 2;
}

.scroll-image-container:hover .scroll-image-content {
    opacity: 1;
    transform: translateY(0);
}

.scroll-image-content h3 {
    margin: 0 0 12px 0;
    font-family: "Inter Display", "Inter", sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: -0.02em;
}

.scroll-image-content p {
    margin: 0;
    font-family: "Inter", sans-serif;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
}

/* Responsive */
@media (max-width: 768px) {
    .scroll-image-container {
        aspect-ratio: 4 / 5;
    }

    .scroll-image-container:hover img {
        object-position: top center; /* Disable on mobile */
    }

    .scroll-image-label h3 {
        font-size: 20px;
    }

    .scroll-image-content h3 {
        font-size: 20px;
    }
}

/* ===== Variation: Card with Badge ===== */
.scroll-image-card {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    background: white;
    box-shadow: 0 4px 20px rgba(124, 58, 237, 0.1);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    height: 400px;
}

.scroll-image-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(124, 58, 237, 0.25);
}

.scroll-image-card .scroll-image-container {
    width: 100%;
    height: 100%;
    aspect-ratio: unset;
}

/* Badge */
.scroll-image-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    padding: 8px 16px;
    border-radius: 50px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 12px;
    font-weight: 600;
    color: #7c3aed;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    z-index: 10;
}

.scroll-image-badge span {
    font-size: 14px;
}
