/**
 * Premium Step-by-step Guide layouts & effects.
 * Loaded only when a non-classic / enhanced steps block is present.
 */
.pb-steps,
.block-steps {
    height: auto;
    max-height: none;
    overflow: visible;
}
.pb-steps {
    --pb-steps-accent: var(--theme-primary, #0d6e6e);
    --pb-steps-text: var(--theme-text, #212529);
    --pb-steps-muted: var(--theme-muted, #6c757d);
    --pb-steps-card: var(--theme-card, #fff);
    --pb-steps-border: var(--theme-border, #dee2e6);
    --pb-steps-connector: var(--pb-steps-accent);
    --pb-steps-connector-w: 2px;
    --pb-steps-connector-o: 1;
    --pb-steps-radius: 0.85rem;
    --pb-steps-anim-ms: 600ms;
    --pb-steps-gap: 1.5rem;
    padding: 2.5rem 0 3rem;
    color: var(--pb-steps-text);
    background: transparent;
    position: relative;
}
.pb-steps-space--compact { --pb-steps-gap: 1rem; }
.pb-steps-space--comfortable { --pb-steps-gap: 1.5rem; }
.pb-steps-space--relaxed { --pb-steps-gap: 2.25rem; }

.pb-steps-bg--none,
.pb-steps-bg--transparent { background: transparent; }
.pb-steps-bg--solid { background: var(--pb-steps-section-bg, transparent); }
.pb-steps-bg--gradient {
    background: var(--pb-steps-section-gradient, linear-gradient(135deg, color-mix(in srgb, var(--pb-steps-accent) 8%, transparent), transparent));
}
.pb-steps-bg--image {
    background-image: var(--pb-steps-section-image);
    background-size: cover;
    background-position: center;
}
.pb-steps-bg--pattern {
    background-color: var(--pb-steps-section-bg, transparent);
    background-image: radial-gradient(color-mix(in srgb, var(--pb-steps-accent) 12%, transparent) 1px, transparent 1px);
    background-size: 18px 18px;
}

.pb-steps-header { margin-bottom: 1.75rem; width: 100%; }
.pb-steps-header--center { text-align: center; }
.pb-steps-header--left,
.pb-steps-header--start { text-align: start; }
.pb-steps-header--right,
.pb-steps-header--end { text-align: end; }
/* Match shared section heading/intro tokens used by other Page Builder blocks */
.block-steps .block-section-title,
.pb-steps .block-section-title,
.block-steps .block-section-intro,
.pb-steps .block-section-intro {
    max-width: none;
    width: 100%;
}

.pb-steps-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--pb-steps-gap);
    counter-reset: pbsteps;
    height: auto;
    max-height: none;
    overflow: visible;
}
.pb-steps-item {
    height: auto;
    max-height: none;
    min-width: 0;
    overflow: visible;
}

/* Card chrome */
.pb-steps-card {
    background: var(--pb-steps-card-bg, var(--pb-steps-card));
    border: var(--pb-steps-border-w, 1px) solid var(--pb-steps-card-border, var(--pb-steps-border));
    border-radius: var(--pb-steps-radius);
    padding: 1.15rem 1.25rem;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
    color: inherit;
    height: 100%;
}
.pb-steps-card--flat .pb-steps-card { box-shadow: none; background: transparent; border-color: transparent; padding-left: 0; padding-right: 0; }
.pb-steps-card--elevated .pb-steps-card { box-shadow: 0 .4rem 1.25rem rgba(0,0,0,.08); }
.pb-steps-card--soft_shadow .pb-steps-card { box-shadow: 0 .25rem .9rem rgba(0,0,0,.06); }
.pb-steps-card--material .pb-steps-card { box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.06); }
.pb-steps-card--outline .pb-steps-card { background: transparent; border-width: 2px; }
.pb-steps-card--glass .pb-steps-card {
    background: color-mix(in srgb, var(--pb-steps-card) 72%, transparent);
    backdrop-filter: blur(10px);
    border-color: color-mix(in srgb, #fff 35%, var(--pb-steps-border));
}
.pb-steps-card--gradient .pb-steps-card {
    background: linear-gradient(160deg, color-mix(in srgb, var(--pb-steps-accent) 10%, var(--pb-steps-card)), var(--pb-steps-card));
}
.pb-steps-card--premium .pb-steps-card {
    box-shadow: 0 .5rem 1.5rem color-mix(in srgb, var(--pb-steps-accent) 18%, transparent);
    border-color: color-mix(in srgb, var(--pb-steps-accent) 28%, var(--pb-steps-border));
}

.pb-steps-hover--lift .pb-steps-item:hover .pb-steps-card { transform: translateY(-4px); }
.pb-steps-hover--scale .pb-steps-item:hover .pb-steps-card { transform: scale(1.02); }
.pb-steps-hover--shadow .pb-steps-item:hover .pb-steps-card { box-shadow: 0 .75rem 1.75rem rgba(0,0,0,.12); }
.pb-steps-hover--glow .pb-steps-item:hover .pb-steps-card { box-shadow: 0 0 0 3px color-mix(in srgb, var(--pb-steps-accent) 35%, transparent); }
.pb-steps-hover--border .pb-steps-item:hover .pb-steps-card { border-color: var(--pb-steps-accent); }
.pb-steps-hover--rotate .pb-steps-item:hover .pb-steps-card { transform: rotate(-0.4deg); }
.pb-steps-hover--bg .pb-steps-item:hover .pb-steps-card { background: var(--pb-steps-card-hover, color-mix(in srgb, var(--pb-steps-accent) 6%, var(--pb-steps-card))); }

.pb-steps-label {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--pb-steps-label, var(--pb-steps-accent));
    margin-bottom: .35rem;
}
.pb-steps-badge {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    padding: .2rem .55rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--pb-steps-accent) 14%, transparent);
    color: var(--pb-steps-accent);
    margin-bottom: .5rem;
}
.pb-steps-title {
    margin: 0 0 .5rem;
    font-size: var(--pb-steps-step-title-size, 1.15rem);
    font-weight: var(--pb-steps-step-title-weight, 700);
    color: var(--pb-steps-step-title, inherit);
}
.pb-steps-title a { color: inherit; text-decoration: none; }
.pb-steps-title a:hover { color: var(--pb-steps-accent); }
.pb-steps-body, .pb-steps-detail {
    color: var(--pb-steps-desc, var(--pb-steps-muted));
    line-height: 1.55;
}
.pb-steps-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .85rem; }

.pb-steps-icon {
    display: inline-grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    color: var(--pb-steps-icon, #fff);
    background: var(--pb-steps-icon-bg, var(--pb-steps-accent));
    border: 1px solid var(--pb-steps-icon-border, transparent);
    font-size: 1.15rem;
}
.pb-steps-icon--sm { width: 2.1rem; height: 2.1rem; font-size: .95rem; }
.pb-steps-icon--md { width: 2.75rem; height: 2.75rem; font-size: 1.15rem; }
.pb-steps-icon--lg { width: 3.35rem; height: 3.35rem; font-size: 1.35rem; }
.pb-steps-icon--xl { width: 4rem; height: 4rem; font-size: 1.6rem; }
.pb-steps-icon--circle { border-radius: 50%; }
.pb-steps-icon--square { border-radius: .35rem; }
.pb-steps-icon--rounded { border-radius: .85rem; }
.pb-steps-icon-shadow .pb-steps-icon { box-shadow: 0 .35rem .9rem rgba(0,0,0,.12); }
.pb-steps-icon--svg svg { width: 1.25em; height: 1.25em; display: block; }
.pb-steps-number {
    display: inline-grid;
    place-items: center;
    min-width: 2.35rem;
    height: 2.35rem;
    padding: 0 .55rem;
    border-radius: 999px;
    background: var(--pb-steps-num-bg, var(--pb-steps-accent));
    color: var(--pb-steps-num, #fff);
    font-weight: 700;
}
.pb-steps-marker { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; }

.pb-steps-media { margin: 0 0 .85rem; overflow: hidden; border-radius: calc(var(--pb-steps-radius) - 2px); }
.pb-steps-media img { width: 100%; height: auto; display: block; object-fit: cover; aspect-ratio: 16/10; }
.pb-steps-media figcaption { font-size: .85rem; color: var(--pb-steps-muted); padding: .4rem 0 0; }
.pb-steps-media--inline { max-width: 10rem; }

/* Connectors */
.pb-steps-line {
    position: absolute;
    background: var(--pb-steps-connector);
    opacity: var(--pb-steps-connector-o);
    pointer-events: none;
}
.pb-steps-connector--dashed .pb-steps-line { background: none; border-left: var(--pb-steps-connector-w) dashed var(--pb-steps-connector); width: 0; }
.pb-steps-connector--dotted .pb-steps-line { background: none; border-left: var(--pb-steps-connector-w) dotted var(--pb-steps-connector); width: 0; }
.pb-steps-connector--gradient .pb-steps-line {
    background: linear-gradient(180deg, var(--pb-steps-connector), transparent);
}
.pb-steps-connector--animated .pb-steps-line {
    background: linear-gradient(180deg, var(--pb-steps-connector), color-mix(in srgb, var(--pb-steps-connector) 20%, transparent));
    background-size: 100% 200%;
    animation: pb-steps-flow 2.4s linear infinite;
}
.pb-steps-connector--arrow .pb-steps-line::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--pb-steps-connector);
}
.pb-steps-connector--curved .pb-steps-line { border-radius: 999px; width: var(--pb-steps-connector-w); }
.pb-steps-connector--hidden .pb-steps-line { display: none; }
@keyframes pb-steps-flow {
    from { background-position: 0 0; }
    to { background-position: 0 100%; }
}

/* Layouts: vertical / center / corporate / minimal / alternating / zigzag */
.pb-steps--vertical_timeline .pb-steps-list,
.pb-steps--center_timeline .pb-steps-list,
.pb-steps--corporate .pb-steps-list,
.pb-steps--minimal .pb-steps-list,
.pb-steps--alternating .pb-steps-list,
.pb-steps--zigzag .pb-steps-list {
    position: relative;
    max-width: 52rem;
    margin-inline: auto;
}
.pb-steps--vertical_timeline .pb-steps-item,
.pb-steps--center_timeline .pb-steps-item,
.pb-steps--corporate .pb-steps-item,
.pb-steps--minimal .pb-steps-item,
.pb-steps--alternating .pb-steps-item,
.pb-steps--zigzag .pb-steps-item {
    position: relative;
    padding-left: 3rem;
}
.pb-steps--vertical_timeline .pb-steps-line,
.pb-steps--center_timeline .pb-steps-line,
.pb-steps--corporate .pb-steps-line,
.pb-steps--minimal .pb-steps-line,
.pb-steps--alternating .pb-steps-line,
.pb-steps--zigzag .pb-steps-line {
    left: .9rem;
    top: 2.5rem;
    bottom: calc(-1 * var(--pb-steps-gap));
    width: var(--pb-steps-connector-w);
}
.pb-steps--vertical_timeline .pb-steps-item:last-child .pb-steps-line,
.pb-steps--center_timeline .pb-steps-item:last-child .pb-steps-line,
.pb-steps--corporate .pb-steps-item:last-child .pb-steps-line,
.pb-steps--minimal .pb-steps-item:last-child .pb-steps-line,
.pb-steps--alternating .pb-steps-item:last-child .pb-steps-line,
.pb-steps--zigzag .pb-steps-item:last-child .pb-steps-line { display: none; }

.pb-steps--center_timeline .pb-steps-list { max-width: 64rem; }
@media (min-width: 992px) {
    .pb-steps--center_timeline .pb-steps-item,
    .pb-steps--alternating .pb-steps-item,
    .pb-steps--zigzag .pb-steps-item {
        width: calc(50% - 1rem);
        padding-left: 0;
    }
    .pb-steps--center_timeline .pb-steps-item--left,
    .pb-steps--alternating .pb-steps-item--left,
    .pb-steps--zigzag .pb-steps-item--left { margin-right: auto; text-align: right; padding-right: 2rem; }
    .pb-steps--center_timeline .pb-steps-item--right,
    .pb-steps--alternating .pb-steps-item--right,
    .pb-steps--zigzag .pb-steps-item--right { margin-left: auto; padding-left: 2rem; }
    .pb-steps--center_timeline .pb-steps-line,
    .pb-steps--alternating .pb-steps-line,
    .pb-steps--zigzag .pb-steps-line {
        left: 50%;
        transform: translateX(-50%);
    }
    .pb-steps--center_timeline .pb-steps-marker,
    .pb-steps--alternating .pb-steps-marker,
    .pb-steps--zigzag .pb-steps-marker {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        top: 1rem;
        z-index: 1;
        margin: 0;
        background: var(--theme-bg, #fff);
        padding: .15rem;
        border-radius: 999px;
    }
}

.pb-steps--minimal .pb-steps-card { box-shadow: none; border: 0; background: transparent; padding: 0; }
.pb-steps--corporate .pb-steps-card { border-left: 3px solid var(--pb-steps-accent); }

/* Horizontal / process / connected / circular — wrap & grow (no internal scroll) */
.pb-steps--horizontal_timeline .pb-steps-list,
.pb-steps--process_flow .pb-steps-list,
.pb-steps--connected_cards .pb-steps-list,
.pb-steps--circular .pb-steps-list {
    display: grid;
    grid-template-columns: repeat(var(--pb-steps-cols-m, 1), minmax(0, 1fr));
    gap: var(--pb-steps-gap);
    overflow: visible;
    height: auto;
    max-height: none;
}
@media (min-width: 768px) {
    .pb-steps--horizontal_timeline .pb-steps-list,
    .pb-steps--process_flow .pb-steps-list,
    .pb-steps--connected_cards .pb-steps-list,
    .pb-steps--circular .pb-steps-list {
        grid-template-columns: repeat(var(--pb-steps-cols-t, 2), minmax(0, 1fr));
    }
}
@media (min-width: 992px) {
    .pb-steps--horizontal_timeline .pb-steps-list,
    .pb-steps--process_flow .pb-steps-list,
    .pb-steps--connected_cards .pb-steps-list,
    .pb-steps--circular .pb-steps-list {
        grid-template-columns: repeat(var(--pb-steps-cols-d, 3), minmax(0, 1fr));
    }
}
.pb-steps--horizontal_timeline .pb-steps-item,
.pb-steps--process_flow .pb-steps-item,
.pb-steps--connected_cards .pb-steps-item,
.pb-steps--circular .pb-steps-item {
    position: relative;
    min-width: 0;
}
/* Horizontal connectors assume a single row; hide them when cards wrap into rows */
.pb-steps--horizontal_timeline .pb-steps-line,
.pb-steps--process_flow .pb-steps-line,
.pb-steps--connected_cards .pb-steps-line { display: none; }
.pb-steps--circular .pb-steps-card { text-align: center; border-radius: 1.25rem; }
.pb-steps--circular .pb-steps-marker { justify-content: center; }

/* Card grids */
.pb-steps--numbered_cards .pb-steps-list,
.pb-steps--icon_cards .pb-steps-list,
.pb-steps--image_cards .pb-steps-list,
.pb-steps--floating_cards .pb-steps-list {
    grid-template-columns: repeat(var(--pb-steps-cols-m, 1), minmax(0, 1fr));
}
@media (min-width: 768px) {
    .pb-steps--numbered_cards .pb-steps-list,
    .pb-steps--icon_cards .pb-steps-list,
    .pb-steps--image_cards .pb-steps-list,
    .pb-steps--floating_cards .pb-steps-list {
        grid-template-columns: repeat(var(--pb-steps-cols-t, 2), minmax(0, 1fr));
    }
}
@media (min-width: 992px) {
    .pb-steps--numbered_cards .pb-steps-list,
    .pb-steps--icon_cards .pb-steps-list,
    .pb-steps--image_cards .pb-steps-list,
    .pb-steps--floating_cards .pb-steps-list {
        grid-template-columns: repeat(var(--pb-steps-cols-d, 3), minmax(0, 1fr));
    }
}
.pb-steps--floating_cards .pb-steps-list { padding-bottom: 1rem; }
.pb-steps--floating_cards .pb-steps-card { transform: translateY(0); }
.pb-steps--floating_cards .pb-steps-item:nth-child(even) .pb-steps-card { transform: translateY(.75rem); }
.pb-steps--icon_cards .pb-steps-marker { justify-content: flex-start; }
.pb-steps--numbered_cards .pb-steps-number { font-size: 1.25rem; min-width: 2.75rem; height: 2.75rem; }

/* Progress */
.pb-steps-progress { margin-bottom: 1.25rem; display: flex; align-items: center; gap: .75rem; }
.pb-steps-progress-track {
    flex: 1;
    height: .35rem;
    background: color-mix(in srgb, var(--pb-steps-accent) 15%, transparent);
    border-radius: 999px;
    overflow: hidden;
}
.pb-steps-progress-bar {
    height: 100%;
    width: 0;
    background: var(--pb-steps-accent);
    transition: width .35s ease;
}
.pb-steps-progress--dots .pb-steps-progress-track { height: auto; background: none; display: flex; gap: .4rem; }
.pb-steps-progress--dots .pb-steps-progress-bar { display: none; }
.pb-steps-progress--circle { justify-content: center; }
.pb-steps-progress-pct { font-size: .85rem; font-weight: 600; color: var(--pb-steps-accent); min-width: 2.5rem; }

/* Animations */
.pb-steps-anim--fade .pb-steps-item,
.pb-steps-anim--slide .pb-steps-item,
.pb-steps-anim--zoom .pb-steps-item,
.pb-steps-anim--flip .pb-steps-item,
.pb-steps-anim--bounce .pb-steps-item,
.pb-steps-anim--float .pb-steps-item,
.pb-steps-anim--wave .pb-steps-item,
.pb-steps-anim--reveal .pb-steps-item,
.pb-steps-anim--grow .pb-steps-item,
.pb-steps-anim--rotate .pb-steps-item {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity var(--pb-steps-anim-ms) ease, transform var(--pb-steps-anim-ms) ease;
    transition-delay: var(--pb-steps-item-delay, 0ms);
}
.pb-steps-anim--slide .pb-steps-item { transform: translateX(-16px); }
.pb-steps-anim--zoom .pb-steps-item { transform: scale(.94); }
.pb-steps-anim--flip .pb-steps-item { transform: rotateX(12deg); }
.pb-steps-anim--grow .pb-steps-item { transform: scale(.9); }
.pb-steps-anim--rotate .pb-steps-item { transform: rotate(-2deg); }
.pb-steps-item.is-visible {
    opacity: 1 !important;
    transform: none !important;
}

@media (max-width: 767.98px) {
    .pb-steps[data-layout-mobile] .pb-steps-list { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .pb-steps-item,
    .pb-steps-card,
    .pb-steps-connector--animated .pb-steps-line {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
html[data-reduced-motion="1"] .pb-steps-item,
html[data-reduced-motion="1"] .pb-steps-card {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
}

[data-theme="dark"] .pb-steps-card--elevated .pb-steps-card,
[data-bs-theme="dark"] .pb-steps-card--elevated .pb-steps-card {
    box-shadow: 0 .4rem 1.25rem rgba(0,0,0,.35);
}
.pb-steps-classic-enhanced .pb-steps-badge { display: inline-block; margin-bottom: .35rem; }
