/* CSS Document */

/*===============================
 GOOGLE FONT
================================*/
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/*===============================
 RESET
================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Poppins',sans-serif;
    background:#071526;
    color:#fff;
    overflow-x:hidden;
}

a{
    text-decoration:none;
}

ul{
    list-style:none;
}

img{
    width:100%;
    display:block;
}

/*===============================
 CONTAINER
================================*/

.container{
    width:90%;
    max-width:1400px;
    margin:auto;
}

/*===============================
 HEADER
================================*/

header{
    position:fixed;
    width:100%;
    top:0;
    left:0;
    z-index:999;
    background:rgba(5,18,34,.75);
    backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(255,255,255,.08);
}

/*===============================
 NAVBAR
================================*/

.navbar{
    height:90px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.logo{
    display:flex;
    align-items:center;
    gap:15px;
}

.logo img{
    width:65px;
}

.logo h2{
    color:#fff;
    font-size:40px;
    font-weight:700;
}

.logo span{
    color:#17b7ff;
}

/*===============================
 MENU
================================*/

nav ul{
    display:flex;
    align-items:center;
    gap:45px;
}

nav ul li a{

    color:#fff;
    font-size:18px;
    font-weight:500;
    transition:.35s;

}

nav ul li a:hover{

    color:#18b9ff;

}

nav ul li .active{

    color:#18b9ff;
    position:relative;

}

nav ul li .active::after{

    content:'';
    position:absolute;
    left:0;
    bottom:-12px;
    width:100%;
    height:3px;
    background:#18b9ff;
    border-radius:10px;

}

/*===============================
 BUTTON
================================*/

.quote-btn{

    padding:18px 38px;
    border-radius:40px;
    color:#fff;
    font-weight:600;
    background:linear-gradient(90deg,#13b2ff,#1d73ff);
    transition:.4s;

}

.quote-btn:hover{

    transform:translateY(-4px);

    box-shadow:0 10px 30px rgba(0,170,255,.4);

}

.quote-btn i{

    margin-left:10px;

}

/*===============================
 HERO
================================*/

.hero{

    position:relative;

    padding-top:150px;
    padding-bottom:70px;

    background:
    radial-gradient(circle at top left,#14375f 0%,#081726 55%,#06111e 100%);

    overflow:hidden;

}

.overlay{

    position:absolute;

    width:100%;
    height:100%;

    left:0;
    top:0;

    background:linear-gradient(90deg,
    rgba(5,20,35,.96) 10%,
    rgba(5,20,35,.70) 50%,
    rgba(5,20,35,.20) 100%);

}

.hero-grid{

    position:relative;

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:50px;

}

/*===============================
 HERO CONTENT
================================*/

.hero-content{

    z-index:2;

}

.sub-title{

    color:#18b8ff;

    letter-spacing:10px;

    font-size:18px;

    font-weight:600;

    display:block;

    margin-bottom:30px;

}

.hero-content h1{

    font-size:92px;

    font-weight:800;

    line-height:1;

    margin-bottom:35px;

}

.hero-content h1 span{

    color:#2fc3ff;

}

.hero-content p{

    width:600px;

    max-width:100%;

    color:#d6d6d6;

    line-height:2;

    font-size:22px;

}

/*===============================
 DIVIDER
================================*/

.divider{

    display:flex;

    align-items:center;

    gap:20px;

    margin-bottom:35px;

}

.divider span{

    width:90px;

    height:3px;

    background:#1dbbff;

}

.divider i{

    color:#18b8ff;

    font-size:32px;

}

/*===============================
 HERO IMAGE
================================*/

.hero-image{

    position:relative;

    z-index:2;

}

.hero-image img{

    border-radius:18px;

    box-shadow:0 30px 80px rgba(0,0,0,.45);

}

.hero-image::before{

    content:'';

    position:absolute;

    inset:-25px;

    background:linear-gradient(90deg,#16b7ff,#195cff);

    border-radius:20px;

    z-index:-1;

    filter:blur(70px);

    opacity:.25;

}

/*===============================
 SECTION SPACING
================================*/

section{

    position:relative;

}

.services{

    margin-top:-40px;

    position:relative;

    z-index:10;

}
/*==================================
   SERVICES SECTION
===================================*/

.services{
    padding:40px 0 80px;
}

.service-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
}

.service-card{
    background:#0c1d31;
    border:1px solid rgba(255,255,255,.08);
    border-radius:20px;
    padding:40px 35px;
    transition:.4s;
    position:relative;
    overflow:hidden;
}

.service-card::before{
    content:"";
    position:absolute;
    width:250px;
    height:250px;
    background:radial-gradient(circle,#18b8ff40,transparent 70%);
    top:-120px;
    right:-120px;
    opacity:0;
    transition:.4s;
}

.service-card:hover{
    transform:translateY(-10px);
    border-color:#18b8ff;
    box-shadow:0 25px 50px rgba(0,170,255,.18);
}

.service-card:hover::before{
    opacity:1;
}

.service-card .icon{
    width:80px;
    height:80px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    border:2px solid #18b8ff;
    color:#18b8ff;
    font-size:34px;
    margin-bottom:30px;
}

.service-card h3{
    font-size:30px;
    margin-bottom:20px;
    font-weight:600;
}

.service-card p{
    color:#d0d5dc;
    line-height:1.9;
    font-size:17px;
    margin-bottom:30px;
}

.service-card a{
    color:#18b8ff;
    font-weight:600;
    transition:.3s;
}

.service-card a:hover{
    letter-spacing:1px;
}

.service-card a i{
    margin-left:8px;
}

/*==================================
   STATS
===================================*/

.stats{
    padding:20px 0 90px;
}

.stats-grid{
    background:#091b2d;
    border-radius:25px;
    border:1px solid rgba(255,255,255,.08);
    display:grid;
    grid-template-columns:repeat(4,1fr);
    overflow:hidden;
}

.stat{
    display:flex;
    align-items:center;
    gap:25px;
    padding:40px;
    position:relative;
}

.stat:not(:last-child)::after{
    content:"";
    position:absolute;
    right:0;
    top:30%;
    width:1px;
    height:40%;
    background:rgba(255,255,255,.1);
}

.stat i{
    font-size:55px;
    color:#18b8ff;
}

.stat h2{
    font-size:52px;
    margin-bottom:5px;
}

.stat p{
    font-size:18px;
    color:#d7d7d7;
}

/*==================================
   FOOTER
===================================*/

footer{
    border-top:1px solid rgba(255,255,255,.08);
    padding:30px 0;
    text-align:center;
    color:#b5b5b5;
}

/*==================================
   SCROLLBAR
===================================*/

::-webkit-scrollbar{
    width:10px;
}

::-webkit-scrollbar-track{
    background:#071526;
}

::-webkit-scrollbar-thumb{
    background:#18b8ff;
    border-radius:20px;
}

/*==================================
   ANIMATIONS
===================================*/

@keyframes fadeUp{

    from{
        opacity:0;
        transform:translateY(50px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

.hero-content,
.hero-image,
.service-card,
.stat{
    animation:fadeUp .8s ease both;
}

/* =========================================================
   RESPONSIVE DESIGN
========================================================= */


/* =========================================================
   LARGE LAPTOP
========================================================= */

@media (max-width: 1200px) {

    .container {
        width: 92%;
    }

    .navbar {
        padding: 0 25px;
    }

    nav ul {
        gap: 28px;
    }

    nav ul li a {
        font-size: 16px;
    }

    .quote-btn {
        padding: 14px 25px;
        font-size: 16px;
    }

    .logo h2 {
        font-size: 32px;
    }

    .service-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .hero-content h1 {
        font-size: 72px;
    }

    .hero-content p {
        width: 100%;
        font-size: 20px;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    /* -------------------------
       HEADER
    ------------------------- */

    header {
        height: auto;
    }

    .navbar {
        width: 92%;
        height: 75px;

        padding: 0 20px;

        display: flex;
        flex-direction: row;

        justify-content: space-between;
        align-items: center;
    }


    /* -------------------------
       LOGO
    ------------------------- */

    .logo {
        gap: 12px;
    }

    .logo img {
        width: 55px;
    }

    .logo h2 {
        font-size: 28px;
    }


    /* -------------------------
       HAMBURGER
    ------------------------- */

    .menu-toggle {
        display: flex;
    }


    /* -------------------------
       HIDE DESKTOP BUTTON
    ------------------------- */

    .quote-btn {
        display: none;
    }


    /* -------------------------
       MOBILE NAV
    ------------------------- */

    nav {

        position: absolute;

        top: 82px;
        left: 50%;

        transform: translateX(-50%);

        width: 100%;

        max-height: 0;

        overflow: hidden;

        opacity: 0;

        visibility: hidden;

        background: rgba(7, 21, 38, .96);

        backdrop-filter: blur(18px);

        -webkit-backdrop-filter: blur(18px);

        border: 1px solid rgba(255,255,255,.10);

        border-radius: 18px;

        box-shadow:
            0 20px 50px rgba(0,0,0,.45);

        transition:
            max-height .45s ease,
            opacity .35s ease,
            visibility .35s ease;

        z-index: 1000;
    }


    nav.active {

        max-height: 400px;

        opacity: 1;

        visibility: visible;
    }


    nav ul {

        display: flex;

        flex-direction: column;

        gap: 0;

        width: 100%;

        padding: 10px 0;

        margin: 0;
    }


    nav ul li {

        width: 100%;

        text-align: center;
    }


    nav ul li a {

        display: block;

        width: 100%;

        padding: 15px 20px;

        font-size: 18px;

        color: #fff;
    }


    /* Remove desktop underline */

    nav ul li a::after {

        display: none;
    }


    nav ul li a:hover {

        color: #18b9ff;

        background: rgba(24,185,255,.08);
    }


    /* -------------------------
       HERO
    ------------------------- */

    .hero {

        padding-top: 150px;

        padding-bottom: 60px;
    }


    .hero-grid {

        grid-template-columns: 1fr;

        gap: 30px;

        text-align: center;
    }


    .hero-content {

        text-align: center;
    }


    .sub-title {

        font-size: 15px;

        letter-spacing: 7px;

        margin-bottom: 20px;
    }


    .hero-content h1 {

        font-size: 64px;

        line-height: 1.1;


        margin-bottom: 25px;
    }


    .hero-content p {

        width: 100%;

        max-width: 750px;

        margin: auto;

        font-size: 18px;

        line-height: 1.8;
    }


    .divider {

        justify-content: center;

        margin-bottom: 25px;
    }


    .hero-image {

        width: 90%;

        max-width: 700px;

        margin: 20px auto 0;
    }


    /* -------------------------
       SERVICES
    ------------------------- */

    .services {

        margin-top: 0;

        padding: 50px 0 70px;
    }


    .service-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 25px;
    }


    .service-card {

        padding: 30px 25px;
    }


    .service-card h3 {

        font-size: 25px;
    }


    .service-card p {

        font-size: 16px;

        line-height: 1.8;
    }


    /* -------------------------
       STATS
    ------------------------- */

    .stats {

        padding: 20px 0 70px;
    }


    .stats-grid {

        grid-template-columns: repeat(2, 1fr);
    }


    .stat {

        justify-content: center;

        text-align: center;

        flex-direction: column;

        gap: 10px;

        padding: 35px 20px;
    }


    .stat:not(:last-child)::after {

        display: none;
    }


    .stat i {

        font-size: 45px;
    }


    .stat h2 {

        font-size: 42px;
    }


    .stat p {

        font-size: 16px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .container {

        width: 92%;
    }


    /* -------------------------
       NAVBAR
    ------------------------- */

    .navbar {

        width: 94%;

        height: 68px;

        padding: 0 15px;

        border-radius: 14px;
    }


    .logo {

        gap: 10px;
    }


    .logo img {

        width: 48px;
    }


    .logo h2 {

        font-size: 22px;

        letter-spacing: 1px;
    }


    .menu-toggle {

        width: 48px;

        height: 38px;
    }


    .menu-toggle span {

        width: 24px;
    }


    nav {

        top: 75px;
    }


    nav ul li a {

        padding: 14px 15px;

        font-size: 17px;
    }


    /* -------------------------
       HERO
    ------------------------- */

    .hero {

        padding-top: 135px;

        padding-bottom: 50px;
    }


    .hero-grid {

        gap: 20px;
    }


    .sub-title {

        font-size: 12px;

        letter-spacing: 5px;

        margin-bottom: 15px;
    }


    .hero-content h1 {

        font-size: 48px;

        line-height: 1.15;

        margin-bottom: 20px;
    }


    .hero-content p {

        font-size: 16px;

        line-height: 1.7;
    }


    .divider {

        gap: 12px;

        margin-bottom: 20px;
    }


    .divider span {

        width: 55px;

        height: 2px;
    }


    .divider i {

        font-size: 25px;
    }


    .hero-image {

        width: 100%;

        margin-top: 15px;
    }


    .hero-image img {

        border-radius: 14px;
    }


    /* -------------------------
       SERVICES
    ------------------------- */

    .services {

        padding: 40px 0 60px;
    }


    .service-grid {

        grid-template-columns: 1fr;

        gap: 20px;
    }


    .service-card {

        padding: 28px 22px;

        border-radius: 16px;
    }


    .service-card .icon {

        width: 65px;

        height: 65px;

        font-size: 28px;

        margin-bottom: 20px;
    }


    .service-card h3 {

        font-size: 23px;

        margin-bottom: 15px;
    }


    .service-card p {

        font-size: 15px;

        line-height: 1.7;

        margin-bottom: 20px;
    }


    /* -------------------------
       STATS
    ------------------------- */

    .stats {

        padding: 20px 0 60px;
    }


    .stats-grid {

        grid-template-columns: 1fr;

        border-radius: 18px;
    }


    .stat {

        padding: 30px 15px;

        gap: 8px;
    }


    .stat i {

        font-size: 42px;
    }


    .stat h2 {

        font-size: 38px;
    }


    .stat p {

        font-size: 15px;
    }


    /* -------------------------
       FOOTER
    ------------------------- */

    footer {

        padding: 25px 15px;

        font-size: 14px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .container {

        width: 94%;
    }


    /* -------------------------
       NAVBAR
    ------------------------- */

    .navbar {

        width: 94%;

        height: 62px;

        padding: 0 12px;
    }


    .logo img {

        width: 43px;
    }


    .logo h2 {

        font-size: 18px;
    }


    .menu-toggle {

        width: 44px;

        height: 35px;
    }


    .menu-toggle span {

        width: 22px;
    }


    nav {

        top: 69px;

        border-radius: 14px;
    }


    nav ul li a {

        padding: 13px 10px;

        font-size: 16px;
    }


    /* -------------------------
       HERO
    ------------------------- */

    .hero {

        padding-top: 115px;

        padding-bottom: 40px;
    }


    .hero-content h1 {

        font-size: 38px;

        line-height: 1.2;
    }


    .sub-title {

        font-size: 10px;

        letter-spacing: 4px;
    }


    .hero-content p {

        font-size: 14px;

        line-height: 1.7;
    }


    .divider {

        gap: 10px;
    }


    .divider span {

        width: 40px;
    }


    .divider i {

        font-size: 22px;
    }


    /* -------------------------
       SERVICE CARD
    ------------------------- */

    .service-card {

        padding: 22px 18px;
    }


    .service-card .icon {

        width: 58px;

        height: 58px;

        font-size: 24px;
    }


    .service-card h3 {

        font-size: 21px;
    }


    .service-card p {

        font-size: 14px;

        line-height: 1.65;
    }


    /* -------------------------
       STATS
    ------------------------- */

    .stat {

        padding: 25px 15px;
    }


    .stat i {

        font-size: 36px;
    }


    .stat h2 {

        font-size: 34px;
    }


    .stat p {

        font-size: 14px;
    }

}


/* =========================================================
   EXTRA SMALL
========================================================= */

@media (max-width: 360px) {

    .logo h2 {

        font-size: 16px;
    }


    .logo img {

        width: 40px;
    }


    .hero-content h1 {

        font-size: 34px;
    }


    .hero-content p {

        font-size: 13px;
    }


    .service-card h3 {

        font-size: 20px;
    }


    .stat h2 {

        font-size: 30px;
    }

}