/*
==================================================
CONTACT PAGE
==================================================
*/
.contact-page{
    background:#fff;
    color:#1f2937;
    font-family:'Inter', sans-serif;
}

.contact-page h1,
.contact-page h2,
.contact-page h3{
    font-family:'Montserrat', sans-serif;
}

.contact-page .section-kicker,
.contact-side__label{
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:var(--gold, #D4A017);
    font-family:'Inter', sans-serif;
    font-size:.76rem;
    font-weight:800;
    letter-spacing:.12em;
    line-height:1;
    text-transform:uppercase;
}

.contact-page .section-kicker::before,
.contact-side__label::before{
    content:"";
    flex:0 0 34px;
    width:34px;
    height:2px;
    background:var(--gold, #D4A017);
}


/*
==================================================
CONTACT HERO
==================================================
*/

.contact-hero{
    position:relative;
    overflow:hidden;
    color:#fff;
    background:#071a38;
}

.contact-hero--clean{
    min-height:520px;
    display:flex;
    align-items:center;
    padding:50px 0;
    background:
        radial-gradient(circle at 82% 36%, rgba(212,160,23,.11), transparent 28%),
        linear-gradient(135deg, #071a38 0%, #0B1F4D 52%, #071a38 100%);
}

.contact-hero__pattern{
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.16;
    background-image:
        linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
    background-size:76px 76px;
    mask-image:linear-gradient(90deg, transparent 0%, #000 24%, #000 82%, transparent 100%);
}

.contact-hero__rings{
    position:absolute;
    right:-210px;
    top:34px;
    width:620px;
    height:620px;
    border-radius:50%;
    pointer-events:none;
    opacity:.32;
    background:
        repeating-radial-gradient(
            circle,
            rgba(212,160,23,.44) 0 1px,
            transparent 1px 24px
        );
}

.contact-hero--clean::after{
    content:"";
    position:absolute;
    left:-130px;
    bottom:-190px;
    width:760px;
    height:380px;
    pointer-events:none;
    opacity:.22;
    background:
        repeating-radial-gradient(
            ellipse at left bottom,
            rgba(0,127,255,.5) 0 1px,
            transparent 1px 14px
        );
    transform:rotate(-7deg);
    mask-image:linear-gradient(90deg, #000 0%, transparent 78%);
}

.contact-hero .container{
    position:relative;
    z-index:2;
}

.contact-hero__content{
    max-width:760px;
}

.contact-hero h1{
    max-width:760px;
    margin:20px 0 24px;
    color:#fff;
    font-size:clamp(2.15rem, 4.25vw, 4.25rem);
    font-weight:800;
    line-height:1.08;
    letter-spacing:-.055em;
}

.contact-hero p{
    max-width:660px;
    margin:0;
    color:rgba(255,255,255,.84);
    font-size:1.02rem;
    line-height:1.78;
}

.contact-hero__actions{
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    margin-top:34px;
}


/*
==================================================
CONTACT INTRO
==================================================
*/

.contact-intro{
    padding:50px 0;
    background:#fff;
}

.contact-intro__head{
    display:grid;
    grid-template-columns:.72fr 1.25fr .9fr;
    gap:34px;
    align-items:start;
    margin-bottom:34px;
}

.contact-intro__head h2,
.contact-form-head h2,
.contact-cta h2{
    font-size:clamp(1.7rem, 2.25vw, 2.15rem);
    font-weight:800;
    line-height:1.22;
}

.contact-intro__head h2,
.contact-form-head h2{
    color:var(--primary, #0B1F4D);
}

.contact-intro__head h2{
    max-width:720px;
    margin:0;
}

.contact-intro__head p,
.contact-form-head p{
    margin:0;
    color:#64748b;
    line-height:1.75;
}

.contact-intro__head p{
    font-size:.98rem;
}

.contact-intro__cards{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:22px;
}

.contact-intro__card{
    position:relative;
    min-height:250px;
    padding:30px;
    border:1px solid #e5e7eb;
    border-radius:26px;
    background:#fff;
    box-shadow:0 18px 50px rgba(11,31,77,.07);
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.contact-intro__card::after{
    content:"";
    position:absolute;
    left:30px;
    right:30px;
    bottom:0;
    height:3px;
    border-radius:3px 3px 0 0;
    background:var(--gold, #D4A017);
    transform:scaleX(.25);
    transform-origin:left;
    opacity:.8;
    transition:transform .25s ease;
}

.contact-intro__card:hover{
    transform:translateY(-6px);
    border-color:rgba(212,160,23,.55);
    box-shadow:0 24px 70px rgba(11,31,77,.12);
}

.contact-intro__card:hover::after{
    transform:scaleX(1);
}

.contact-intro__icon{
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    margin-bottom:24px;
    border:1px solid rgba(212,160,23,.36);
    border-radius:18px;
    background:#fff8e5;
}

.contact-intro__icon svg{
    width:32px;
    height:32px;
    fill:none;
    stroke:var(--primary, #0B1F4D);
    stroke-width:2.3;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.contact-intro__card h3{
    margin:0 0 12px;
    color:var(--primary, #0B1F4D);
    font-size:1.08rem;
    font-weight:800;
    letter-spacing:-.02em;
}

.contact-intro__card p{
    margin:0;
    color:#64748b;
    font-size:.94rem;
    line-height:1.7;
}


/*
==================================================
CONTACT FORM SECTION
==================================================
*/

.contact-section{
    padding:76px 0;
    background:linear-gradient(180deg, #F5F7FA 0%, #fff 100%);
}

.contact-section__grid{
    display:grid;
    grid-template-columns:minmax(0, 1.1fr) minmax(300px, .58fr);
    gap:34px;
    align-items:start;
}

.contact-form-wrap{
    padding:38px;
    border:1px solid #e5e7eb;
    border-radius:30px;
    background:#fff;
    box-shadow:0 24px 70px rgba(11,31,77,.08);
}

.contact-form-head{
    max-width:720px;
    margin-bottom:30px;
}

.contact-form-head h2{
    margin:15px 0 12px;
}

.contact-form{
    display:grid;
    gap:18px;
}

.form-row{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:18px;
}

.form-group{
    display:grid;
    gap:8px;
}

.form-group label{
    color:#0f172a;
    font-size:.86rem;
    font-weight:800;
}

.form-group input,
.form-group select,
.form-group textarea{
    width:100%;
    border:1px solid #d9dee7;
    border-radius:16px;
    background:#fff;
    color:#0f172a;
    font-family:'Inter', sans-serif;
    font-size:.95rem;
    outline:none;
    transition:border-color .2s ease, box-shadow .2s ease;
}

.form-group input,
.form-group select{
    height:52px;
    padding:0 16px;
}

.form-group textarea{
    min-height:154px;
    resize:vertical;
    padding:15px 16px;
    line-height:1.65;
}

.form-group input::placeholder,
.form-group textarea::placeholder{
    color:#98a2b3;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
    border-color:rgba(212,160,23,.85);
    box-shadow:0 0 0 4px rgba(212,160,23,.15);
}
.contact-form__trap{
    position:absolute !important;
    left:-9999px !important;
    top:auto !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}

.contact-form__trap input,
.contact-form__trap label{
    display:block;
}

.form-alert{
    padding:14px 16px;
    border-radius:14px;
    font-size:.92rem;
    font-weight:700;
    line-height:1.5;
}

.form-alert--success{
    border:1px solid rgba(22,163,74,.22);
    background:#ecfdf3;
    color:#166534;
}

.form-alert--error{
    border:1px solid rgba(220,38,38,.22);
    background:#fef2f2;
    color:#991b1b;
}

.form-group label span{
    color:var(--gold, #D4A017);
}
.contact-form .btn{
    justify-self:start;
    margin-top:8px;
    border:0;
    cursor:pointer;
}


/*
==================================================
CONTACT SIDE
==================================================
*/

.contact-side{
    display:grid;
    gap:22px;
}

.contact-side__panel{
    padding:30px;
    border-radius:28px;
    background:var(--primary, #0B1F4D);
    color:#fff;
    box-shadow:0 24px 70px rgba(11,31,77,.16);
}

.contact-side__label{
    margin-bottom:16px;
}

.contact-side__panel h3{
    margin:0 0 18px;
    color:#fff;
    font-size:1.35rem;
    font-weight:800;
    line-height:1.25;
}

.contact-side__panel ul{
    display:grid;
    gap:14px;
    margin:0;
    padding:0;
    list-style:none;
}

.contact-side__panel li{
    position:relative;
    padding-left:24px;
    color:rgba(255,255,255,.78);
    font-size:.94rem;
    line-height:1.6;
}

.contact-side__panel li::before{
    content:"";
    position:absolute;
    left:0;
    top:.66em;
    width:9px;
    height:9px;
    border:2px solid var(--gold, #D4A017);
    border-radius:50%;
}

.contact-side__note{
    position:relative;
    overflow:hidden;
    padding:30px;
    border:1px solid rgba(212,160,23,.32);
    border-radius:28px;
    background:#fff8e5;
}

.contact-side__note span{
    position:absolute;
    right:24px;
    top:-22px;
    color:rgba(212,160,23,.28);
    font-family:'Montserrat', sans-serif;
    font-size:7rem;
    line-height:1;
}

.contact-side__note p{
    position:relative;
    z-index:2;
    margin:0;
    color:var(--primary, #0B1F4D);
    font-family:'Montserrat', sans-serif;
    font-size:1.05rem;
    font-weight:800;
    line-height:1.55;
    letter-spacing:-.02em;
}


/*
==================================================
CONTACT CTA
==================================================
*/

.contact-cta{
    padding:0 0 56px;
    background:#fff;
}

.contact-cta__inner{
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding:38px;
    border-radius:30px;
    background:linear-gradient(135deg, #071a38 0%, #0B1F4D 100%);
    box-shadow:0 24px 70px rgba(11,31,77,.15);
}

.contact-cta__inner::after{
    content:"";
    position:absolute;
    right:-120px;
    bottom:-160px;
    width:330px;
    height:330px;
    border:1px solid rgba(212,160,23,.25);
    border-radius:50%;
}

.contact-cta__inner > *{
    position:relative;
    z-index:2;
}

.contact-cta h2{
    max-width:690px;
    margin:14px 0 0;
    color:#fff;
}


/*
==================================================
RESPONSIVE
==================================================
*/

@media (max-width:1080px){
    .contact-hero--clean{
        min-height:auto;
        padding:72px 0;
    }

    .contact-hero__rings{
        right:-320px;
        opacity:.24;
    }

    .contact-hero__content{
        max-width:680px;
    }

    .contact-intro__head,
    .contact-section__grid{
        grid-template-columns:1fr;
    }

    .contact-intro__head{
        gap:16px;
    }

    .contact-side{
        grid-template-columns:1fr 1fr;
    }
}

@media (max-width:900px){
    .contact-intro__cards{
        grid-template-columns:1fr;
    }

    .contact-intro__card{
        min-height:auto;
    }

    .contact-side{
        grid-template-columns:1fr;
    }

    .contact-cta__inner{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media (max-width:680px){
    .contact-hero--clean{
        padding:66px 0;
    }

    .contact-hero__rings{
        right:-380px;
        top:52px;
        opacity:.2;
    }

    .contact-hero h1{
        font-size:clamp(2.05rem, 12vw, 3rem);
        letter-spacing:-.055em;
    }

    .contact-hero p{
        font-size:.96rem;
    }

    .contact-hero__actions{
        flex-direction:column;
        align-items:stretch;
    }

    .contact-hero__actions .btn,
    .contact-form .btn,
    .contact-cta .btn{
        width:70%;
        justify-content:center;
    }

    .contact-intro,
    .contact-section{
        padding:64px 0;
    }

    .contact-form-wrap,
    .contact-side__panel,
    .contact-side__note,
    .contact-cta__inner{
        padding:24px;
        border-radius:22px;
    }

    .form-row{
        grid-template-columns:1fr;
    }

    .contact-cta{
        padding:0 0 64px;
    }
}

@media (max-width:460px){
    .contact-page .section-kicker,
    .contact-side__label{
        gap:10px;
        font-size:.7rem;
    }

    .contact-page .section-kicker::before,
    .contact-side__label::before{
        flex-basis:26px;
        width:26px;
    }

    .contact-hero--clean{
        padding:58px 0;
    }

    .contact-hero__rings{
        right:-430px;
        opacity:.18;
    }

    .contact-intro__card{
        padding:24px;
        border-radius:22px;
    }

    .contact-cta__inner{
        padding:28px 24px;
    }
}