.training-flow {
    position: relative;
    width: 100%;
    min-height: 520px;
    padding: 72px 0 76px;
    overflow: hidden;
    background: #F9EAEA;
    color: #4d3d42;
    isolation: isolate;
}

.training-flow * {
    box-sizing: border-box;
}

.training-flow .container {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.training-flow-layout {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 330px minmax(0,1fr);
    gap: 58px;
    align-items: center;
}

.training-flow-media {
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.training-flow-figure-draw {
    display: block;
    width: 315px;
    height: auto;
    max-width: 100%;
    overflow: visible;
}

.training-flow-figure-draw path {
    fill: none;
    stroke: #62575a;
    stroke-width: 3.05;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}

.training-flow.figure-drawing .training-flow-figure-draw path {
    animation:
        trainingFlowFigureDraw
        var(--draw-duration)
        cubic-bezier(.22,.61,.36,1)
        var(--draw-delay)
        forwards;
}

@keyframes trainingFlowFigureDraw {
    to {
        stroke-dashoffset: 0;
    }
}

.training-flow-content {
    min-width: 0;
}

.training-flow-heading {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.training-flow-heading h2 {
    margin: 0;
    color: #4d3d42;
    font-size: clamp(36px,3.2vw,54px);
    line-height: .98;
    letter-spacing: -.04em;
    font-weight: 500;
}

.training-flow-heading h2 span {
    display: block;
    margin-top: 8px;
    color: #d98c97;
    font-family: var(--script,"Caveat",cursive);
    font-weight: 700;
    -webkit-text-stroke: 0;
    text-shadow: none;
}

.training-flow-grid {
    margin-top: 42px;
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
}

.training-flow-grid article {
    position: relative;
    padding: 0 27px;
    text-align: center;
}

.training-flow-grid article:first-child {
    padding-left: 0;
}

.training-flow-grid article:last-child {
    padding-right: 0;
}

.training-flow-grid article:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 8px;
    right: 0;
    width: 1px;
    height: 148px;
    background: rgba(119,89,97,.16);
}

.training-flow-icon {
    width: 62px;
    height: 52px;
    margin: 0 auto 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #d98c97;
}

.training-flow-icon i {
    display: block;
    color: #d98c97;
    font-size: 40px;
    line-height: 1;
}

.training-flow-icon svg {
    display: block;
    width: 38px;
    height: 38px;
    color: #d98c97;
    fill: #edb7bd;
}

.training-flow-icon svg path {
    fill: #edb7bd !important;
    stroke: none !important;
    stroke-dasharray: none !important;
    stroke-dashoffset: 0 !important;
    animation: none !important;
}

.training-flow-grid h3 {
    max-width: 245px;
    margin: 0 auto 8px;
    color: #4d3d42;
    font-size: 20px;
    line-height: 1.16;
    letter-spacing: -.02em;
    font-weight: 600;
}

.training-flow-grid p {
    max-width: 240px;
    margin: 0 auto;
    color: #74656a;
    font-size: 15px;
    line-height: 1.62;
}

.training-flow [data-tf-reveal] {
    opacity:1;
    --pmf-reveal-from:translateY(14px);transform:none;
    transition:
        opacity .6s ease,
        transform .6s ease;
}

.training-flow [data-tf-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

.training-flow-grid article:nth-child(2) {
    transition-delay: .08s;
}

.training-flow-grid article:nth-child(3) {
    transition-delay: .16s;
}

@media (max-width:1024px) {
    .training-flow {
        min-height: 490px;
        padding: 64px 0 68px;
    }

    .training-flow-layout {
        grid-template-columns: 280px minmax(0,1fr);
        gap: 36px;
    }

    .training-flow-media {
        min-height: 280px;
    }

    .training-flow-figure-draw {
        width: 270px;
    }

    .training-flow-grid {
        margin-top: 34px;
    }

    .training-flow-grid article {
        padding: 0 18px;
    }
}

@media (max-width:820px) {
    .training-flow {
        min-height: auto;
        padding: 58px 0 62px;
    }

    .training-flow .container {
        width: calc(100% - 32px);
    }

    .training-flow-layout {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .training-flow-media {
        min-height: 265px;
    }

    .training-flow-figure-draw {
        width: 220px;
    }

    .training-flow-heading {
        max-width: 700px;
    }

    .training-flow-grid {
        grid-template-columns: 1fr;
        margin-top: 22px;
    }

    .training-flow-grid article,
    .training-flow-grid article:first-child,
    .training-flow-grid article:last-child {
        padding: 22px 10px;
    }

    .training-flow-grid article:not(:last-child)::after {
        top: auto;
        right: auto;
        bottom: 0;
        left: 50%;
        width: min(78%,420px);
        height: 1px;
        transform: translateX(-50%);
    }

    .training-flow-grid h3 {
        max-width: 360px;
        font-size: 21px;
    }

    .training-flow-grid p {
        max-width: 440px;
    }
}

@media (max-width:560px) {
    .training-flow {
        padding: 50px 0 54px;
    }

    .training-flow .container {
        width: calc(100% - 24px);
    }

    .training-flow-media {
        min-height: 230px;
    }

    .training-flow-figure-draw {
        width: 195px;
    }

    .training-flow-heading h2 {
        font-size: clamp(31px,10vw,42px);
    }

    .training-flow-grid {
        margin-top: 14px;
    }

    .training-flow-grid article,
    .training-flow-grid article:first-child,
    .training-flow-grid article:last-child {
        padding: 20px 2px;
    }

    .training-flow-grid h3 {
        font-size: 20px;
    }

    .training-flow-grid p {
        max-width: 320px;
        font-size: 14px;
    }

    .training-flow-icon i {
        font-size: 38px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .training-flow [data-tf-reveal] {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .training-flow-figure-draw path {
        stroke-dashoffset: 0;
        animation: none !important;
    }
}
