/* Custom Step Flow Addon Styles */

.elementor-step-flow {
    width: 100%;
    max-width: var(--flow-max-width, 100%);
    margin: 0 auto;
    box-sizing: border-box;
}

.step-flow-item {
    display: flex;
    flex-direction: column;
    width: 100%;
}

/* ==========================================
   CARD BASE: Horizontal 3-Column (Default PC)
   Badge | Title | Description — all in 1 row
   ========================================== */
.step-card {
    background-color: #ffffff;
    border-radius: 16px;
    box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.05);
    padding: 24px 30px;
    box-sizing: border-box;
    display: grid;
    width: 100%;
    transition: all 0.3s ease;
    grid-template-columns: var(--badge-size, 50px) 1fr 1.5fr;
    column-gap: 24px;
    row-gap: 0;
    align-items: center;
}

.step-card:hover {
    transform: translateY(-2px);
    box-shadow: 0px 12px 35px rgba(0, 0, 0, 0.07);
}

/* Badge Circle */
.step-badge {
    width: var(--badge-size, 50px);
    height: var(--badge-size, 50px);
    background-color: #e5006d;
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
    font-family: inherit;
    grid-column: 1;
    grid-row: 1;
}

/* Title text */
.step-title {
    font-size: 18px;
    font-weight: 700;
    color: #e5006d;
    line-height: 1.4;
    margin: 0;
    grid-column: 2;
    grid-row: 1;
}

/* Description text */
.step-desc {
    font-size: 14px;
    font-weight: 700;
    color: #222222;
    line-height: 1.6;
    margin: 0;
    grid-column: 3;
    grid-row: 1;
}

/* ==========================================
   DESKTOP: Stacked Layout (Mobile-Style on PC)
   Row 1: Badge + Title
   Row 2: Description (full width below)
   Class: step-flow-desktop-stacked on widget wrapper
   ========================================== */
.step-flow-desktop-stacked .step-card {
    grid-template-columns: var(--badge-size, 50px) 1fr;
    column-gap: 16px;
    row-gap: 12px;
    align-items: start;
}

.step-flow-desktop-stacked .step-badge {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
}

.step-flow-desktop-stacked .step-title {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
}

.step-flow-desktop-stacked .step-desc {
    grid-column: 1 / -1;
    grid-row: 2;
}

/* --- Dividers between cards --- */
.step-divider {
    position: relative;
    height: var(--card-gap, 40px);
    width: 100%;
    box-sizing: border-box;
}

/* Vertical dotted connector line */
.step-divider-line {
    position: absolute;
    left: calc(var(--card-padding-left, 30px) + (var(--badge-size, 50px) / 2));
    top: 0;
    bottom: 0;
    width: 0;
    border-left: var(--line-thickness, 2px) dotted var(--line-color, #e5006d);
    transform: translateX(-50%);
}

/* Downward triangle arrow in center */
.step-divider-arrow {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 0;
    height: 0;
    border-left: var(--arrow-size, 15px) solid transparent;
    border-right: var(--arrow-size, 15px) solid transparent;
    border-top: var(--arrow-size, 15px) solid var(--arrow-color, #e5006d);
}

/* ==========================================
   TABLET / MOBILE RESPONSIVE (max-width: 767px)
   Default: Stacked layout (like image 2)
   ========================================== */
@media (max-width: 767px) {
    /* Default Mobile: Stacked */
    .step-card {
        grid-template-columns: var(--badge-size, 40px) 1fr;
        column-gap: 14px;
        row-gap: 10px;
        padding: 20px;
        align-items: start;
    }

    .step-badge {
        grid-column: 1;
        grid-row: 1;
        align-self: center;
    }

    .step-title {
        grid-column: 2;
        grid-row: 1;
        font-size: 16px;
        align-self: center;
    }

    .step-desc {
        grid-column: 1 / -1;
        grid-row: 2;
        font-size: 13px;
    }

    /* Mobile: Force Horizontal (PC-Style on Mobile) */
    .step-flow-mobile-horizontal .step-card {
        grid-template-columns: var(--badge-size, 40px) 1fr 1.2fr;
        column-gap: 12px;
        row-gap: 0;
        align-items: center;
        padding: 16px 20px;
    }

    .step-flow-mobile-horizontal .step-badge {
        grid-column: 1;
        grid-row: 1;
    }

    .step-flow-mobile-horizontal .step-title {
        grid-column: 2;
        grid-row: 1;
        font-size: 14px;
    }

    .step-flow-mobile-horizontal .step-desc {
        grid-column: 3;
        grid-row: 1;
        font-size: 12px;
    }

    .step-divider {
        height: var(--card-gap, 30px);
    }
}
