/* ======================================================
   PD GROUP — FINANCIAL SERVICES / OUTSTANDING
   ====================================================== */

body.page-id-68 {
    overflow-x: clip;

    --finx-h1:
        clamp(3rem, 5.2vw, 5.2rem);

    --finx-h2:
        clamp(2.15rem, 3.4vw, 3.2rem);

    --finx-h3:
        clamp(1.15rem, 1.55vw, 1.4rem);

    --finx-body:
        clamp(.9rem, .15vw + .86rem, 1rem);

    background:
        #fff;
}


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

.finx-hero {
    position: relative;

    isolation: isolate;

    overflow: hidden;

    padding:
        88px 0 92px;

    background:
        linear-gradient(
            126deg,
            #061d0d 0%,
            #0b3117 48%,
            #195227 100%
        );
}

.finx-hero::before {
    content: "";

    position: absolute;

    inset: 0;

    z-index: -3;

    opacity: .24;

    background-image:
        linear-gradient(
            rgba(255,255,255,.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.025) 1px,
            transparent 1px
        );

    background-size:
        56px 56px;
}

.finx-orb {
    position: absolute;

    z-index: -2;

    border-radius: 50%;

    pointer-events: none;
}

.finx-orb-one {
    top: -220px;
    right: 5%;

    width: 500px;
    height: 500px;

    background:
        radial-gradient(
            circle,
            rgba(198,161,91,.22),
            rgba(198,161,91,0) 68%
        );

    animation:
        finxOrbOne 15s ease-in-out infinite;
}

.finx-orb-two {
    left: -160px;
    bottom: -260px;

    width: 500px;
    height: 500px;

    background:
        radial-gradient(
            circle,
            rgba(255,255,255,.08),
            transparent 70%
        );

    animation:
        finxOrbTwo 17s ease-in-out infinite;
}

.finx-hero-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(310px, .75fr);

    align-items: center;

    gap: 90px;
}

.finx-hero-copy h1 {
    max-width: 760px;

    margin-bottom: 23px;

    color: #fff;

    font-size:
        var(--finx-h1);

    line-height: .96;

    letter-spacing: -.055em;
}

.finx-hero-copy h1 span {
    display: block;

    color:
        #d7c18f;
}

.finx-hero-copy > p {
    max-width: 640px;

    margin-bottom: 30px;

    color:
        rgba(255,255,255,.73);

    font-size:
        var(--finx-body);

    line-height: 1.72;
}

.finx-hero-actions {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 20px;
}

.finx-text-link {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    color:
        rgba(255,255,255,.84);

    font-size: .85rem;

    font-weight: 700;
}

.finx-text-link span {
    transition:
        transform .2s ease;
}

.finx-text-link:hover {
    color: #fff;
}

.finx-text-link:hover span {
    transform:
        translate(3px, 3px);
}


/* HERO CARD */

.finx-hero-card {
    overflow: hidden;

    padding:
        28px;

    background:
        rgba(255,255,255,.975);

    border:
        1px solid rgba(255,255,255,.75);

    border-radius:
        22px;

    box-shadow:
        0 35px 90px rgba(0,0,0,.23);
}

.finx-card-kicker {
    margin-bottom:
        14px;

    color:
        var(--green);

    font-size:
        .65rem;

    font-weight:
        800;

    letter-spacing:
        .12em;
}

.finx-overview-row {
    display: grid;

    grid-template-columns:
        30px 1fr;

    align-items: center;

    gap: 12px;

    min-height:
        59px;

    border-top:
        1px solid var(--line);
}

.finx-overview-row > span {
    display: grid;

    place-items: center;

    width: 28px;
    height: 28px;

    border-radius: 50%;

    background:
        var(--green-soft);

    color:
        var(--green);

    font-size:
        .62rem;

    font-weight:
        800;
}

.finx-overview-row strong,
.finx-overview-row small {
    display: block;
}

.finx-overview-row strong {
    color:
        var(--ink);

    font-size:
        .83rem;
}

.finx-overview-row small {
    margin-top:
        2px;

    color:
        var(--muted);

    font-size:
        .7rem;
}


/* ======================================================
   INTRO STRIP
   ====================================================== */

.finx-intro-strip {
    background:
        #fff;

    border-bottom:
        1px solid var(--line);
}

.finx-intro-grid {
    display: grid;

    grid-template-columns:
        .55fr 1.6fr .7fr;

    align-items: center;

    gap: 35px;

    min-height:
        86px;
}

.finx-intro-grid > span {
    color:
        var(--green);

    font-size:
        .64rem;

    font-weight:
        800;

    letter-spacing:
        .1em;
}

.finx-intro-grid p {
    margin: 0;

    color:
        var(--text);

    font-size:
        .88rem;
}

.finx-intro-grid a {
    justify-self: end;

    color:
        var(--green);

    font-size:
        .8rem;

    font-weight:
        750;
}


/* ======================================================
   SECTION HEADINGS
   ====================================================== */

.finx-section-heading {
    display: flex;

    align-items: end;
    justify-content: space-between;

    gap: 55px;

    margin-bottom:
        38px;
}

.finx-section-heading h2 {
    max-width: 690px;

    margin-bottom: 0;

    font-size:
        var(--finx-h2);

    line-height:
        1.03;

    letter-spacing:
        -.045em;
}

.finx-section-heading h2 span {
    color:
        var(--green);
}

.finx-section-heading > p {
    max-width:
        400px;

    margin-bottom:
        4px;

    color:
        var(--muted);

    font-size:
        .9rem;

    line-height:
        1.65;
}


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

.finx-services {
    padding:
        80px 0 86px;

    background:
        #f7faf8;
}

.finx-service-grid {
    display: grid;

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

    gap: 19px;
}

.finx-service-card {
    position: relative;

    display: flex;

    flex-direction: column;

    min-height:
        350px;

    padding:
        28px;

    overflow: hidden;

    background:
        #fff;

    border:
        1px solid #dce5de;

    border-radius:
        20px;

    box-shadow:
        0 12px 30px rgba(13,55,26,.045);

    transition:
        transform .28s ease,
        border-color .28s ease,
        box-shadow .28s ease;
}

.finx-service-card::after {
    content: "";

    position: absolute;

    right: -60px;
    bottom: -70px;

    width: 160px;
    height: 160px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(25,82,39,.055),
            transparent 70%
        );

    pointer-events: none;
}

.finx-service-card-featured {
    border-top:
        4px solid var(--gold);

    background:
        linear-gradient(
            180deg,
            rgba(198,161,91,.07),
            #fff 25%
        );
}

.finx-service-card:hover {
    transform:
        translateY(-7px);

    border-color:
        rgba(25,82,39,.24);

    box-shadow:
        0 25px 58px rgba(13,55,26,.11);
}

.finx-service-top {
    display: flex;

    align-items: center;
    justify-content: space-between;

    margin-bottom:
        30px;
}

.finx-service-number {
    color:
        rgba(25,82,39,.55);

    font-size:
        1.35rem;

    font-weight:
        350;
}

.finx-service-icon {
    display: grid;

    place-items: center;

    width: 48px;
    height: 48px;

    background:
        var(--green-soft);

    border-radius:
        13px;
}

.finx-service-card-featured
.finx-service-icon {
    background:
        var(--gold-soft);
}

.finx-service-icon svg {
    width: 23px;
    height: 23px;

    fill: none;

    stroke:
        var(--green);

    stroke-width:
        1.65;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;
}

.finx-service-type {
    display: block;

    margin-bottom:
        8px;

    color:
        var(--green);

    font-size:
        .62rem;

    font-weight:
        800;

    letter-spacing:
        .1em;
}

.finx-service-card h3 {
    margin-bottom:
        12px;

    font-size:
        var(--finx-h3);
}

.finx-service-card p {
    margin-bottom:
        24px;

    color:
        var(--muted);

    font-size:
        .87rem;

    line-height:
        1.67;
}

.finx-service-card > a {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 15px;

    margin-top: auto;

    padding-top:
        18px;

    border-top:
        1px solid var(--line);

    color:
        var(--green);

    font-size:
        .82rem;

    font-weight:
        750;
}

.finx-service-card > a span {
    transition:
        transform .2s ease;
}

.finx-service-card:hover > a span {
    transform:
        translateX(4px);
}


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

.finx-process {
    padding:
        76px 0;

    background:
        #fff;
}

.finx-process-layout {
    display: grid;

    grid-template-columns:
        .8fr 1.2fr;

    gap:
        90px;
}

.finx-process-heading {
    max-width:
        450px;
}

.finx-process-heading h2 {
    margin-bottom:
        16px;

    font-size:
        var(--finx-h2);
}

.finx-process-heading > p {
    color:
        var(--muted);

    line-height:
        1.7;
}

.finx-process-steps {
    border-top:
        1px solid var(--line);
}

.finx-process-step {
    display: grid;

    grid-template-columns:
        54px 1fr;

    gap:
        22px;

    padding:
        24px 0;

    border-bottom:
        1px solid var(--line);
}

.finx-process-step > span {
    display: grid;

    place-items: center;

    width: 38px;
    height: 38px;

    background:
        var(--green-soft);

    border-radius:
        50%;

    color:
        var(--green);

    font-size:
        .68rem;

    font-weight:
        800;
}

.finx-process-step h3 {
    margin-bottom:
        6px;

    font-size:
        var(--finx-h3);
}

.finx-process-step p {
    margin: 0;

    color:
        var(--muted);

    font-size:
        .86rem;

    line-height:
        1.62;
}


/* ======================================================
   COACHING
   ====================================================== */

.finx-coaching {
    position: relative;

    overflow: hidden;

    padding:
        78px 0;

    background:
        linear-gradient(
            130deg,
            #092812,
            #164c25
        );
}

.finx-coaching-grid {
    display: grid;

    grid-template-columns:
        .8fr 1.2fr;

    align-items: center;

    gap:
        95px;
}

.finx-coaching-art {
    position: relative;

    display: grid;

    place-items: center;

    min-height:
        280px;
}

.finx-coaching-core {
    display: grid;

    place-items: center;

    width: 150px;
    height: 150px;

    border-radius: 50%;

    background:
        rgba(255,255,255,.06);

    border:
        1px solid rgba(255,255,255,.13);

    box-shadow:
        0 0 0 32px rgba(255,255,255,.02);
}

.finx-coaching-core span {
    color:
        #fff;

    font-size:
        3rem;

    font-weight:
        750;
}

.finx-coaching-ring {
    position: absolute;

    border:
        1px solid rgba(198,161,91,.17);

    border-radius:
        50%;
}

.ring-one {
    width: 200px;
    height: 200px;
}

.ring-two {
    width: 270px;
    height: 180px;
}

.ring-three {
    width: 335px;
    height: 135px;
}

.finx-coaching-copy {
    max-width:
        680px;
}

.finx-coaching-copy h2 {
    margin-bottom:
        17px;

    color:
        #fff;

    font-size:
        var(--finx-h2);

    line-height:
        1.05;
}

.finx-coaching-copy p {
    margin-bottom:
        26px;

    color:
        rgba(255,255,255,.69);

    line-height:
        1.72;
}


/* ======================================================
   FINAL CTA
   ====================================================== */

.finx-final {
    padding:
        60px 0;

    background:
        linear-gradient(
            120deg,
            #f8f6ef,
            #f5f8f5
        );

    border-bottom:
        1px solid var(--line);
}

.finx-final-inner {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap:
        60px;
}

.finx-final h2 {
    margin-bottom:
        8px;

    font-size:
        var(--finx-h2);
}

.finx-final p {
    margin-bottom: 0;

    color:
        var(--muted);
}

.finx-final-button {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 32px;

    min-width:
        270px;

    min-height:
        62px;

    padding:
        0 20px;

    background:
        var(--green);

    color:
        #fff;

    font-size:
        .84rem;

    font-weight:
        750;

    box-shadow:
        0 14px 32px rgba(25,82,39,.13);

    transition:
        transform .2s ease,
        background .2s ease;
}

.finx-final-button:hover {
    transform:
        translateY(-2px);

    background:
        var(--green-dark);

    color:
        #fff;
}

.finx-final-button b {
    font-size:
        1.15rem;
}


/* ======================================================
   HIDE GLOBAL TAX CTA HERE ONLY
   ====================================================== */

html body.page-id-68
section.pd-prefooter {
    display:
        none !important;
}


/* ======================================================
   FOOTER
   ====================================================== */

body.page-id-68
.pd-footer {
    padding-top:
        58px;
}


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

.finx-reveal {
    opacity: 0;

    transform:
        translateY(22px);

    transition:
        opacity .7s ease,
        transform .7s ease;
}

.finx-reveal.is-visible {
    opacity: 1;

    transform:
        translateY(0);
}


/* ======================================================
   TABLET
   ====================================================== */

@media (max-width: 950px) {

    body.page-id-68 {
        --finx-h1:
            clamp(2.7rem, 7vw, 4.2rem);

        --finx-h2:
            clamp(1.95rem, 5vw, 2.65rem);
    }

    .finx-hero-grid,
    .finx-process-layout,
    .finx-coaching-grid {
        grid-template-columns:
            1fr;
    }

    .finx-hero-grid,
    .finx-process-layout,
    .finx-coaching-grid {
        gap:
            45px;
    }

    .finx-hero-card {
        max-width:
            620px;
    }

    .finx-intro-grid {
        grid-template-columns:
            1fr;
        gap:
            8px;

        padding:
            18px 0;
    }

    .finx-intro-grid a {
        justify-self:
            start;
    }

    .finx-section-heading {
        display:
            block;
    }

    .finx-section-heading > p {
        margin-top:
            15px;
    }

    .finx-service-grid {
        grid-template-columns:
            repeat(2,1fr);
    }

    .finx-service-card:last-child {
        grid-column:
            1 / -1;

        max-width:
            calc(50% - 10px);
    }
}


/* ======================================================
   MOBILE
   ====================================================== */

@media (max-width: 600px) {

    body.page-id-68 {
        --finx-h1:
            2.55rem;

        --finx-h2:
            2rem;

        --finx-h3:
            1.12rem;
    }

    .finx-hero {
        padding:
            54px 0 58px;
    }

    .finx-hero-copy h1 {
        line-height:
            1;
    }

    .finx-hero-actions {
        align-items:
            stretch;

        flex-direction:
            column;
    }

    .finx-services {
        padding:
            58px 0;
    }

    .finx-service-grid {
        grid-template-columns:
            1fr;
    }

    .finx-service-card,
    .finx-service-card:last-child {
        grid-column:
            auto;

        max-width:
            none;

        min-height:
            0;

        padding:
            23px;
    }

    .finx-process {
        padding:
            54px 0;
    }

    .finx-process-step {
        grid-template-columns:
            44px 1fr;

        gap:
            15px;
    }

    .finx-coaching {
        padding:
            56px 0;
    }

    .finx-coaching-art {
        min-height:
            210px;
    }

    .finx-final {
        padding:
            48px 0;
    }

    .finx-final-inner {
        align-items:
            stretch;

        flex-direction:
            column;
    }

    .finx-final-button {
        width:
            100%;

        min-width:
            0;
    }
}


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

@keyframes finxOrbOne {

    0%,
    100% {
        transform:
            translate3d(0,0,0)
            scale(1);
    }

    50% {
        transform:
            translate3d(-30px,20px,0)
            scale(1.08);
    }
}

@keyframes finxOrbTwo {

    0%,
    100% {
        transform:
            translate3d(0,0,0)
            scale(1);
    }

    50% {
        transform:
            translate3d(24px,-18px,0)
            scale(1.07);
    }
}

@media (prefers-reduced-motion: reduce) {

    .finx-orb {
        animation:
            none !important;
    }

    .finx-reveal {
        opacity:
            1 !important;

        transform:
            none !important;

        transition:
            none !important;
    }
}
