/* =========================================================
   Eloframe Process Steps v1.0.5
   All-in-one process/timeline widget
   - More presets
   - Creative connectors
   - Flexible image support
   - Flexible button positions/styles
========================================================= */

.ef-process-steps{
    --ef-process-columns:4;
    --ef-process-count:4;
    --ef-icon-radius:999px;
    --ef-process-image-width:42%;
    --ef-accent:#c91550;
    --ef-dark:#10172a;
    --ef-muted:#4b5563;
    --ef-soft:#f8fafc;
    --ef-line:rgba(201,21,80,.35);
    --ef-connector-offset:0px;
    --ef-zigzag-offset:64px;
    position:relative;
    width:100%;
    isolation:isolate;
}

.ef-process-steps,
.ef-process-steps *{box-sizing:border-box}
.ef-process-steps a{text-decoration:none!important;color:inherit}

/* Visual presets */
.ef-process-steps--preset-healthcare_soft{--ef-accent:#c91550;--ef-dark:#10172a;--ef-muted:#4b5563;--ef-soft:#fff7fa;--ef-line:rgba(201,21,80,.32)}
.ef-process-steps--preset-corporate_clean{--ef-accent:#1f3b74;--ef-dark:#0f172a;--ef-muted:#475569;--ef-soft:#f8fafc;--ef-line:rgba(31,59,116,.32)}
.ef-process-steps--preset-premium_editorial{--ef-accent:#b88a2d;--ef-dark:#111827;--ef-muted:#52525b;--ef-soft:#fbfaf7;--ef-line:rgba(184,138,45,.35)}
.ef-process-steps--preset-creative_gradient{--ef-accent:#7c3aed;--ef-dark:#111827;--ef-muted:#4b5563;--ef-soft:#f5f3ff;--ef-line:rgba(124,58,237,.32)}
.ef-process-steps--preset-dark_pro{--ef-accent:#38bdf8;--ef-dark:#ffffff;--ef-muted:rgba(255,255,255,.72);--ef-soft:#0f172a;--ef-line:rgba(56,189,248,.45)}
.ef-process-steps--preset-dark_pro{background:#0f172a;color:#fff}

/* Core structure */
.ef-process-steps__main{position:relative;z-index:2;width:100%;min-width:0}
.ef-process-steps__intro{max-width:760px;margin:0 auto 42px;text-align:center}
.ef-process-steps--align-left .ef-process-steps__intro{text-align:left;margin-left:0;margin-right:auto}
.ef-process-steps__eyebrow{font-weight:800;text-transform:none;letter-spacing:.02em;margin:0 0 8px;color:var(--ef-accent)}
.ef-process-steps__heading{margin:0 0 14px;font-size:42px;line-height:1.05;font-weight:900;color:var(--ef-dark)}
.ef-process-steps__description{margin:0 auto;color:var(--ef-muted);font-size:16px;line-height:1.65;max-width:680px}
.ef-process-steps--align-left .ef-process-steps__description{margin-left:0}
.ef-process-steps__description p{margin:0}

.ef-process-steps__items{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:repeat(var(--ef-process-columns), minmax(0, 1fr));
    gap:28px;
    width:100%;
    text-align:center;
}

.ef-process-steps__item{
    position:relative;
    z-index:1;
    display:block;
    min-width:0;
    color:inherit;
    transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.ef-process-steps__visual{position:relative;display:flex;flex-direction:column;align-items:center;margin-bottom:12px}
.ef-process-steps__icon{
    position:relative;
    width:82px;
    height:82px;
    margin:0 auto 10px;
    border-radius:var(--ef-icon-radius);
    background:#fff;
    color:var(--ef-accent);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 12px 32px rgba(16,23,42,.08);
    z-index:2;
}
.ef-process-steps__icon svg{display:block;width:32px;height:32px;fill:currentColor}
.ef-process-steps__icon i{font-size:32px;line-height:1}

.ef-process-steps__number{
    width:28px;
    height:28px;
    border-radius:999px;
    background:var(--ef-accent);
    color:#fff;
    border:2px solid rgba(255,255,255,.9);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    line-height:1;
    font-weight:800;
    z-index:3;
}
.ef-process-steps--number-inside .ef-process-steps__icon{margin-bottom:0}
.ef-process-steps--number-inside .ef-process-steps__number{position:static;border:0;background:transparent;color:inherit;font-size:22px;width:auto;height:auto}
.ef-process-steps--number-above_title .ef-process-steps__visual{margin-bottom:6px}

.ef-process-steps__content{position:relative;display:flex;flex-direction:column;min-width:0}
.ef-process-steps__title-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.ef-process-steps--align-left .ef-process-steps__title-row{justify-content:flex-start}
.ef-process-steps__title{margin:0 0 8px;color:var(--ef-dark);font-size:18px;line-height:1.15;font-weight:800}
.ef-process-steps__title-row .ef-process-steps__title{margin-bottom:0}
.ef-process-steps__text{margin:0;color:var(--ef-muted);font-size:14px;line-height:1.45}

/* Step buttons */
.ef-process-steps__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    align-self:center;
    margin-top:14px;
    padding:10px 16px;
    border-radius:999px;
    background:var(--ef-accent);
    color:#fff;
    font-size:13px;
    line-height:1;
    font-weight:800;
    white-space:nowrap;
    transition:transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease;
}
.ef-process-steps__button::after{content:"→";font-size:15px;line-height:1}
a.ef-process-steps__item:hover .ef-process-steps__button{transform:translateX(2px);box-shadow:0 10px 24px rgba(201,21,80,.18)}
.ef-process-steps--button-under_icon .ef-process-steps__visual .ef-process-steps__button{margin-top:6px}
.ef-process-steps--button-bottom .ef-process-steps__item{height:100%}
.ef-process-steps--button-bottom .ef-process-steps__content{height:100%}
.ef-process-steps--button-bottom .ef-process-steps__button{margin-top:auto}
.ef-process-steps--button-inline_title .ef-process-steps__button{margin-top:0;padding:7px 12px;font-size:12px}
.ef-process-steps--button-style-outline .ef-process-steps__button{background:transparent;color:var(--ef-accent);border:1px solid currentColor;box-shadow:none}
.ef-process-steps--button-style-text .ef-process-steps__button{background:transparent;color:var(--ef-accent);border:0;padding:0;border-radius:0;box-shadow:none}
.ef-process-steps--button-style-square .ef-process-steps__button{border-radius:6px}

.ef-process-steps--shape-circle{--ef-icon-radius:999px}
.ef-process-steps--shape-square{--ef-icon-radius:0}
.ef-process-steps--shape-rounded{--ef-icon-radius:18px}

/* Connector base */
.ef-process-steps--connector .ef-process-steps__items::before{
    content:"";
    position:absolute;
    top:calc(41px + var(--ef-connector-offset));
    left:calc(50% / var(--ef-process-count));
    right:calc(50% / var(--ef-process-count));
    border-top:2px dotted var(--ef-line);
    z-index:0;
    pointer-events:none;
}
.ef-process-steps--connector-type-solid .ef-process-steps__items::before{border-top-style:solid}
.ef-process-steps--connector-type-line .ef-process-steps__items::before{border-top-style:solid}
.ef-process-steps--connector-type-arrow .ef-process-steps__item:not(:last-child)::after,
.ef-process-steps--connector-type-chevron .ef-process-steps__item:not(:last-child)::after{
    content:"→";
    position:absolute;
    top:calc(41px + var(--ef-connector-offset));
    right:-24px;
    transform:translateY(-50%);
    color:var(--ef-accent);
    font-size:22px;
    font-weight:900;
    z-index:3;
    pointer-events:none;
}
.ef-process-steps--connector-type-chevron .ef-process-steps__item:not(:last-child)::after{content:"›";font-size:34px;font-weight:500}
.ef-process-steps--connector-type-dots .ef-process-steps__items::before{border-top-style:dotted;border-top-width:5px}
.ef-process-steps--connector-type-curve .ef-process-steps__items::before{border-top-style:dashed;border-radius:999px;transform:translateY(-10px) rotate(-1deg)}

/* Horizontal Classic */
.ef-process-steps--horizontal .ef-process-steps__main{display:grid;grid-template-columns:minmax(220px,28%) minmax(0,1fr);align-items:center;gap:48px}
.ef-process-steps--horizontal .ef-process-steps__intro{margin:0;text-align:left;max-width:380px}
.ef-process-steps--horizontal .ef-process-steps__description{margin-left:0}
.ef-process-steps--horizontal .ef-process-steps__items{align-items:start}

/* Vertical List */
.ef-process-steps--vertical .ef-process-steps__main{display:grid;grid-template-columns:1fr;gap:32px}
.ef-process-steps--vertical .ef-process-steps__intro{max-width:760px;text-align:center;margin:0 auto}
.ef-process-steps--vertical .ef-process-steps__items{grid-template-columns:1fr!important;max-width:760px;margin:0 auto;text-align:left;gap:18px}
.ef-process-steps--vertical .ef-process-steps__item{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:flex-start}
.ef-process-steps--vertical .ef-process-steps__visual{margin:0}
.ef-process-steps--vertical.ef-process-steps--connector .ef-process-steps__items::before{display:none}

/* Centered Timeline */
.ef-process-steps--centered_timeline{display:block;text-align:center}
.ef-process-steps--centered_timeline .ef-process-steps__intro{max-width:820px;margin:0 auto 44px}
.ef-process-steps--centered_timeline .ef-process-steps__items{align-items:start}
.ef-process-steps--centered_timeline .ef-process-steps__icon{border:2px solid rgba(201,21,80,.22);box-shadow:0 0 0 10px rgba(201,21,80,.045)}
.ef-process-steps--centered_timeline .ef-process-steps__number{position:absolute;top:-8px;right:calc(50% - 50px)}

/* Compact Inline */
.ef-process-steps--compact_inline .ef-process-steps__intro{margin-bottom:28px}
.ef-process-steps--compact_inline .ef-process-steps__items{gap:22px;align-items:stretch;text-align:left}
.ef-process-steps--compact_inline .ef-process-steps__item{display:grid;grid-template-columns:auto 1fr;gap:14px;text-align:left;align-items:center}
.ef-process-steps--compact_inline .ef-process-steps__visual{margin:0;flex-direction:row;align-items:center;justify-content:center}
.ef-process-steps--compact_inline .ef-process-steps__icon{width:58px;height:58px;margin:0;background:#fff}
.ef-process-steps--compact_inline .ef-process-steps__icon i{font-size:22px}
.ef-process-steps--compact_inline .ef-process-steps__icon svg{width:22px;height:22px}
.ef-process-steps--compact_inline .ef-process-steps__number{position:absolute;top:-8px;right:-8px;width:24px;height:24px;font-size:12px}
.ef-process-steps--compact_inline.ef-process-steps--connector .ef-process-steps__items::before{display:block;top:calc(29px + var(--ef-connector-offset));left:29px;right:29px}

/* Card Steps */
.ef-process-steps--card .ef-process-steps__item,
.ef-process-steps--card_steps .ef-process-steps__item{padding:26px 20px;border:1px solid rgba(16,23,42,.08);border-radius:18px;background:#fff;box-shadow:0 16px 42px rgba(16,23,42,.06)}
.ef-process-steps--card .ef-process-steps__item:hover,
.ef-process-steps--card_steps .ef-process-steps__item:hover{transform:translateY(-4px);box-shadow:0 22px 55px rgba(16,23,42,.09)}
.ef-process-steps__item.is-highlighted .ef-process-steps__icon{transform:translateY(-3px)}
.ef-process-steps__item.is-highlighted .ef-process-steps__title{color:var(--ef-accent)}

/* Zigzag Timeline */
.ef-process-steps--zigzag_timeline .ef-process-steps__items{align-items:start;padding-bottom:var(--ef-zigzag-offset)}
.ef-process-steps--zigzag_timeline .ef-process-steps__item:nth-child(even){transform:translateY(var(--ef-zigzag-offset))}
.ef-process-steps--zigzag_timeline .ef-process-steps__item:nth-child(even):hover{transform:translateY(calc(var(--ef-zigzag-offset) - 4px))}
.ef-process-steps--zigzag_timeline.ef-process-steps--connector .ef-process-steps__items::before{top:calc(41px + (var(--ef-zigzag-offset) / 2) + var(--ef-connector-offset));border-top-style:dashed}

/* Alternating Timeline */
.ef-process-steps--alternating_timeline .ef-process-steps__items{grid-template-columns:1fr!important;max-width:980px;margin:0 auto;gap:0;text-align:left}
.ef-process-steps--alternating_timeline .ef-process-steps__item{width:50%;padding:0 34px 42px;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:flex-start}
.ef-process-steps--alternating_timeline .ef-process-steps__item:nth-child(odd){margin-right:auto;text-align:right;grid-template-columns:1fr auto}
.ef-process-steps--alternating_timeline .ef-process-steps__item:nth-child(odd) .ef-process-steps__visual{grid-column:2}
.ef-process-steps--alternating_timeline .ef-process-steps__item:nth-child(odd) .ef-process-steps__content{grid-column:1;grid-row:1;align-items:flex-end}
.ef-process-steps--alternating_timeline .ef-process-steps__item:nth-child(even){margin-left:auto}
.ef-process-steps--alternating_timeline .ef-process-steps__visual{margin:0}
.ef-process-steps--alternating_timeline.ef-process-steps--connector .ef-process-steps__items::before{display:none}
.ef-process-steps--alternating_timeline .ef-process-steps__items::after{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:2px dashed var(--ef-line);transform:translateX(-50%);z-index:0}

/* Arc Flow */
.ef-process-steps--arc_flow .ef-process-steps__items{align-items:start;padding-top:50px;padding-bottom:30px}
.ef-process-steps--arc_flow .ef-process-steps__item:nth-child(1),
.ef-process-steps--arc_flow .ef-process-steps__item:nth-child(5){transform:translateY(var(--ef-zigzag-offset))}
.ef-process-steps--arc_flow .ef-process-steps__item:nth-child(2),
.ef-process-steps--arc_flow .ef-process-steps__item:nth-child(4){transform:translateY(calc(var(--ef-zigzag-offset) / 2))}
.ef-process-steps--arc_flow.ef-process-steps--connector .ef-process-steps__items::before{top:calc(70px + var(--ef-connector-offset));border-top-style:dashed;border-radius:50%;transform:translateY(-12px)}

/* Spiral / Organic Flow */
.ef-process-steps--spiral_flow .ef-process-steps__items{display:flex;flex-wrap:wrap;justify-content:center;gap:34px 54px;max-width:980px;margin:0 auto;text-align:center}
.ef-process-steps--spiral_flow .ef-process-steps__item{flex:0 1 240px}
.ef-process-steps--spiral_flow .ef-process-steps__item:nth-child(2){transform:translateY(calc(var(--ef-zigzag-offset) * .45)) rotate(1deg)}
.ef-process-steps--spiral_flow .ef-process-steps__item:nth-child(3){transform:translateY(calc(var(--ef-zigzag-offset) * .95)) rotate(-1deg)}
.ef-process-steps--spiral_flow .ef-process-steps__item:nth-child(4){transform:translateY(calc(var(--ef-zigzag-offset) * .35)) rotate(1.2deg)}
.ef-process-steps--spiral_flow.ef-process-steps--connector .ef-process-steps__items::before{display:none}
.ef-process-steps--spiral_flow.ef-process-steps--connector .ef-process-steps__item:not(:last-child)::after{content:"↘";position:absolute;right:-34px;top:34px;color:var(--ef-accent);font-size:26px;font-weight:800;opacity:.75}

/* Split Cards + Process */
.ef-process-steps--split_cards .ef-process-steps__main{display:grid;grid-template-columns:minmax(260px,36%) minmax(0,1fr);gap:42px;align-items:start}
.ef-process-steps--split_cards .ef-process-steps__intro{margin:0;text-align:left;position:sticky;top:30px;padding:30px;border-radius:22px;background:var(--ef-soft);border:1px solid rgba(16,23,42,.07)}
.ef-process-steps--split_cards .ef-process-steps__items{grid-template-columns:1fr!important;gap:16px;text-align:left}
.ef-process-steps--split_cards .ef-process-steps__item{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:flex-start;padding:22px;border-radius:18px;background:#fff;border:1px solid rgba(16,23,42,.07);box-shadow:0 14px 34px rgba(16,23,42,.045)}
.ef-process-steps--split_cards .ef-process-steps__visual{margin:0}
.ef-process-steps--split_cards.ef-process-steps--connector .ef-process-steps__items::before{display:none}

/* Optional image support */
.ef-process-steps__split{position:relative;z-index:2;display:grid;grid-template-columns:var(--ef-process-image-width) minmax(0,1fr);gap:56px;align-items:center}
.ef-process-steps--image-right .ef-process-steps__split{grid-template-columns:minmax(0,1fr) var(--ef-process-image-width)}
.ef-process-steps--has-image:not(.ef-process-steps--image-background) > .ef-process-steps__split{width:100%}
.ef-process-steps--has-image:not(.ef-process-steps--image-background) .ef-process-steps__main{min-width:0}
.ef-process-steps--split_image_timeline .ef-process-steps__intro{max-width:760px;margin-left:0;text-align:left}
.ef-process-steps--split_image_timeline.ef-process-steps--align-center .ef-process-steps__intro{text-align:center;margin-left:auto;margin-right:auto}
.ef-process-steps--split_image_timeline .ef-process-steps__items{grid-template-columns:1fr!important;gap:18px;text-align:left}
.ef-process-steps--split_image_timeline.ef-process-steps--connector .ef-process-steps__items::before{display:none}
.ef-process-steps--split_image_timeline .ef-process-steps__item{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:flex-start}
.ef-process-steps--split_image_timeline .ef-process-steps__visual{margin:0}
.ef-process-steps__media{position:relative;z-index:2;min-width:0;width:100%}
.ef-process-steps__media img{display:block;width:100%;height:100%;min-height:420px;object-fit:cover;box-shadow:0 24px 60px rgba(16,23,42,.12)}
.ef-process-steps--image-background{overflow:hidden;padding:64px 48px;border-radius:24px;background:#f8fafc}
.ef-process-steps--image-background .ef-process-steps__media{position:absolute;inset:0;z-index:0;opacity:.18;pointer-events:none}
.ef-process-steps--image-background .ef-process-steps__media img{width:100%;height:100%;min-height:0;border-radius:0!important;filter:saturate(.85)}
.ef-process-steps--image-background::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.92),rgba(255,255,255,.74));z-index:1;pointer-events:none}
.ef-process-steps--image-background .ef-process-steps__main{position:relative;z-index:2}

/* Count controls */
.ef-process-steps--count-1 .ef-process-steps__items{--ef-process-count:1!important}
.ef-process-steps--count-2 .ef-process-steps__items{--ef-process-count:2!important}
.ef-process-steps--count-3 .ef-process-steps__items{--ef-process-count:3!important}
.ef-process-steps--count-4 .ef-process-steps__items{--ef-process-count:4!important}
.ef-process-steps--count-5 .ef-process-steps__items{--ef-process-count:5!important}
.ef-process-steps--count-6 .ef-process-steps__items{--ef-process-count:6!important}
.ef-process-steps--count-1.ef-process-steps--connector .ef-process-steps__items::before{display:none}

@media (max-width:1024px){
    .ef-process-steps--horizontal .ef-process-steps__main,
    .ef-process-steps--split_cards .ef-process-steps__main{grid-template-columns:1fr;gap:36px}
    .ef-process-steps--horizontal .ef-process-steps__intro{text-align:center;margin:0 auto;max-width:760px}
    .ef-process-steps--horizontal .ef-process-steps__description{margin-left:auto}
    .ef-process-steps--split_cards .ef-process-steps__intro{position:relative;top:auto}
    .ef-process-steps__split,
    .ef-process-steps--image-right .ef-process-steps__split{grid-template-columns:1fr;gap:36px}
    .ef-process-steps__media img{min-height:360px}
    .ef-process-steps--alternating_timeline .ef-process-steps__item{width:100%;margin-left:0!important;margin-right:0!important;text-align:left;grid-template-columns:auto 1fr}
    .ef-process-steps--alternating_timeline .ef-process-steps__item:nth-child(odd) .ef-process-steps__visual{grid-column:1}
    .ef-process-steps--alternating_timeline .ef-process-steps__item:nth-child(odd) .ef-process-steps__content{grid-column:2;grid-row:1;align-items:flex-start}
    .ef-process-steps--alternating_timeline .ef-process-steps__items::after{left:41px}
}

@media (max-width:767px){
    .ef-process-steps{--ef-process-columns:1!important;--ef-process-count:1!important;--ef-zigzag-offset:0px!important}
    .ef-process-steps__heading{font-size:34px}
    .ef-process-steps__intro{margin-bottom:30px}
    .ef-process-steps__items{grid-template-columns:1fr!important;gap:26px}
    .ef-process-steps--connector .ef-process-steps__items::before{display:none!important}
    .ef-process-steps--connector-type-arrow .ef-process-steps__item::after,
    .ef-process-steps--connector-type-chevron .ef-process-steps__item::after,
    .ef-process-steps--spiral_flow.ef-process-steps--connector .ef-process-steps__item::after{display:none!important}
    .ef-process-steps--vertical .ef-process-steps__item,
    .ef-process-steps--split_image_timeline .ef-process-steps__item,
    .ef-process-steps--compact_inline .ef-process-steps__item,
    .ef-process-steps--split_cards .ef-process-steps__item{grid-template-columns:1fr;text-align:center;gap:12px}
    .ef-process-steps--vertical .ef-process-steps__visual,
    .ef-process-steps--split_image_timeline .ef-process-steps__visual,
    .ef-process-steps--compact_inline .ef-process-steps__visual,
    .ef-process-steps--split_cards .ef-process-steps__visual{align-items:center;justify-content:center}
    .ef-process-steps--zigzag_timeline .ef-process-steps__item:nth-child(even),
    .ef-process-steps--arc_flow .ef-process-steps__item,
    .ef-process-steps--spiral_flow .ef-process-steps__item{transform:none!important}
    .ef-process-steps--spiral_flow .ef-process-steps__items{display:grid;grid-template-columns:1fr!important;gap:26px}
    .ef-process-steps__media img{min-height:280px}
    .ef-process-steps--image-background{padding:44px 22px;border-radius:18px}
    .ef-process-steps__title-row{justify-content:center}
}
