/* Base grid structure */
.ibg-d488c8ab-wrapper {
    width: 100%;
}
.ibg-d488c8ab-container {
    display: grid;
    /* desktop default */
    grid-template-columns: repeat(3, minmax(0, 1fr)); 
    align-items: stretch;
    width: 100%;
}

.ibg-d488c8ab-item {
    display: flex;
    flex-direction: column;
    /* justify-content controlled via elementor settings */
    /* align-items controlled via elementor settings */
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
    text-decoration: none;
    transition: all 0.3s ease;
    color: inherit; /* Maintain text color for links */
}

/* Icon Position Variants */
.elementor-position-left .ibg-d488c8ab-item {
    flex-direction: row;
}

.elementor-position-right .ibg-d488c8ab-item {
    flex-direction: row;
}

.elementor-position-top .ibg-d488c8ab-item {
    flex-direction: column;
}

.ibg-d488c8ab-content {
    /* flex-grow helps content take remaining space in row layout */
    flex-grow: 1;
    /* text-align controlled via elementor settings */
}

/* Override default elementor link styles so cards dont look like generic blue links */
a.ibg-d488c8ab-item {
    text-decoration: none !important;
}

/* Hover lift effect base */
.ibg-hover-lift {
    transition: transform 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.ibg-d488c8ab-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    /* margin overrides from elementor controls */
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.ibg-d488c8ab-icon-wrapper svg {
    transition: all 0.3s ease;
    width: 40px;
    height: 40px;
}

.ibg-d488c8ab-icon-wrapper i {
    transition: all 0.3s ease;
    font-size: 40px;
}

.ibg-d488c8ab-title {
    margin: 0 0 10px 0;
    width: 100%;
    transition: all 0.3s ease;
}

.ibg-d488c8ab-desc {
    margin: 0;
    width: 100%;
    transition: all 0.3s ease;
}