/* ================================================================
   ONESKY INNOVATIONS
   SERVICES PAGE
   ================================================================ */


/* ================================================================
   VARIABLES
   ================================================================ */

.services-page {

    --svc-blue: #0070E0;
    --svc-cyan: #00C2FF;
    --svc-dark: #081226;

    --svc-text: #0F172A;
    --svc-muted: #64748B;

    --svc-border: #E2E8F0;

    --svc-bg: #F8FAFC;

    --svc-shadow:
        0 10px 30px rgba(15, 23, 42, 0.06);

    --svc-transition:
        all 0.35s cubic-bezier(.16, 1, .3, 1);

}


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

.services-hero {

    position: relative;

    padding:
        105px 0 75px;

    overflow: hidden;

    background:
        radial-gradient(circle at 15% 30%,
            rgba(0, 112, 224, .08),
            transparent 30%),

        radial-gradient(circle at 85% 15%,
            rgba(0, 194, 255, .07),
            transparent 28%),

        linear-gradient(180deg,
            #ffffff 0%,
            #f8fbff 100%);

}


.services-hero::before {

    content: "";

    position: absolute;

    width: 600px;
    height: 600px;

    right: -300px;
    top: -300px;

    border-radius: 50%;

    border:
        1px solid rgba(0, 112, 224, .08);

    animation:
        heroOrb 12s ease-in-out infinite;

}


@keyframes heroOrb {

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

    50% {
        transform: scale(1.08);
    }

}


.services-hero-content {

    max-width: 920px;

    position: relative;

    z-index: 2;

}


.hero-badge {

    display: inline-flex;

    align-items: center;

    gap: 9px;

    padding:
        7px 13px;

    border:
        1px solid rgba(0, 112, 224, .18);

    border-radius: 30px;

    background:
        rgba(0, 112, 224, .05);

    color:
        var(--svc-blue);

    font-size: 12px;

    font-weight: 750;

    letter-spacing:
        .08em;

    text-transform:
        uppercase;

    margin-bottom:
        22px;

}


.badge-dot {

    width: 7px;
    height: 7px;

    border-radius: 50%;

    background:
        var(--svc-cyan);

    box-shadow:
        0 0 12px rgba(0, 194, 255, .8);

    animation:
        pulseDot 2s infinite;

}


@keyframes pulseDot {

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

    50% {
        transform: scale(1.5);
        opacity: .65;
    }

}


.services-hero h1 {

    max-width: 850px;

    margin: 0 0 23px;

    color:
        var(--svc-dark);

    font-size:
        clamp(42px, 5.2vw, 72px);

    line-height:
        1.05;

    letter-spacing:
        -.055em;

    font-weight:
        800;

}


.gradient-text {

    background:
        linear-gradient(120deg,
            #0066D6,
            #008FEA,
            #00C2FF);

    -webkit-background-clip:
        text;

    background-clip:
        text;

    -webkit-text-fill-color:
        transparent;

    color:
        transparent;

}


.hero-description {

    max-width:
        760px;

    color:
        var(--svc-muted);

    font-size:
        17px;

    line-height:
        1.75;

    margin:
        0 0 32px;

}


.hero-buttons {

    display:
        flex;

    align-items:
        center;

    gap:
        12px;

    flex-wrap:
        wrap;

}


.hero-buttons .btn {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        9px;

}


.hero-mini-points {

    display:
        flex;

    align-items:
        center;

    flex-wrap:
        wrap;

    gap:
        0;

    margin-top:
        48px;

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

    padding-top:
        22px;

}


.hero-mini-points>div {

    min-width:
        135px;

    padding:
        0 28px;

    border-right:
        1px solid var(--svc-border);

}


.hero-mini-points>div:first-child {

    padding-left:
        0;

}


.hero-mini-points>div:last-child {

    border-right:
        none;

}


.hero-mini-points strong {

    display:
        block;

    color:
        var(--svc-dark);

    font-size:
        14px;

    font-weight:
        800;

}


.hero-mini-points span {

    color:
        var(--svc-muted);

    font-size:
        12px;

    margin-top:
        3px;

    display:
        block;

}


/* ================================================================
   CLIENT MARQUEE
   ================================================================ */

.client-marquee-section {

    padding:
        24px 0;

    background:
        #fff;

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

    border-bottom:
        1px solid var(--svc-border);

    overflow:
        hidden;

}


.marquee-header {

    text-align:
        center;

}


.marquee-header .eyebrow {

    margin:
        0 0 17px;

    color:
        #94A3B8;

    font-size:
        10px;

    font-weight:
        800;

    text-transform:
        uppercase;

    letter-spacing:
        .14em;

}


.marquee-wrapper {

    width:
        100%;

    overflow:
        hidden;

    mask-image:
        linear-gradient(to right,
            transparent,
            black 8%,
            black 92%,
            transparent);

}


.marquee-track {

    display:
        flex;

    gap:
        15px;

    width:
        max-content;

}


.client-logo-item {

    width:
        130px;

    height:
        48px;

    flex-shrink:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid var(--svc-border);

    border-radius:
        8px;

    background:
        #fff;

    padding:
        6px;

}


.client-logo-item img {

    max-width:
        100%;

    max-height:
        100%;

    object-fit:
        contain;

}


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

.services-page .section-heading {

    max-width:
        760px;

    margin-bottom:
        45px;

}


.services-page .section-heading.center-heading {

    margin-left:
        auto;

    margin-right:
        auto;

    text-align:
        center;

}


.section-eyebrow {

    color:
        var(--svc-blue);

    font-size:
        11px;

    font-weight:
        800;

    letter-spacing:
        .13em;

    text-transform:
        uppercase;

    margin-bottom:
        12px;

}


.services-page .section-heading h2 {

    color:
        var(--svc-dark);

    font-size:
        clamp(30px, 4vw, 48px);

    line-height:
        1.12;

    letter-spacing:
        -.04em;

    margin:
        0 0 15px;

}


.services-page .section-heading p {

    color:
        var(--svc-muted);

    font-size:
        15px;

    line-height:
        1.7;

    margin:
        0;

}


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

.services-main {

    background:
        #fff;

}


.services-grid {

    display:
        grid;

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

    gap:
        16px;

}


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

.service-card {

    position:
        relative;

    min-height:
        285px;

    padding:
        25px;

    border:
        1px solid var(--svc-border);

    border-radius:
        15px;

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

    overflow:
        hidden;

    transition:
        var(--svc-transition);

    display:
        flex;

    flex-direction:
        column;

    isolation:
        isolate;

}


.service-card::before {

    content:
        "";

    position:
        absolute;

    width:
        160px;

    height:
        160px;

    border-radius:
        50%;

    right:
        -90px;

    bottom:
        -90px;

    background:
        rgba(0, 112, 224, .06);

    transition:
        var(--svc-transition);

    z-index:
        -1;

}


.service-card::after {

    content:
        "";

    position:
        absolute;

    left:
        0;

    top:
        0;

    width:
        0;

    height:
        2px;

    background:
        linear-gradient(90deg,
            var(--svc-blue),
            var(--svc-cyan));

    transition:
        width .4s ease;

}


.service-card:hover {

    transform:
        translateY(-8px);

    border-color:
        rgba(0, 112, 224, .28);

    box-shadow:
        0 18px 40px rgba(0, 78, 150, .10);

}


.service-card:hover::before {

    width:
        250px;

    height:
        250px;

}


.service-card:hover::after {

    width:
        100%;

}


.featured-card {

    background:
        linear-gradient(145deg,
            #ffffff,
            #f5faff);

}


.featured-label {

    position:
        absolute;

    right:
        16px;

    top:
        16px;

    padding:
        4px 8px;

    border-radius:
        4px;

    background:
        rgba(0, 112, 224, .08);

    color:
        var(--svc-blue);

    font-size:
        8px;

    font-weight:
        800;

    letter-spacing:
        .09em;

}


.service-number {

    color:
        #CBD5E1;

    font-size:
        11px;

    font-weight:
        800;

    letter-spacing:
        .08em;

    margin-bottom:
        17px;

    transition:
        var(--svc-transition);

}


.service-card:hover .service-number {

    color:
        var(--svc-blue);

}


.service-icon {

    width:
        48px;

    height:
        48px;

    border-radius:
        12px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin-bottom:
        20px;

    font-size:
        20px;

    font-weight:
        800;

    transition:
        var(--svc-transition);

}


.service-card:hover .service-icon {

    transform:
        scale(1.1) rotate(-3deg);

}


.service-icon.blue {

    color:
        #006FE6;

    background:
        rgba(0, 112, 224, .09);

}


.service-icon.cyan {

    color:
        #008EBE;

    background:
        rgba(0, 194, 255, .10);

}


.service-icon.purple {

    color:
        #7C3AED;

    background:
        rgba(124, 58, 237, .09);

}


.service-icon.green {

    color:
        #059669;

    background:
        rgba(5, 150, 105, .09);

}


.service-icon.orange {

    color:
        #EA580C;

    background:
        rgba(234, 88, 12, .09);

}


.service-icon.pink {

    color:
        #DB2777;

    background:
        rgba(219, 39, 119, .09);

}


.service-icon.yellow {

    color:
        #CA8A04;

    background:
        rgba(202, 138, 4, .10);

}


.service-icon.violet {

    color:
        #6D28D9;

    background:
        rgba(109, 40, 217, .09);

}


.service-icon.red {

    color:
        #DC2626;

    background:
        rgba(220, 38, 38, .09);

}


.service-content {

    position:
        relative;

    z-index:
        2;

}


.service-content h3 {

    color:
        var(--svc-dark);

    font-size:
        17px;

    line-height:
        1.25;

    margin:
        0 0 9px;

    letter-spacing:
        -.02em;

}


.service-content p {

    color:
        var(--svc-muted);

    font-size:
        12.5px;

    line-height:
        1.65;

    margin:
        0 0 15px;

}


.service-tags {

    display:
        flex;

    gap:
        5px;

    flex-wrap:
        wrap;

}


.service-tags span {

    padding:
        4px 7px;

    border:
        1px solid #E5EAF0;

    border-radius:
        4px;

    color:
        #64748B;

    font-size:
        9px;

    font-weight:
        650;

    background:
        rgba(248, 250, 252, .8);

}


.service-arrow {

    width:
        32px;

    height:
        32px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin-top:
        auto;

    margin-left:
        auto;

    border:
        1px solid var(--svc-border);

    border-radius:
        50%;

    color:
        #64748B;

    font-size:
        16px;

    text-decoration:
        none;

    transition:
        var(--svc-transition);

}


.service-card:hover .service-arrow {

    color:
        #fff;

    background:
        var(--svc-blue);

    border-color:
        var(--svc-blue);

    transform:
        translateX(3px);

}


/* ================================================================
   PRODUCT FLOW
   ================================================================ */

.product-services-section {

    background:
        #F8FAFC;

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

    border-bottom:
        1px solid var(--svc-border);

}


.product-flow {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

}


.flow-card {

    width:
        180px;

    min-height:
        180px;

    padding:
        24px 18px;

    text-align:
        center;

    border:
        1px solid var(--svc-border);

    border-radius:
        14px;

    background:
        #fff;

    position:
        relative;

    transition:
        var(--svc-transition);

}


.flow-card:hover {

    transform:
        translateY(-7px);

    border-color:
        rgba(0, 112, 224, .25);

    box-shadow:
        var(--svc-shadow);

}


.flow-number {

    position:
        absolute;

    right:
        13px;

    top:
        11px;

    color:
        #CBD5E1;

    font-size:
        9px;

    font-weight:
        800;

}


.flow-icon {

    width:
        48px;

    height:
        48px;

    margin:
        0 auto 15px;

    border-radius:
        12px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    color:
        var(--svc-blue);

    background:
        rgba(0, 112, 224, .08);

    font-size:
        17px;

    font-weight:
        800;

}


.flow-card h3 {

    margin:
        0 0 5px;

    color:
        var(--svc-dark);

    font-size:
        15px;

}


.flow-card p {

    margin:
        0;

    color:
        var(--svc-muted);

    font-size:
        11px;

    line-height:
        1.5;

}


.flow-line {

    width:
        35px;

    height:
        1px;

    background:
        #CBD5E1;

    position:
        relative;

}


.flow-line::after {

    content:
        "›";

    position:
        absolute;

    right:
        -2px;

    top:
        50%;

    transform:
        translateY(-55%);

    color:
        #94A3B8;

    font-size:
        17px;

}


/* ================================================================
   SOFTWARE HIGHLIGHT
   ================================================================ */

.software-highlight {

    background:
        #fff;

}


.software-box {

    min-height:
        430px;

    border-radius:
        22px;

    overflow:
        hidden;

    background:
        linear-gradient(135deg,
            #071226,
            #0C1C39);

    display:
        grid;

    grid-template-columns:
        1.3fr .7fr;

    position:
        relative;

    box-shadow:
        0 25px 60px rgba(4, 16, 38, .15);

}


.software-content {

    padding:
        60px;

    position:
        relative;

    z-index:
        3;

}


.software-content .section-eyebrow {

    color:
        #4DCBFF;

}


.software-content h2 {

    color:
        #fff;

    font-size:
        clamp(30px, 4vw, 48px);

    line-height:
        1.1;

    letter-spacing:
        -.04em;

    margin:
        0 0 16px;

}


.software-content p {

    max-width:
        600px;

    color:
        #9BAAC0;

    line-height:
        1.7;

    font-size:
        14px;

}


.software-points {

    display:
        grid;

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

    gap:
        10px 25px;

    margin:
        25px 0 30px;

}


.software-points div {

    color:
        #D8E2EF;

    font-size:
        12px;

}


.software-points span {

    color:
        #39C7FF;

    margin-right:
        7px;

    font-weight:
        800;

}


.software-visual {

    min-height:
        430px;

    position:
        relative;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    overflow:
        hidden;

}


.visual-orbit {

    position:
        absolute;

    border:
        1px solid rgba(0, 194, 255, .18);

    border-radius:
        50%;

    animation:
        orbitPulse 5s ease-in-out infinite;

}


.orbit-one {

    width:
        280px;

    height:
        280px;

}


.orbit-two {

    width:
        190px;

    height:
        190px;

    animation-delay:
        -.8s;

}


.orbit-three {

    width:
        110px;

    height:
        110px;

    animation-delay:
        -1.6s;

}


@keyframes orbitPulse {

    0%,
    100% {
        transform: scale(1);
        opacity: .7;
    }

    50% {
        transform: scale(1.08);
        opacity: 1;
    }

}


.visual-core {

    width:
        82px;

    height:
        82px;

    border-radius:
        50%;

    background:
        linear-gradient(135deg,
            #0070E0,
            #00C2FF);

    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    justify-content:
        center;

    color:
        #fff;

    box-shadow:
        0 0 45px rgba(0, 194, 255, .4);

    z-index:
        3;

    animation:
        coreFloat 4s ease-in-out infinite;

}


.visual-core span {

    font-size:
        9px;

    letter-spacing:
        .12em;

}


.visual-core strong {

    font-size:
        16px;

}


@keyframes coreFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }

}


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

.process-section {

    background:
        #F8FAFC;

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

}


.process-grid {

    display:
        grid;

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

    gap:
        18px;

}


.process-card {

    position:
        relative;

    padding:
        28px;

    background:
        #fff;

    border:
        1px solid var(--svc-border);

    border-radius:
        14px;

    transition:
        var(--svc-transition);

}


.process-card:hover {

    transform:
        translateY(-6px);

    box-shadow:
        var(--svc-shadow);

    border-color:
        rgba(0, 112, 224, .22);

}


.process-card>span {

    position:
        absolute;

    top:
        15px;

    right:
        18px;

    color:
        #CBD5E1;

    font-size:
        10px;

    font-weight:
        800;

}


.process-icon {

    width:
        44px;

    height:
        44px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin-bottom:
        18px;

    border-radius:
        10px;

    background:
        rgba(0, 112, 224, .08);

    color:
        var(--svc-blue);

    font-weight:
        800;

}


.process-card h3 {

    margin:
        0 0 8px;

    color:
        var(--svc-dark);

    font-size:
        16px;

}


.process-card p {

    margin:
        0;

    color:
        var(--svc-muted);

    font-size:
        12px;

    line-height:
        1.65;

}


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

.services-cta {

    position:
        relative;

    overflow:
        hidden;

    background:
        #071226;

    color:
        #fff;

}


.services-cta .container {

    position:
        relative;

    z-index:
        2;

}


.cta-glow {

    position:
        absolute;

    width:
        500px;

    height:
        500px;

    border-radius:
        50%;

    right:
        -180px;

    top:
        -220px;

    background:
        radial-gradient(circle,
            rgba(0, 194, 255, .18),
            transparent 68%);

    animation:
        ctaGlow 7s ease-in-out infinite;

}


@keyframes ctaGlow {

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

    50% {
        transform: scale(1.12);
    }

}


.cta-inner {

    min-height:
        300px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        40px;

}


.cta-inner .section-eyebrow {

    color:
        #42C8FF;

}


.cta-inner h2 {

    color:
        #fff;

    font-size:
        clamp(30px, 4vw, 48px);

    line-height:
        1.1;

    letter-spacing:
        -.04em;

    margin:
        0 0 13px;

}


.cta-inner p {

    max-width:
        650px;

    color:
        #98A9BF;

    margin:
        0;

    line-height:
        1.7;

    font-size:
        14px;

}


.cta-buttons {

    display:
        flex;

    align-items:
        center;

    gap:
        10px;

    flex-shrink:
        0;

}


.btn-outline-white {

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        12px 20px;

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

    border-radius:
        8px;

    color:
        #fff;

    background:
        transparent;

    text-decoration:
        none;

    font-size:
        13px;

    font-weight:
        700;

    transition:
        var(--svc-transition);

}


.btn-outline-white:hover {

    border-color:
        #00C2FF;

    background:
        rgba(0, 194, 255, .08);

    transform:
        translateY(-2px);

}


/* ================================================================
   RESPONSIVE
   ================================================================ */

@media (max-width: 1100px) {

    .services-grid {

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

    }


    .process-grid {

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

    }


    .product-flow {

        flex-wrap:
            wrap;

        gap:
            10px;

    }


    .flow-line {

        width:
            20px;

    }

}


@media (max-width: 850px) {

    .services-hero {

        padding:
            75px 0 55px;

    }


    .services-hero h1 {

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

    }


    .services-grid {

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

    }


    .software-box {

        grid-template-columns:
            1fr;

    }


    .software-visual {

        min-height:
            250px;

    }


    .software-content {

        padding:
            42px;

    }


    .cta-inner {

        flex-direction:
            column;

        align-items:
            flex-start;

        justify-content:
            center;

        padding:
            45px 0;

    }

}


@media (max-width: 650px) {

    .hero-mini-points {

        display:
            grid;

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

        gap:
            18px;

    }


    .hero-mini-points>div {

        min-width:
            0;

        padding:
            0;

        border-right:
            none;

    }


    .services-grid {

        grid-template-columns:
            1fr;

    }


    .service-card {

        min-height:
            250px;

    }


    .product-flow {

        display:
            grid;

        grid-template-columns:
            1fr;

    }


    .flow-card {

        width:
            100%;

        min-height:
            auto;

    }


    .flow-line {

        width:
            1px;

        height:
            25px;

        margin:
            0 auto;

    }


    .flow-line::after {

        display:
            none;

    }


    .process-grid {

        grid-template-columns:
            1fr;

    }


    .software-content {

        padding:
            32px 25px;

    }


    .software-points {

        grid-template-columns:
            1fr;

    }


    .cta-buttons {

        width:
            100%;

        flex-direction:
            column;

        align-items:
            stretch;

    }


    .cta-buttons .btn {

        width:
            100%;

    }

}


@media (max-width: 480px) {

    .services-hero {

        padding:
            60px 0 45px;

    }


    .services-hero h1 {

        font-size:
            36px;

    }


    .hero-description {

        font-size:
            14px;

    }


    .hero-buttons {

        flex-direction:
            column;

        align-items:
            stretch;

    }


    .hero-buttons .btn {

        width:
            100%;

        justify-content:
            center;

    }


    .hero-mini-points {

        margin-top:
            35px;

    }


    .services-page .section-heading {

        margin-bottom:
            30px;

    }


    .services-page .section-heading h2 {

        font-size:
            30px;

    }


    .service-card {

        padding:
            21px;

    }


    .software-visual {

        min-height:
            210px;

    }


    .orbit-one {

        width:
            220px;

        height:
            220px;

    }


    .orbit-two {

        width:
            150px;

        height:
            150px;

    }


    .orbit-three {

        width:
            90px;

        height:
            90px;

    }

}