/* =========================================================
   CONTACT PAGE CSS
   Part-2A
   Author : ChatGPT
========================================================= */

/*=========================
        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;

    min-height:100vh;

    overflow-x:hidden;

    color:#fff;

    background:linear-gradient(
        135deg,
        #0f172a,
        #111827,
        #1e293b,
        #0f172a
    );

    background-size:400% 400%;

    animation:gradientAnimation 18s ease infinite;

    position:relative;
}


/*=========================
    BACKGROUND ANIMATION
==========================*/

@keyframes gradientAnimation{

    0%{
        background-position:0% 50%;
    }

    50%{
        background-position:100% 50%;
    }

    100%{
        background-position:0% 50%;
    }

}


/*=========================
      FLOATING LIGHTS
==========================*/

body::before{

    content:"";

    position:fixed;

    width:320px;
    height:320px;

    background:#00d4ff;

    border-radius:50%;

    filter:blur(120px);

    opacity:.22;

    top:-80px;
    left:-80px;

    animation:floatOne 10s ease-in-out infinite;

    z-index:-1;
}

body::after{

    content:"";

    position:fixed;

    width:350px;
    height:350px;

    background:#6d5dfc;

    border-radius:50%;

    filter:blur(140px);

    opacity:.18;

    bottom:-120px;
    right:-120px;

    animation:floatTwo 12s ease-in-out infinite;

    z-index:-1;
}

@keyframes floatOne{

    0%{
        transform:translateY(0) translateX(0);
    }

    50%{
        transform:translateY(60px) translateX(50px);
    }

    100%{
        transform:translateY(0) translateX(0);
    }

}

@keyframes floatTwo{

    0%{
        transform:translateY(0) translateX(0);
    }

    50%{
        transform:translateY(-60px) translateX(-60px);
    }

    100%{
        transform:translateY(0) translateX(0);
    }

}


/*=========================
      ROOT COLORS
==========================*/

:root{

    --primary:#00c6ff;

    --secondary:#0072ff;

    --glass:rgba(255,255,255,.08);

    --glassBorder:rgba(255,255,255,.15);

    --text:#ffffff;

    --textLight:#cbd5e1;

    --shadow:
        0 15px 35px rgba(0,0,0,.35);

}


/*=========================
      MAIN SECTION
==========================*/

.contact-section{

    width:100%;

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:60px 20px;

}


/*=========================
        CONTAINER
==========================*/

.container{

    width:100%;

    max-width:1250px;

    display:grid;

    grid-template-columns:1fr 1.1fr;

    gap:40px;

    align-items:center;

}


/*=========================
      GLASS EFFECT
==========================*/

.contact-info,
.contact-form{

    background:var(--glass);

    border:1px solid var(--glassBorder);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    border-radius:25px;

    box-shadow:var(--shadow);

    transition:.4s;

}


.contact-info:hover,
.contact-form:hover{

    transform:translateY(-6px);

}


/*=========================
      COMMON TITLE
==========================*/

.contact-info h2,
.contact-form h2{

    font-size:34px;

    font-weight:700;

    color:#fff;

    margin-bottom:15px;

}


.contact-info p{

    color:var(--textLight);

    line-height:1.9;

    font-size:15px;

}


/*=========================
      SCROLL BAR
==========================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#111827;

}

::-webkit-scrollbar-thumb{

    background:linear-gradient(
        to bottom,
        var(--primary),
        var(--secondary)
    );

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:#00c6ff;

}


/*=========================
      RESPONSIVE
==========================*/

@media(max-width:991px){

.container{

    grid-template-columns:1fr;

}

.contact-section{

    padding:40px 15px;

}

}

@media(max-width:600px){

.contact-info h2,
.contact-form h2{

    font-size:28px;

}

body{

    font-size:15px;

}

}

/*=========================================================
                    CONTACT INFO PANEL
=========================================================*/

.contact-info{

    position:relative;

    padding:55px 45px;

    overflow:hidden;

}


/* Decorative Glow */

.contact-info::before{

    content:"";

    position:absolute;

    width:220px;
    height:220px;

    border-radius:50%;

    background:rgba(0,198,255,.08);

    top:-80px;
    right:-80px;

    filter:blur(10px);

}

.contact-info::after{

    content:"";

    position:absolute;

    width:180px;
    height:180px;

    border-radius:50%;

    background:rgba(109,93,252,.10);

    bottom:-60px;
    left:-60px;

}


/*==============================
        TITLE
===============================*/

.info-title{

    position:relative;

    z-index:2;

    margin-bottom:45px;

}

.info-title h2{

    margin-bottom:15px;

    font-size:38px;

    font-weight:700;

}

.info-title p{

    color:#d1d5db;

    line-height:1.9;

    font-size:15px;

}


/*==============================
        INFO BOX
===============================*/

.info-box{

    display:flex;

    flex-direction:column;

    gap:22px;

    position:relative;

    z-index:2;

}


/*==============================
        SINGLE ITEM
===============================*/

.info-item{

    display:flex;

    align-items:center;

    gap:20px;

    padding:18px 22px;

    border-radius:18px;

    background:rgba(255,255,255,.05);

    border:1px solid rgba(255,255,255,.08);

    transition:.35s ease;

}


.info-item:hover{

    transform:translateX(8px);

    background:rgba(255,255,255,.09);

    border-color:rgba(0,198,255,.35);

    box-shadow:0 12px 25px rgba(0,198,255,.12);

}


/*==============================
        ICON
===============================*/

.info-item i{

    width:58px;

    height:58px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

    font-size:22px;

    color:#fff;

    background:linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
    );

    flex-shrink:0;

    transition:.35s;

}


.info-item:hover i{

    transform:rotate(360deg) scale(1.08);

}


/*==============================
        TEXT
===============================*/

.info-item h4{

    font-size:18px;

    margin-bottom:5px;

    font-weight:600;

    color:#fff;

}

.info-item span{

    display:block;

    color:#cbd5e1;

    font-size:14px;

    word-break:break-word;

}


/*==============================
      SOCIAL ICONS
===============================*/

.social-icons{

    margin-top:45px;

    display:flex;

    gap:15px;

    position:relative;

    z-index:2;

}


.social-icons a{

    width:48px;

    height:48px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

    text-decoration:none;

    color:#fff;

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.12);

    transition:.35s;

    font-size:18px;

}


.social-icons a:hover{

    transform:translateY(-6px);

    background:linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
    );

    border-color:transparent;

    box-shadow:0 12px 30px rgba(0,198,255,.35);

}


/*==============================
        MOBILE
===============================*/

@media(max-width:991px){

    .contact-info{

        padding:40px 30px;

    }

}

@media(max-width:600px){

    .contact-info{

        padding:30px 22px;

    }

    .info-title h2{

        font-size:30px;

    }

    .info-item{

        padding:15px;

        gap:15px;

    }

    .info-item i{

        width:50px;
        height:50px;

        font-size:18px;

    }

    .social-icons{

        justify-content:center;

        flex-wrap:wrap;

    }

}

/*=========================================================
                    CONTACT FORM
=========================================================*/

.contact-form{

    position:relative;

    padding:55px 45px;

    overflow:hidden;

}


/* Decorative Glow */

.contact-form::before{

    content:"";

    position:absolute;

    width:220px;
    height:220px;

    border-radius:50%;

    background:rgba(0,198,255,.08);

    bottom:-90px;
    right:-90px;

    filter:blur(15px);

}


/*==============================
        FORM
===============================*/

.contact-form form{

    margin-top:35px;

}


/*==============================
        INPUT BOX
===============================*/

.input-box{

    position:relative;

    margin-bottom:28px;

}


/*==============================
        INPUT & TEXTAREA
===============================*/

.input-box input,
.input-box textarea{

    width:100%;

    border:1px solid rgba(255,255,255,.12);

    background:rgba(255,255,255,.05);

    color:#fff;

    font-size:15px;

    font-family:'Poppins',sans-serif;

    padding:17px 20px 17px 55px;

    border-radius:15px;

    outline:none;

    transition:.35s ease;

    resize:none;

}


/*==============================
      PLACEHOLDER
===============================*/

.input-box input::placeholder,
.input-box textarea::placeholder{

    color:#bfc7d6;

}


/*==============================
      FOCUS EFFECT
===============================*/

.input-box input:focus,
.input-box textarea:focus{

    border-color:var(--primary);

    background:rgba(255,255,255,.08);

    box-shadow:
        0 0 0 3px rgba(0,198,255,.12),
        0 8px 20px rgba(0,198,255,.15);

}


/*==============================
        ICON
===============================*/

.input-box i{

    position:absolute;

    left:20px;

    top:50%;

    transform:translateY(-50%);

    color:#8fb8ff;

    font-size:18px;

    transition:.3s;

}


.textarea i{

    top:24px;

    transform:none;

}


/*==============================
    ICON FOCUS COLOR
===============================*/

.input-box input:focus + i,
.input-box textarea:focus + i{

    color:var(--primary);

    transform:translateY(-50%) scale(1.15);

}

.textarea textarea:focus + i{

    transform:scale(1.15);

}


/*==============================
        TEXTAREA
===============================*/

textarea{

    min-height:170px;

    line-height:1.8;

}


/*==============================
        BUTTON
===============================*/

button{

    width:100%;

    height:60px;

    border:none;

    outline:none;

    cursor:pointer;

    border-radius:16px;

    background:linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
    );

    color:#fff;

    font-size:17px;

    font-weight:600;

    letter-spacing:.5px;

    transition:.35s;

    position:relative;

    overflow:hidden;

}


/* Shine Effect */

button::before{

    content:"";

    position:absolute;

    width:40px;

    height:180%;

    background:rgba(255,255,255,.35);

    left:-60px;

    top:-30px;

    transform:rotate(25deg);

    transition:.7s;

}

button:hover::before{

    left:120%;

}


button:hover{

    transform:translateY(-3px);

    box-shadow:0 15px 30px rgba(0,198,255,.35);

}


button:active{

    transform:scale(.98);

}


/*==============================
        LOADER
===============================*/

.loader{

    display:none;

    width:22px;

    height:22px;

    border:3px solid rgba(255,255,255,.35);

    border-top-color:#fff;

    border-radius:50%;

    animation:spin .8s linear infinite;

    margin:auto;

}


@keyframes spin{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}


/*==============================
    BUTTON LOADING STATE
===============================*/

button.loading .btnText{

    display:none;

}

button.loading .loader{

    display:block;

}


/*==============================
      INPUT ERROR
===============================*/

.input-error{

    border-color:#ff4d6d !important;

    box-shadow:0 0 0 3px rgba(255,77,109,.15);

}


/*==============================
      INPUT SUCCESS
===============================*/

.input-success{

    border-color:#00d27a !important;

    box-shadow:0 0 0 3px rgba(0,210,122,.12);

}


/*==============================
        MOBILE
===============================*/

@media(max-width:991px){

    .contact-form{

        padding:40px 30px;

    }

}


@media(max-width:600px){

    .contact-form{

        padding:30px 22px;

    }

    .input-box input,
    .input-box textarea{

        padding:15px 18px 15px 50px;

        font-size:14px;

    }

    button{

        height:56px;

        font-size:16px;

    }

}

/*=========================================================
                    FINAL POLISH
                    Part-2D
=========================================================*/


/*==============================
        FADE UP ANIMATION
===============================*/

@keyframes fadeUp{

    from{

        opacity:0;
        transform:translateY(60px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}


.contact-info{

    animation:fadeUp .8s ease forwards;

}

.contact-form{

    animation:fadeUp 1s ease forwards;

}


/*==============================
        FLOATING EFFECT
===============================*/

@keyframes floating{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-8px);

    }

    100%{

        transform:translateY(0);

    }

}


.contact-info:hover{

    animation:floating 3s ease-in-out infinite;

}

.contact-form:hover{

    animation:floating 3s ease-in-out infinite;

}


/*==============================
        INPUT HOVER
===============================*/

.input-box input:hover,
.input-box textarea:hover{

    border-color:rgba(0,198,255,.35);

}


/*==============================
        BUTTON DISABLED
===============================*/

button:disabled{

    cursor:not-allowed;

    opacity:.75;

    transform:none;

    box-shadow:none;

}


/*==============================
        FORM SUCCESS
===============================*/

.form-success{

    animation:successPulse .7s ease;

}

@keyframes successPulse{

    0%{

        transform:scale(.96);

    }

    50%{

        transform:scale(1.02);

    }

    100%{

        transform:scale(1);

    }

}


/*==============================
        SHAKE ERROR
===============================*/

.shake{

    animation:shake .45s;

}

@keyframes shake{

    0%{transform:translateX(0);}
    20%{transform:translateX(-6px);}
    40%{transform:translateX(6px);}
    60%{transform:translateX(-6px);}
    80%{transform:translateX(6px);}
    100%{transform:translateX(0);}

}


/*==============================
        TEXT SELECTION
===============================*/

::selection{

    background:var(--primary);

    color:#fff;

}


/*==============================
        FOCUS ACCESSIBILITY
===============================*/

button:focus-visible,
input:focus-visible,
textarea:focus-visible{

    outline:2px solid var(--primary);

    outline-offset:3px;

}


/*==============================
        IMAGE SUPPORT
===============================*/

img{

    max-width:100%;

    display:block;

}


/*==============================
        LINK STYLE
===============================*/

a{

    transition:.3s;

}

a:hover{

    text-decoration:none;

}


/*==============================
        SMALL MOBILE
===============================*/

@media(max-width:480px){

    .contact-section{

        padding:25px 12px;

    }

    .contact-info,
    .contact-form{

        border-radius:20px;

    }

    .info-title h2,
    .contact-form h2{

        font-size:26px;

    }

    .info-title p{

        font-size:14px;

    }

    .info-item{

        gap:12px;

    }

    .info-item h4{

        font-size:16px;

    }

    .info-item span{

        font-size:13px;

    }

    .social-icons{

        gap:10px;

    }

    .social-icons a{

        width:42px;
        height:42px;

        font-size:16px;

    }

    textarea{

        min-height:140px;

    }

}


/*==============================
        LARGE DESKTOP
===============================*/

@media(min-width:1400px){

    .container{

        max-width:1350px;

    }

}


/*==============================
        REDUCE MOTION
===============================*/

@media(prefers-reduced-motion:reduce){

    *{

        animation:none !important;

        transition:none !important;

        scroll-behavior:auto;

    }

}


/*==============================
        PREMIUM GLOW
===============================*/

.contact-info:hover,
.contact-form:hover{

    box-shadow:
    0 20px 50px rgba(0,0,0,.35),
    0 0 35px rgba(0,198,255,.18);

}


/*==============================
        END
===============================*/


/*==========================
    HONEYPOT
==========================*/

.honeypot{

    display:none;

}


/*==========================
    COPY BUTTON
==========================*/

#copyEmail{

    margin-left:auto;

    width:45px;

    height:45px;

    border:none;

    border-radius:12px;

    background:rgba(255,255,255,.08);

    color:white;

    cursor:pointer;

    transition:.3s;

}

#copyEmail:hover{

    background:var(--primary);

    transform:scale(1.08);

}