.ps-wrapper {
    display: flex;
    flex-direction: var(--ps-flex-dir, row);
    gap: var(--step-spacing, 15px);
    align-items: stretch;
}
.ps-step {
    flex: var(--ps-step-flex, 1);
    position: relative;
    display: flex;
    flex-direction: column;
}
.ps-icon-area {
    width: var(--icon-area-size, 60px);
    height: var(--icon-area-size, 60px);
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: var(--icon-border-radius, 50%);
    background-color: var(--icon-bg-color, #f0f0f0);
    margin-bottom: 15px;
    z-index: 2;
    position: relative;
    color: var(--icon-color, #333);
    font-size: var(--icon-size, 24px);
}
.ps-icon-area svg {
    width: var(--icon-size, 24px);
    height: var(--icon-size, 24px);
    fill: var(--icon-color, #333);
}
.ps-number {
    font-size: var(--num-size, 24px);
    color: var(--num-color, #333);
    font-weight: bold;
}
.ps-title {
    margin: 0 0 10px 0;
    color: var(--title-color, #333);
}
.ps-desc {
    color: var(--desc-color, #666);
}

/* Base Layout settings - Defaults to Horizontal */
.ps-wrapper {
    --ps-flex-dir: row;
}
.ps-step {
    --ps-step-flex: 1;
    --ps-conn-display: block;
    --ps-conn-top: calc(var(--icon-area-size, 60px) / 2);
    --ps-conn-bottom: auto;
    --ps-conn-left: calc(50% + (var(--icon-area-size, 60px) / 2) + var(--connector-gap, 10px));
    --ps-conn-right: calc(-50% + (var(--icon-area-size, 60px) / 2) + var(--connector-gap, 10px));
    --ps-conn-width: auto;
    --ps-conn-height: var(--connector-thickness, 2px);
}

/* Connector Positioning & SVG */
.ps-connector {
    position: absolute;
    display: var(--ps-conn-display, block);
    top: var(--ps-conn-top);
    left: var(--ps-conn-left);
    right: var(--ps-conn-right);
    bottom: var(--ps-conn-bottom);
    width: var(--ps-conn-width);
    height: var(--ps-conn-height);
    z-index: 1;
    pointer-events: none;
}
.ps-step:last-child .ps-connector {
    display: none !important;
}
.ps-connector svg {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    overflow: visible;
}
.ps-connector line {
    stroke: var(--connector-color, #ccc);
    stroke-width: var(--connector-thickness, 2px);
    stroke-linecap: var(--connector-cap, butt);
}
.ps-conn-style-solid .ps-connector line {
    stroke-dasharray: none;
}
.ps-conn-style-custom .ps-connector line {
    stroke-dasharray: var(--conn-dash, 10) var(--conn-gap, 10);
}

.ps-connector .v-line { display: none; }
.ps-connector .h-line { display: block; }

/* LAYOUT OVERRIDES */
/* Desktop Vertical */
.ps-layout-vertical .ps-wrapper {
    --ps-flex-dir: column;
}
.ps-layout-vertical .ps-step {
    --ps-step-flex: unset;
    --ps-conn-display: none; /* hidden unless vconn-yes */
    --ps-conn-top: calc(var(--icon-area-size, 60px) + var(--connector-gap, 10px));
    --ps-conn-bottom: calc(-1 * var(--step-spacing, 15px) + var(--connector-gap, 10px));
    --ps-conn-left: calc(50% - (var(--connector-thickness, 2px) / 2));
    --ps-conn-right: auto;
    --ps-conn-width: var(--connector-thickness, 2px);
    --ps-conn-height: auto;
}
.ps-layout-vertical .ps-step .v-line { display: block; }
.ps-layout-vertical .ps-step .h-line { display: none; }

/* Show vertical connector if switch is ON */
.ps-vconn-yes.ps-layout-vertical .ps-step {
    --ps-conn-display: block;
}

/* Tablet */
@media (max-width: 1024px) {
    .ps-layout-tablet-horizontal .ps-wrapper {
        --ps-flex-dir: row;
    }
    .ps-layout-tablet-horizontal .ps-step {
        --ps-step-flex: 1;
        --ps-conn-display: block;
        --ps-conn-top: calc(var(--icon-area-size, 60px) / 2);
        --ps-conn-bottom: auto;
        --ps-conn-left: calc(50% + (var(--icon-area-size, 60px) / 2) + var(--connector-gap, 10px));
        --ps-conn-right: calc(-50% + (var(--icon-area-size, 60px) / 2) + var(--connector-gap, 10px));
        --ps-conn-width: auto;
        --ps-conn-height: var(--connector-thickness, 2px);
    }
    .ps-layout-tablet-horizontal .ps-step .v-line { display: none; }
    .ps-layout-tablet-horizontal .ps-step .h-line { display: block; }

    .ps-layout-tablet-vertical .ps-wrapper {
        --ps-flex-dir: column;
    }
    .ps-layout-tablet-vertical .ps-step {
        --ps-step-flex: unset;
        --ps-conn-display: none;
        --ps-conn-top: calc(var(--icon-area-size, 60px) + var(--connector-gap, 10px));
        --ps-conn-bottom: calc(-1 * var(--step-spacing, 15px) + var(--connector-gap, 10px));
        --ps-conn-left: calc(50% - (var(--connector-thickness, 2px) / 2));
        --ps-conn-right: auto;
        --ps-conn-width: var(--connector-thickness, 2px);
        --ps-conn-height: auto;
    }
    .ps-vconn-yes.ps-layout-tablet-vertical .ps-step { --ps-conn-display: block; }
    .ps-layout-tablet-vertical .ps-step .v-line { display: block; }
    .ps-layout-tablet-vertical .ps-step .h-line { display: none; }
}

/* Mobile */
@media (max-width: 767px) {
    /* Default to vertical on mobile if no explicit horizontal class is set */
    .elementor-widget-process_steps_d26442d8:not(.ps-layout-mobile-horizontal) .ps-wrapper {
        --ps-flex-dir: column;
    }
    .elementor-widget-process_steps_d26442d8:not(.ps-layout-mobile-horizontal) .ps-step {
        --ps-step-flex: unset;
        --ps-conn-display: none;
        --ps-conn-top: calc(var(--icon-area-size, 60px) + var(--connector-gap, 10px));
        --ps-conn-bottom: calc(-1 * var(--step-spacing, 15px) + var(--connector-gap, 10px));
        --ps-conn-left: calc(50% - (var(--connector-thickness, 2px) / 2));
        --ps-conn-right: auto;
        --ps-conn-width: var(--connector-thickness, 2px);
        --ps-conn-height: auto;
    }
    .elementor-widget-process_steps_d26442d8.ps-vconn-yes:not(.ps-layout-mobile-horizontal) .ps-step {
        --ps-conn-display: block;
    }
    .elementor-widget-process_steps_d26442d8:not(.ps-layout-mobile-horizontal) .ps-step .v-line { display: block; }
    .elementor-widget-process_steps_d26442d8:not(.ps-layout-mobile-horizontal) .ps-step .h-line { display: none; }

    .ps-layout-mobile-horizontal .ps-wrapper {
        --ps-flex-dir: row;
    }
    .ps-layout-mobile-horizontal .ps-step {
        --ps-step-flex: 1;
        --ps-conn-display: block;
        --ps-conn-top: calc(var(--icon-area-size, 60px) / 2);
        --ps-conn-bottom: auto;
        --ps-conn-left: calc(50% + (var(--icon-area-size, 60px) / 2) + var(--connector-gap, 10px));
        --ps-conn-right: calc(-50% + (var(--icon-area-size, 60px) / 2) + var(--connector-gap, 10px));
        --ps-conn-width: auto;
        --ps-conn-height: var(--connector-thickness, 2px);
    }
    .ps-layout-mobile-horizontal .ps-step .v-line { display: none; }
    .ps-layout-mobile-horizontal .ps-step .h-line { display: block; }
}