/* =====================================================
                    CONTACT PAGE
===================================================== */

.contact-page{

    position:relative;

    overflow:hidden;

    min-height:100vh;

    padding:170px 0 120px;

    background:
    linear-gradient(
        135deg,
        #f4f8fd 0%,
        #ffffff 45%,
        #f8fbff 100%
    );

}


/* =====================================================
                BLUEPRINT BACKGROUND
===================================================== */

.contact-bg{

    position:absolute;

    inset:0;

    background:

    url("../images/buildings/contact-bg.png")

    center center

    no-repeat;

    background-size:cover;

    opacity:.10;

    pointer-events:none;

}


.contact-page::before{

    content:"";

    position:absolute;

    top:-220px;

    right:-180px;

    width:520px;

    height:520px;

    border-radius:50%;

    background:

    radial-gradient(

        circle,

        rgba(18,61,114,.08),

        transparent 72%

    );

}


.contact-page::after{

    content:"";

    position:absolute;

    bottom:-200px;

    left:-160px;

    width:420px;

    height:420px;

    border-radius:50%;

    background:

    radial-gradient(

        circle,

        rgba(76,141,218,.10),

        transparent 72%

    );

}


/* =====================================================
                    CONTAINER
===================================================== */

.contact-container{

    position:relative;

    z-index:2;

    display:grid;

    grid-template-columns:

    380px

    1fr;

    gap:45px;

    align-items:start;

}


/* =====================================================
                    LEFT SIDE
===================================================== */

.contact-info{

    position:sticky;

    top:130px;

}


.contact-info h1{

    color:var(--dark-blue);

    font-size:46px;

    line-height:1.35;

    margin:20px 0;

}


.contact-info>p{

    color:#607086;

    line-height:2;

    margin-bottom:35px;

}


/* =====================================================
                REQUEST SUMMARY
===================================================== */

.request-summary{

    padding:35px;

    border-radius:28px;

    background:

    rgba(255,255,255,.72);

    backdrop-filter:blur(22px);

    -webkit-backdrop-filter:blur(22px);

    border:1px solid rgba(255,255,255,.9);

    box-shadow:

    0 30px 60px

    rgba(18,61,114,.08);

}


.request-summary h3{

    color:var(--dark-blue);

    margin-bottom:20px;

    font-size:24px;

}


#requestSummary{

    color:#607086;

    line-height:2;

}


/* =====================================================
                    FORM CARD
===================================================== */

.contact-form-card{

    padding:45px;

    border-radius:35px;

    background:

    rgba(255,255,255,.74);

    backdrop-filter:blur(24px);

    -webkit-backdrop-filter:blur(24px);

    border:1px solid rgba(255,255,255,.85);

    box-shadow:

    0 35px 70px

    rgba(18,61,114,.08);

}


/* =====================================================
                    FORM
===================================================== */

#contactForm{

    display:flex;

    flex-direction:column;

    gap:24px;

}


.form-group{

    display:flex;

    flex-direction:column;

    gap:10px;

}


.form-group label{

    color:var(--dark-blue);

    font-weight:700;

}
/* =====================================================
                INPUTS
===================================================== */

.form-group input,
.form-group textarea{

    width:100%;

    padding:18px 22px;

    border-radius:18px;

    border:2px solid #dfe8f3;

    background:#ffffff;

    color:var(--dark-blue);

    font-size:16px;

    transition:.35s;

    outline:none;

    resize:none;

    font-family:'Cairo',sans-serif;

}


.form-group textarea{

    min-height:150px;

}


.form-group input::placeholder,
.form-group textarea::placeholder{

    color:#9aa8b9;

}


.form-group input:focus,
.form-group textarea:focus{

    border-color:var(--primary-color);

    box-shadow:

    0 0 0 5px

    rgba(18,61,114,.08);

}


/* =====================================================
                AGREEMENT
===================================================== */

.agree-box{

    display:flex;

    align-items:flex-start;

    gap:14px;

    cursor:pointer;

    line-height:1.9;

    color:#607086;

}


.agree-box input{

    margin-top:6px;

    width:18px;

    height:18px;

    accent-color:var(--primary-color);

}


/* =====================================================
                SUBMIT BUTTON
===================================================== */

#contactForm .primary-btn{

    width:100%;

    height:65px;

    border:none;

    border-radius:50px;

    cursor:pointer;

    color:#fff;

    font-size:17px;

    font-weight:700;

    background:

    linear-gradient(

        135deg,

        var(--primary-color),

        var(--dark-blue)

    );

    transition:.35s;

    box-shadow:

    0 20px 40px

    rgba(18,61,114,.18);

}


#contactForm .primary-btn:hover{

    transform:translateY(-4px);

    box-shadow:

    0 30px 55px

    rgba(18,61,114,.24);

}


/* =====================================================
                FORM ANIMATION
===================================================== */

.contact-form-card,
.request-summary{

    transition:.35s;

}


.contact-form-card:hover{

    transform:translateY(-4px);

}


/* =====================================================
                RESPONSIVE
===================================================== */

@media(max-width:1100px){

    .contact-container{

        grid-template-columns:1fr;

    }

    .contact-info{

        position:static;

    }

}


@media(max-width:768px){

    .contact-page{

        padding:130px 0 80px;

    }

    .contact-info{

        text-align:center;

    }

    .contact-info h1{

        font-size:36px;

    }

    .request-summary{

        margin-bottom:35px;

    }

    .contact-form-card{

        padding:30px;

    }

}


@media(max-width:520px){

    .contact-form-card{

        padding:22px;

        border-radius:24px;

    }

    .contact-info h1{

        font-size:30px;

    }

    .form-group input,
    .form-group textarea{

        padding:16px 18px;

        font-size:15px;

    }

    #contactForm .primary-btn{

        height:58px;

    }

}
/* =====================================================
                SUCCESS MODAL
===================================================== */

.success-modal{

    position:fixed;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(8,20,42,.45);

    backdrop-filter:blur(12px);

    -webkit-backdrop-filter:blur(12px);

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:9999;

}


.success-modal.show{

    opacity:1;

    visibility:visible;

}


.success-box{

    width:min(92%,650px);

    background:rgba(255,255,255,.82);

    backdrop-filter:blur(28px);

    -webkit-backdrop-filter:blur(28px);

    border:1px solid rgba(255,255,255,.85);

    border-radius:32px;

    padding:45px;

    text-align:center;

    box-shadow:

    0 35px 70px rgba(18,61,114,.18);

    transform:translateY(35px) scale(.95);

    transition:.35s;

}


.success-modal.show .success-box{

    transform:translateY(0) scale(1);

}


.success-icon{

    width:90px;

    height:90px;

    margin:0 auto 25px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    font-size:42px;

    background:

    linear-gradient(
        135deg,
        #1e90ff,
        #123d72
    );

    box-shadow:

    0 15px 35px rgba(18,61,114,.25);

    animation:successPulse 2s infinite;

}


@keyframes successPulse{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.08);

    }

    100%{

        transform:scale(1);

    }

}


.success-box h2{

    color:var(--dark-blue);

    font-size:34px;

    margin-bottom:15px;

}


.success-box>p{

    color:#607086;

    line-height:2;

    margin-bottom:30px;

}


.modal-summary{

    background:#f6f9fd;

    border-radius:20px;

    padding:22px;

    text-align:right;

    line-height:2;

    color:#4d6076;

    margin-bottom:30px;

}


.modal-buttons{

    display:flex;

    justify-content:center;

    gap:18px;

    flex-wrap:wrap;

}


.modal-buttons .primary-btn{

    min-width:220px;

}


.secondary-btn{

    min-width:220px;

    display:flex;

    justify-content:center;

    align-items:center;

    text-decoration:none;

    height:60px;

    border-radius:50px;

    font-weight:700;

    color:var(--dark-blue);

    border:2px solid var(--primary-color);

    transition:.35s;

}


.secondary-btn:hover{

    background:var(--primary-color);

    color:#fff;

}


@media(max-width:768px){

    .success-box{

        padding:30px;

    }

    .success-box h2{

        font-size:28px;

    }

    .modal-buttons{

        flex-direction:column;

    }

    .modal-buttons .primary-btn,

    .secondary-btn{

        width:100%;

        min-width:unset;

    }

}
/* ==========================================
            CLOSE BUTTON
========================================== */

.close-modal{

    position:absolute;

    top:18px;

    left:18px;

    width:42px;

    height:42px;

    border:none;

    border-radius:50%;

    background:#f4f7fb;

    color:var(--dark-blue);

    cursor:pointer;

    transition:.3s;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:18px;

}

.close-modal:hover{

    background:var(--primary-color);

    color:#fff;

}

.success-box{

    position:relative;

}
/* ==========================================
                TOAST
========================================== */

.toast{

    position:fixed;

    top:30px;

    right:30px;

    display:flex;

    align-items:center;

    gap:15px;

    padding:18px 25px;

    border-radius:18px;

    background:rgba(18,61,114,.95);

    color:#fff;

    backdrop-filter:blur(20px);

    box-shadow:

    0 20px 45px rgba(18,61,114,.25);

    transform:translateX(420px);

    opacity:0;

    transition:.4s;

    z-index:10000;

}

.toast.show{

    transform:translateX(0);

    opacity:1;

}

.toast i{

    font-size:22px;

    color:#8df0b1;

}

.toast span{

    font-size:15px;

    font-weight:600;

}

@media(max-width:768px){

    .toast{

        right:15px;

        left:15px;

        top:20px;

        transform:translateY(-120px);

    }

    .toast.show{

        transform:translateY(0);

    }

}