/* =========================================
   JRWEBCO
========================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #000;
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    overflow-x: hidden;
}


/* =========================================
   INTRO
========================================= */

.intro-screen {
    position: fixed;
    inset: 0;

    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        radial-gradient(
            circle at center,
            #111720 0%,
            #050608 45%,
            #000 78%
        );

    overflow: hidden;

    opacity: 1;
    visibility: visible;

    transition:
        opacity 0.75s ease,
        visibility 0.75s ease;
}


/* JS adds this class */

.intro-screen.intro-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}


.intro-glow {
    position: absolute;

    width: 520px;
    height: 520px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(200, 220, 255, 0.16) 0%,
            rgba(120, 165, 255, 0.07) 35%,
            transparent 70%
        );

    filter: blur(25px);

    animation:
        glowPulse 2s ease-in-out;
}


.intro-logo {
    position: relative;

    z-index: 2;

    width: min(650px, 72vw);
    height: auto;

    opacity: 0;

    transform:
        translate3d(0, 15px, 0)
        scale(0.86);

    animation:
        introLogo 2.15s
        cubic-bezier(.16,.8,.25,1)
        forwards;

    filter:
        drop-shadow(
            0 0 20px
            rgba(255,255,255,.16)
        )
        drop-shadow(
            0 0 55px
            rgba(150,190,255,.13)
        );
}


@keyframes introLogo {

    0% {
        opacity: 0;

        transform:
            translate3d(0, 15px, 0)
            scale(.86);

        filter:
            blur(7px);
    }

    25% {
        opacity: 1;

        transform:
            translate3d(0, 0, 0)
            scale(1);

        filter:
            blur(0)
            drop-shadow(
                0 0 25px
                rgba(255,255,255,.20)
            );
    }

    72% {
        opacity: 1;

        transform:
            translate3d(0, 0, 0)
            scale(1.02);
    }

    100% {
        opacity: 0;

        transform:
            translate3d(0, -5px, 0)
            scale(1.07);

        filter:
            blur(3px);
    }
}


@keyframes glowPulse {

    0% {
        opacity: 0;
        transform: scale(.75);
    }

    40% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: scale(1.2);
    }
}


/* =========================================
   HERO
========================================= */

.hero {
    position: relative;

    min-height: 100vh;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 50% 60%,
            #181818 0%,
            #070707 38%,
            #000 72%
        );
}


/* =========================================
   SPACE
========================================= */

.space {
    position: absolute;
    inset: 0;

    z-index: 0;

    overflow: hidden;
}


.stars {
    position: absolute;

    inset: -20%;

    opacity: .7;

    background-image:
        radial-gradient(
            circle,
            rgba(255,255,255,.9) 1px,
            transparent 1px
        ),
        radial-gradient(
            circle,
            rgba(255,255,255,.5) 1px,
            transparent 1px
        );

    background-size:
        90px 90px,
        140px 140px;

    background-position:
        0 0,
        45px 60px;

    animation:
        starsMove 35s linear infinite;

    will-change: transform;
}


@keyframes starsMove {

    from {
        transform:
            translate3d(0, 0, 0);
    }

    to {
        transform:
            translate3d(0, 100px, 0);
    }
}


/* =========================================
   EARTH
========================================= */

#earth-container {
    position: absolute;

    left: 50%;
    top: 52%;

    width: min(760px, 75vw);
    height: min(760px, 75vw);

    transform:
        translate(-50%, -50%);

    z-index: 1;

    pointer-events: none;

    filter:
        drop-shadow(
            0 0 35px
            rgba(255,255,255,.10)
        );
}


#earth-container canvas {
    display: block;

    width: 100% !important;
    height: 100% !important;
}


/* =========================================
   NAV
========================================= */

.navbar {
    position: relative;

    z-index: 10;

    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 28px 5%;

    opacity: 0;

    transform:
        translate3d(0, 12px, 0);
}


body.hero-ready .navbar {
    animation:
        revealElement .8s ease forwards;
}


.brand {
    font-size: 20px;
    font-weight: 800;

    letter-spacing: 2px;
}


.nav-links {
    display: flex;

    gap: 38px;
}


.nav-links a {
    color: #aaa;

    text-decoration: none;

    font-size: 12px;

    letter-spacing: 2px;

    transition:
        color .3s ease;
}


.nav-links a:hover {
    color: #fff;
}


.nav-button {
    padding: 13px 20px;

    color: #000;

    background: #fff;

    border-radius: 50px;

    text-decoration: none;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 1px;

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}


.nav-button:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 0 25px
        rgba(255,255,255,.35);
}


/* =========================================
   HERO CONTENT
========================================= */

.hero-content {
    position: relative;

    z-index: 5;

    min-height:
        calc(100vh - 100px);

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    text-align: center;

    padding:
        40px 20px 100px;

    opacity: 0;

    transform:
        translate3d(0, 18px, 0);
}


body.hero-ready .hero-content {
    animation:
        revealElement 1s ease
        .15s forwards;
}


@keyframes revealElement {

    to {
        opacity: 1;

        transform:
            translate3d(0, 0, 0);
    }
}


.hero-label {
    margin-bottom: 25px;

    color: #8d8d8d;

    font-size: 10px;

    letter-spacing: 5px;
}


/* =========================================
   TITLE
========================================= */

.hero-title {
    font-size: clamp(55px, 8vw, 125px);
    line-height: .84;
    letter-spacing: -5px;
    font-weight: 900;

    position: relative;
    z-index: 8;

    color: transparent;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #dce8f8 16%,
            #7f91aa 32%,
            #f8fbff 47%,
            #4b586b 60%,
            #c8d8ed 76%,
            #ffffff 100%
        );

    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;

    -webkit-text-stroke:
        1px rgba(230, 242, 255, .35);

    filter:
        drop-shadow(0 2px 0 rgba(255,255,255,.30))
        drop-shadow(0 7px 0 rgba(45,58,78,.65))
        drop-shadow(0 13px 12px rgba(0,0,0,.65))
        drop-shadow(0 0 18px rgba(160,205,255,.28));

transform: translate3d(0, 0, 0);
transform-style: preserve-3d;
backface-visibility: hidden;
will-change: transform;
}


body.hero-ready .hero-title {
    animation:
        titleFloat 12s
        linear
        1.2s infinite;
}


.hero-title span {
    color: transparent;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #8d8d8d 20%,
            #ffffff 38%,
            #444444 52%,
            #f5f5f5 70%,
            #777777 84%,
            #ffffff 100%
        );

    background-clip: text;

    -webkit-background-clip: text;

    -webkit-text-fill-color:
        transparent;

    filter:
        drop-shadow(
            0 0 18px
            rgba(255,255,255,.12)
        );
}


@keyframes titleFloat {

    0% {
        transform:
            translate3d(
                var(--mouse-x, 0px),
                var(--mouse-y, 0px),
                0
            )
            rotateZ(0deg);
    }

    25% {
        transform:
            translate3d(
                calc(var(--mouse-x, 0px) - 2px),
                calc(var(--mouse-y, 0px) - 4px),
                0
            )
            rotateZ(-0.08deg);
    }

    50% {
        transform:
            translate3d(
                calc(var(--mouse-x, 0px) + 1px),
                calc(var(--mouse-y, 0px) - 7px),
                0
            )
            rotateZ(0deg);
    }

    75% {
        transform:
            translate3d(
                calc(var(--mouse-x, 0px) + 3px),
                calc(var(--mouse-y, 0px) - 3px),
                0
            )
            rotateZ(0.08deg);
    }

    100% {
        transform:
            translate3d(
                var(--mouse-x, 0px),
                var(--mouse-y, 0px),
                0
            )
            rotateZ(0deg);
    }

}


/* =========================================
   DESCRIPTION
========================================= */

.hero-description {
    max-width: 500px;

    margin-top: 30px;

    color: #aaa;

    font-size: 15px;

    line-height: 1.7;
}


/* =========================================
   HERO BUTTON
========================================= */

.hero-button {
    margin-top: 35px;

    display: inline-flex;

    align-items: center;

    gap: 25px;

    padding: 16px 25px;

    border:
        1px solid
        rgba(255,255,255,.25);

    border-radius: 50px;

    color: #fff;

    text-decoration: none;

    font-size: 11px;

    letter-spacing: 2px;

    backdrop-filter:
        blur(10px);

    transition:
        background .35s ease,
        color .35s ease,
        transform .35s ease;
}


.hero-button:hover {
    background: #fff;

    color: #000;

    transform:
        translateY(-3px);
}


/* =========================================
   SCROLL TEXT
========================================= */

.scroll-text {
    position: absolute;

    z-index: 5;

    left: 5%;
    bottom: 25px;

    color: #666;

    font-size: 9px;

    letter-spacing: 4px;

    writing-mode:
        vertical-rl;

    opacity: 0;
}


body.hero-ready .scroll-text {
    animation:
        revealElement
        .9s ease
        .45s forwards;
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 768px) {

    .navbar {
        padding:
            22px 20px;
    }

    .nav-links {
        display: none;
    }

    .nav-button {
        padding:
            11px 14px;

        font-size: 9px;
    }

    #earth-container {
        width: 600px;
        height: 600px;

        max-width: 145vw;
        max-height: 145vw;

        top: 50%;
    }

    .hero-title {
        letter-spacing: -3px;
    }

    .hero-description {
        max-width: 330px;

        font-size: 13px;
    }

    .scroll-text {
        display: none;
    }

    .intro-logo {
        width: 88vw;
    }

    .intro-glow {
        width: 330px;
        height: 330px;
    }
}

/* ==================================================
   SELECTED WORK
================================================== */

.work-section {
    position: relative;
    z-index: 10;

    min-height: 100vh;
    padding: 150px 6vw 180px;

    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(60, 85, 120, 0.10),
            transparent 35%
        ),
        #030303;

    color: white;
    overflow: hidden;
}


/* línea superior */

.work-section::before {
    content: "";
    position: absolute;

    top: 0;
    left: 6vw;
    right: 6vw;

    height: 1px;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.35),
        transparent
    );
}


/* ==================================================
   HEADING
================================================== */

.work-heading {
    max-width: 1400px;
    margin: 0 auto 120px;
}

.work-number {
    margin-bottom: 30px;

    font-size: 10px;
    letter-spacing: 5px;

    color: rgba(255,255,255,.45);
}

.work-heading h2 {
    font-size: clamp(55px, 8vw, 125px);
    line-height: .85;

    letter-spacing: -6px;
    font-weight: 900;
}

.work-heading h2 span {
    color: transparent;

    background: linear-gradient(
        180deg,
        #ffffff 0%,
        #d8d8d8 20%,
        #777777 42%,
        #ffffff 58%,
        #555555 78%,
        #eeeeee 100%
    );

    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;

    filter:
        drop-shadow(0 8px 12px rgba(0,0,0,.55))
        drop-shadow(0 0 15px rgba(180,210,255,.12));
}

.work-intro {
    max-width: 470px;

    margin-top: 40px;
    margin-left: auto;

    font-size: 14px;
    line-height: 1.8;

    color: rgba(255,255,255,.55);
}


/* ==================================================
   PROJECTS
================================================== */

.projects {
    max-width: 1400px;
    margin: auto;

    display: flex;
    flex-direction: column;

    gap: 150px;
}


/* ==================================================
   PROJECT CARD
================================================== */

.project-card {
    position: relative;
}

.project-top {
    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 0 2px 18px;

    border-bottom:
        1px solid rgba(255,255,255,.15);

    font-size: 9px;
    letter-spacing: 3px;

    color: rgba(255,255,255,.45);
}


/* ==================================================
   PROJECT PREVIEW
================================================== */

.project-preview {
    position: relative;

    height: clamp(420px, 65vw, 760px);

    margin-top: 20px;

    overflow: hidden;

    border: 1px solid rgba(255,255,255,.12);

    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(100,130,170,.15),
            transparent 40%
        ),
        #080808;

    transition:
        transform .8s cubic-bezier(.16,.8,.25,1),
        border-color .5s ease;
}

.project-preview::after {
    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(
        120deg,
        transparent 30%,
        rgba(255,255,255,.06),
        transparent 70%
    );

    transform: translateX(-100%);

    transition:
        transform 1s cubic-bezier(.16,.8,.25,1);
}

.project-card:hover .project-preview {
    transform: scale(.985);

    border-color:
        rgba(255,255,255,.30);
}

.project-card:hover .project-preview::after {
    transform: translateX(100%);
}


/* placeholder temporal */

.project-placeholder {
    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;
}

.project-placeholder span {
    font-size: clamp(35px, 7vw, 100px);

    font-weight: 900;

    letter-spacing: -4px;

    color: rgba(255,255,255,.07);
}


/* ==================================================
   PROJECT INFORMATION
================================================== */

.project-info {
    position: relative;

    display: grid;

    grid-template-columns:
        1fr auto 60px;

    align-items: center;

    gap: 30px;

    padding-top: 25px;
}

.project-info h3 {
    font-size: clamp(24px, 3vw, 45px);

    font-weight: 700;

    letter-spacing: -2px;
}

.project-info p {
    font-size: 9px;

    letter-spacing: 3px;

    color: rgba(255,255,255,.40);
}

.project-arrow {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 52px;
    height: 52px;

    border:
        1px solid rgba(255,255,255,.25);

    border-radius: 50%;

    font-size: 18px;

    transition:
        transform .4s ease,
        background .4s ease,
        color .4s ease;
}

.project-card:hover .project-arrow {
    transform:
        rotate(45deg);

    background: white;

    color: black;
}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 768px) {

    .work-section {
        padding:
            100px 20px
            120px;
    }

    .work-heading {
        margin-bottom: 80px;
    }

    .work-heading h2 {
        letter-spacing: -3px;
    }

    .work-intro {
        margin-left: 0;
    }

    .projects {
        gap: 100px;
    }

    .project-preview {
        height: 480px;
    }

    .project-info {
        grid-template-columns:
            1fr 52px;
    }

    .project-info p {
        display: none;
    }

}

/* ==================================================
   JRWEBCO — SELECTED WORK
================================================== */

.work-section {
    position: relative;
    z-index: 5;

    width: 100%;
    min-height: 100vh;

    padding: 140px 6vw 180px;

    background:
        radial-gradient(
            circle at 50% 15%,
            rgba(80, 105, 150, 0.10),
            transparent 32%
        ),
        #020304;

    overflow: hidden;
}


/* LUZ AMBIENTAL */

.work-section::before {
    content: "";
    position: absolute;

    width: 700px;
    height: 700px;

    top: -250px;
    left: 50%;

    transform: translateX(-50%);

    background:
        radial-gradient(
            circle,
            rgba(150, 190, 255, 0.08),
            transparent 65%
        );

    filter: blur(40px);

    pointer-events: none;
}


/* ==================================================
   HEADING
================================================== */

.work-heading {
    position: relative;
    z-index: 2;

    max-width: 1200px;
    margin: 0 auto 130px;
}


.work-number {
    margin-bottom: 28px;

    color: rgba(255, 255, 255, 0.48);

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 5px;
}


.work-heading h2 {
    max-width: 1000px;

    font-size: clamp(55px, 8vw, 125px);
    line-height: 0.86;

    letter-spacing: -6px;
    font-weight: 900;

    color: #f4f4f4;
}


.work-heading h2 span {
    color: transparent;

    background: linear-gradient(
        180deg,
        #ffffff 0%,
        #bfc6cf 35%,
        #666d76 65%,
        #eeeeee 100%
    );

    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}


.work-intro {
    max-width: 470px;

    margin-top: 40px;
    margin-left: auto;

    color: rgba(255, 255, 255, 0.52);

    font-size: 15px;
    line-height: 1.8;
}


/* ==================================================
   PROJECTS
================================================== */

.projects {
    position: relative;
    z-index: 2;

    width: min(1250px, 100%);
    margin: 0 auto;

    display: flex;
    flex-direction: column;

    gap: 180px;
}


/* CADA PROYECTO */

.project {
    position: relative;

    min-height: 720px;

    display: grid;
    grid-template-columns: 1fr 1fr;

    align-items: center;

    gap: 8vw;

    padding: 70px 6vw;

    border: 1px solid rgba(255, 255, 255, 0.08);

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.035),
            rgba(255, 255, 255, 0.008)
        );

    border-radius: 4px;

    overflow: hidden;

    isolation: isolate;
}


/* GLOW DETRÁS */

.project::before {
    content: "";

    position: absolute;

    width: 550px;
    height: 550px;

    left: 7%;
    top: 50%;

    transform: translateY(-50%);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(135, 175, 255, 0.11),
            transparent 68%
        );

    filter: blur(35px);

    z-index: -1;

    pointer-events: none;
}


/* NÚMERO GRANDE */

.project::after {
    content: "01";

    position: absolute;

    right: 35px;
    top: 20px;

    color: rgba(255, 255, 255, 0.035);

    font-size: clamp(100px, 15vw, 230px);

    font-weight: 900;
    line-height: 1;

    letter-spacing: -10px;

    z-index: -1;
}


.project:nth-child(2)::after {
    content: "02";
}


.project:nth-child(3)::after {
    content: "03";
}


/* ==================================================
   PHONE / SCREENSHOT
================================================== */

.project-image {
    position: relative;

    display: flex;
    justify-content: center;
    align-items: center;

    perspective: 1200px;
}


.project-image img {
    display: block;

    width: min(330px, 100%);
    max-height: 650px;

    object-fit: cover;

    border-radius: 28px;

    border: 1px solid rgba(255, 255, 255, 0.16);

    box-shadow:
        0 50px 100px rgba(0, 0, 0, 0.70),
        0 0 50px rgba(130, 175, 255, 0.08);

    transform:
        perspective(1200px)
        rotateY(7deg)
        rotateX(2deg)
        translate3d(0, 0, 0);

    animation:
        projectFloat 9s
        cubic-bezier(.45, 0, .55, 1)
        infinite;

    will-change: transform;
    backface-visibility: hidden;
}


/* SEGUNDO PROYECTO INVERTIDO */

.project:nth-child(2) .project-image {
    order: 2;
}


.project:nth-child(2) .project-info {
    order: 1;
}


.project:nth-child(2) .project-image img {
    animation-delay: -3s;

    transform:
        perspective(1200px)
        rotateY(-7deg)
        rotateX(2deg);
}


.project:nth-child(3) .project-image img {
    animation-delay: -6s;
}


/* ==================================================
   PROJECT INFORMATION
================================================== */

.project-info {
    position: relative;
    z-index: 3;

    max-width: 500px;
}


.project-info .project-label {
    display: block;

    margin-bottom: 25px;

    color: rgba(180, 205, 240, 0.65);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 4px;
}


.project-info h3 {
    margin-bottom: 25px;

    color: #f4f4f4;

    font-size: clamp(48px, 6vw, 90px);
    line-height: 0.88;

    letter-spacing: -4px;

    font-weight: 900;
}


.project-info p {
    max-width: 430px;

    color: rgba(255, 255, 255, 0.52);

    font-size: 14px;
    line-height: 1.8;
}


/* ==================================================
   FLOATING ANIMATION
================================================== */

@keyframes projectFloat {

    0%,
    100% {
        transform:
            perspective(1200px)
            rotateY(7deg)
            rotateX(2deg)
            translate3d(0, 0, 0);
    }

    50% {
        transform:
            perspective(1200px)
            rotateY(5deg)
            rotateX(1deg)
            translate3d(0, -14px, 0);
    }
}


/* ==================================================
   HOVER — DESKTOP
================================================== */

@media (hover: hover) {

    .project {
        transition:
            border-color .5s ease,
            background .5s ease;
    }

    .project:hover {
        border-color: rgba(255, 255, 255, 0.16);

        background:
            linear-gradient(
                135deg,
                rgba(255, 255, 255, 0.055),
                rgba(255, 255, 255, 0.012)
            );
    }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 768px) {

    .work-section {
        padding:
            100px 22px
            120px;
    }


    .work-heading {
        margin-bottom: 80px;
    }


    .work-heading h2 {
        font-size: clamp(48px, 15vw, 78px);

        line-height: .88;

        letter-spacing: -4px;
    }


    .work-intro {
        margin-left: 0;
        margin-top: 30px;

        font-size: 14px;
    }


    .projects {
        gap: 80px;
    }


    .project {
        min-height: auto;

        grid-template-columns: 1fr;

        gap: 60px;

        padding:
            60px 25px
            55px;
    }


    .project-image,
    .project:nth-child(2) .project-image {
        order: 1;
    }


    .project-info,
    .project:nth-child(2) .project-info {
        order: 2;
    }


    .project-image img {
        width: min(270px, 82vw);

        max-height: 560px;

        border-radius: 24px;
    }


    .project-info h3 {
        font-size: clamp(48px, 15vw, 72px);

        letter-spacing: -3px;
    }


    .project::after {
        right: 15px;
        top: 15px;

        font-size: 120px;
    }

}

/* ==================================================
   JRWEBCO — SERVICES
================================================== */

.services-section {
    position: relative;
    z-index: 5;

    width: 100%;
    padding: 160px 6vw 180px;

    background:
        radial-gradient(
            circle at 85% 35%,
            rgba(120, 165, 255, 0.09),
            transparent 28%
        ),
        radial-gradient(
            circle at 10% 80%,
            rgba(255,255,255,0.035),
            transparent 30%
        ),
        #020304;

    color: #fff;
    overflow: hidden;
}


/* línea superior */

.services-section::before {
    content: "";

    position: absolute;
    top: 0;
    left: 6vw;
    right: 6vw;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.28),
            transparent
        );
}


/* luz ambiental */

.services-section::after {
    content: "";

    position: absolute;

    width: 650px;
    height: 650px;

    right: -250px;
    top: 15%;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(135,175,255,.09),
            transparent 68%
        );

    filter: blur(40px);

    pointer-events: none;
}


/* ==================================================
   SERVICES HEADING
================================================== */

.services-heading {
    position: relative;
    z-index: 2;

    max-width: 1200px;

    margin:
        0 auto 130px;
}


.services-number {
    margin-bottom: 28px;

    color:
        rgba(255,255,255,.48);

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 5px;
}


.services-heading h2 {
    max-width: 1100px;

    font-size:
        clamp(52px, 7.5vw, 118px);

    line-height: .87;

    letter-spacing: -6px;

    font-weight: 900;

    color: #f4f4f4;
}


.services-heading h2 span {
    color: transparent;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #d8e2ee 22%,
            #717985 48%,
            #f7f7f7 70%,
            #666d76 100%
        );

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color:
        transparent;

    filter:
        drop-shadow(
            0 8px 15px
            rgba(0,0,0,.45)
        );
}


.services-intro {
    max-width: 470px;

    margin-top: 40px;
    margin-left: auto;

    color:
        rgba(255,255,255,.52);

    font-size: 15px;

    line-height: 1.8;
}


/* ==================================================
   SERVICES LIST
================================================== */

.services-list {
    position: relative;
    z-index: 2;

    width:
        min(1250px, 100%);

    margin: 0 auto;

    border-top:
        1px solid
        rgba(255,255,255,.13);
}


/* ==================================================
   SERVICE ITEM
================================================== */

.service-item {
    position: relative;

    min-height: 210px;

    display: grid;

    grid-template-columns:
        100px 1fr 70px;

    align-items: center;

    gap: 30px;

    padding:
        40px 15px;

    border-bottom:
        1px solid
        rgba(255,255,255,.13);

    overflow: hidden;

    transition:
        padding .45s
        cubic-bezier(.16,.8,.25,1),
        background .45s ease;
}


/* glow al pasar mouse */

.service-item::before {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(120,165,255,.09),
            rgba(255,255,255,.025),
            transparent 75%
        );

    opacity: 0;

    transform:
        translateX(-25%);

    transition:
        opacity .45s ease,
        transform .6s
        cubic-bezier(.16,.8,.25,1);

    pointer-events: none;
}


.service-number {
    position: relative;
    z-index: 2;

    color:
        rgba(180,205,240,.55);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 4px;
}


.service-content {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(300px, 1fr)
        minmax(250px, 420px);

    align-items: center;

    gap: 60px;
}


.service-content h3 {
    font-size:
        clamp(40px, 5vw, 76px);

    line-height: .9;

    letter-spacing: -4px;

    font-weight: 900;

    color: #f4f4f4;

    transition:
        transform .45s
        cubic-bezier(.16,.8,.25,1),
        color .45s ease;
}


.service-content p {
    max-width: 390px;

    color:
        rgba(255,255,255,.48);

    font-size: 14px;

    line-height: 1.8;

    transition:
        color .4s ease;
}


/* arrow */

.service-arrow {
    position: relative;
    z-index: 2;

    width: 55px;
    height: 55px;

    display: flex;

    align-items: center;
    justify-content: center;

    justify-self: end;

    border:
        1px solid
        rgba(255,255,255,.22);

    border-radius: 50%;

    color: #fff;

    font-size: 18px;

    transition:
        transform .45s
        cubic-bezier(.16,.8,.25,1),
        background .35s ease,
        color .35s ease,
        box-shadow .35s ease;
}


/* ==================================================
   HOVER
================================================== */

@media (hover: hover) {

    .service-item:hover {
        padding-left: 30px;
        padding-right: 30px;

        background:
            rgba(255,255,255,.018);
    }


    .service-item:hover::before {
        opacity: 1;

        transform:
            translateX(0);
    }


    .service-item:hover
    .service-content h3 {

        transform:
            translateX(10px);

        color: #fff;
    }


    .service-item:hover
    .service-content p {

        color:
            rgba(255,255,255,.72);
    }


    .service-item:hover
    .service-arrow {

        transform:
            rotate(45deg);

        background: #fff;

        color: #000;

        box-shadow:
            0 0 35px
            rgba(180,210,255,.18);
    }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 768px) {

    .services-section {
        padding:
            110px 22px
            120px;
    }


    .services-heading {
        margin-bottom:
            80px;
    }


    .services-heading h2 {
        font-size:
            clamp(45px, 14vw, 72px);

        line-height: .9;

        letter-spacing:
            -4px;
    }


    .services-intro {
        margin-left: 0;

        margin-top: 30px;

        font-size: 14px;
    }


    .service-item {
        min-height: auto;

        grid-template-columns:
            45px 1fr 45px;

        gap: 12px;

        padding:
            42px 0;
    }


    .service-content {
        display: block;
    }


    .service-content h3 {
        font-size:
            clamp(34px, 10vw, 52px);

        letter-spacing:
            -2px;
    }


    .service-content p {
        margin-top: 18px;

        font-size: 13px;

        line-height: 1.6;
    }


    .service-arrow {
        width: 42px;
        height: 42px;

        font-size: 15px;
    }


    .service-number {
        font-size: 9px;

        letter-spacing: 2px;
    }

}

/* ==================================================
   SERVICES — TEXT OVERLAP FIX
================================================== */

.service-content {
    grid-template-columns:
        minmax(430px, 1.35fr)
        minmax(280px, .65fr);

    gap: 80px;
}

.service-content h3 {
    font-size:
        clamp(38px, 4.2vw, 68px);

    white-space: normal;
}

.service-content p {
    position: relative;
    z-index: 3;

    max-width: 360px;
}

@media (max-width: 1000px) {

    .service-content {
        grid-template-columns: 1fr;
        gap: 22px;
    }

}

@media (max-width: 768px) {

    .service-content {
        display: block;
    }

    .service-content h3 {
        font-size:
            clamp(34px, 10vw, 52px);
    }

    .service-content p {
        margin-top: 18px;
    }

}

/* ==================================================
   JRWEBCO — PRICING
================================================== */

.pricing-section {
    position: relative;
    z-index: 5;

    width: 100%;
    padding: 160px 6vw 190px;

    color: #fff;

    background:
        radial-gradient(
            circle at 75% 45%,
            rgba(120, 165, 255, 0.10),
            transparent 30%
        ),
        radial-gradient(
            circle at 20% 90%,
            rgba(255,255,255,.035),
            transparent 28%
        ),
        #020304;

    overflow: hidden;
}


/* TOP LINE */

.pricing-section::before {
    content: "";

    position: absolute;

    top: 0;
    left: 6vw;
    right: 6vw;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.28),
            transparent
        );
}


/* AMBIENT GLOW */

.pricing-section::after {
    content: "";

    position: absolute;

    width: 750px;
    height: 750px;

    right: -260px;
    top: 30%;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(140,180,255,.09),
            transparent 68%
        );

    filter: blur(45px);

    pointer-events: none;
}


/* ==================================================
   PRICING HEADING
================================================== */

.pricing-heading {
    position: relative;
    z-index: 2;

    max-width: 1200px;

    margin:
        0 auto 120px;
}


.pricing-number {
    margin-bottom: 28px;

    color:
        rgba(255,255,255,.48);

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 5px;
}


.pricing-heading h2 {
    max-width: 1100px;

    font-size:
        clamp(52px, 7.5vw, 118px);

    line-height: .87;

    letter-spacing: -6px;

    font-weight: 900;

    color: #f4f4f4;
}


.pricing-heading h2 span {
    color: transparent;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #dce6f2 20%,
            #707985 45%,
            #ffffff 68%,
            #606975 100%
        );

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color:
        transparent;

    filter:
        drop-shadow(
            0 8px 15px
            rgba(0,0,0,.45)
        );
}


.pricing-intro {
    max-width: 470px;

    margin-top: 40px;
    margin-left: auto;

    color:
        rgba(255,255,255,.52);

    font-size: 15px;

    line-height: 1.8;
}


/* ==================================================
   MAIN PRICING CARD
================================================== */

.pricing-card {
    position: relative;
    z-index: 2;

    width:
        min(1250px, 100%);

    margin: 0 auto;

    padding:
        70px 65px;

    border:
        1px solid
        rgba(255,255,255,.12);

    border-radius: 6px;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.055),
            rgba(255,255,255,.012)
        );

    box-shadow:
        0 50px 120px
        rgba(0,0,0,.45);

    overflow: hidden;
}


/* CARD GLOW */

.pricing-card::before {
    content: "";

    position: absolute;

    width: 600px;
    height: 600px;

    right: -170px;
    top: -230px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(160,200,255,.13),
            transparent 65%
        );

    filter: blur(35px);

    pointer-events: none;
}


/* GIANT BACKGROUND NUMBER */

.pricing-card::after {
    content: "150";

    position: absolute;

    right: -20px;
    bottom: -70px;

    color:
        rgba(255,255,255,.018);

    font-size:
        clamp(180px, 28vw, 430px);

    line-height: 1;

    font-weight: 900;

    letter-spacing: -25px;

    pointer-events: none;
}


/* ==================================================
   CARD TOP
================================================== */

.pricing-card-top {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        1fr auto;

    align-items: start;

    gap: 60px;

    padding-bottom: 65px;

    border-bottom:
        1px solid
        rgba(255,255,255,.12);
}


.pricing-label {
    display: block;

    margin-bottom: 25px;

    color:
        rgba(180,205,240,.65);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 4px;
}


.pricing-card h3 {
    font-size:
        clamp(42px, 5vw, 78px);

    line-height: .88;

    letter-spacing: -4px;

    font-weight: 900;
}


/* ==================================================
   PRICE
================================================== */

.pricing-price {
    min-width: 330px;

    text-align: right;
}


.pricing-from {
    display: block;

    margin-bottom: 8px;

    color:
        rgba(255,255,255,.42);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 4px;
}


.price {
    display: flex;

    justify-content: flex-end;
    align-items: flex-start;

    color: transparent;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #dce9f8 18%,
            #7c8b9f 38%,
            #ffffff 56%,
            #596575 76%,
            #eef6ff 100%
        );

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color:
        transparent;

    font-size:
        clamp(100px, 12vw, 175px);

    line-height: .75;

    font-weight: 900;

    letter-spacing: -12px;

    filter:
        drop-shadow(
            0 10px 20px
            rgba(0,0,0,.55)
        )
        drop-shadow(
            0 0 25px
            rgba(150,195,255,.12)
        );
}


.price span {
    margin-top: 12px;
    margin-right: 8px;

    font-size:
        clamp(30px, 4vw, 55px);

    letter-spacing: -2px;
}


/* ==================================================
   BOTTOM
================================================== */

.pricing-bottom {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        1.25fr .75fr;

    gap: 90px;

    padding-top: 60px;
}


/* FEATURES */

.pricing-features {
    border-top:
        1px solid
        rgba(255,255,255,.10);
}


.pricing-feature {
    display: grid;

    grid-template-columns:
        55px 1fr;

    gap: 20px;

    align-items: center;

    padding:
        18px 0;

    border-bottom:
        1px solid
        rgba(255,255,255,.10);
}


.pricing-feature span {
    color:
        rgba(180,205,240,.55);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;
}


.pricing-feature p {
    color:
        rgba(255,255,255,.70);

    font-size: 13px;

    line-height: 1.5;
}


/* ==================================================
   ACTION
================================================== */

.pricing-action {
    display: flex;

    flex-direction: column;

    justify-content:
        space-between;

    align-items:
        flex-start;
}


.pricing-action p {
    max-width: 330px;

    color:
        rgba(255,255,255,.52);

    font-size: 14px;

    line-height: 1.8;
}


.pricing-button {
    display: inline-flex;

    align-items: center;

    justify-content:
        space-between;

    gap: 45px;

    min-width: 260px;

    margin-top: 40px;

    padding:
        18px 22px;

    border:
        1px solid
        rgba(255,255,255,.25);

    border-radius: 50px;

    color: #fff;

    text-decoration: none;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 2px;

    transition:
        background .35s ease,
        color .35s ease,
        transform .35s ease,
        box-shadow .35s ease;
}


.pricing-button span {
    font-size: 17px;

    transition:
        transform .35s ease;
}


/* ==================================================
   HOVER
================================================== */

@media (hover: hover) {

    .pricing-card {
        transition:
            border-color .45s ease,
            transform .6s
            cubic-bezier(.16,.8,.25,1);
    }


    .pricing-card:hover {
        border-color:
            rgba(255,255,255,.20);

        transform:
            translateY(-4px);
    }


    .pricing-button:hover {
        background: #fff;

        color: #000;

        transform:
            translateY(-3px);

        box-shadow:
            0 0 35px
            rgba(180,210,255,.16);
    }


    .pricing-button:hover span {
        transform:
            rotate(45deg);
    }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 768px) {

    .pricing-section {
        padding:
            110px 22px
            120px;
    }


    .pricing-heading {
        margin-bottom:
            75px;
    }


    .pricing-heading h2 {
        font-size:
            clamp(44px, 14vw, 72px);

        line-height: .9;

        letter-spacing:
            -4px;
    }


    .pricing-intro {
        margin-left: 0;

        margin-top: 30px;

        font-size: 14px;
    }


    .pricing-card {
        padding:
            45px 25px;
    }


    .pricing-card-top {
        grid-template-columns:
            1fr;

        gap: 55px;

        padding-bottom:
            45px;
    }


    .pricing-card h3 {
        font-size:
            clamp(38px, 12vw, 58px);

        letter-spacing:
            -3px;
    }


    .pricing-price {
        min-width: 0;

        text-align: left;
    }


    .price {
        justify-content:
            flex-start;

        font-size:
            clamp(95px, 30vw, 145px);

        letter-spacing:
            -9px;
    }


    .pricing-bottom {
        grid-template-columns:
            1fr;

        gap: 50px;

        padding-top:
            45px;
    }


    .pricing-action {
        display: block;
    }


    .pricing-button {
        width: 100%;

        min-width: 0;
    }


    .pricing-card::after {
        font-size: 220px;

        right: -10px;

        bottom: -20px;
    }

}

/* ==================================================
   JRWEBCO — HOW WE WORK
================================================== */

.process-section {
    position: relative;
    z-index: 5;
    width: 100%;
    padding: 160px 6vw 190px;
    color: #fff;

    background:
        radial-gradient(
            circle at 18% 35%,
            rgba(110, 155, 255, 0.09),
            transparent 28%
        ),
        radial-gradient(
            circle at 85% 80%,
            rgba(255,255,255,.035),
            transparent 30%
        ),
        #020304;

    overflow: hidden;
}


/* TOP LINE */

.process-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 6vw;
    right: 6vw;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.28),
            transparent
        );
}


/* BACKGROUND GLOW */

.process-section::after {
    content: "";
    position: absolute;

    width: 700px;
    height: 700px;

    left: -300px;
    top: 30%;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(120,165,255,.10),
            transparent 68%
        );

    filter: blur(45px);
    pointer-events: none;
}


/* ==================================================
   HEADING
================================================== */

.process-heading {
    position: relative;
    z-index: 2;

    max-width: 1200px;
    margin: 0 auto 125px;
}


.process-number {
    margin-bottom: 28px;

    color: rgba(255,255,255,.48);

    font-size: 11px;
    font-weight: 600;
    letter-spacing: 5px;
}


.process-heading h2 {
    max-width: 1100px;

    font-size:
        clamp(52px, 7.5vw, 118px);

    line-height: .87;
    letter-spacing: -6px;
    font-weight: 900;

    color: #f4f4f4;
}


.process-heading h2 span {
    color: transparent;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #dbe6f3 20%,
            #707985 45%,
            #ffffff 68%,
            #626b77 100%
        );

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color: transparent;

    filter:
        drop-shadow(
            0 8px 15px
            rgba(0,0,0,.45)
        );
}


.process-intro {
    max-width: 450px;

    margin-top: 40px;
    margin-left: auto;

    color: rgba(255,255,255,.52);

    font-size: 15px;
    line-height: 1.8;
}


/* ==================================================
   PROCESS LIST
================================================== */

.process-list {
    position: relative;
    z-index: 2;

    width: min(1250px, 100%);
    margin: 0 auto;

    border-top:
        1px solid
        rgba(255,255,255,.14);
}


/* ==================================================
   PROCESS ITEM
================================================== */

.process-item {
    position: relative;

    min-height: 260px;

    display: grid;

    grid-template-columns:
        90px 1fr 70px;

    align-items: center;

    gap: 35px;

    padding: 48px 15px;

    border-bottom:
        1px solid
        rgba(255,255,255,.14);

    overflow: hidden;

    transition:
        padding .5s cubic-bezier(.16,.8,.25,1),
        background .45s ease;
}


/* HOVER LIGHT */

.process-item::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(110,155,255,.10),
            rgba(255,255,255,.025),
            transparent 75%
        );

    opacity: 0;

    transform:
        translateX(-20%);

    transition:
        opacity .45s ease,
        transform .6s cubic-bezier(.16,.8,.25,1);

    pointer-events: none;
}


/* ==================================================
   STEP NUMBER
================================================== */

.process-step {
    position: relative;
    z-index: 2;

    align-self: start;

    margin-top: 10px;

    color:
        rgba(180,205,240,.55);

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 4px;
}


/* ==================================================
   CONTENT
================================================== */

.process-content {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(420px, 1.3fr)
        minmax(260px, .7fr);

    align-items: center;

    gap: 80px;
}


.process-content h3 {
    font-size:
        clamp(45px, 5.4vw, 82px);

    line-height: .87;

    letter-spacing: -4px;

    font-weight: 900;

    color: #f4f4f4;

    transition:
        transform .5s cubic-bezier(.16,.8,.25,1),
        color .4s ease;
}


.process-content p {
    max-width: 360px;

    color:
        rgba(255,255,255,.48);

    font-size: 14px;

    line-height: 1.8;

    transition:
        color .4s ease;
}


/* ==================================================
   ARROW
================================================== */

.process-icon {
    position: relative;
    z-index: 2;

    width: 56px;
    height: 56px;

    display: flex;

    align-items: center;
    justify-content: center;

    justify-self: end;

    border:
        1px solid
        rgba(255,255,255,.20);

    border-radius: 50%;

    color: #fff;

    font-size: 18px;

    transition:
        transform .45s cubic-bezier(.16,.8,.25,1),
        background .35s ease,
        color .35s ease,
        box-shadow .35s ease;
}


/* ==================================================
   SPECIAL STEP 03
================================================== */

.process-item:nth-child(3) {
    background:
        linear-gradient(
            90deg,
            rgba(120,165,255,.035),
            transparent 75%
        );
}


.process-item:nth-child(3)
.process-content h3 {
    color: transparent;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #dce8f6 25%,
            #7c8796 48%,
            #ffffff 72%,
            #68717c 100%
        );

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color:
        transparent;
}


/* ==================================================
   DESKTOP HOVER
================================================== */

@media (hover: hover) {

    .process-item:hover {
        padding-left: 30px;
        padding-right: 30px;

        background:
            rgba(255,255,255,.018);
    }


    .process-item:hover::before {
        opacity: 1;

        transform:
            translateX(0);
    }


    .process-item:hover
    .process-content h3 {
        transform:
            translateX(12px);
    }


    .process-item:hover
    .process-content p {
        color:
            rgba(255,255,255,.75);
    }


    .process-item:hover
    .process-icon {
        transform:
            rotate(45deg);

        background: #fff;
        color: #000;

        box-shadow:
            0 0 35px
            rgba(180,210,255,.18);
    }

}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 1000px) {

    .process-content {
        grid-template-columns: 1fr;
        gap: 25px;
    }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 768px) {

    .process-section {
        padding:
            110px 22px
            120px;
    }


    .process-heading {
        margin-bottom:
            80px;
    }


    .process-heading h2 {
        font-size:
            clamp(44px, 14vw, 72px);

        line-height: .9;

        letter-spacing:
            -4px;
    }


    .process-intro {
        margin-left: 0;

        margin-top: 30px;

        font-size: 14px;
    }


    .process-item {
        min-height: auto;

        grid-template-columns:
            42px 1fr;

        gap: 15px;

        padding:
            45px 0;
    }


    .process-content {
        display: block;
    }


    .process-content h3 {
        font-size:
            clamp(37px, 11vw, 56px);

        line-height: .9;

        letter-spacing:
            -3px;
    }


    .process-content p {
        margin-top: 22px;

        font-size: 13px;

        line-height: 1.65;
    }


    .process-icon {
        display: none;
    }


    .process-step {
        margin-top: 5px;

        font-size: 9px;

        letter-spacing: 2px;
    }

}

/* ==================================================
   JRWEBCO — CONTACT / FINAL CTA
================================================== */

.contact-section {
    position: relative;
    z-index: 5;
    width: 100%;
    min-height: 100vh;

    padding: 150px 6vw 0;

    color: #fff;

    background:
        radial-gradient(
            circle at 50% 45%,
            rgba(110, 155, 255, .12),
            transparent 32%
        ),
        radial-gradient(
            circle at 90% 85%,
            rgba(255,255,255,.04),
            transparent 25%
        ),
        #010203;

    overflow: hidden;
}


/* TOP DIVIDER */

.contact-section::before {
    content: "";
    position: absolute;

    top: 0;
    left: 6vw;
    right: 6vw;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.30),
            transparent
        );
}


/* LARGE BACKGROUND GLOW */

.contact-glow {
    position: absolute;

    width: 900px;
    height: 900px;

    left: 50%;
    top: 40%;

    transform:
        translate(-50%, -50%);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(120,165,255,.10),
            rgba(80,120,210,.035) 35%,
            transparent 68%
        );

    filter: blur(45px);

    pointer-events: none;
}


/* ==================================================
   CONTACT TOP
================================================== */

.contact-top {
    position: relative;
    z-index: 2;

    width: min(1250px, 100%);
    margin: 0 auto 90px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}


.contact-number,
.contact-small {
    color:
        rgba(255,255,255,.48);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 4px;
}


/* ==================================================
   MAIN CTA
================================================== */

.contact-main {
    position: relative;
    z-index: 2;

    width: min(1250px, 100%);
    margin: 0 auto 120px;
}


.contact-main h2 {
    max-width: 1200px;

    font-size:
        clamp(55px, 8.2vw, 132px);

    line-height: .82;

    letter-spacing: -7px;

    font-weight: 900;

    color: #f5f5f5;
}


/* CHROME LINE */

.contact-main h2 span {
    color: transparent;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #e5eef9 18%,
            #7d8794 38%,
            #ffffff 57%,
            #606a77 76%,
            #e9f2ff 100%
        );

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color:
        transparent;

    filter:
        drop-shadow(
            0 10px 18px
            rgba(0,0,0,.55)
        )
        drop-shadow(
            0 0 30px
            rgba(150,195,255,.10)
        );
}


.contact-description {
    max-width: 440px;

    margin-top: 50px;
    margin-left: auto;

    color:
        rgba(255,255,255,.55);

    font-size: 15px;
    line-height: 1.8;
}


/* ==================================================
   CONTACT LINKS
================================================== */

.contact-links {
    position: relative;
    z-index: 2;

    width: min(1250px, 100%);
    margin: 0 auto 130px;

    border-top:
        1px solid
        rgba(255,255,255,.14);
}


.contact-link {
    position: relative;

    min-height: 160px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 35px 10px;

    border-bottom:
        1px solid
        rgba(255,255,255,.14);

    color: #fff;
    text-decoration: none;

    overflow: hidden;

    transition:
        padding .45s cubic-bezier(.16,.8,.25,1),
        background .4s ease;
}


/* HOVER GLOW */

.contact-link::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(110,155,255,.10),
            rgba(255,255,255,.025),
            transparent 75%
        );

    opacity: 0;

    transform:
        translateX(-20%);

    transition:
        opacity .45s ease,
        transform .55s cubic-bezier(.16,.8,.25,1);

    pointer-events: none;
}


.contact-link-left {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        75px 1fr;

    align-items: center;

    gap: 25px;
}


.contact-link-number {
    color:
        rgba(180,205,240,.55);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 3px;
}


.contact-link-left p {
    margin-bottom: 10px;

    color:
        rgba(255,255,255,.40);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 4px;
}


.contact-link-left h3 {
    font-size:
        clamp(28px, 4vw, 58px);

    line-height: 1;

    letter-spacing: -3px;

    font-weight: 800;

    transition:
        transform .45s cubic-bezier(.16,.8,.25,1);
}


/* ARROW */

.contact-arrow {
    position: relative;
    z-index: 2;

    width: 58px;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    border:
        1px solid
        rgba(255,255,255,.22);

    border-radius: 50%;

    font-size: 18px;

    transition:
        transform .4s ease,
        background .35s ease,
        color .35s ease,
        box-shadow .35s ease;
}


/* ==================================================
   CONTACT HOVER
================================================== */

@media (hover: hover) {

    .contact-link:hover {
        padding-left: 25px;
        padding-right: 25px;

        background:
            rgba(255,255,255,.018);
    }


    .contact-link:hover::before {
        opacity: 1;

        transform:
            translateX(0);
    }


    .contact-link:hover
    .contact-link-left h3 {
        transform:
            translateX(10px);
    }


    .contact-link:hover
    .contact-arrow {
        transform:
            rotate(45deg);

        background: #fff;
        color: #000;

        box-shadow:
            0 0 35px
            rgba(180,210,255,.18);
    }

}


/* ==================================================
   FOOTER
================================================== */

.footer {
    position: relative;
    z-index: 2;

    width: min(1250px, 100%);
    margin: 0 auto;

    min-height: 150px;

    display: grid;

    grid-template-columns:
        1fr auto 1fr;

    align-items: center;

    gap: 30px;

    border-top:
        1px solid
        rgba(255,255,255,.14);
}


.footer-brand {
    font-size: 20px;
    font-weight: 900;

    letter-spacing: -1px;
}


.footer-message {
    color:
        rgba(255,255,255,.35);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 4px;

    text-align: center;
}


.back-to-top {
    justify-self: end;

    color:
        rgba(255,255,255,.55);

    text-decoration: none;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 3px;

    transition:
        color .3s ease,
        transform .3s ease;
}


.back-to-top:hover {
    color: #fff;

    transform:
        translateY(-3px);
}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 768px) {

    .contact-section {
        padding:
            110px 22px 0;
    }


    .contact-top {
        margin-bottom: 65px;

        align-items:
            flex-start;

        gap: 20px;
    }


    .contact-number,
    .contact-small {
        font-size: 8px;

        letter-spacing: 2px;
    }


    .contact-main {
        margin-bottom: 85px;
    }


    .contact-main h2 {
        font-size:
            clamp(45px, 14vw, 75px);

        line-height: .86;

        letter-spacing:
            -4px;
    }


    .contact-description {
        margin-left: 0;

        margin-top: 35px;

        font-size: 14px;
    }


    .contact-links {
        margin-bottom: 90px;
    }


    .contact-link {
        min-height: 130px;

        padding:
            30px 0;
    }


    .contact-link-left {
        grid-template-columns:
            35px 1fr;

        gap: 12px;
    }


    .contact-link-left h3 {
        font-size:
            clamp(20px, 6.5vw, 32px);

        letter-spacing:
            -1.5px;

        overflow-wrap:
            anywhere;
    }


    .contact-link-left p {
        font-size: 8px;

        letter-spacing: 2px;
    }


    .contact-link-number {
        font-size: 8px;

        letter-spacing: 1px;
    }


    .contact-arrow {
        width: 42px;
        height: 42px;

        flex-shrink: 0;

        margin-left: 10px;

        font-size: 14px;
    }


    .footer {
        min-height: 190px;

        grid-template-columns:
            1fr 1fr;

        gap: 25px;
    }


    .footer-brand {
        font-size: 17px;
    }


    .footer-message {
        display: none;
    }


    .back-to-top {
        font-size: 8px;

        letter-spacing: 2px;
    }

}

/* ==================================================
   JRWEBCO — MOBILE PROJECTS FIX
   Prevent project text from leaving the screen
================================================== */

@media (max-width: 768px) {

    .work-section {
        overflow-x: hidden;
    }

    .projects {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .project {
        width: 100%;
        max-width: 100%;

        display: flex;
        flex-direction: column;

        gap: 35px;

        overflow: hidden;
    }

    .project-image {
        width: 100%;
        max-width: 100%;
    }

    .project-info {
        width: 100%;
        max-width: 100%;

        margin: 0;
        padding: 0;

        transform: none;

        text-align: left;
    }

    .project-label {
        display: block;

        width: 100%;
        max-width: 100%;

        margin-bottom: 18px;

        font-size: 9px;
        line-height: 1.5;

        letter-spacing: 3px;

        overflow-wrap: anywhere;
    }

    .project-info h3 {
        width: 100%;
        max-width: 100%;

        margin: 0;

        font-size: clamp(46px, 16vw, 72px);
        line-height: .85;

        letter-spacing: -4px;

        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;

        transform: none;
    }

    .project-info p {
        width: 100%;
        max-width: 100%;

        margin-top: 24px;

        font-size: 13px;
        line-height: 1.7;

        overflow-wrap: break-word;
    }

}

/* ==================================================
   JRWEBCO — PRICING MOBILE PREMIUM FIX
================================================== */

@media (max-width: 768px) {

    .pricing-card {
        width: 100%;
        max-width: 100%;

        padding: 42px 24px;

        overflow: hidden;
    }


    /* CUSTOM WEBSITE */

    .pricing-label {
        margin-bottom: 24px;

        font-size: 9px;
        letter-spacing: 4px;
    }


    /* WEB DESIGN & DEVELOPMENT */

    .pricing-card h3 {
        width: 100%;
        max-width: 100%;

        font-size: clamp(38px, 11.5vw, 54px);

        line-height: .88;

        letter-spacing: -3px;

        white-space: normal;
        overflow-wrap: normal;
        word-break: normal;
    }


    /* PRICE AREA */

    .pricing-price {
        width: 100%;
        max-width: 100%;

        margin-top: 5px;
    }


    .pricing-from {
        margin-bottom: 18px;

        font-size: 9px;
        letter-spacing: 4px;
    }


    .price {
        width: 100%;

        justify-content: flex-start;
        align-items: flex-start;

        font-size: clamp(90px, 27vw, 125px);

        line-height: .8;

        letter-spacing: -8px;
    }


    .price span {
        margin-top: 10px;
        margin-right: 8px;

        font-size: 34px;
    }


    /* MORE SPACE BEFORE FEATURES */

    .pricing-card-top {
        gap: 45px;

        padding-bottom: 55px;
    }


    .pricing-bottom {
        padding-top: 45px;
    }


    /* FEATURES */

    .pricing-feature {
        grid-template-columns: 45px 1fr;

        gap: 16px;

        padding: 22px 0;
    }


    .pricing-feature p {
        font-size: 13px;
        line-height: 1.55;
    }

}

/* ==================================================
   FINAL MOBILE PRICING TITLE FIX
================================================== */

@media (max-width: 768px) {

    .pricing-card h3 {
        width: 100%;
        max-width: 100%;

        font-size: clamp(32px, 9.3vw, 44px) !important;
        line-height: .92;

        letter-spacing: -2px;

        white-space: normal;
        overflow: visible;
        word-break: normal;

        transform: none !important;
    }

}