/* =========================================================
   CHAVO SERVICES PAGE
   GLOBAL VARIABLES
   ========================================================= */

:root {

    --chv-services-bg: #071A36;
    --chv-services-bg-secondary: #091F3F;

    --chv-services-surface: rgba(255, 255, 255, 0.045);
    --chv-services-surface-hover: rgba(244, 181, 72, 0.07);

    --chv-services-accent: #F4B548;
    --chv-services-accent-light: #FFD36A;
    --chv-services-accent-dark: #C98C24;

    --chv-services-text: #FFFFFF;
    --chv-services-text-muted: #C7D2DF;
    --chv-services-text-soft: #9EADBF;

    --chv-services-border: rgba(255, 255, 255, 0.09);
    --chv-services-border-hover: rgba(244, 181, 72, 0.4);

    --chv-services-shadow: rgba(0, 0, 0, 0.35);
    --chv-services-glow: rgba(244, 181, 72, 0.12);

    --chv-services-radius-large: 28px;
    --chv-services-radius-medium: 20px;
    --chv-services-radius-small: 14px;

    --chv-services-transition: 0.4s ease;

}


/* =========================================================
   SERVICES HERO
   ========================================================= */

.chv-services-hero {

    position: relative;

    min-height: 720px;

    display: flex;

    align-items: center;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 15% 30%,
            var(--chv-services-glow),
            transparent 30%
        ),
        radial-gradient(
            circle at 85% 70%,
            var(--chv-services-glow),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            var(--chv-services-bg),
            var(--chv-services-bg-secondary)
        );

}


/* =========================================================
   HERO CONTENT
   ========================================================= */

.chv-services-hero-content {

    position: relative;

    z-index: 5;

    max-width: 850px;

    margin: 0 auto;

    text-align: center;

    padding: 100px 0;

}


/* =========================================================
   HERO LABEL
   ========================================================= */

.chv-services-hero-label {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 14px;

    margin-bottom: 28px;

    color: var(--chv-services-accent);

    font-size: 13px;

    font-weight: 600;

    letter-spacing: 3px;

    text-transform: uppercase;

    opacity: 0;

    animation: chvServicesLabelReveal 0.8s ease forwards;

}


.chv-services-label-line {

    width: 35px;

    height: 1px;

    background: var(--chv-services-accent);

}


/* =========================================================
   HERO TITLE
   ========================================================= */

.chv-services-hero-title {

    margin: 0;

    color: var(--chv-services-text);

    font-size: clamp(44px, 6vw, 76px);

    line-height: 1.08;

    font-weight: 700;

    letter-spacing: -2px;

    opacity: 0;

    transform: translateY(35px);

    animation: chvServicesTitleReveal 1s ease 0.2s forwards;

}


.chv-services-hero-title span {

    display: block;

    margin-top: 8px;

    color: var(--chv-services-accent);

}


/* =========================================================
   HERO DESCRIPTION
   ========================================================= */

.chv-services-hero-description {

    max-width: 700px;

    margin: 30px auto 0;

    color: var(--chv-services-text-muted);

    font-size: 18px;

    line-height: 32px;

    opacity: 0;

    transform: translateY(25px);

    animation: chvServicesDescriptionReveal 0.9s ease 0.5s forwards;

}


/* =========================================================
   HERO BUTTON
   ========================================================= */

.chv-services-hero-actions {

    margin-top: 38px;

    opacity: 0;

    transform: translateY(20px);

    animation: chvServicesButtonReveal 0.8s ease 0.75s forwards;

}


.chv-services-hero-button {

    display: inline-flex;

    align-items: center;

    gap: 14px;

    padding: 16px 30px;

    border: 1px solid var(--chv-services-accent);

    border-radius: 50px;

    background: var(--chv-services-accent);

    color: var(--chv-services-bg);

    font-size: 15px;

    font-weight: 700;

    text-decoration: none;

    transition: var(--chv-services-transition);

}


.chv-services-hero-button i {

    transition: var(--chv-services-transition);

}


.chv-services-hero-button:hover {

    background: var(--chv-services-accent-light);

    border-color: var(--chv-services-accent-light);

    transform: translateY(-4px);

    box-shadow:
        0 18px 40px var(--chv-services-glow);

}


.chv-services-hero-button:hover i {

    transform: translateY(4px);

}


/* =========================================================
   HERO GLOW ELEMENTS
   ========================================================= */

.chv-services-hero-glow {

    position: absolute;

    border-radius: 50%;

    pointer-events: none;

    filter: blur(80px);

    background: var(--chv-services-glow);

}


.chv-services-glow-one {

    width: 300px;

    height: 300px;

    top: -120px;

    left: -100px;

    animation: chvServicesGlowMove 8s ease-in-out infinite;

}


.chv-services-glow-two {

    width: 250px;

    height: 250px;

    right: -80px;

    bottom: -80px;

    animation: chvServicesGlowMove 10s ease-in-out infinite reverse;

}


/* =========================================================
   FLOATING PARTICLES
   ========================================================= */

.chv-services-particle {

    position: absolute;

    width: 5px;

    height: 5px;

    border-radius: 50%;

    background: var(--chv-services-accent);

    opacity: 0.45;

    pointer-events: none;

}


.chv-services-particle-one {

    top: 25%;

    left: 12%;

    animation: chvServicesParticleFloat 6s ease-in-out infinite;

}


.chv-services-particle-two {

    top: 65%;

    right: 15%;

    animation: chvServicesParticleFloat 8s ease-in-out 1s infinite;

}


.chv-services-particle-three {

    top: 18%;

    right: 30%;

    animation: chvServicesParticleFloat 7s ease-in-out 2s infinite;

}


/* =========================================================
   FLOATING SERVICE BADGES
   ========================================================= */

.chv-services-floating-item {

    position: absolute;

    z-index: 4;

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 13px 18px;

    border: 1px solid var(--chv-services-border);

    border-radius: var(--chv-services-radius-small);

    background: var(--chv-services-surface);

    backdrop-filter: blur(15px);

    box-shadow: 0 18px 45px var(--chv-services-shadow);

    color: var(--chv-services-text);

    font-size: 13px;

    transition: var(--chv-services-transition);

}


.chv-services-floating-item i {

    color: var(--chv-services-accent);

    font-size: 17px;

}


.chv-services-floating-item:hover {

    border-color: var(--chv-services-border-hover);

    background: var(--chv-services-surface-hover);

    transform: translateY(-7px);

}


.chv-services-float-one {

    left: 4%;

    top: 25%;

    animation: chvServicesBadgeFloat 6s ease-in-out infinite;

}


.chv-services-float-two {

    right: 4%;

    top: 28%;

    animation: chvServicesBadgeFloat 7s ease-in-out 1s infinite;

}


.chv-services-float-three {

    left: 8%;

    bottom: 22%;

    animation: chvServicesBadgeFloat 8s ease-in-out 2s infinite;

}


.chv-services-float-four {

    right: 7%;

    bottom: 20%;

    animation: chvServicesBadgeFloat 6.5s ease-in-out 1.5s infinite;

}

/* =========================================================
   HERO ANIMATIONS
   ========================================================= */

@keyframes chvServicesLabelReveal {

    from {

        opacity: 0;

        transform: translateY(-15px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


@keyframes chvServicesTitleReveal {

    from {

        opacity: 0;

        transform: translateY(35px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


@keyframes chvServicesDescriptionReveal {

    from {

        opacity: 0;

        transform: translateY(25px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


@keyframes chvServicesButtonReveal {

    from {

        opacity: 0;

        transform: translateY(20px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


@keyframes chvServicesBadgeFloat {

    0%,
    100% {

        transform: translateY(0);

    }

    50% {

        transform: translateY(-12px);

    }

}


@keyframes chvServicesParticleFloat {

    0%,
    100% {

        transform: translateY(0);

        opacity: 0.3;

    }

    50% {

        transform: translateY(-25px);

        opacity: 0.8;

    }

}


@keyframes chvServicesGlowMove {

    0%,
    100% {

        transform: translate(0, 0) scale(1);

    }

    50% {

        transform: translate(30px, 20px) scale(1.15);

    }

}

/* ======================================================================================================================================================================================================================= */
/* =========================================================
   SERVICES OVERVIEW SECTION
   ========================================================= */

.chv-services-overview {

    position: relative;

    padding: 120px 0;

    overflow: hidden;

    background: var(--chv-services-bg-secondary);

}


/* =========================================================
   SECTION HEADING
   ========================================================= */

.chv-services-section-heading {

    max-width: 780px;

    margin: 0 auto 70px;

    text-align: center;

}


.chv-services-section-label {

    display: inline-block;

    margin-bottom: 18px;

    color: var(--chv-services-accent);

    font-size: 13px;

    font-weight: 700;

    letter-spacing: 2.5px;

    text-transform: uppercase;

}


.chv-services-section-title {

    margin: 0;

    color: var(--chv-services-text);

    font-size: clamp(36px, 5vw, 58px);

    line-height: 1.15;

    font-weight: 700;

    letter-spacing: -1px;

}


.chv-services-section-title span {

    display: block;

    margin-top: 6px;

    color: var(--chv-services-accent);

}


.chv-services-section-description {

    max-width: 680px;

    margin: 25px auto 0;

    color: var(--chv-services-text-muted);

    font-size: 17px;

    line-height: 30px;

}


/* =========================================================
   SERVICES GRID
   ========================================================= */

.chv-services-list {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 24px;

}


/* =========================================================
   SERVICE CARD
   ========================================================= */

.chv-services-item {

    position: relative;

    display: grid;

    grid-template-columns: 85px 1fr;

    align-items: center;

    gap: 30px;

    min-height: 245px;

    padding: 35px;

    overflow: hidden;

    border: 1px solid var(--chv-services-border);

    border-radius: var(--chv-services-radius-large);

    background: var(--chv-services-surface);

    backdrop-filter: blur(15px);

    box-shadow: 0 15px 45px var(--chv-services-shadow);

    opacity: 0;

    transform: translateY(45px);

    transition:
        opacity 0.7s ease,
        transform 0.7s ease,
        background var(--chv-services-transition),
        border-color var(--chv-services-transition),
        box-shadow var(--chv-services-transition);

}

/* =========================================================
   CARD REVEAL
   ========================================================= */

.chv-services-item.chv-services-item-visible {

    opacity: 1;

    transform: translateY(0);

}


/* =========================================================
   CARD HOVER
   ========================================================= */

.chv-services-item:hover {

    border-color: var(--chv-services-border-hover);

    background: var(--chv-services-surface-hover);

    box-shadow:
        0 25px 65px var(--chv-services-shadow),
        0 0 35px var(--chv-services-glow);

    transform: translateY(-8px);

}


/* =========================================================
   CARD GOLD TOP LINE
   ========================================================= */

.chv-services-item::before {

    content: "";

    position: absolute;

    top: 0;

    left: 0;

    width: 0;

    height: 3px;

    background: var(--chv-services-accent);

    transition: width 0.5s ease;

}


.chv-services-item:hover::before {

    width: 100%;

}


/* =========================================================
   CARD NUMBER
   ========================================================= */

.chv-services-item-number {

    position: absolute;

    top: 20px;

    right: 25px;

    color: var(--chv-services-text);

    opacity: 0.045;

    font-size: 52px;

    line-height: 1;

    font-weight: 800;

    transition:
        color var(--chv-services-transition),
        opacity var(--chv-services-transition);

}


.chv-services-item:hover .chv-services-item-number {

    color: var(--chv-services-accent);

    opacity: 0.12;

}


/* =========================================================
   SERVICE ICON
   ========================================================= */

.chv-services-item-icon {

    position: relative;

    z-index: 2;

    width: 76px;

    height: 76px;

    display: flex;

    align-items: center;

    justify-content: center;

    border: 1px solid var(--chv-services-border);

    border-radius: var(--chv-services-radius-medium);

    background: var(--chv-services-bg);

    color: var(--chv-services-accent);

    font-size: 28px;

    box-shadow: 0 10px 30px var(--chv-services-shadow);

    transition:
        transform 0.45s ease,
        background var(--chv-services-transition),
        color var(--chv-services-transition),
        border-color var(--chv-services-transition);

}


.chv-services-item:hover .chv-services-item-icon {

    transform: rotate(-6deg) scale(1.08);

    border-color: var(--chv-services-accent);

    background: var(--chv-services-accent);

    color: var(--chv-services-bg);

}


/* =========================================================
   ICON LIGHT SWEEP
   ========================================================= */

.chv-services-item-icon::after {

    content: "";

    position: absolute;

    top: -80%;

    left: -120%;

    width: 70%;

    height: 260%;

    background: var(--chv-services-text);

    opacity: 0.15;

    transform: rotate(35deg);

    transition: left 0.7s ease;

}


.chv-services-item:hover .chv-services-item-icon::after {

    left: 150%;

}


/* =========================================================
   SERVICE CONTENT
   ========================================================= */

.chv-services-item-content {

    position: relative;

    z-index: 2;

}


.chv-services-item-content h3 {

    margin: 0 0 12px;

    color: var(--chv-services-text);

    font-size: 23px;

    line-height: 1.3;

    font-weight: 650;

    transition: color var(--chv-services-transition);

}


.chv-services-item:hover .chv-services-item-content h3 {

    color: var(--chv-services-accent);

}


.chv-services-item-content p {

    max-width: 480px;

    margin: 0 0 18px;

    color: var(--chv-services-text-muted);

    font-size: 15px;

    line-height: 27px;

}


/* =========================================================
   SERVICE LINK
   ========================================================= */

.chv-services-item-link {

    display: inline-flex;

    align-items: center;

    gap: 9px;

    color: var(--chv-services-text-soft);

    font-size: 13px;

    font-weight: 600;

    text-decoration: none;

    transition:
        color var(--chv-services-transition),
        gap var(--chv-services-transition);

}


.chv-services-item-link i {

    color: var(--chv-services-accent);

    transition: transform var(--chv-services-transition);

}


.chv-services-item-link:hover {

    color: var(--chv-services-accent);

    gap: 14px;

}


.chv-services-item-link:hover i {

    transform: translateX(4px);

}

/* =========================================================
   SERVICE CARD STAGGER
   ========================================================= */

.chv-services-item:nth-child(1) {

    transition-delay: 0.05s;

}


.chv-services-item:nth-child(2) {

    transition-delay: 0.12s;

}


.chv-services-item:nth-child(3) {

    transition-delay: 0.19s;

}


.chv-services-item:nth-child(4) {

    transition-delay: 0.26s;

}


.chv-services-item:nth-child(5) {

    transition-delay: 0.33s;

}


.chv-services-item:nth-child(6) {

    transition-delay: 0.40s;

}


.chv-services-item:nth-child(7) {

    transition-delay: 0.47s;

}


.chv-services-item:nth-child(8) {

    transition-delay: 0.54s;

}

/* =========================================================
   SERVICES PAGE RESPONSIVE
   ========================================================= */


/* ---------- TABLET ---------- */

@media (max-width: 1100px) {

    .chv-services-floating-item {

        padding: 11px 15px;

        font-size: 12px;

    }

    .chv-services-float-one {

        left: 2%;

    }

    .chv-services-float-two {

        right: 2%;

    }

    .chv-services-float-three {

        left: 3%;

    }

    .chv-services-float-four {

        right: 3%;

    }

    .chv-services-list {

        gap: 20px;

    }

    .chv-services-item {

        grid-template-columns: 65px 75px 1fr;

        gap: 20px;

        padding: 30px;

    }

}


/* ---------- TABLET / SMALL LAPTOP ---------- */

@media (max-width: 991px) {

    .chv-services-hero {

        min-height: 650px;

    }

    .chv-services-hero-content {

        padding: 90px 0;

    }

    .chv-services-floating-item {

        display: none;

    }

    .chv-services-hero-title {

        font-size: clamp(42px, 7vw, 62px);

    }

    .chv-services-list {

        grid-template-columns: 1fr;

    }

    .chv-services-item {

        grid-template-columns: 75px 80px 1fr;

    }

}


/* ---------- MOBILE ---------- */

@media (max-width: 767px) {

    .chv-services-hero {

        min-height: 620px;

    }

    .chv-services-hero-content {

        padding: 80px 20px;

    }

    .chv-services-hero-label {

        font-size: 11px;

        letter-spacing: 2px;

        gap: 10px;

    }

    .chv-services-label-line {

        width: 22px;

    }

    .chv-services-hero-title {

        font-size: 40px;

        letter-spacing: -1px;

        line-height: 1.12;

    }

    .chv-services-hero-description {

        margin-top: 22px;

        font-size: 16px;

        line-height: 28px;

    }

    .chv-services-hero-actions {

        margin-top: 30px;

    }

    .chv-services-hero-button {

        padding: 14px 24px;

        font-size: 14px;

    }


    /* Overview */

    .chv-services-overview {

        padding: 85px 0;

    }

    .chv-services-section-heading {

        margin-bottom: 50px;

        padding: 0 15px;

    }

    .chv-services-section-label {

        font-size: 11px;

        letter-spacing: 2px;

    }

    .chv-services-section-title {

        font-size: 35px;

        line-height: 1.2;

    }

    .chv-services-section-description {

        font-size: 15px;

        line-height: 27px;

    }


    /* Cards */

    .chv-services-list {

        padding: 0 15px;

        gap: 18px;

    }

    .chv-services-item {

        display: block;

        min-height: auto;

        padding: 30px 25px;

        border-radius: var(--chv-services-radius-medium);

    }

    .chv-services-item-icon {

        width: 65px;

        height: 65px;

        margin-bottom: 25px;

        font-size: 24px;

    }

    .chv-services-item-content h3 {

        font-size: 21px;

    }

    .chv-services-item-content p {

        font-size: 14px;

        line-height: 25px;

    }

    .chv-services-item-number {

        top: 18px;

        right: 20px;

        font-size: 42px;

    }

}


/* ---------- SMALL MOBILE ---------- */

@media (max-width: 480px) {

    .chv-services-hero {

        min-height: 580px;

    }

    .chv-services-hero-content {

        padding: 70px 16px;

    }

    .chv-services-hero-title {

        font-size: 34px;

    }

    .chv-services-hero-description {

        font-size: 15px;

        line-height: 26px;

    }

    .chv-services-section-title {

        font-size: 30px;

    }

    .chv-services-item {

        padding: 27px 22px;

    }

}

/* ============================================================================================================================================== */
/* =========================================================
   CHAVO SERVICES — PROCESS SECTION
   ========================================================= */

.chv-services-process {

    position: relative;

    padding: 120px 0;

    overflow: hidden;

    background: var(--chv-services-bg);

}


/* =========================================================
   SECTION HEADING
   ========================================================= */

.chv-services-process-heading {

    max-width: 760px;

    margin: 0 auto 80px;

    text-align: center;

}


.chv-services-process-label {

    display: inline-block;

    margin-bottom: 18px;

    color: var(--chv-services-accent);

    font-size: 13px;

    font-weight: 700;

    letter-spacing: 2.5px;

    text-transform: uppercase;

}


.chv-services-process-title {

    margin: 0;

    color: var(--chv-services-text);

    font-size: clamp(38px, 5vw, 58px);

    line-height: 1.12;

    font-weight: 700;

    letter-spacing: -1px;

}


.chv-services-process-title span {

    display: block;

    color: var(--chv-services-accent);

}


.chv-services-process-description {

    max-width: 650px;

    margin: 25px auto 0;

    color: var(--chv-services-text-muted);

    font-size: 17px;

    line-height: 30px;

}


/* =========================================================
   PROCESS TRACK
   ========================================================= */

.chv-services-process-track {

    position: relative;

    display: grid;

    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;

    align-items: start;

    gap: 0;

}


/* =========================================================
   PROCESS STEP
   ========================================================= */

.chv-services-process-step {

    position: relative;

    z-index: 2;

    text-align: center;

    padding: 0 18px;

    opacity: 0;

    transform: translateY(40px);

    transition:
        opacity 0.7s ease,
        transform 0.7s ease;

}


.chv-services-process-step.chv-services-process-visible {

    opacity: 1;

    transform: translateY(0);

}


/* =========================================================
   STEP NUMBER
   ========================================================= */

.chv-services-process-number {

    margin-bottom: 18px;

    color: var(--chv-services-accent);

    font-size: 13px;

    font-weight: 700;

    letter-spacing: 2px;

    transition: transform var(--chv-services-transition);

}


.chv-services-process-step:hover
.chv-services-process-number {

    transform: translateY(-4px);

}


/* =========================================================
   STEP ICON
   ========================================================= */

.chv-services-process-icon {

    position: relative;

    width: 82px;

    height: 82px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 25px;

    border: 1px solid var(--chv-services-border);

    border-radius: 50%;

    background: var(--chv-services-surface);

    color: var(--chv-services-accent);

    font-size: 27px;

    box-shadow:
        0 15px 35px var(--chv-services-shadow);

    transition:
        transform var(--chv-services-transition),
        background var(--chv-services-transition),
        border-color var(--chv-services-transition),
        color var(--chv-services-transition),
        box-shadow var(--chv-services-transition);

}


.chv-services-process-step:hover
.chv-services-process-icon {

    transform: translateY(-8px) scale(1.08);

    background: var(--chv-services-accent);

    border-color: var(--chv-services-accent);

    color: var(--chv-services-bg);

    box-shadow:
        0 20px 45px var(--chv-services-glow);

}


/* =========================================================
   STEP TITLE
   ========================================================= */

.chv-services-process-step h3 {

    margin: 0 0 12px;

    color: var(--chv-services-text);

    font-size: 21px;

    font-weight: 700;

    transition: color var(--chv-services-transition);

}


.chv-services-process-step:hover h3 {

    color: var(--chv-services-accent);

}


/* =========================================================
   STEP DESCRIPTION
   ========================================================= */

.chv-services-process-step p {

    max-width: 190px;

    margin: 0 auto;

    color: var(--chv-services-text-muted);

    font-size: 14px;

    line-height: 25px;

}


/* =========================================================
   CONNECTING LINE
   ========================================================= */

.chv-services-process-connector {

    position: relative;

    width: 90px;

    height: 1px;

    margin-top: 108px;

    background: var(--chv-services-border);

    overflow: hidden;

}


.chv-services-process-connector::after {

    content: "";

    position: absolute;

    top: 0;

    left: -100%;

    width: 100%;

    height: 100%;

    background: var(--chv-services-accent);

    animation: chvServicesProcessLine 4s linear infinite;

}


/* =========================================================
   BOTTOM CTA
   ========================================================= */

.chv-services-process-cta {

    position: relative;

    max-width: 850px;

    margin: 100px auto 0;

    padding: 55px 40px;

    text-align: center;

    border: 1px solid var(--chv-services-border);

    border-radius: var(--chv-services-radius-large);

    background: var(--chv-services-surface);

    box-shadow:
        0 20px 60px var(--chv-services-shadow);

    overflow: hidden;

}


.chv-services-process-cta::before {

    content: "";

    position: absolute;

    width: 260px;

    height: 260px;

    top: -170px;

    left: 50%;

    transform: translateX(-50%);

    border-radius: 50%;

    background: var(--chv-services-glow);

    filter: blur(60px);

    pointer-events: none;

}


.chv-services-process-cta h3 {

    position: relative;

    margin: 0 0 12px;

    color: var(--chv-services-text);

    font-size: clamp(25px, 3vw, 34px);

    font-weight: 700;

}


.chv-services-process-cta p {

    position: relative;

    margin: 0 auto 28px;

    color: var(--chv-services-text-muted);

    font-size: 16px;

    line-height: 28px;

}


/* =========================================================
   CTA BUTTON
   ========================================================= */

.chv-services-process-button {

    position: relative;

    display: inline-flex;

    align-items: center;

    gap: 12px;

    padding: 15px 28px;

    border: 1px solid var(--chv-services-accent);

    border-radius: 50px;

    background: var(--chv-services-accent);

    color: var(--chv-services-bg);

    font-size: 14px;

    font-weight: 700;

    text-decoration: none;

    transition:
        transform var(--chv-services-transition),
        background var(--chv-services-transition),
        box-shadow var(--chv-services-transition);

}


.chv-services-process-button i {

    transition: transform var(--chv-services-transition);

}


.chv-services-process-button:hover {

    transform: translateY(-4px);

    background: var(--chv-services-accent-light);

    box-shadow:
        0 15px 35px var(--chv-services-glow);

}


.chv-services-process-button:hover i {

    transform: translateX(5px);

}


/* =========================================================
   PROCESS ANIMATION
   ========================================================= */

@keyframes chvServicesProcessLine {

    0% {

        left: -100%;

    }

    45% {

        left: 100%;

    }

    100% {

        left: 100%;

    }

}


/* =========================================================
   STAGGERED STEP ANIMATION
   ========================================================= */

.chv-services-process-step:nth-child(1) {

    transition-delay: 0.05s;

}


.chv-services-process-step:nth-child(3) {

    transition-delay: 0.20s;

}


.chv-services-process-step:nth-child(5) {

    transition-delay: 0.35s;

}


.chv-services-process-step:nth-child(7) {

    transition-delay: 0.50s;

}
/* =========================================================
   PROCESS SECTION — RESPONSIVE
   ========================================================= */

@media (max-width: 1100px) {

    .chv-services-process-track {

        grid-template-columns: 1fr auto 1fr;

        row-gap: 70px;

    }

    .chv-services-process-track
    .chv-services-process-connector:nth-of-type(2) {

        display: none;

    }

    .chv-services-process-track
    .chv-services-process-connector:nth-of-type(4) {

        display: none;

    }

}


@media (max-width: 767px) {

    .chv-services-process {

        padding: 85px 0;

    }


    .chv-services-process-heading {

        padding: 0 15px;

        margin-bottom: 60px;

    }


    .chv-services-process-title {

        font-size: 35px;

    }


    .chv-services-process-description {

        font-size: 15px;

        line-height: 27px;

    }


    .chv-services-process-track {

        display: flex;

        flex-direction: column;

        align-items: center;

        gap: 0;

    }


    .chv-services-process-step {

        width: 100%;

        max-width: 330px;

        padding: 0;

        margin-bottom: 55px;

    }


    .chv-services-process-step p {

        max-width: 260px;

    }


    .chv-services-process-connector {

        display: block !important;

        width: 1px;

        height: 55px;

        margin: -55px 0 55px;

    }


    .chv-services-process-connector::after {

        width: 100%;

        height: 100%;

        left: 0;

        top: -100%;

        animation: chvServicesProcessLineVertical 3s linear infinite;

    }


    .chv-services-process-cta {

        margin: 35px 15px 0;

        padding: 45px 25px;

    }


    .chv-services-process-cta p {

        font-size: 15px;

        line-height: 26px;

    }

}


@media (max-width: 480px) {

    .chv-services-process-title {

        font-size: 30px;

    }


    .chv-services-process-icon {

        width: 72px;

        height: 72px;

        font-size: 24px;

    }


    .chv-services-process-cta {

        padding: 40px 20px;

    }

}


@keyframes chvServicesProcessLineVertical {

    0% {

        top: -100%;

    }

    45% {

        top: 100%;

    }

    100% {

        top: 100%;

    }

}