/* ==========================================
   GOOGLE FONTS
========================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

/* ==========================================
   CSS VARIABLES
========================================== */

:root {

    --primary: #7c3aed;
    --primary-light: #8b5cf6;
    --secondary: #06b6d4;
    --accent: #f59e0b;

    --dark: #0b1120;
    --dark-2: #111827;
    --dark-3: #1f2937;

    --light: #ffffff;
    --light-2: #f8fafc;
    --light-3: #e2e8f0;

    --text-dark: #0f172a;
    --text-light: #f8fafc;
    --text-muted: #94a3b8;

    --success: #22c55e;
    --danger: #ef4444;

    --shadow-sm:
        0 5px 15px rgba(0,0,0,.08);

    --shadow-md:
        0 10px 30px rgba(0,0,0,.15);

    --shadow-lg:
        0 20px 60px rgba(0,0,0,.25);

    --radius-sm: 12px;
    --radius-md: 20px;
    --radius-lg: 30px;

    --transition:
        all .35s ease;

    --container:
        1300px;
}

/* ==========================================
   LIGHT THEME
========================================== */

body.light-theme {

    --bg:
        #ffffff;

    --bg-secondary:
        #f8fafc;

    --card:
        rgba(255,255,255,.75);

    --card-border:
        rgba(0,0,0,.08);

    --heading:
        #0f172a;

    --text:
        #334155;

    --navbar:
        rgba(255,255,255,.8);
}

/* ==========================================
   DARK THEME
========================================== */

body {

    --bg:
        #0b1120;

    --bg-secondary:
        #111827;

    --card:
        rgba(17,24,39,.65);

    --card-border:
        rgba(255,255,255,.08);

    --heading:
        #f8fafc;

    --text:
        #cbd5e1;

    --navbar:
        rgba(11,17,32,.75);

    background:
        var(--bg);

    color:
        var(--text);

    font-family:
        'Inter',
        sans-serif;

    overflow-x:
        hidden;
}

/* ==========================================
   RESET
========================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
}

ul{
    list-style:none;
}

button,
input,
textarea{
    font-family:inherit;
}

section{
    position:relative;
}

/* ==========================================
   SCROLLBAR
========================================== */

::-webkit-scrollbar{
    width:10px;
}

::-webkit-scrollbar-track{
    background:var(--bg);
}

::-webkit-scrollbar-thumb{
    background:var(--primary);
    border-radius:100px;
}

/* ==========================================
   GLOBAL
========================================== */

.container{
    width:90%;
    max-width:var(--container);
    margin:auto;
}

.section{
    padding:120px 0;
}

.section-small{
    padding:60px 0;
}

.section-header{
    text-align:center;
    margin-bottom:70px;
}

.section-tag{

    display:inline-block;

    padding:
        10px 20px;

    border-radius:
        100px;

    color:
        var(--secondary);

    background:
        rgba(6,182,212,.12);

    font-size:
        .85rem;

    font-weight:
        700;

    letter-spacing:
        1px;

    text-transform:
        uppercase;

    margin-bottom:
        20px;
}

.section-header h2{

    color:
        var(--heading);

    font-size:
        clamp(
            2rem,
            4vw,
            3.5rem
        );

    line-height:
        1.2;
}

/* ==========================================
   PRELOADER
========================================== */

#preloader{

    position:fixed;
    inset:0;

    background:
        var(--bg);

    display:flex;
    justify-content:center;
    align-items:center;

    z-index:99999;
}

.loader{

    width:70px;
    height:70px;

    border:
        5px solid rgba(255,255,255,.15);

    border-top:
        5px solid var(--primary);

    border-radius:50%;

    animation:
        spin 1s linear infinite;
}

@keyframes spin{

    100%{
        transform:rotate(360deg);
    }
}

/* ==========================================
   BACKGROUND EFFECTS
========================================== */

body::before{

    content:"";

    position:fixed;

    top:-300px;
    left:-250px;

    width:600px;
    height:600px;

    background:
        radial-gradient(
            circle,
            rgba(124,58,237,.22),
            transparent 70%
        );

    pointer-events:none;
}

body::after{

    content:"";

    position:fixed;

    right:-250px;
    bottom:-250px;

    width:600px;
    height:600px;

    background:
        radial-gradient(
            circle,
            rgba(6,182,212,.18),
            transparent 70%
        );

    pointer-events:none;
}

/* ==========================================
   HEADER
========================================== */

.header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    z-index:1000;

    transition:
        var(--transition);

    padding:
        20px 0;
}

.header.scroll-header{

    background:
        var(--navbar);

    backdrop-filter:
        blur(20px);

    border-bottom:
        1px solid rgba(255,255,255,.05);
}

.nav-container{

    display:flex;
    align-items:center;
    justify-content:space-between;
}

.logo{

    font-size:
        2rem;

    font-weight:
        900;

    color:
        var(--heading);
}

.logo span{

    color:
        var(--primary);
}

.nav-menu{

    display:flex;
    align-items:center;
    gap:40px;
}

.nav-link{

    color:
        var(--text);

    font-weight:
        500;

    position:relative;

    transition:
        var(--transition);
}

.nav-link:hover{

    color:
        var(--primary);
}

.nav-link::after{

    content:"";

    position:absolute;

    left:0;
    bottom:-8px;

    width:0;
    height:2px;

    background:
        var(--primary);

    transition:
        var(--transition);
}

.nav-link:hover::after,
.nav-link.active::after{

    width:100%;
}

.nav-actions{

    display:flex;
    align-items:center;
    gap:15px;
}

.menu-toggle{

    display:none;

    font-size:2rem;

    color:
        var(--heading);

    cursor:pointer;
}

/* ==========================================
   THEME BUTTON
========================================== */

.theme-toggle{

    width:50px;
    height:50px;

    border:none;

    border-radius:50%;

    cursor:pointer;

    background:
        rgba(255,255,255,.08);

    color:
        var(--heading);

    backdrop-filter:
        blur(10px);

    transition:
        var(--transition);
}

.theme-toggle:hover{

    transform:
        rotate(180deg);

    background:
        var(--primary);
}

/* ==========================================
   BUTTONS
========================================== */

.btn{

    display:inline-flex;

    align-items:center;
    justify-content:center;

    gap:10px;

    padding:
        16px 34px;

    border-radius:
        100px;

    font-weight:
        700;

    transition:
        var(--transition);

    cursor:pointer;
}

.primary-btn{

    color:#fff;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );

    box-shadow:
        0 15px 40px rgba(124,58,237,.3);
}

.primary-btn:hover{

    transform:
        translateY(-5px);

    box-shadow:
        0 25px 50px rgba(124,58,237,.4);
}

.secondary-btn{

    color:
        var(--heading);

    border:
        1px solid rgba(255,255,255,.12);

    background:
        rgba(255,255,255,.04);

    backdrop-filter:
        blur(10px);
}

.secondary-btn:hover{

    border-color:
        var(--primary);

    transform:
        translateY(-5px);
}

/* ==========================================
   HERO
========================================== */

.hero{

    min-height:
        100vh;

    display:flex;
    align-items:center;

    padding-top:
        120px;
}

.hero-container{

    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:80px;

    align-items:center;
}

.hero-tag{

    display:inline-block;

    margin-bottom:20px;

    padding:
        12px 24px;

    border-radius:
        100px;

    color:
        var(--secondary);

    background:
        rgba(6,182,212,.12);

    font-weight:
        700;
}

.hero-content h1{

    color:
        var(--heading);

    font-size:
        clamp(
            3rem,
            6vw,
            5.5rem
        );

    line-height:
        1.05;

    margin-bottom:
        25px;
}

.hero-content h1 span{
    background: linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    background-clip: text;
    -webkit-background-clip: text;

    color: transparent;
    -webkit-text-fill-color: transparent;

    display: inline-block;
}

.hero-content p{

    font-size:
        1.15rem;

    max-width:
        650px;

    line-height:
        1.8;

    margin-bottom:
        35px;
}

.hero-buttons{

    display:flex;
    gap:20px;

    margin-bottom:
        50px;
}

.hero-stats{

    display:flex;
    gap:50px;
}

.hero-stats h3{

    color:
        var(--heading);

    font-size:
        2.5rem;
}

.hero-stats p{

    margin:0;
    color:var(--text-muted);
}

.hero-image-wrapper{

    position:relative;

    padding:20px;

    border-radius:
        40px;

    background:
        linear-gradient(
            135deg,
            rgba(124,58,237,.25),
            rgba(6,182,212,.15)
        );

    backdrop-filter:
        blur(20px);

    border:
        1px solid rgba(255,255,255,.08);

    box-shadow:
        var(--shadow-lg);
}

.hero-image-wrapper img{

    border-radius:
        30px;
}

/* ==========================================
   CLIENTS
========================================== */

.clients{

    background:
        var(--bg-secondary);
}

.clients-grid{

    display:grid;

    grid-template-columns:
        repeat(5,1fr);

    gap:25px;
}

.client-box{

    padding:
        30px;

    border-radius:
        20px;

    text-align:center;

    font-weight:
        700;

    color:
        var(--heading);

    background:
        rgba(255,255,255,.03);

    border:
        1px solid rgba(255,255,255,.05);

    transition:
        var(--transition);
}

.client-box:hover{

    transform:
        translateY(-8px);

    border-color:
        var(--primary);
}

.section-subtitle{

    text-align:center;

    margin-bottom:
        40px;

    color:
        var(--text-muted);

    font-weight:
        600;
}

/* ==========================================
   ABOUT
========================================== */

.about-container{

    display:grid;

    grid-template-columns:
        1fr 1.1fr;

    gap:80px;

    align-items:center;
}

.about-image{

    position:relative;
}

.about-image img{

    border-radius:
        30px;

    box-shadow:
        var(--shadow-lg);
}

.about-content h2{

    color:
        var(--heading);

    font-size:
        clamp(
            2rem,
            4vw,
            3.5rem
        );

    margin-bottom:
        25px;
}

.about-content p{

    margin-bottom:
        20px;

    line-height:
        1.9;
}

.skills{

    display:flex;
    flex-wrap:wrap;

    gap:15px;

    margin-top:
        30px;
}

.skills span{

    padding:
        12px 22px;

    border-radius:
        100px;

    color:
        var(--heading);

    background:
        rgba(255,255,255,.05);

    border:
        1px solid rgba(255,255,255,.08);

    transition:
        var(--transition);
}

.skills span:hover{

    background:
        var(--primary);

    transform:
        translateY(-4px);
}

/* ==========================================
   SERVICES
========================================== */

.services{
    position: relative;
    overflow: hidden;
}

.services-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
}

.service-card{

    position:relative;

    padding:40px 30px;

    background:var(--card);

    border:1px solid var(--card-border);

    border-radius:30px;

    backdrop-filter:blur(20px);

    transition:var(--transition);

    overflow:hidden;
}

.service-card::before{

    content:"";

    position:absolute;

    top:0;
    left:-100%;

    width:100%;
    height:100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.06),
            transparent
        );

    transition:.8s;
}

.service-card:hover::before{
    left:100%;
}

.service-card:hover{

    transform:
        translateY(-12px);

    border-color:
        rgba(124,58,237,.4);

    box-shadow:
        0 20px 50px rgba(124,58,237,.15);
}

.service-card i{

    width:75px;
    height:75px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:2rem;

    color:#fff;

    border-radius:20px;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );

    margin-bottom:25px;
}

.service-card h3{

    color:var(--heading);

    font-size:1.4rem;

    margin-bottom:15px;
}

.service-card p{

    line-height:1.8;

    color:var(--text);
}

/* ==========================================
   PROCESS
========================================== */

.process{

    background:var(--bg-secondary);
}

.process-grid{

    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:25px;
}

.process-card{

    position:relative;

    padding:50px 25px;

    text-align:center;

    background:var(--card);

    border:1px solid var(--card-border);

    border-radius:30px;

    backdrop-filter:blur(20px);

    transition:var(--transition);
}

.process-card:hover{

    transform:
        translateY(-10px);

    border-color:
        rgba(124,58,237,.35);
}

.process-card span{

    display:inline-flex;

    width:80px;
    height:80px;

    align-items:center;
    justify-content:center;

    border-radius:50%;

    font-size:1.5rem;
    font-weight:800;

    color:#fff;

    margin-bottom:25px;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );

    box-shadow:
        0 15px 40px rgba(124,58,237,.25);
}

.process-card h3{

    color:var(--heading);

    font-size:1.3rem;
}

/* ==========================================
   PORTFOLIO
========================================== */

.portfolio{
    position:relative;
}

.portfolio-filter{

    display:flex;
    justify-content:center;
    flex-wrap:wrap;

    gap:15px;

    margin-bottom:60px;
}

.filter-btn{

    padding:14px 28px;

    border:none;

    border-radius:100px;

    cursor:pointer;

    color:var(--heading);

    background:
        rgba(255,255,255,.05);

    border:
        1px solid rgba(255,255,255,.08);

    transition:var(--transition);
}

.filter-btn:hover{

    transform:
        translateY(-4px);

    border-color:
        var(--primary);
}

.filter-btn.active{

    color:#fff;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );
}

.portfolio-grid{

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:30px;
}

.portfolio-item{

    position:relative;

    overflow:hidden;

    border-radius:30px;

    min-height:420px;

    cursor:pointer;

    border:
        1px solid rgba(255,255,255,.06);
}

.portfolio-item img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:
        transform .8s ease;
}

.portfolio-item:hover img{

    transform:
        scale(1.1);
}

.portfolio-overlay{

    position:absolute;

    inset:0;

    display:flex;
    flex-direction:column;

    justify-content:center;
    align-items:center;

    text-align:center;

    opacity:0;

    background:
        linear-gradient(
            rgba(11,17,32,.2),
            rgba(11,17,32,.9)
        );

    transition:.4s ease;
}

.portfolio-item:hover .portfolio-overlay{

    opacity:1;
}

.portfolio-overlay h3{

    color:#fff;

    font-size:1.7rem;

    margin-bottom:15px;

    transform:translateY(20px);

    transition:.4s ease;
}

.portfolio-overlay a{

    padding:12px 24px;

    border-radius:100px;

    color:#fff;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );

    transform:translateY(20px);

    transition:.4s ease;
}

.portfolio-item:hover
.portfolio-overlay h3,
.portfolio-item:hover
.portfolio-overlay a{

    transform:translateY(0);
}

/* ==========================================
   TESTIMONIALS
========================================== */

.testimonials{

    background:
        var(--bg-secondary);
}

.testimonial-slider{

    max-width:900px;

    margin:auto;
}

.testimonial-card{

    text-align:center;

    padding:60px;

    border-radius:35px;

    background:
        var(--card);

    border:
        1px solid var(--card-border);

    backdrop-filter:
        blur(20px);

    transition:
        var(--transition);
}

.testimonial-card:hover{

    transform:
        translateY(-8px);

    box-shadow:
        0 25px 60px rgba(124,58,237,.12);
}

.testimonial-card p{

    color:
        var(--heading);

    font-size:
        1.25rem;

    line-height:
        1.9;

    margin-bottom:
        25px;
}

.testimonial-card h4{

    color:
        var(--secondary);

    font-size:
        1rem;
}

/* ==========================================
   TESTIMONIAL AVATAR
========================================== */

.testimonial-avatar{

    width:90px;
    height:90px;

    border-radius:50%;

    overflow:hidden;

    margin:0 auto 25px;

    border:3px solid var(--primary);
}

.testimonial-avatar img{

    width:100%;
    height:100%;

    object-fit:cover;
}

/* ==========================================
   PRICING
========================================== */

.pricing{
    position:relative;
}

.pricing-grid{

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:30px;
}

.pricing-card{

    position:relative;

    padding:50px 35px;

    text-align:center;

    border-radius:35px;

    background:
        var(--card);

    border:
        1px solid var(--card-border);

    backdrop-filter:
        blur(20px);

    transition:
        var(--transition);
}

.pricing-card:hover{

    transform:
        translateY(-12px);

    border-color:
        rgba(124,58,237,.35);

    box-shadow:
        0 25px 60px rgba(124,58,237,.12);
}

.pricing-card h3{

    color:
        var(--heading);

    font-size:
        1.5rem;

    margin-bottom:
        15px;
}

.pricing-card h2{

    font-size:
        3rem;

    color:
        var(--primary);

    margin-bottom:
        25px;
}

.pricing-card ul{

    margin-bottom:
        35px;
}

.pricing-card ul li{

    padding:
        12px 0;

    color:
        var(--text);

    border-bottom:
        1px solid rgba(255,255,255,.05);
}

/* ==========================================
   FEATURED PLAN
========================================== */

.pricing-card.featured{

    transform:
        scale(1.05);

    border:
        2px solid rgba(124,58,237,.4);

    background:
        linear-gradient(
            180deg,
            rgba(124,58,237,.15),
            rgba(6,182,212,.08)
        );
}

.pricing-card.featured::before{

    content:"Most Popular";

    position:absolute;

    top:20px;
    right:20px;

    padding:
        8px 16px;

    font-size:.75rem;
    font-weight:700;

    letter-spacing:1px;

    text-transform:uppercase;

    border-radius:100px;

    color:#fff;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );
}

.pricing-card.featured:hover{

    transform:
        scale(1.05)
        translateY(-10px);
}

/* ==========================================
   PREMIUM GLASS EFFECT
========================================== */

.glass{

    background:
        rgba(255,255,255,.05);

    border:
        1px solid rgba(255,255,255,.08);

    backdrop-filter:
        blur(20px);

    -webkit-backdrop-filter:
        blur(20px);
}

/* ==========================================
   HOVER GRADIENT BORDER
========================================== */

.gradient-border{

    position:relative;
}

.gradient-border::before{

    content:"";

    position:absolute;

    inset:-1px;

    border-radius:inherit;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );

    z-index:-1;

    opacity:0;

    transition:.4s;
}

.gradient-border:hover::before{

    opacity:1;
}

/* ==========================================
   FLOATING ANIMATION
========================================== */

.float-card{

    animation:
        floating 5s ease-in-out infinite;
}

@keyframes floating{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-15px);
    }

    100%{
        transform:translateY(0);
    }
}

/* ==========================================
   FAQ SECTION
========================================== */

.faq{
    position: relative;
}

.faq-container{
    max-width: 900px;
    margin: 0 auto;
}

.faq-item{

    margin-bottom: 20px;

    border-radius: 24px;

    overflow: hidden;

    background: var(--card);

    border: 1px solid var(--card-border);

    backdrop-filter: blur(20px);

    transition: var(--transition);
}

.faq-item:hover{

    border-color:
        rgba(124,58,237,.25);
}

.faq-question{

    position: relative;

    padding: 25px 30px;

    cursor: pointer;

    color: var(--heading);

    font-size: 1.1rem;

    font-weight: 600;
}

.faq-question::after{

    content: "+";

    position: absolute;

    right: 30px;
    top: 50%;

    transform: translateY(-50%);

    font-size: 1.4rem;

    color: var(--primary);

    transition: .3s ease;
}

.faq-item.active .faq-question::after{

    content: "−";
}

.faq-answer{

    max-height: 0;

    overflow: hidden;

    transition:
        max-height .4s ease,
        padding .4s ease;

    color: var(--text);

    line-height: 1.8;

    padding: 0 30px;
}

.faq-item.active .faq-answer{

    max-height: 300px;

    padding:
        0 30px 25px;
}

/* ==========================================
   CONTACT SECTION
========================================== */

.contact{
    position: relative;
}

.contact-container{

    display: grid;

    grid-template-columns:
        .9fr 1.1fr;

    gap: 50px;

    align-items: center;
}

.contact-info h2{

    color: var(--heading);

    font-size:
        clamp(
            2rem,
            4vw,
            3.5rem
        );

    margin-bottom: 20px;
}

.contact-info p{

    line-height: 1.9;

    color: var(--text);

    max-width: 550px;
}

.contact-form{

    display: flex;

    flex-direction: column;

    gap: 20px;

    padding: 40px;

    border-radius: 30px;

    background: var(--card);

    border: 1px solid var(--card-border);

    backdrop-filter: blur(20px);
}

.contact-form input,
.contact-form textarea{

    width: 100%;

    padding: 18px 22px;

    border-radius: 18px;

    border: 1px solid rgba(255,255,255,.08);

    background:
        rgba(255,255,255,.04);

    color: var(--heading);

    outline: none;

    transition: var(--transition);
}

.contact-form textarea{

    resize: none;

    min-height: 180px;
}

.contact-form input:focus,
.contact-form textarea:focus{

    border-color:
        var(--primary);

    box-shadow:
        0 0 0 4px
        rgba(124,58,237,.15);
}

.contact-form input::placeholder,
.contact-form textarea::placeholder{

    color: var(--text-muted);
}

/* ==========================================
   CONTACT INFO CARDS
========================================== */

.contact-cards{

    display: flex;

    flex-direction: column;

    gap: 20px;

    margin-top: 35px;
}

.contact-card{

    display: flex;

    align-items: center;

    gap: 15px;

    padding: 20px;

    border-radius: 20px;

    background:
        rgba(255,255,255,.04);

    border:
        1px solid rgba(255,255,255,.08);
}

.contact-card i{

    width: 55px;
    height: 55px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 15px;

    color: #fff;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );
}

/* ==========================================
   FOOTER
========================================== */

.footer{

    position: relative;

    padding: 80px 0 40px;

    background:
        var(--bg-secondary);

    border-top:
        1px solid rgba(255,255,255,.05);
}

.footer-content{

    text-align: center;
}

.footer-content h2{

    color: var(--heading);

    font-size: 2.2rem;

    margin-bottom: 25px;
}

.footer-content h2 span{

    color: var(--primary);
}

.footer-content p{

    margin-top: 25px;

    color: var(--text-muted);
}

/* ==========================================
   SOCIAL ICONS
========================================== */

.social-links{

    display: flex;

    justify-content: center;

    gap: 15px;
}

.social-links a{

    width: 55px;
    height: 55px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    color: var(--heading);

    background:
        rgba(255,255,255,.05);

    border:
        1px solid rgba(255,255,255,.08);

    transition:
        var(--transition);
}

.social-links a:hover{

    color: #fff;

    transform:
        translateY(-6px);

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );
}

/* ==========================================
   BACK TO TOP
========================================== */

#backToTop{

    position: fixed;

    right: 25px;
    bottom: 25px;

    width: 55px;
    height: 55px;

    border: none;

    border-radius: 50%;

    cursor: pointer;

    color: #fff;

    opacity: 0;
    visibility: hidden;

    z-index: 999;

    transition: .35s ease;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );

    box-shadow:
        0 15px 35px rgba(124,58,237,.3);
}

#backToTop.show{

    opacity: 1;
    visibility: visible;
}

#backToTop:hover{

    transform:
        translateY(-5px);
}

/* ==========================================
   WHATSAPP BUTTON
========================================== */

.whatsapp-btn{

    position: fixed;

    left: 25px;
    bottom: 25px;

    width: 60px;
    height: 60px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    font-size: 1.6rem;

    color: #fff;

    z-index: 999;

    background:
        linear-gradient(
            135deg,
            #25D366,
            #1EBE57
        );

    box-shadow:
        0 15px 40px rgba(37,211,102,.35);

    transition:
        var(--transition);
}

.whatsapp-btn:hover{

    transform:
        translateY(-5px)
        scale(1.05);
}

/* ==========================================
   REVEAL UTILITIES
========================================== */

.reveal{

    opacity: 0;

    transform:
        translateY(60px);

    transition:
        all .9s ease;
}

.reveal.active{

    opacity: 1;

    transform:
        translateY(0);
}

.reveal-left{

    opacity: 0;

    transform:
        translateX(-80px);

    transition:
        all .9s ease;
}

.reveal-left.active{

    opacity: 1;

    transform:
        translateX(0);
}

.reveal-right{

    opacity: 0;

    transform:
        translateX(80px);

    transition:
        all .9s ease;
}

.reveal-right.active{

    opacity: 1;

    transform:
        translateX(0);
}

/* ==========================================
   TEXT UTILITIES
========================================== */

.text-center{
    text-align:center;
}

.mt-1{
    margin-top:10px;
}

.mt-2{
    margin-top:20px;
}

.mt-3{
    margin-top:30px;
}

.mt-4{
    margin-top:40px;
}

.mb-1{
    margin-bottom:10px;
}

.mb-2{
    margin-bottom:20px;
}

.mb-3{
    margin-bottom:30px;
}

.mb-4{
    margin-bottom:40px;
}

/* ==========================================
   GLASS PANELS
========================================== */

.glass-panel{

    background:
        rgba(255,255,255,.04);

    border:
        1px solid rgba(255,255,255,.08);

    backdrop-filter:
        blur(20px);

    -webkit-backdrop-filter:
        blur(20px);

    border-radius:
        30px;
}

/* ==========================================
   CUSTOM SELECTION
========================================== */

::selection{

    color:#fff;

    background:
        var(--primary);
}

/* ==========================================
   IMAGE EFFECTS
========================================== */

img{

    transition:
        transform .5s ease;
}

img:hover{

    transform:
        scale(1.02);
}

/* ==========================================
   THEME TRANSITION
========================================== */

body,
.header,
.nav-link,
.service-card,
.process-card,
.portfolio-item,
.pricing-card,
.contact-form,
.faq-item,
.footer{

    transition:
        background .35s ease,
        color .35s ease,
        border-color .35s ease,
        box-shadow .35s ease;
}

/* ==========================================
   PREMIUM DIVIDER
========================================== */

.divider{

    width:120px;
    height:4px;

    margin:25px auto;

    border-radius:100px;

    background:
        linear-gradient(
            90deg,
            var(--primary),
            var(--secondary)
        );
}

/* ==========================================
   END OF STYLE.CSS
========================================== */