.elementor-button {
    transition: transform .45s var(--ccr-ease-out), opacity .45s var(--ccr-ease-out), background-color .3s ease, color .3s ease, border-color .3s ease;
}

.elementor-button:hover,
.elementor-button:focus-visible {
    opacity: .95;
    transform: scale(1.03);
}

.elementor-button:active {
    transform: scale(.99);
}

.ccr-split-word {
    white-space: nowrap;
}

html.ccr-reveal .elementor-widget-heading h1.elementor-heading-title:not(.is-revealed),
html.ccr-reveal [data-ccr-reveal]:not(.is-revealed) {
    visibility: hidden;
}

.timeline_holder {
    --ccr-wave: 1;
    position: relative;
}

.timeline_holder > .process_sub {
    position: relative;
    z-index: 1;
}

@media (min-width: 1025px) {
    .elementor .timeline_holder > .e-con.process_sub:nth-of-type(2) {
        margin-top: calc(80px * var(--ccr-wave));
    }

    .elementor .timeline_holder > .e-con.process_sub:nth-of-type(3),
    .elementor .timeline_holder > .e-con.process_sub:nth-of-type(5) {
        margin-top: calc(40px * var(--ccr-wave));
    }

    .elementor .timeline_holder > .e-con.process_sub:nth-of-type(4) {
        margin-top: calc(120px * var(--ccr-wave));
    }
}

@media (min-width: 1025px) and (max-width: 1366px) {
    .timeline_holder {
        --ccr-wave: .75;
    }
}

.ccr-timeline-line {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
}

.ccr-timeline-line__path {
    fill: none;
    stroke: color-mix(in srgb, var(--ccr-cream) 60%, transparent);
    stroke-width: 1.5;
    stroke-dasharray: 7 7;
}

.timeline_holder > .process_sub {
    transition: opacity .6s var(--ccr-ease), filter .6s var(--ccr-ease);
}

.timeline_holder.has-active > .process_sub:not(.is-active) {
    opacity: .42;
    filter: saturate(.6);
}

.timeline_holder .process_sub .elementor-widget-image {
    position: relative;
}

.timeline_holder .process_sub .elementor-widget-image::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: -1;
    width: 150%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(closest-side, color-mix(in srgb, var(--ccr-accent) 42%, transparent), transparent);
    opacity: 0;
    translate: -50% -50%;
    scale: .7;
    transition: opacity .7s var(--ccr-ease), scale 1s var(--ccr-ease-out);
    pointer-events: none;
}

.timeline_holder .process_sub .elementor-widget-image::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc(100% + 24px);
    aspect-ratio: 1;
    border: 1.5px dashed color-mix(in srgb, var(--ccr-accent) 85%, transparent);
    border-radius: 50%;
    opacity: 0;
    translate: -50% -50%;
    scale: .9;
    transition: opacity .5s var(--ccr-ease), scale .8s var(--ccr-ease-out);
    animation: ccr-orbit 16s linear infinite paused;
    pointer-events: none;
}

.timeline_holder .process_sub .elementor-widget-image img {
    transition: transform 1s var(--ccr-ease-out), filter .7s var(--ccr-ease);
}

.timeline_holder .process_sub.is-active .elementor-widget-image::before {
    opacity: 1;
    scale: 1;
}

.timeline_holder .process_sub.is-active .elementor-widget-image::after {
    opacity: 1;
    scale: 1;
    animation-play-state: running;
}

.timeline_holder .process_sub.is-active .elementor-widget-image img {
    filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .45)) brightness(1.06);
    transform: scale(1.05);
}

.timeline_holder .process_sub > .elementor-widget-heading:nth-child(2) {
    transition: box-shadow .5s var(--ccr-ease), transform .6s var(--ccr-ease-out);
}

.timeline_holder .process_sub.is-active > .elementor-widget-heading:nth-child(2) {
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--ccr-accent) 22%, transparent), 0 10px 24px -8px color-mix(in srgb, var(--ccr-accent) 60%, transparent);
    transform: translateY(-2px);
}

.ccr-timeline-line__path {
    transition: stroke .5s var(--ccr-ease), stroke-width .5s var(--ccr-ease);
}

.ccr-timeline-line__path.is-lit-out,
.ccr-timeline-line__path.is-lit-in {
    stroke: var(--ccr-accent);
    stroke-width: 2;
    animation: ccr-dash-flow 1.1s linear infinite;
}

@keyframes ccr-orbit {
    to {
        rotate: 360deg;
    }
}

@keyframes ccr-dash-flow {
    to {
        stroke-dashoffset: -28;
    }
}

.ccr-timeline-line__reveal {
    fill: none;
    stroke: #fff;
    stroke-width: 8;
}

@media (prefers-reduced-motion: reduce) {
    .timeline_holder .process_sub .elementor-widget-image::after,
    .ccr-timeline-line__path.is-lit-out,
    .ccr-timeline-line__path.is-lit-in {
        animation: none;
    }

    .elementor-button,
    .elementor-button:hover,
    .elementor-button:focus-visible,
    .elementor-button:active {
        transform: none;
    }
}
