:root{
    --contact-blue:#083f78;
    --contact-dark:#062f5c;
    --contact-orange:#ff7a3d;
    --contact-sea:#8fd3df;
    --contact-text:#5f7188;
    --contact-soft:#f6f9fd;
}

html,
body{
    margin:0;
    padding:0;
    overflow-x:hidden;
    background:#fff;
}

.contact-page{
    overflow:hidden;

    background:
        radial-gradient(circle at top right, rgba(255,122,61,.08), transparent 28%),
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f7fbff 46%,
            #eef6fb 100%
        );
}

.contact-container{
    width:min(1180px, calc(100% - 40px));
    margin:0 auto;
}

/* =========================================================
   HERO
========================================================= */

.contact-hero{
    position:relative;
    padding:115px 0 70px;
}

.contact-hero::before{
    content:"";

    position:absolute;

    top:-180px;
    right:-160px;

    width:560px;
    height:560px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(143,211,223,.28),
            transparent 68%
        );

    pointer-events:none;
}

.contact-header{
    position:relative;
    z-index:2;

    max-width:760px;

    margin:0 auto 42px;

    text-align:center;
}

.contact-tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:34px;

    padding:0 18px;

    margin-bottom:20px;

    border-radius:999px;

    color:var(--contact-orange);

    background:rgba(255,122,61,.10);

    border:1px solid rgba(255,122,61,.18);

    letter-spacing:2px;
    text-transform:uppercase;
}

.contact-header h1{
    margin:0 auto;

    max-width:760px;

    color:var(--contact-blue);

    font-size:clamp(var(--fs-xl),2.2vw,var(--fs-3xl));

    line-height:1.14;

    letter-spacing:-.03em;
}

.contact-header p{
    max-width:620px;

    margin:16px auto 0;

    color:var(--contact-text);

    line-height:var(--lh-relaxed);
}

/* =========================================================
   CONTACT GRID
========================================================= */

.contact-grid{
    position:relative;
    z-index:2;

    display:grid;
    grid-template-columns:repeat(3,1fr);

    gap:18px;
}

/* =========================================================
   CARD
========================================================= */

.contact-card{
    position:relative;

    min-height:220px;

    overflow:hidden;

    border-radius:24px;

    background:
        radial-gradient(circle at top right, rgba(255,122,61,.10), transparent 34%),
        linear-gradient(145deg,#ffffff,#f5f9fd);

    border:1px solid rgba(8,63,120,.08);

    box-shadow:
        0 14px 34px rgba(8,63,120,.08);

    transition:.38s cubic-bezier(.16,1,.3,1);
}

.contact-card::before{
    content:"";

    position:absolute;

    inset:auto -60px -80px auto;

    width:180px;
    height:180px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(8,63,120,.10),
            transparent 70%
        );

    z-index:1;
}

.contact-card::after{
    content:"";

    position:absolute;

    left:0;
    bottom:0;

    z-index:3;

    width:0;
    height:4px;

    background:var(--contact-orange);

    transition:.42s ease;
}

.contact-card:hover{
    transform:translateY(-6px);

    box-shadow:
        0 22px 48px rgba(8,63,120,.13);
}

.contact-card:hover::after{
    width:100%;
}

/* =========================================================
   REMOVE IMAGE LOOK
========================================================= */

.contact-card-blue,
.contact-card-orange,
.contact-card-sea{
    background:
        radial-gradient(circle at top right, rgba(255,122,61,.10), transparent 34%),
        linear-gradient(145deg,#ffffff,#f5f9fd);
}

/* =========================================================
   CARD CONTENT
========================================================= */

.contact-overlay{
    position:relative;
    z-index:2;

    min-height:220px;

    display:flex;
    flex-direction:column;
    justify-content:flex-start;

    padding:24px;

    color:var(--contact-text);
}

.contact-overlay > i{
    width:48px;
    height:48px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    margin-bottom:22px;

    border-radius:16px;

    color:#fff;

    background:
        linear-gradient(
            135deg,
            var(--contact-orange),
            #ff9b66
        );

    box-shadow:
        0 12px 26px rgba(255,122,61,.22);

    transition:.34s ease;
}

.contact-card:hover .contact-overlay > i{
    transform:
        translateY(-4px)
        scale(1.04);
}

.contact-overlay h3{
    margin:0;

    color:var(--contact-blue);

    font-size:var(--fs-lg);

    line-height:1.22;

    letter-spacing:-.02em;
}

.contact-overlay p{
    margin:10px 0 20px;

    color:var(--contact-text);

    font-size:var(--fs-sm);

    line-height:1.6;
}

.contact-overlay a{
    margin-top:auto;

    width:max-content;

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;

    padding:10px 16px;

    border-radius:999px;

    color:#fff;

    background:
        linear-gradient(
            135deg,
            var(--contact-blue),
            #0a5da5
        );

    text-decoration:none;

    font-size:var(--fs-xs);

    transition:.28s ease;
}

.contact-overlay a:hover{
    transform:translateY(-3px);

    background:var(--contact-orange);
}

/* =========================================================
   FORM SECTION
========================================================= */

.contact-form-section{
    padding:0 0 80px;
}

.contact-form-box{
    display:grid;
    grid-template-columns:.9fr 1.1fr;

    gap:34px;

    padding:38px;

    border-radius:30px;

    background:#fff;

    border:1px solid rgba(8,63,120,.08);

    box-shadow:
        0 24px 58px rgba(8,63,120,.12);
}

/* =========================================================
   FORM INFO
========================================================= */

.contact-form-info span{
    display:inline-block;

    margin-bottom:12px;

    color:var(--contact-orange);

    letter-spacing:2px;
    text-transform:uppercase;
}

.contact-form-info h2{
    margin:0;

    color:var(--contact-blue);

    line-height:1.18;
}

.contact-form-info p{
    margin:14px 0 0;

    color:var(--contact-text);

    line-height:var(--lh-relaxed);
}

/* =========================================================
   FORM
========================================================= */

.contact-form{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.form-row{
    display:grid;
    grid-template-columns:repeat(2,1fr);

    gap:16px;
}

.form-group{
    display:flex;
    flex-direction:column;

    gap:8px;
}

.form-group label{
    color:var(--contact-blue);
}

.form-group input,
.form-group textarea{
    width:100%;

    border:none;
    outline:none;

    border-radius:16px;

    padding:15px 16px;

    color:var(--contact-blue);

    background:#f4f8fc;

    border:1px solid rgba(8,63,120,.08);

    resize:none;

    transition:.28s ease;
}

.form-group input:focus,
.form-group textarea:focus{
    background:#fff;

    border-color:rgba(255,122,61,.35);

    box-shadow:
        0 14px 28px rgba(8,63,120,.08);
}

.contact-form button{
    width:max-content;

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    border:none;

    cursor:pointer;

    padding:14px 22px;

    border-radius:999px;

    color:#fff;

    background:
        linear-gradient(
            135deg,
            var(--contact-orange),
            #ff9b66
        );

    box-shadow:
        0 18px 36px rgba(255,122,61,.24);

    transition:.28s ease;
}

.contact-form button:hover{
    transform:translateY(-3px);

    box-shadow:
        0 24px 44px rgba(255,122,61,.32);
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:1100px){

    .contact-grid{
        grid-template-columns:1fr;
    }

    .contact-form-box{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){

    .contact-container{
        width:min(100% - 28px,1180px);
    }

    .contact-hero{
        padding:90px 0 55px;
    }

    .contact-header{
        margin-bottom:34px;
    }

    .contact-card{
        min-height:210px;

        border-radius:20px;
    }

    .contact-overlay{
        min-height:210px;

        padding:20px;
    }

    .contact-overlay h3{
        font-size:var(--fs-md);
    }

    .contact-overlay p{
        font-size:var(--fs-xs);
    }

    .contact-form-section{
        padding-bottom:60px;
    }

    .contact-form-box{
        padding:24px;

        border-radius:24px;
    }

    .form-row{
        grid-template-columns:1fr;
    }
}
.contact-alert{
    margin-bottom:24px;
    padding:16px 20px;
    border-radius:16px;
    color:#083f78;
    background:#f4f8fc;
    border:1px solid rgba(8,63,120,.08);
}
.contact-alert{
    margin:0 0 24px;
    padding:16px 20px;
    border-radius:16px;
    color:#083f78;
    background:#f4f8fc;
    border:1px solid rgba(8,63,120,.08);
}

.contact-alert-success{
    color:#106b38;
    background:#effaf3;
    border-color:rgba(16,107,56,.16);
}

.contact-alert-warning{
    color:#8a5a00;
    background:#fff8e8;
    border-color:rgba(255,180,40,.28);
}

.contact-alert-error{
    color:#9b1c1c;
    background:#fff1f1;
    border-color:rgba(220,38,38,.20);
}