.hoverbox-61d8aaca {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

.hoverbox-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: transform 0.5s ease;
    z-index: 1;
}

.hoverbox-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    transition: opacity 0.5s ease;
}

.hoverbox-overlay-normal {
    opacity: 1;
}

.hoverbox-overlay-hover {
    opacity: 0;
}

.hoverbox-content {
    position: relative;
    z-index: 3;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

/* Alignments mapping based on content position settings */
.hoverbox-content.hoverbox-pos-top-left { justify-content: flex-start; align-items: flex-start; text-align: left; }
.hoverbox-content.hoverbox-pos-top-center { justify-content: flex-start; align-items: center; text-align: center; }
.hoverbox-content.hoverbox-pos-top-right { justify-content: flex-start; align-items: flex-end; text-align: right; }
.hoverbox-content.hoverbox-pos-center-left { justify-content: center; align-items: flex-start; text-align: left; }
.hoverbox-content.hoverbox-pos-center-center { justify-content: center; align-items: center; text-align: center; }
.hoverbox-content.hoverbox-pos-center-right { justify-content: center; align-items: flex-end; text-align: right; }
.hoverbox-content.hoverbox-pos-bottom-left { justify-content: flex-end; align-items: flex-start; text-align: left; }
.hoverbox-content.hoverbox-pos-bottom-center { justify-content: flex-end; align-items: center; text-align: center; }
.hoverbox-content.hoverbox-pos-bottom-right { justify-content: flex-end; align-items: flex-end; text-align: right; }

/* Handle button horizontal self alignment inside the flex container */
.hoverbox-content.hoverbox-pos-top-center .hoverbox-btn,
.hoverbox-content.hoverbox-pos-center-center .hoverbox-btn,
.hoverbox-content.hoverbox-pos-bottom-center .hoverbox-btn {
    align-self: center;
}
.hoverbox-content.hoverbox-pos-top-right .hoverbox-btn,
.hoverbox-content.hoverbox-pos-center-right .hoverbox-btn,
.hoverbox-content.hoverbox-pos-bottom-right .hoverbox-btn {
    align-self: flex-end;
}
.hoverbox-content.hoverbox-pos-top-left .hoverbox-btn,
.hoverbox-content.hoverbox-pos-center-left .hoverbox-btn,
.hoverbox-content.hoverbox-pos-bottom-left .hoverbox-btn {
    align-self: flex-start;
}

.hoverbox-content-inner {
    width: 100%;
    transition: transform 0.5s ease;
}

.hoverbox-title {
    margin: 0;
    padding: 0;
}

.hoverbox-subtitle-wrapper {
    transition: opacity 0.4s ease, max-height 0.4s ease;
    max-height: 100px;
    opacity: 1;
}

.hoverbox-subtitle {
    display: inline-block;
}

.hoverbox-hover-details {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.5s ease, opacity 0.5s ease, margin-top 0.5s ease;
    margin-top: 0;
}

.hoverbox-desc {
    margin: 0 0 15px 0;
}

.hoverbox-btn {
    display: inline-block;
    text-decoration: none;
    transition: all 0.3s ease;
}

/* Hover States Trigger */
.hoverbox-61d8aaca:hover .hoverbox-bg {
    transform: scale(1.05);
}

.hoverbox-61d8aaca:hover .hoverbox-overlay-normal {
    opacity: 0;
}

.hoverbox-61d8aaca:hover .hoverbox-overlay-hover {
    opacity: 1;
}

.hoverbox-61d8aaca:hover .hoverbox-subtitle-wrapper {
    max-height: 0;
    opacity: 0;
    margin: 0;
    overflow: hidden;
}

.hoverbox-61d8aaca:hover .hoverbox-hover-details {
    max-height: 500px;
    opacity: 1;
    margin-top: 10px;
}
