/*==================================================
    CONTACT PAGE
==================================================*/

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

.contact-hero{

    position:relative;

    padding:140px 0 80px;

    text-align:center;

}

.contact-hero .badge{

    margin-bottom:25px;

}

.contact-hero h1{

    max-width:900px;

    margin:auto;

    margin-bottom:25px;

    font-size:clamp(2.8rem,6vw,4.5rem);

    line-height:1.1;

    font-weight:900;

}

.contact-hero p{

    max-width:750px;

    margin:auto;

    color:var(--text-light);

    font-size:1.1rem;

    line-height:1.9;

}

/*==================================================
    CONTACT SECTION
==================================================*/

.contact-section{

    padding:80px 0 120px;

}

.contact-grid{

    display:grid;

    grid-template-columns:380px 1fr;

    gap:40px;

    align-items:start;

}

/*==================================================
    LEFT PANEL
==================================================*/

.contact-info{

    position:sticky;

    top:110px;

    padding:35px;

    border-radius:24px;

    background:var(--surface);

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

    box-shadow:var(--shadow);

}

.contact-info h2{

    font-size:2rem;

    margin-bottom:18px;

}

.contact-info p{

    color:var(--text-light);

    line-height:1.8;

    margin-bottom:35px;

}

/*==================================================
    INFO LIST
==================================================*/

.info-list{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.info-card{

    display:flex;

    align-items:center;

    gap:18px;

    padding:18px;

    border-radius:18px;

    background:var(--surface-2);

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

    transition:var(--transition);

}

.info-card:hover{

    transform:translateX(8px);

    border-color:var(--primary);

}

.info-card i{

    width:60px;

    height:60px;

    display:grid;

    place-items:center;

    border-radius:18px;

    color:white;

    font-size:1.3rem;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

}

.info-card h4{

    margin-bottom:6px;

    font-size:1rem;

}

.info-card span{

    color:var(--text-light);

    font-size:.95rem;

    word-break:break-word;

}

/*==================================================
    SOCIAL
==================================================*/

.contact-info .social-links{

    margin-top:35px;

    display:flex;

    flex-wrap:wrap;

    gap:15px;

}

.contact-info .social-links a{

    width:52px;

    height:52px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:16px;

    background:var(--surface-2);

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

    font-size:1.15rem;

    transition:var(--transition);

}

.contact-info .social-links a:hover{

    color:#fff;

    background:var(--primary);

    transform:translateY(-6px) rotate(-5deg);

}

/*==================================================
    CONTACT FORM
==================================================*/

.contact-form-container{

    padding:40px;

    border-radius:24px;

    background:var(--surface);

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

    box-shadow:var(--shadow);

}

.contact-form h2{

    font-size:2rem;

    margin-bottom:12px;

}

.contact-form p{

    margin-bottom:35px;

    color:var(--text-light);

    line-height:1.8;

}

/*==================================================
    FORM GROUP
==================================================*/

.form-group{

    margin-bottom:25px;

}

.form-group label{

    display:block;

    margin-bottom:10px;

    font-weight:600;

    color:var(--text);

}

/*==================================================
    INPUT BOX
==================================================*/

.input-box{

    display:flex;

    align-items:center;

    gap:15px;

    height:60px;

    padding:0 18px;

    border-radius:16px;

    background:var(--surface-2);

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

    transition:var(--transition);

}

.input-box:focus-within{

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(79,124,255,.12);

}

.input-box i{

    color:var(--primary);

    font-size:1.1rem;

    min-width:22px;

}

.input-box input,

.input-box select{

    width:100%;

    height:100%;

    border:none;

    outline:none;

    background:transparent;

    color:var(--text);

    font-size:1rem;

    font-family:inherit;

}

/*==================================================
    SELECT
==================================================*/

.input-box select{

    cursor:pointer;

    appearance:none;

}

/*==================================================
    TEXTAREA
==================================================*/

.textarea-box{

    border-radius:18px;

    background:var(--surface-2);

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

    transition:var(--transition);

}

.textarea-box:focus-within{

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(79,124,255,.12);

}

.textarea-box textarea{

    width:100%;

    min-height:180px;

    resize:vertical;

    border:none;

    outline:none;

    padding:20px;

    background:transparent;

    color:var(--text);

    font-size:1rem;

    font-family:inherit;

    line-height:1.8;

}

/*==================================================
    PLACEHOLDER
==================================================*/

input::placeholder,

textarea::placeholder{

    color:var(--text-light);

}

/*==================================================
    SUBMIT BUTTON
==================================================*/

.send-button{

    width:100%;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:12px;

    margin-top:15px;

    padding:18px;

    border:none;

    cursor:pointer;

    border-radius:18px;

    font-size:1rem;

    font-weight:700;

    transition:var(--transition);

}

.send-button:hover{

    transform:translateY(-4px);

    box-shadow:0 18px 40px rgba(79,124,255,.25);

}

.send-button:active{

    transform:scale(.98);

}

/*==================================================
    FORM ANIMATION
==================================================*/

.contact-form-container{

    animation:fadeUp .8s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

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

.contact-page .cta{

    padding-top:80px;

}

/*==================================================
    HOVER EFFECTS
==================================================*/

.contact-info,
.contact-form-container{

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;

}

.contact-info:hover,

.contact-form-container:hover{

    transform:translateY(-6px);

    box-shadow:
        0 30px 70px rgba(79,124,255,.12);

}

.info-card{

    position:relative;

    overflow:hidden;

}

.info-card::before{

    content:"";

    position:absolute;

    left:-100%;

    top:0;

    width:100%;

    height:100%;

    background:

        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.25),
            transparent
        );

    transition:.7s;

}

.info-card:hover::before{

    left:100%;

}

/*==================================================
    INPUT STATES
==================================================*/

input:disabled,
textarea:disabled,
select:disabled{

    opacity:.6;

    cursor:not-allowed;

}

input:invalid,
textarea:invalid{

    box-shadow:none;

}

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

@media (max-width:1100px){

    .contact-grid{

        grid-template-columns:1fr;

    }

    .contact-info{

        position:relative;

        top:auto;

    }

}

@media (max-width:768px){

    .contact-hero{

        padding:100px 0 60px;

    }

    .contact-hero h1{

        font-size:2.5rem;

    }

    .contact-form-container{

        padding:25px;

    }

    .contact-info{

        padding:25px;

    }

    .info-card{

        flex-direction:column;

        align-items:flex-start;

        text-align:left;

    }

    .input-box{

        height:56px;

    }

    .send-button{

        width:100%;

    }

}

@media (max-width:480px){

    .contact-hero h1{

        font-size:2rem;

    }

    .contact-hero p{

        font-size:.95rem;

    }

    .contact-form h2{

        font-size:1.5rem;

    }

    .contact-info h2{

        font-size:1.5rem;

    }

    .info-card{

        padding:15px;

    }

    .info-card i{

        width:52px;

        height:52px;

        font-size:1.1rem;

    }

    .contact-info .social-links{

        justify-content:center;

    }

    .contact-info .social-links a{

        width:46px;

        height:46px;

    }

}

/*==================================================
    LOADING BUTTON
==================================================*/

.send-button.loading{

    pointer-events:none;

    opacity:.8;

}

.send-button.loading i{

    animation:spin 1s linear infinite;

}

@keyframes spin{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

/*==================================================
    SUCCESS MESSAGE
==================================================*/

.form-success{

    margin-top:20px;

    padding:16px;

    border-radius:14px;

    color:#ffffff;

    background:#22c55e;

    text-align:center;

    font-weight:600;

}

/*==================================================
    ERROR MESSAGE
==================================================*/

.form-error{

    margin-top:20px;

    padding:16px;

    border-radius:14px;

    color:#ffffff;

    background:#ef4444;

    text-align:center;

    font-weight:600;

}

/*==================================================
    END CONTACT PAGE
==================================================*/
