/* EHN Flow v1.7.4 — all styling is scoped to the Flow root; no Salient selectors. */
.ehn-ui-flow {
    --ehn-flow-accent: #ffcc00;
    --ehn-flow-marker-ink: #18181b;
    --ehn-flow-surface: #fff;
    --ehn-flow-ink: #18181b;
    --ehn-flow-muted: #52525b;
    --ehn-flow-line: #d4d4d8;
    --ehn-flow-border: #e4e4e7;
    --ehn-flow-card-radius: 20px;
    --ehn-flow-image-radius: 12px;
    --ehn-flow-marker-size: 36px;
    --ehn-flow-gap: 28px;
    --ehn-flow-padding: 24px;
    --ehn-flow-columns: 4;
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    color: var(--ehn-flow-ink);
    font-family: inherit;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}
.ehn-ui-flow,
.ehn-ui-flow *,
.ehn-ui-flow *::before,
.ehn-ui-flow *::after { box-sizing: border-box; }
.ehn-ui-flow .ehn-ui-flow__list {
    display: flex;
    flex-direction: column;
    gap: var(--ehn-flow-gap);
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: none;
    min-width: 0;
}
.ehn-ui-flow .ehn-ui-flow__item {
    --ehn-flow-item-accent: var(--ehn-flow-accent);
    display: block;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.ehn-ui-flow .ehn-ui-flow__item::marker { content: ''; }
.ehn-ui-flow .ehn-ui-flow__step,
.ehn-ui-flow .ehn-ui-flow__copy { min-width: 0; }
.ehn-ui-flow .ehn-ui-flow__title {
    display: block;
    padding: 0 !important;
    margin: 0 !important;
    font-family: inherit;
    font-size: 1.07rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: normal;
    text-transform: none;
    color: var(--ehn-flow-item-ink, var(--ehn-flow-ink));
    overflow-wrap: anywhere;
}
.ehn-ui-flow .ehn-ui-flow__description {
    margin: 5px 0 0;
    padding: 0;
    color: var(--ehn-flow-item-muted, var(--ehn-flow-muted));
    font-size: .96rem;
    font-weight: 400;
    line-height: 1.56;
    overflow-wrap: anywhere;
}
.ehn-ui-flow .ehn-ui-flow__body {
    margin-top: 10px;
    min-width: 0;
    color: var(--ehn-flow-muted);
}
.ehn-ui-flow .ehn-ui-flow__body > :last-child,
.ehn-ui-flow .ehn-ui-flow__copy > :last-child,
.ehn-ui-flow .ehn-ui-flow__body p:last-child { margin-bottom: 0 !important; }
.ehn-ui-flow .ehn-ui-flow__marker-wrap {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;
    width: var(--ehn-flow-marker-size);
    min-width: 0;
    z-index: 1;
}
.ehn-ui-flow .ehn-ui-flow__marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--ehn-flow-marker-size);
    height: var(--ehn-flow-marker-size);
    border-radius: 999px;
    background: var(--ehn-flow-item-accent);
    color: var(--ehn-flow-marker-ink);
    font-weight: 750;
    line-height: 1;
    font-size: clamp(.75rem, 1vw, .98rem);
    font-variant-numeric: tabular-nums;
    text-align: center;
    overflow: hidden;
}
.ehn-ui-flow .ehn-ui-flow__marker-text {
    display: block;
    max-width: calc(var(--ehn-flow-marker-size) - 6px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ehn-ui-flow .ehn-ui-flow__marker svg { width: 58%; height: 58%; display: block; }
.ehn-ui-flow .ehn-ui-flow__item--marker-dot .ehn-ui-flow__marker { background: transparent; }
.ehn-ui-flow .ehn-ui-flow__dot {
    width: 13px;
    height: 13px;
    background: var(--ehn-flow-item-accent);
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--ehn-flow-surface);
}
.ehn-ui-flow .ehn-ui-flow__item--marker-none .ehn-ui-flow__marker-wrap { display: none; }
.ehn-ui-flow .ehn-ui-flow__visual {
    display: block;
    margin: 0;
    padding: 0;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    border-radius: var(--ehn-flow-image-radius);
    line-height: 0;
}
.ehn-ui-flow .ehn-ui-flow__visual .ehn-ui-flow__image {
    display: block;
    max-width: 100%;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: var(--ehn-flow-image-radius);
    object-fit: cover;
    vertical-align: middle;
    box-shadow: none;
}
.ehn-ui-flow--ratio-wide .ehn-ui-flow__visual { aspect-ratio: 16 / 9; }
.ehn-ui-flow--ratio-landscape .ehn-ui-flow__visual { aspect-ratio: 4 / 3; }
.ehn-ui-flow--ratio-square .ehn-ui-flow__visual { aspect-ratio: 1; }
.ehn-ui-flow--ratio-auto .ehn-ui-flow__visual { aspect-ratio: auto; }
.ehn-ui-flow--ratio-auto .ehn-ui-flow__image { height: auto; }
.ehn-ui-flow--fit-contain .ehn-ui-flow__image { object-fit: contain; }
.ehn-ui-flow--align-center:not(.ehn-ui-flow--timeline) .ehn-ui-flow__copy { text-align: center; }
.ehn-ui-flow--align-right:not(.ehn-ui-flow--timeline) .ehn-ui-flow__copy { text-align: right; }

/* 1: Alternating vertical timeline, centered connecting rail and marker. */
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__list {
    position: relative;
    isolation: isolate;
}
.ehn-ui-flow--timeline.ehn-ui-flow--vertical:not(.ehn-ui-flow--no-connector) .ehn-ui-flow__list::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    transform: translateX(-50%);
    background: var(--ehn-flow-line);
    z-index: -1;
}
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__step {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--ehn-flow-marker-size) minmax(0, 1fr);
    column-gap: clamp(12px, 2vw, 26px);
    align-items: center;
}
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__visual { grid-column: 1; grid-row: 1; }
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__marker-wrap { grid-column: 2; grid-row: 1; }
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__copy { grid-column: 3; grid-row: 1; }
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__item.is-reversed .ehn-ui-flow__visual { grid-column: 3; }
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__item.is-reversed .ehn-ui-flow__copy { grid-column: 1; text-align: right; }
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__item--marker-none .ehn-ui-flow__marker-wrap {
    display: flex;
    visibility: hidden;
}
.ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__item--no-image .ehn-ui-flow__copy { align-self: center; }

/* 1b: Horizontal numbered stepper. The connector stays behind circles. */
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__list,
.ehn-ui-flow--strip.ehn-ui-flow--horizontal .ehn-ui-flow__list,
.ehn-ui-flow--cards.ehn-ui-flow--horizontal .ehn-ui-flow__list {
    display: grid;
    grid-template-columns: repeat(var(--ehn-flow-columns), minmax(0, 1fr));
    align-items: stretch;
    gap: var(--ehn-flow-gap);
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__item { position: relative; }
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__step {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 13px;
    height: 100%;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__marker-wrap { order: 0; }
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__visual { order: 1; width: 100%; }
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__copy { order: 2; width: 100%; }
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:not(.ehn-ui-flow--no-connector) .ehn-ui-flow__item:not(.is-row-end):not(:last-child)::after {
    content: '';
    position: absolute;
    height: 2px;
    top: calc(var(--ehn-flow-marker-size) / 2);
    left: var(--ehn-flow-marker-size);
    right: calc(-1 * var(--ehn-flow-gap));
    background: var(--ehn-flow-line);
    z-index: 0;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__item--marker-none::after { display: none; }

/* 2: Headline/body panels marked by a colored vertical bar. */
.ehn-ui-flow--strip .ehn-ui-flow__step {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0 0 0 15px;
    border-left: 3px solid var(--ehn-flow-item-accent);
    height: 100%;
}
.ehn-ui-flow--strip .ehn-ui-flow__marker-wrap { justify-content: flex-start; margin-bottom: 12px; }
.ehn-ui-flow--strip .ehn-ui-flow__visual { width: 100%; margin-bottom: 14px; }
.ehn-ui-flow--strip .ehn-ui-flow__title { font-size: .96rem; }
.ehn-ui-flow--strip .ehn-ui-flow__description { font-size: .89rem; }
.ehn-ui-flow--strip.ehn-ui-flow--vertical .ehn-ui-flow__list { gap: var(--ehn-flow-gap); }

/* 3: HeroUI-inspired, independent cards with optional icon/number/image. */
.ehn-ui-flow--cards .ehn-ui-flow__step {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
    min-height: 100%;
    padding: var(--ehn-flow-padding);
    overflow: hidden;
    border: 1px solid var(--ehn-flow-border);
    border-radius: var(--ehn-flow-card-radius);
    background: var(--ehn-flow-item-surface, var(--ehn-flow-surface));
    box-shadow: none;
    transition: transform .2s ease, box-shadow .2s ease;
}
.ehn-ui-flow--cards.ehn-ui-flow--no-border .ehn-ui-flow__step { border-color: transparent; }
.ehn-ui-flow--cards.ehn-ui-flow--shadow-sm .ehn-ui-flow__step { box-shadow: 0 2px 8px rgba(20,20,30,.06); }
.ehn-ui-flow--cards.ehn-ui-flow--shadow-md .ehn-ui-flow__step { box-shadow: 0 8px 22px rgba(20,20,30,.10); }
@media (hover: hover) {
    .ehn-ui-flow--cards.ehn-ui-flow--hover .ehn-ui-flow__step:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(20,20,30,.12); }
}
.ehn-ui-flow--cards .ehn-ui-flow__visual { order: 0; margin-bottom: 16px; width: 100%; }
.ehn-ui-flow--cards .ehn-ui-flow__marker-wrap { order: 1; margin-bottom: 17px; }
.ehn-ui-flow--cards .ehn-ui-flow__copy { order: 2; width: 100%; }
.ehn-ui-flow--cards .ehn-ui-flow__title { font-size: 1.02rem; }
.ehn-ui-flow--cards .ehn-ui-flow__description { margin-top: 8px; }
.ehn-ui-flow--cards.ehn-ui-flow--align-center .ehn-ui-flow__marker-wrap,
.ehn-ui-flow--cards.ehn-ui-flow--align-center .ehn-ui-flow__visual { margin-inline: auto; }
.ehn-ui-flow--cards.ehn-ui-flow--align-center .ehn-ui-flow__step { align-items: center; }
.ehn-ui-flow--cards.ehn-ui-flow--align-right .ehn-ui-flow__step { align-items: flex-end; }
.ehn-ui-flow--cards.ehn-ui-flow--vertical .ehn-ui-flow__list { display: grid; grid-template-columns: minmax(0, 1fr); }

/* Tablet: keep desktop's direction but reduce horizontal columns to two. */
@media (min-width: 681px) and (max-width: 1000px) {
    .ehn-ui-flow--horizontal .ehn-ui-flow__list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__item::after { display: none; }
}

/* Mobile: all horizontal layouts stack. Timelines become a readable left rail. */
@media (max-width: 680px) {
    .ehn-ui-flow--horizontal .ehn-ui-flow__list { display: flex !important; flex-direction: column; }
    .ehn-ui-flow--timeline .ehn-ui-flow__list { position: relative; isolation: isolate; }
    .ehn-ui-flow--timeline.ehn-ui-flow--vertical:not(.ehn-ui-flow--no-connector) .ehn-ui-flow__list::before,
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:not(.ehn-ui-flow--no-connector) .ehn-ui-flow__list::before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: calc(var(--ehn-flow-marker-size) / 2);
        width: 2px;
        transform: translateX(-50%);
        background: var(--ehn-flow-line);
        z-index: -1;
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__step,
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__step {
        display: grid;
        grid-template-columns: var(--ehn-flow-marker-size) minmax(0, 1fr);
        grid-template-rows: auto auto;
        gap: 11px 14px;
        align-items: start;
        height: auto;
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__marker-wrap,
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__marker-wrap {
        display: flex;
        grid-column: 1 !important;
        grid-row: 1;
        order: initial;
        margin: 0;
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__copy,
    .ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__item.is-reversed .ehn-ui-flow__copy,
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__copy {
        grid-column: 2 !important;
        grid-row: 1;
        order: initial;
        width: 100%;
        text-align: left;
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__visual,
    .ehn-ui-flow--timeline.ehn-ui-flow--vertical .ehn-ui-flow__item.is-reversed .ehn-ui-flow__visual,
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__visual {
        grid-column: 2 !important;
        grid-row: 2;
        order: initial;
        width: 100%;
        max-width: 100%;
        margin: 0;
    }
    .ehn-ui-flow--timeline .ehn-ui-flow__item--marker-none .ehn-ui-flow__marker-wrap { display: flex; visibility: hidden; }
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__item::after { display: none !important; }
    .ehn-ui-flow--cards .ehn-ui-flow__step { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .ehn-ui-flow--cards .ehn-ui-flow__step { transition: none; }
    .ehn-ui-flow--cards.ehn-ui-flow--hover .ehn-ui-flow__step:hover { transform: none; }
}

/* === EHN Flow 1.6.1: optional badges, organic rope and progressive overflow ===
 * Only new opt-in modifier classes affect existing layouts.
 */
.ehn-ui-flow {
    --ehn-flow-badge-bg: #ffcc00;
    --ehn-flow-badge-ink: #18181b;
    --ehn-flow-badge-radius: 999px;
    --ehn-flow-step-width: 320px;
    --ehn-flow-pin-offset: 80px;
    --ehn-flow-rope-drop: 98px;
    --ehn-flow-active-rope-drop: var(--ehn-flow-rope-drop);
    --ehn-flow-rope-sag: 14px;
    --ehn-flow-rope-color: #9d8773;
    --ehn-flow-max-height: 520px;
    --ehn-flow-edge-size: 36px;
    --ehn-flow-edge-color: #fff;
}
.ehn-ui-flow .ehn-ui-flow__stage,
.ehn-ui-flow .ehn-ui-flow__shell,
.ehn-ui-flow .ehn-ui-flow__viewport,
.ehn-ui-flow .ehn-ui-flow__track {
    position: relative;
    min-width: 0;
    max-width: 100%;
}
.ehn-ui-flow .ehn-ui-flow__shell { isolation: isolate; }
.ehn-ui-flow .ehn-ui-flow__viewport { width: 100%; }
.ehn-ui-flow .ehn-ui-flow__track { width: 100%; }
.ehn-ui-flow--full-bleed {
    width: var(--ehn-flow-vw, 100vw);
    max-width: none;
    margin-left: calc(50% - var(--ehn-flow-half-vw, 50vw));
}
.ehn-ui-flow--full-bleed .ehn-ui-flow__stage,
.ehn-ui-flow--full-bleed .ehn-ui-flow__shell { max-width: none; }

/* Variant of classic process cards with a short label immediately above title. */
.ehn-ui-flow--card-badge .ehn-ui-flow__badge {
    display: table;
    max-width: 100%;
    padding: 5px 11px;
    margin: 0 0 11px;
    border-radius: var(--ehn-flow-badge-radius);
    background: var(--ehn-flow-item-badge-bg, var(--ehn-flow-badge-bg));
    color: var(--ehn-flow-item-badge-ink, var(--ehn-flow-badge-ink));
    font-size: .72rem;
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: .01em;
    overflow-wrap: anywhere;
}
.ehn-ui-flow--card-badge.ehn-ui-flow--align-center .ehn-ui-flow__badge { margin-inline: auto; }
.ehn-ui-flow--card-badge.ehn-ui-flow--align-right .ehn-ui-flow__badge { margin-left: auto; }

/* Progressive scroll: if JS is unavailable, all steps remain available by
   native scrollbar, touch swipe and keyboard. Do not turn the page into a carousel. */
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__viewport {
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__track {
    width: max-content;
    min-width: 100%;
    max-width: none;
    padding: 10px 12px 22px;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__list {
    position: relative;
    display: flex !important;
    flex-direction: row !important;
    grid-template-columns: none !important;
    align-items: stretch;
    width: max-content;
    max-width: none;
    min-width: 100%;
    gap: var(--ehn-flow-gap);
    scroll-snap-type: none;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__item {
    flex: 0 0 min(var(--ehn-flow-step-width), calc(100vw - 56px));
    width: min(var(--ehn-flow-step-width), calc(100vw - 56px));
    min-width: 0;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__step {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 13px;
    min-height: 100%;
    height: auto;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__marker-wrap {
    order: 0;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__visual {
    order: 1;
    width: 100%;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__copy {
    order: 2;
    width: 100%;
    text-align: left;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__item::after {
    display: none !important;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page):not(.ehn-ui-flow--rope):not(.ehn-ui-flow--no-connector) .ehn-ui-flow__list::before {
    content: '';
    position: absolute;
    top: calc(var(--ehn-flow-marker-size) / 2);
    left: calc(var(--ehn-flow-marker-size) / 2);
    right: calc(var(--ehn-flow-marker-size) / 2);
    height: 2px;
    background: var(--ehn-flow-line);
    pointer-events: none;
}
/* In 1.7.2, wheel-controlled timelines keep their natural content height.
   There is NO pin spacer or fixed-position shell. Keep native scroll/swipe
   available for touch, reduced-motion users, keyboard and JS-off. */
.ehn-ui-flow--scroll-page.is-ehn-flow-wheel-controlled .ehn-ui-flow__stage {
    height: auto !important;
    min-height: 0;
}
.ehn-ui-flow--scroll-page.is-ehn-flow-wheel-controlled .ehn-ui-flow__viewport {
    scroll-snap-type: none;
    scroll-behavior: auto;
}

/* Organic rope. Generated SVG draws a continuous, gently curved line across
   unlimited items. If JS is disabled, the hanging strings still show. */
.ehn-ui-flow .ehn-ui-flow__rope {
    display: none;
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    overflow: visible;
    pointer-events: none;
    color: var(--ehn-flow-rope-color);
}
.ehn-ui-flow--rope .ehn-ui-flow__track.has-ehn-flow-rope .ehn-ui-flow__rope { display: block; }
.ehn-ui-flow--rope .ehn-ui-flow__rope-path {
    stroke: var(--ehn-flow-rope-color);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
    opacity: .9;
}
.ehn-ui-flow--rope .ehn-ui-flow__list { position: relative; z-index: 1; }
.ehn-ui-flow--rope .ehn-ui-flow__item { position: relative; }
.ehn-ui-flow--rope.ehn-ui-flow--vertical:not(.ehn-ui-flow--no-connector) .ehn-ui-flow__list::before { display: none; }
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__item::after { display: none !important; }
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__list::before { display: none !important; }
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__item {
    padding-top: var(--ehn-flow-active-rope-drop) !important;
    --ehn-flow-hook-y: 32px;
}
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step {
    position: relative;
    align-items: flex-start;
    min-height: 100%;
    padding: var(--ehn-flow-padding);
    background: var(--ehn-flow-item-surface, var(--ehn-flow-surface));
    color: var(--ehn-flow-ink);
    border: 1px solid var(--ehn-flow-border);
    border-radius: var(--ehn-flow-card-radius);
    box-shadow: 0 6px 18px rgb(0 0 0 / .075);
    transform: rotate(var(--ehn-flow-tilt, 0deg));
    transform-origin: 50% calc(var(--ehn-flow-hook-y) - var(--ehn-flow-active-rope-drop));
}
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step::before,
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step::after {
    content: '';
    position: absolute;
    z-index: 0;
    left: 50%;
    pointer-events: none;
}
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step::before {
    top: calc(var(--ehn-flow-hook-y) - var(--ehn-flow-active-rope-drop));
    width: 2px;
    height: calc(var(--ehn-flow-active-rope-drop) - var(--ehn-flow-hook-y));
    background: var(--ehn-flow-rope-color);
    transform: translateX(-50%);
}
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step::after {
    top: calc(var(--ehn-flow-hook-y) - var(--ehn-flow-active-rope-drop) - 4px);
    width: 9px;
    height: 9px;
    border: 2px solid var(--ehn-flow-rope-color);
    border-radius: 50%;
    background: var(--ehn-flow-item-surface, var(--ehn-flow-surface));
    transform: translateX(-50%);
}
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__marker-wrap { margin-bottom: 3px; }
.ehn-ui-flow--rope.ehn-ui-flow--horizontal.ehn-ui-flow--no-border .ehn-ui-flow__step { border-color: transparent; }
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__visual { width: 100%; }
@keyframes ehn-flow-rope-sway {
    0%, 100% { transform: rotate(calc(var(--ehn-flow-tilt, 0deg) - .5deg)); }
    50% { transform: rotate(calc(var(--ehn-flow-tilt, 0deg) + .55deg)); }
}
@media (prefers-reduced-motion: no-preference) {
    .ehn-ui-flow--sway.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step {
        animation: ehn-flow-rope-sway 7s ease-in-out infinite;
        animation-delay: var(--ehn-flow-delay, 0s);
    }
}

/* Vertical overflow allows all three layouts to exceed their local viewport,
   with native scrollbars. No fixed steps limit and no wheel event capturing. */
.ehn-ui-flow--scroll-y .ehn-ui-flow__viewport {
    max-height: var(--ehn-flow-max-height);
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.ehn-ui-flow--scroll-y.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__viewport {
    overflow-x: auto;
    overflow-y: auto;
}

/* Blur/fade only on edges with off-screen content. JS updates edge classes on
   native scroll, resize, and pinned desktop scroll. Visual only: no hit targets. */
.ehn-ui-flow .ehn-ui-flow__edge {
    position: absolute;
    display: block;
    z-index: 10;
    pointer-events: none;
    opacity: 0;
    transition: opacity .18s ease;
}
.ehn-ui-flow .ehn-ui-flow__edge--top,
.ehn-ui-flow .ehn-ui-flow__edge--bottom {
    left: 0;
    right: 0;
    height: var(--ehn-flow-edge-size);
}
.ehn-ui-flow .ehn-ui-flow__edge--top { top: 0; background: linear-gradient(to bottom, var(--ehn-flow-edge-color), transparent); }
.ehn-ui-flow .ehn-ui-flow__edge--bottom { bottom: 0; background: linear-gradient(to top, var(--ehn-flow-edge-color), transparent); }
.ehn-ui-flow .ehn-ui-flow__edge--left,
.ehn-ui-flow .ehn-ui-flow__edge--right {
    top: 0;
    bottom: 0;
    width: var(--ehn-flow-edge-size);
}
.ehn-ui-flow .ehn-ui-flow__edge--left { left: 0; background: linear-gradient(to right, var(--ehn-flow-edge-color), transparent); }
.ehn-ui-flow .ehn-ui-flow__edge--right { right: 0; background: linear-gradient(to left, var(--ehn-flow-edge-color), transparent); }
.ehn-ui-flow--edge-blur .ehn-ui-flow__edge {
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}
.ehn-ui-flow--edge-fade.has-ehn-flow-top .ehn-ui-flow__edge--top,
.ehn-ui-flow--edge-blur.has-ehn-flow-top .ehn-ui-flow__edge--top,
.ehn-ui-flow--edge-fade.has-ehn-flow-bottom .ehn-ui-flow__edge--bottom,
.ehn-ui-flow--edge-blur.has-ehn-flow-bottom .ehn-ui-flow__edge--bottom,
.ehn-ui-flow--edge-fade.has-ehn-flow-left .ehn-ui-flow__edge--left,
.ehn-ui-flow--edge-blur.has-ehn-flow-left .ehn-ui-flow__edge--left,
.ehn-ui-flow--edge-fade.has-ehn-flow-right .ehn-ui-flow__edge--right,
.ehn-ui-flow--edge-blur.has-ehn-flow-right .ehn-ui-flow__edge--right { opacity: 1; }

/* Snap points on touch, but keep the desktop's continuous vertical-scrub flow. */
@media (max-width: 1023px) {
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__viewport {
        scroll-snap-type: x proximity;
        overscroll-behavior-x: auto;
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__item {
        scroll-snap-align: start;
    }
}
@media (max-width: 680px) {
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__list {
        display: flex !important;
        flex-direction: row !important;
        align-items: stretch;
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__step {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: none;
        grid-template-rows: none;
        gap: 11px;
        min-height: 100%;
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__marker-wrap,
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__copy,
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__visual {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100%;
        order: initial;
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__marker-wrap {
        width: var(--ehn-flow-marker-size);
    }
    .ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__list::before { display: none !important; }
    .ehn-ui-flow--rope.ehn-ui-flow--horizontal { --ehn-flow-active-rope-drop: min(var(--ehn-flow-rope-drop), 105px); }
    .ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step { padding: min(var(--ehn-flow-padding), 20px); }
    .ehn-ui-flow--scroll-y .ehn-ui-flow__viewport { max-height: min(var(--ehn-flow-max-height), 72svh); }
    .ehn-ui-flow .ehn-ui-flow__edge--top,
    .ehn-ui-flow .ehn-ui-flow__edge--bottom { height: min(var(--ehn-flow-edge-size), 40px); }
    .ehn-ui-flow .ehn-ui-flow__edge--left,
    .ehn-ui-flow .ehn-ui-flow__edge--right { width: min(var(--ehn-flow-edge-size), 40px); }
}
@media (prefers-reduced-motion: reduce) {
    .ehn-ui-flow--rope .ehn-ui-flow__step { animation: none !important; transform: none !important; }
    .ehn-ui-flow .ehn-ui-flow__edge { transition: none; }
}

/* CSS fallbacks if JavaScript cannot create the SVG rope. */
.ehn-ui-flow--rope.ehn-ui-flow--horizontal:not(.ehn-ui-flow--no-connector) .ehn-ui-flow__track:not(.has-ehn-flow-rope) .ehn-ui-flow__list::before {
    content: '';
    display: block !important;
    position: absolute;
    top: 32px;
    left: 0;
    right: 0;
    width: auto;
    height: 2px;
    background: var(--ehn-flow-rope-color);
    pointer-events: none;
}
.ehn-ui-flow--rope.ehn-ui-flow--vertical:not(.ehn-ui-flow--no-connector) .ehn-ui-flow__track:not(.has-ehn-flow-rope) .ehn-ui-flow__list::before {
    display: block;
    background: var(--ehn-flow-rope-color);
}

/* If connectors are explicitly disabled, never leave a floating hook/string. */
.ehn-ui-flow--rope.ehn-ui-flow--no-connector.ehn-ui-flow--horizontal .ehn-ui-flow__item { padding-top: 0 !important; }
.ehn-ui-flow--rope.ehn-ui-flow--no-connector.ehn-ui-flow--horizontal .ehn-ui-flow__step::before,
.ehn-ui-flow--rope.ehn-ui-flow--no-connector.ehn-ui-flow--horizontal .ehn-ui-flow__step::after { display: none; }

/* === 1.6.1: CTA on every individual step, regardless of layout === */
.ehn-ui-flow {
    --ehn-flow-cta-bg: #ffcc00;
    --ehn-flow-cta-ink: #18181b;
    --ehn-flow-cta-radius: 10px;
    --ehn-flow-edge-blur: 3px;
}
.ehn-ui-flow .ehn-ui-flow__cta-wrap {
    display: block;
    width: 100%;
    margin-top: 17px;
}
.ehn-ui-flow .ehn-ui-flow__cta {
    --ehn-flow-cta-current-bg: var(--ehn-flow-item-cta-bg, var(--ehn-flow-cta-bg));
    --ehn-flow-cta-current-ink: var(--ehn-flow-item-cta-ink, var(--ehn-flow-cta-ink));
    display: inline-flex;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    text-align: center;
    vertical-align: middle;
    gap: 9px;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    min-height: 42px;
    padding: 10px 15px;
    border: 1px solid var(--ehn-flow-cta-current-bg);
    border-radius: var(--ehn-flow-cta-radius);
    background: var(--ehn-flow-cta-current-bg);
    color: var(--ehn-flow-cta-current-ink);
    text-decoration: none;
    font-family: inherit;
    font-size: .9rem;
    font-weight: 650;
    line-height: 1.3;
    overflow-wrap: anywhere;
    transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.ehn-ui-flow .ehn-ui-flow__cta:hover {
    color: var(--ehn-flow-cta-current-ink);
    text-decoration: none;
    box-shadow: 0 4px 14px rgb(0 0 0 / .09);
    transform: translateY(-1px);
}
.ehn-ui-flow .ehn-ui-flow__cta:focus-visible {
    outline: 3px solid var(--ehn-flow-cta-current-bg);
    outline-offset: 3px;
}
.ehn-ui-flow .ehn-ui-flow__cta svg {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    transition: transform .18s ease;
}
.ehn-ui-flow .ehn-ui-flow__cta:hover svg { transform: translateX(2px); }
.ehn-ui-flow .ehn-ui-flow__cta--outline,
.ehn-ui-flow .ehn-ui-flow__cta--link {
    background: transparent;
}
.ehn-ui-flow .ehn-ui-flow__cta--outline { color: var(--ehn-flow-cta-current-ink); }
.ehn-ui-flow .ehn-ui-flow__cta--soft {
    background: color-mix(in srgb, var(--ehn-flow-cta-current-bg) 18%, transparent);
    border-color: transparent;
}
.ehn-ui-flow .ehn-ui-flow__cta--link {
    border-color: transparent;
    padding-inline: 0;
    min-height: 36px;
    box-shadow: none;
}
.ehn-ui-flow .ehn-ui-flow__cta--link:hover { box-shadow: none; }
.ehn-ui-flow--align-center:not(.ehn-ui-flow--timeline) .ehn-ui-flow__cta-wrap { text-align: center; }
.ehn-ui-flow--align-right:not(.ehn-ui-flow--timeline) .ehn-ui-flow__cta-wrap { text-align: right; }

/* Page-driven timelines never show their own horizontal scrollbar. With JS
   disabled, touch swipe and keyboard focus on the viewport still work. This
   does not hide the browser's vertical PAGE scrollbar. */
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal.ehn-ui-flow--scroll-page .ehn-ui-flow__viewport {
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal.ehn-ui-flow--scroll-page .ehn-ui-flow__viewport::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

/* Replace hard opaque edge overlays: a long, translucent fade and a masked,
   low-strength backdrop blur make the effect disappear smoothly into content.
   Keep a gentle gradient fallback for browsers without backdrop-filter. */
.ehn-ui-flow--edge-fade .ehn-ui-flow__edge--left,
.ehn-ui-flow--edge-blur .ehn-ui-flow__edge--left {
    background: linear-gradient(to right,
        color-mix(in srgb, var(--ehn-flow-edge-color) 65%, transparent) 0%,
        color-mix(in srgb, var(--ehn-flow-edge-color) 27%, transparent) 45%,
        transparent 100%);
}
.ehn-ui-flow--edge-fade .ehn-ui-flow__edge--right,
.ehn-ui-flow--edge-blur .ehn-ui-flow__edge--right {
    background: linear-gradient(to left,
        color-mix(in srgb, var(--ehn-flow-edge-color) 65%, transparent) 0%,
        color-mix(in srgb, var(--ehn-flow-edge-color) 27%, transparent) 45%,
        transparent 100%);
}
.ehn-ui-flow--edge-fade .ehn-ui-flow__edge--top,
.ehn-ui-flow--edge-blur .ehn-ui-flow__edge--top {
    background: linear-gradient(to bottom,
        color-mix(in srgb, var(--ehn-flow-edge-color) 65%, transparent) 0%,
        color-mix(in srgb, var(--ehn-flow-edge-color) 27%, transparent) 45%,
        transparent 100%);
}
.ehn-ui-flow--edge-fade .ehn-ui-flow__edge--bottom,
.ehn-ui-flow--edge-blur .ehn-ui-flow__edge--bottom {
    background: linear-gradient(to top,
        color-mix(in srgb, var(--ehn-flow-edge-color) 65%, transparent) 0%,
        color-mix(in srgb, var(--ehn-flow-edge-color) 27%, transparent) 45%,
        transparent 100%);
}
/* Must reset the old unmasked blur on browsers without mask support. */
.ehn-ui-flow--edge-blur .ehn-ui-flow__edge {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .ehn-ui-flow--edge-blur .ehn-ui-flow__edge {
        background: transparent;
        -webkit-backdrop-filter: blur(var(--ehn-flow-edge-blur));
        backdrop-filter: blur(var(--ehn-flow-edge-blur));
    }
    .ehn-ui-flow--edge-blur .ehn-ui-flow__edge--left {
        -webkit-mask-image: linear-gradient(to right, #000 0%, rgb(0 0 0 / .55) 44%, transparent 100%);
        mask-image: linear-gradient(to right, #000 0%, rgb(0 0 0 / .55) 44%, transparent 100%);
    }
    .ehn-ui-flow--edge-blur .ehn-ui-flow__edge--right {
        -webkit-mask-image: linear-gradient(to left, #000 0%, rgb(0 0 0 / .55) 44%, transparent 100%);
        mask-image: linear-gradient(to left, #000 0%, rgb(0 0 0 / .55) 44%, transparent 100%);
    }
    .ehn-ui-flow--edge-blur .ehn-ui-flow__edge--top {
        -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgb(0 0 0 / .55) 44%, transparent 100%);
        mask-image: linear-gradient(to bottom, #000 0%, rgb(0 0 0 / .55) 44%, transparent 100%);
    }
    .ehn-ui-flow--edge-blur .ehn-ui-flow__edge--bottom {
        -webkit-mask-image: linear-gradient(to top, #000 0%, rgb(0 0 0 / .55) 44%, transparent 100%);
        mask-image: linear-gradient(to top, #000 0%, rgb(0 0 0 / .55) 44%, transparent 100%);
    }
}
@media (max-width: 680px) {
    .ehn-ui-flow .ehn-ui-flow__cta { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .ehn-ui-flow .ehn-ui-flow__cta,
    .ehn-ui-flow .ehn-ui-flow__cta svg { transition: none; }
    .ehn-ui-flow .ehn-ui-flow__cta:hover,
    .ehn-ui-flow .ehn-ui-flow__cta:hover svg { transform: none; }
}

/* === Flow 1.6.3: precise terminal margin, scroll-reactive hangers and grab ===
 * The final step stops 30px BEFORE the clear right edge. If fade/blur is
 * enabled, leave an additional edge-effect width clear of the last card.
 * Keep this on the continuous timeline only, never on cards/strips/grids.
 */
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__track {
    padding-right: 30px;
}
.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page):is(.ehn-ui-flow--edge-fade, .ehn-ui-flow--edge-blur) .ehn-ui-flow__track {
    padding-right: calc(30px + var(--ehn-flow-edge-size));
}
/* The default 7s idle sway now remains a no-JS fallback. Once JS connects,
 * sway happens only on document scroll, native swipe or mouse drag, and
 * the pendulum settles automatically when the track stops moving. */
@media (prefers-reduced-motion: no-preference) {
    .ehn-ui-flow--sway.ehn-ui-flow-motion-ready.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step {
        animation: none;
        transform: rotate(calc(var(--ehn-flow-tilt, 0deg) + var(--ehn-flow-motion-tilt, 0deg)));
    }
}
@media (hover: hover) and (pointer: fine) {
    .ehn-ui-flow--mouse-drag.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__viewport {
        cursor: grab;
    }
    .ehn-ui-flow--mouse-drag.ehn-ui-flow--timeline.ehn-ui-flow--horizontal.is-ehn-flow-dragging .ehn-ui-flow__viewport {
        cursor: grabbing;
    }
    .ehn-ui-flow--mouse-drag.is-ehn-flow-dragging .ehn-ui-flow__viewport,
    .ehn-ui-flow--mouse-drag.is-ehn-flow-dragging .ehn-ui-flow__viewport * {
        -webkit-user-select: none;
        user-select: none;
    }
    .ehn-ui-flow--mouse-drag .ehn-ui-flow__cta { cursor: pointer; }
}

/* Photographs are part of the grab surface, not independent native drag ghosts. */
.ehn-ui-flow--mouse-drag.ehn-ui-flow--timeline.ehn-ui-flow--horizontal .ehn-ui-flow__image {
    -webkit-user-drag: none;
}

/* 1.7.0: optional Flow section heading lives OUTSIDE the pinned stage.
   Existing timelines without a heading have identical document geometry. */
.ehn-ui-flow .ehn-ui-flow__intro {
    display: block;
    min-width: 0;
    margin: 0 0 var(--ehn-flow-section-gap, 28px);
    color: var(--ehn-flow-section-ink, var(--ehn-flow-ink));
}
.ehn-ui-flow .ehn-ui-flow__intro--center { text-align: center; }
.ehn-ui-flow .ehn-ui-flow__intro--right { text-align: right; }
.ehn-ui-flow .ehn-ui-flow__section-title {
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--ehn-flow-section-ink, var(--ehn-flow-ink));
    font: inherit;
    font-size: var(--ehn-flow-section-size, 32px);
    font-weight: 750;
    line-height: 1.18;
    letter-spacing: -0.022em;
    text-transform: none;
    overflow-wrap: anywhere;
}
.ehn-ui-flow .ehn-ui-flow__section-intro {
    display: block;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    color: var(--ehn-flow-muted);
    font: inherit;
    font-size: 1rem;
    line-height: 1.6;
    white-space: normal;
    overflow-wrap: anywhere;
}
@media (max-width: 640px) {
    .ehn-ui-flow .ehn-ui-flow__section-title {
        font-size: min(var(--ehn-flow-section-size, 32px), 30px);
    }
    .ehn-ui-flow .ehn-ui-flow__intro { margin-bottom: min(var(--ehn-flow-section-gap, 28px), 32px); }
}


/* 1.7.1: proportional widths for *scrolling* horizontal timelines.
   JS computes from the actual Flow scrollport (not the browser viewport), so
   Salient constrained rows never become 4K-wide cards accidentally.
   No JS => the old fixed-width CSS remains a functional fallback. */
.ehn-ui-flow--adaptive-width.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__item {
    flex: 0 0 min(var(--ehn-flow-responsive-step-width, var(--ehn-flow-step-width)), calc(100vw - 56px));
    width: min(var(--ehn-flow-responsive-step-width, var(--ehn-flow-step-width)), calc(100vw - 56px));
}
/* Keep typography and padding in proportion on very wide displays; these
   fall back to their established values on normal desktops/mobile. */
.ehn-ui-flow--adaptive-width.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__title {
    font-size: var(--ehn-flow-responsive-title-size, 1.07rem);
}
.ehn-ui-flow--adaptive-width.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__description {
    font-size: var(--ehn-flow-responsive-description-size, .96rem);
}
.ehn-ui-flow--adaptive-width.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step {
    padding: var(--ehn-flow-responsive-padding, var(--ehn-flow-padding));
}
.ehn-ui-flow--adaptive-width.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__marker,
.ehn-ui-flow--adaptive-width.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__marker-wrap {
    width: var(--ehn-flow-responsive-marker-size, var(--ehn-flow-marker-size));
}
.ehn-ui-flow--adaptive-width.ehn-ui-flow--timeline.ehn-ui-flow--horizontal:is(.ehn-ui-flow--scroll-free, .ehn-ui-flow--scroll-page) .ehn-ui-flow__marker {
    height: var(--ehn-flow-responsive-marker-size, var(--ehn-flow-marker-size));
}
/* Individual step colors inherit from the Flow unless explicitly changed. */
.ehn-ui-flow--cards .ehn-ui-flow__step,
.ehn-ui-flow--rope.ehn-ui-flow--horizontal .ehn-ui-flow__step {
    background-color: var(--ehn-flow-item-surface, var(--ehn-flow-surface));
}

/* 1.7.4: optional author-controlled vertical breathing room. Zero by default;
   WPBakery row padding is also supported by the wheel activation geometry. */
.ehn-ui-flow {
    padding-top: var(--ehn-flow-space-top, 0px);
    padding-bottom: var(--ehn-flow-space-bottom, 0px);
}
