/* Wrapper and Base Animations */
.ca-wrapper-d111045a {
    width: 100%;
    position: relative;
    padding: 60px 20px;
    display: flex;
    flex-direction: column;
    align-items: var(--ca-return-align, center);
    justify-content: center;
    margin: 0 auto;
}

.ca-outer-d111045a {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 0;
    opacity: 0;
    transition: opacity 0.8s ease;
}

.ca-inner-d111045a {
    position: relative;
    z-index: 1;
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
    overflow: hidden;
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease 0.2s, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.2s;
    align-self: center; /* keep inner card centered regardless of wrapper alignment */
}

/* Return Top Button */
.ca-return-top-btn-d111045a {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: 0.8rem;
    font-weight: 300;
    cursor: pointer;
    transition: opacity 0.4s ease, color 0.4s ease;
    opacity: 0; /* Animated in via JS */
    transform: translateY(-10px);
    /* Position controls handled by Elementor settings */
}

.ca-return-icon-d111045a {
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2em;
    animation: caPulseUp-d111045a 1.5s infinite ease-in-out;
}

.ca-return-icon-d111045a svg {
    width: 1em;
    height: 1em;
}

@keyframes caPulseUp-d111045a {
    0% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(-5px); opacity: 1; }
    100% { transform: translateY(0); opacity: 0.5; }
}


/* Image Column */
.ca-image-d111045a {
    flex-shrink: 0;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease 0.4s, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.4s;
}

.ca-image-d111045a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Content Column */
.ca-content-d111045a {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px 0;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease 0.6s, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.6s;
}

/* Typography Defaults */
.ca-title-d111045a {
    margin: 0 0 20px 0;
    font-size: 2.5rem;
    font-weight: 300;
    line-height: 1.2;
}

.ca-desc-d111045a {
    margin-bottom: 40px;
    font-size: 1rem;
    line-height: 1.8;
}

.ca-desc-d111045a p {
    margin-top: 0;
}

/* Social Section */
.ca-social-wrap-d111045a {
    margin-top: auto;
}

.ca-social-label-d111045a {
    margin: 0 0 15px 0;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.ca-social-icons-d111045a {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.ca-social-icon-d111045a {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.ca-social-icon-d111045a:hover {
    opacity: 0.7;
    transform: translateY(-2px);
}

/* Reveal State - Activated by JS */
.ca-wrapper-d111045a.is-visible .ca-outer-d111045a,
.ca-wrapper-d111045a.is-visible .ca-inner-d111045a,
.ca-wrapper-d111045a.is-visible .ca-image-d111045a,
.ca-wrapper-d111045a.is-visible .ca-content-d111045a {
    opacity: 1;
    transform: translateY(0);
}

/* Reveal State for Return Button */
.ca-wrapper-d111045a.is-visible .ca-return-top-btn-d111045a {
    /* Use elementor opacity setting if defined, otherwise 0.7 */
    opacity: var(--ca-btn-opacity, 0.7); 
    transform: translateY(0);
    transition: opacity 0.8s ease 0.8s, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.8s, color 0.4s ease;
}

.ca-wrapper-d111045a.is-visible .ca-return-top-btn-d111045a:hover {
     opacity: var(--ca-btn-hover-opacity, 1);
}

/* Editor Override - Show Return Button */
.elementor-editor-active .ca-wrapper-d111045a .ca-return-top-btn-d111045a {
    opacity: var(--ca-btn-opacity, 0.7);
    transform: translateY(0);
    transition: none;
}

/* Responsive */
@media (max-width: 768px) {
    .ca-inner-d111045a {
        flex-direction: column;
        padding: 0 !important;
    }
    .ca-image-d111045a {
        width: 100% !important;
        height: auto;
    }
    .ca-content-d111045a {
        padding: 40px 30px;
    }
}