/* DentaVista — dc-process widget styles */
.dv-process {
                    background: var(--dv-mint);
                    color: var(--dv-ink);
                }
                .dv-process__blob--a { width: 460px; height: 460px; top: -160px; left: -120px; background: rgba(91, 182, 223,.22); opacity: .5; }
                .dv-process__blob--b { width: 400px; height: 400px; bottom: -180px; right: -120px; background: rgba(31, 42, 51,.06); opacity: .7; }

                .dv-process .dv-container { position: relative; z-index: 1; }
                .dv-process__head { max-width: 760px; margin: 0 auto clamp(48px, 6vw, 84px); }
                .dv-process__title { color: var(--dv-navy); }
                .dv-process .dv-lead { color: var(--dv-muted); }
                .dv-process__eyebrow { color: var(--dv-teal-600); }
                .dv-process__eyebrow::before { background: var(--dv-teal-600); }

                /* ---- Vertical timeline ---- */
                .dv-process__timeline {
                    list-style: none; margin: 0 auto; padding: 0;
                    position: relative;
                    max-width: 940px;
                }
                /* central connecting line */
                .dv-process__line {
                    position: absolute; top: 6px; bottom: 6px; left: 50%;
                    width: 2px; margin-left: -1px;
                    background: rgba(91, 182, 223,.28);
                    border-radius: 2px;
                }
                .dv-process__line::after {
                    /* animated "fill" feel — grows as steps reveal */
                    content: ""; position: absolute; inset: 0;
                    background: var(--dv-teal-600);
                    transform: scaleY(0); transform-origin: top;
                    transition: transform 1.6s var(--dv-ease) .2s;
                    border-radius: 2px;
                }
                .dv-process__timeline:has(.dv-process__step:last-child.is-in) .dv-process__line::after { transform: scaleY(1); }

                .dv-process__step {
                    position: relative;
                    width: 50%;
                    padding: 0 clamp(40px, 5vw, 64px);
                    margin-bottom: clamp(28px, 4vw, 48px);
                    min-height: 60px;
                }
                .dv-process__step:last-child { margin-bottom: 0; }
                .dv-process__step--left  { margin-right: 50%; text-align: right; }
                .dv-process__step--right { margin-left: 50%; text-align: left; }

                /* numbered node on the line */
                .dv-process__node {
                    position: absolute; top: 4px; z-index: 3;
                    width: 56px; height: 56px; border-radius: 50%;
                    display: flex; align-items: center; justify-content: center;
                    background: #fff;
                    border: 2px solid rgba(91, 182, 223,.55);
                    box-shadow: 0 0 0 6px var(--dv-mint);
                    transition: transform .45s var(--dv-spring), border-color .4s var(--dv-ease), background .4s var(--dv-ease);
                }
                .dv-process__step--left  .dv-process__node { right: -28px; }
                .dv-process__step--right .dv-process__node { left: -28px; }
                .dv-process__node-num {
                    font-family: var(--dv-font-head); font-weight: 800; font-size: 17px;
                    color: var(--dv-teal);
                }
                .dv-process__step:hover .dv-process__node,
                .dv-process__step:focus-within .dv-process__node {
                    transform: scale(1.08);
                    border-color: var(--dv-teal);
                    background: var(--dv-teal-600);
                }
                .dv-process__step:hover .dv-process__node-num,
                .dv-process__step:focus-within .dv-process__node-num { color: #fff; }

                /* glass card */
                .dv-process__card {
                    display: inline-flex; gap: 16px; text-align: left;
                    width: 100%; max-width: 420px;
                    background: #fff;
                    border: 1px solid var(--dv-line);
                    border-radius: var(--dv-radius);
                    padding: clamp(22px, 2.4vw, 28px);
                    box-shadow: 0 18px 40px -28px rgba(31, 42, 51,.35);
                    transition: transform .45s var(--dv-spring), background .4s var(--dv-ease), border-color .4s var(--dv-ease), box-shadow .4s var(--dv-ease);
                }
                .dv-process__step--left .dv-process__card { margin-left: auto; }
                .dv-process__step:hover .dv-process__card,
                .dv-process__step:focus-within .dv-process__card {
                    transform: translateY(-6px);
                    border-color: rgba(91, 182, 223,.5);
                    box-shadow: 0 30px 60px -30px rgba(31, 42, 51,.4);
                }

                .dv-process__icon {
                    flex: none;
                    display: inline-flex; align-items: center; justify-content: center;
                    width: 52px; height: 52px;
                    border-radius: 15px; color: var(--dv-teal);
                    background: rgba(91, 182, 223,.14);
                    border: 1px solid rgba(91, 182, 223,.3);
                    transition: transform .5s var(--dv-spring), background .4s var(--dv-ease), color .4s var(--dv-ease);
                }
                .dv-process__icon svg { width: 26px; height: 26px; }
                .dv-process__step:hover .dv-process__icon,
                .dv-process__step:focus-within .dv-process__icon {
                    transform: rotate(-6deg) scale(1.08);
                    background: var(--dv-teal-600);
                    color: #fff;
                }

                .dv-process__card-body { min-width: 0; }
                .dv-process__step-num {
                    display: inline-block;
                    font-family: var(--dv-font-head); font-weight: 800; font-size: 12px;
                    letter-spacing: .14em; color: var(--dv-teal);
                    margin-bottom: 6px;
                }
                .dv-process__step-title {
                    font-family: var(--dv-font-head);
                    font-size: 1.22rem; font-weight: 800; color: var(--dv-navy);
                    margin: 0 0 8px; letter-spacing: -.01em;
                }
                .dv-process__step-text {
                    font-size: 15px; line-height: 1.6; margin: 0;
                    color: var(--dv-muted);
                }

                /* dotted connector to side label */
                .dv-process__aside {
                    position: absolute; top: 22px; display: flex; align-items: center; gap: 10px;
                    max-width: 30%;
                }
                .dv-process__step--left .dv-process__aside { left: calc(100% + 18px); flex-direction: row; }
                .dv-process__step--right .dv-process__aside { right: calc(100% + 18px); flex-direction: row-reverse; }
                .dv-process__dotline {
                    width: clamp(24px, 4vw, 54px); height: 0;
                    border-top: 2px dotted rgba(31, 42, 51,.28);
                    flex: none;
                }
                .dv-process__aside-label {
                    font-size: 13.5px; font-weight: 700; color: var(--dv-muted);
                    white-space: nowrap;
                }

                .dv-process__cta { margin-top: clamp(40px, 5vw, 64px); }

                /* ---- Tablet / mobile: single column, line on the left ---- */
                @media (max-width: 980px) {
                    .dv-process__timeline { max-width: 620px; }
                    .dv-process__line { left: 27px; }
                    .dv-process__step,
                    .dv-process__step--left,
                    .dv-process__step--right {
                        width: 100%; margin: 0 0 22px; text-align: left;
                        padding: 0 0 0 72px;
                    }
                    .dv-process__step:last-child { margin-bottom: 0; }
                    .dv-process__step--left .dv-process__node,
                    .dv-process__step--right .dv-process__node { left: 0; right: auto; }
                    .dv-process__node { width: 54px; height: 54px; }
                    .dv-process__card,
                    .dv-process__step--left .dv-process__card { max-width: 100%; margin: 0; }
                    /* side label folds under the card */
                    .dv-process__aside,
                    .dv-process__step--left .dv-process__aside,
                    .dv-process__step--right .dv-process__aside {
                        position: static; max-width: 100%; margin-top: 12px;
                        flex-direction: row; padding-left: 4px;
                    }
                    .dv-process__dotline { width: 28px; }
                }
                @media (max-width: 600px) {
                    .dv-process__step,
                    .dv-process__step--left,
                    .dv-process__step--right { padding-left: 60px; }
                    .dv-process__line { left: 23px; }
                    .dv-process__node { width: 46px; height: 46px; }
                    .dv-process__step--left .dv-process__node,
                    .dv-process__step--right .dv-process__node { left: 0; }
                    .dv-process__node-num { font-size: 15px; }
                    .dv-process__card { flex-direction: column; gap: 14px; }
                    .dv-process__cta .dv-btn { width: 100%; }
                }
                @media (prefers-reduced-motion: reduce) {
                    .dv-process__step, .dv-process__card, .dv-process__icon, .dv-process__node { transition: none; }
                    .dv-process__line::after { transition: none; transform: scaleY(1); }
                }
