:root{
    --fshpurple:#4F329A;
    --fshpurple-2:#6847B8;
    --fshnavy:#19243A;
    --fshspace:#1F2940;
    --fshdeep:#1B253B;
    --fshwhite:#FFFFFF;
    --fshbg:#F9F8FA;
    --fshsurface:#FEFEFD;
    --fshtext:#687086;
    --fshmuted:#747490;
    --fshlavender:#F0E5ED;
    --fshborder:#E7E5EE;
    --fshdanger:#DC3545;
}

/* ============================================================
   CONTACT HERO / FORM
============================================================ */

.fshcontact-section{
    position:relative;
    overflow:hidden;
    padding:72px 0 78px;
    background:
        radial-gradient(circle at 88% 8%,rgba(79,50,154,.12),transparent 30%),
        radial-gradient(circle at 7% 18%,rgba(240,229,237,.82),transparent 27%),
        linear-gradient(180deg,#FBFAFC 0%,var(--fshbg) 100%);
}

.fshcontact-section:before{
    content:"";
    position:absolute;
    width:330px;
    height:330px;
    right:-170px;
    bottom:-180px;
    border:1px solid rgba(79,50,154,.08);
    border-radius:50%;
    box-shadow:
        0 0 0 46px rgba(79,50,154,.025),
        0 0 0 92px rgba(79,50,154,.015);
    pointer-events:none;
}

.fshcontact-visual{
    position:relative;
    text-align:center;
}

.fshcontact-visual img{
    display:block;
    width:100%;
    max-width:610px;
    height:500px;
    margin:0 auto;
    object-fit:cover;
    border-radius:30px;
    filter:drop-shadow(0 28px 55px rgba(25,36,58,.13));
}

.fshcontact-float{
    position:absolute;
    z-index:3;
    display:flex;
    align-items:center;
    gap:11px;
    min-width:185px;
    padding:12px 15px;
    border:1px solid rgba(231,229,238,.92);
    border-radius:17px;
    background:rgba(255,255,255,.92);
    box-shadow:0 16px 38px rgba(25,36,58,.11);
    backdrop-filter:blur(14px);
}

.fshcontact-float i{
    width:40px;
    height:40px;
    flex:0 0 40px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:linear-gradient(135deg,var(--fshpurple),var(--fshnavy));
    color:#fff;
    font-size:14px;
    box-shadow:0 10px 22px rgba(79,50,154,.18);
}

.fshcontact-float strong{
    display:block;
    color:var(--fshnavy);
    font-size:13px;
    line-height:1.3;
    font-weight:900;
}

.fshcontact-float span{
    display:block;
    margin-top:2px;
    color:var(--fshpurple);
    font-size:11px;
    font-weight:750;
}

.fshfloat-one{
    left:-8px;
    top:64px;
}

.fshfloat-two{
    right:2px;
    bottom:64px;
}

/* ============================================================
   CONTACT FORM CARD
============================================================ */

.fshcontact-card{
    position:relative;
    overflow:hidden;
    padding:34px;
    border:1px solid var(--fshborder);
    border-radius:26px;
    background:rgba(255,255,255,.96);
    box-shadow:0 24px 65px rgba(25,36,58,.085);
}

.fshcontact-card:before{
    content:"";
    position:absolute;
    width:150px;
    height:150px;
    right:-80px;
    top:-80px;
    border-radius:50%;
    background:rgba(79,50,154,.055);
    pointer-events:none;
}

.fshcontact-badge{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 13px;
    border:1px solid #E5DFF1;
    border-radius:999px;
    background:#F8F5FC;
    color:var(--fshpurple);
    font-size:10px;
    font-weight:900;
    letter-spacing:.2px;
}

.fshcontact-card .form-label{
    margin-bottom:7px;
    color:var(--fshnavy);
    font-size:12px;
    font-weight:850;
}

.fshinput-box{
    position:relative;
}

.fshinput-box i{
    position:absolute;
    left:15px;
    top:50%;
    z-index:2;
    transform:translateY(-50%);
    color:var(--fshpurple);
    font-size:13px;
}

.fshinput-box.textarea i{
    top:17px;
    transform:none;
}

.fshinput-box .form-control{
    min-height:50px;
    padding:11px 14px 11px 43px;
    border:1px solid var(--fshborder);
    border-radius:13px;
    background:#FBFAFC;
    color:var(--fshnavy);
    font-size:13px;
    font-weight:650;
    transition:.2s ease;
}

.fshinput-box .form-control::placeholder{
    color:#A2A5B0;
    font-weight:500;
}

.fshinput-box textarea.form-control{
    min-height:132px;
    padding-top:13px;
    resize:vertical;
}

.fshinput-box .form-control:focus{
    border-color:rgba(79,50,154,.52);
    background:#fff;
    box-shadow:0 0 0 4px rgba(79,50,154,.09);
}

.fshcontact-trust{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:18px;
}

.fshcontact-trust span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:31px;
    padding:0 10px;
    border:1px solid var(--fshborder);
    border-radius:999px;
    background:#FBFAFC;
    color:#6B7283;
    font-size:10.5px;
    font-weight:750;
}

.fshcontact-trust i{
    color:var(--fshpurple);
}

/* ============================================================
   CONTACT INFO CARDS
============================================================ */

.fshcontact-info{
    padding:0 0 74px;
    background:var(--fshbg);
}

.fshinfo-card{
    height:100%;
    padding:26px 22px;
    border:1px solid var(--fshborder);
    border-radius:20px;
    background:#fff;
    text-align:center;
    box-shadow:0 10px 30px rgba(25,36,58,.035);
    transition:.25s ease;
}

.fshinfo-card:hover{
    transform:translateY(-5px);
    border-color:#D8D0E8;
    box-shadow:0 20px 42px rgba(25,36,58,.09);
}

.fshinfo-card > i{
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    margin:0 auto 15px;
    border-radius:16px;
    background:linear-gradient(135deg,var(--fshpurple),var(--fshnavy));
    color:#fff;
    font-size:19px;
    box-shadow:0 12px 26px rgba(79,50,154,.17);
}

.fshinfo-card h5{
    margin-bottom:7px;
    color:var(--fshnavy);
    font-size:15px;
    font-weight:900;
}

.fshinfo-card a,
.fshinfo-card p{
    margin:0;
    color:var(--fshtext);
    font-size:12px;
    line-height:1.55;
    font-weight:650;
    text-decoration:none;
}

.fshinfo-card a:hover{
    color:var(--fshpurple);
}

/* ============================================================
   CTA
============================================================ */

.fshcontact-cta{
    padding:0 0 72px;
    background:var(--fshbg);
}

.fshcontact-cta-box{
    position:relative;
    overflow:hidden;
    padding:42px;
    border-radius:26px;
    background:
        radial-gradient(circle at 92% 4%,rgba(79,50,154,.60),transparent 34%),
        linear-gradient(135deg,var(--fshnavy),var(--fshspace) 58%,#312B62 125%);
    box-shadow:0 26px 64px rgba(25,36,58,.16);
}

.fshcontact-cta-box:before{
    content:"";
    position:absolute;
    width:310px;
    height:310px;
    right:-145px;
    top:-170px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:
        0 0 0 42px rgba(255,255,255,.018),
        0 0 0 84px rgba(255,255,255,.012);
}

.fshcontact-cta-box:after{
    content:"";
    position:absolute;
    width:230px;
    height:230px;
    left:-130px;
    bottom:-145px;
    border-radius:50%;
    background:rgba(255,255,255,.035);
}

.fshcontact-cta-box .row{
    position:relative;
    z-index:2;
}

.fshcontact-cta-badge{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-bottom:15px;
    padding:7px 13px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    color:#E4DBFA;
    font-size:10px;
    font-weight:900;
}

.fshcontact-cta-box h2{
    color:#fff;
}

.fshcontact-cta-box p{
    color:rgba(255,255,255,.68);
}

.fshcontact-cta-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
}

.fshoutline-btn{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 17px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:11px;
    background:rgba(255,255,255,.09);
    color:#fff!important;
    font-size:11px;
    font-weight:850;
    text-decoration:none;
    transition:.2s ease;
}

.fshoutline-btn:hover{
    transform:translateY(-2px);
    background:#fff;
    color:var(--fshnavy)!important;
}

.fshcontact-stats{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
}

.fshcontact-stats div{
    padding:18px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:17px;
    background:rgba(255,255,255,.075);
    backdrop-filter:blur(10px);
}

.fshcontact-stats h3{
    margin:0;
    color:#fff;
    font-size:26px;
    line-height:1;
    font-weight:900;
}

.fshcontact-stats span{
    display:block;
    margin-top:5px;
    color:rgba(255,255,255,.65);
    font-size:10.5px;
    font-weight:700;
}

/* ============================================================
   VALIDATION / LOADER / TOAST
============================================================ */

.fshfield-error{
    display:none;
    margin-top:6px;
    color:var(--fshdanger);
    font-size:11px;
    font-weight:750;
}

.fshfield-error.show{
    display:block;
}

.fshinput-box .form-control.is-invalid{
    border-color:var(--fshdanger);
    background:#FFF8F8;
}

.fshinput-box .form-control.is-invalid:focus{
    border-color:var(--fshdanger);
    box-shadow:0 0 0 4px rgba(220,53,69,.10);
}

.fshbtn-loader{
    display:none;
    width:17px;
    height:17px;
    margin-left:8px;
    border:2px solid rgba(255,255,255,.42);
    border-top-color:#fff;
    border-radius:50%;
    animation:fstSpin .75s linear infinite;
}

.js-contact-submit.is-loading .fshbtn-loader{
    display:inline-block;
}

.js-contact-submit.is-loading .js-btn-icon{
    display:none;
}

.js-contact-submit:disabled{
    cursor:not-allowed;
    opacity:.82;
}

/* toast compatibility - handled globally in style.css */

@keyframes fstSpin{
    to{transform:rotate(360deg);}
}

/* ============================================================
   RESPONSIVE
============================================================ */

@media(max-width:991.98px){
    .fshcontact-section{
        padding:52px 0 60px;
    }

    .fshcontact-visual img{
        height:auto;
        max-height:430px;
    }

    .fshcontact-card{
        margin-top:10px;
    }

    .fshcontact-cta-box{
        padding:34px;
    }
}

@media(max-width:575.98px){
    .fshcontact-section{
        padding:36px 0 44px;
    }

    .fshcontact-card{
        padding:22px 18px;
        border-radius:20px;
    }

    .fshcontact-visual img{
        border-radius:22px;
    }

    .fshcontact-float{
        min-width:0;
        padding:8px 10px;
        border-radius:13px;
        gap:7px;
    }

    .fshcontact-float i{
        width:32px;
        height:32px;
        flex-basis:32px;
        border-radius:9px;
        font-size:12px;
    }

    .fshcontact-float strong{
        font-size:10.5px;
    }

    .fshcontact-float span{
        font-size:9px;
    }

    .fshfloat-one{
        left:3px;
        top:12px;
    }

    .fshfloat-two{
        right:3px;
        bottom:12px;
    }

    .fshcontact-info{
        padding-bottom:52px;
    }

    .fshcontact-cta{
        padding-bottom:52px;
    }

    .fshcontact-cta-box{
        padding:26px 20px;
        border-radius:21px;
    }

    .fshcontact-stats{
        gap:8px;
    }

    .fshcontact-stats div{
        padding:14px;
    }
}


/* ============================================================
   FINAL CONTACT PAGE CONTENT STYLES
============================================================ */

.fshcontact-copy{
    max-width:620px;
}

.fshcontact-title{
    margin:18px 0 0;
    max-width:650px;
    color:var(--fshnavy);
    font-size:clamp(42px,5vw,66px);
    line-height:1.02;
    letter-spacing:-2.3px;
    font-weight:900;
}

.fshcontact-title span{
    display:block;
    color:var(--fshpurple);
}

.fshcontact-lead{
    max-width:590px;
    margin:18px 0 0;
    color:var(--fshtext);
    font-size:14px;
    line-height:1.7;
}

.fshcontact-quick-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:27px;
}

.fshcontact-quick-item{
    display:flex;
    align-items:center;
    gap:11px;
    min-height:74px;
    padding:13px;
    border:1px solid var(--fshborder);
    border-radius:15px;
    background:rgba(255,255,255,.78);
    box-shadow:0 9px 25px rgba(25,36,58,.035);
}

.fshcontact-quick-item > i{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:var(--fshlavender);
    color:var(--fshpurple);
    font-size:14px;
}

.fshcontact-quick-item strong,
.fshcontact-quick-item small{
    display:block;
}

.fshcontact-quick-item strong{
    color:var(--fshnavy);
    font-size:11.5px;
    font-weight:900;
}

.fshcontact-quick-item small{
    margin-top:3px;
    color:var(--fshmuted);
    font-size:9px;
    line-height:1.35;
}

.fshcontact-direct{
    display:flex;
    align-items:center;
    gap:11px;
    margin-top:18px;
    padding:14px;
    border:1px solid #DDD5EE;
    border-radius:15px;
    background:#F7F3FC;
}

.fshcontact-direct-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:linear-gradient(135deg,var(--fshpurple),var(--fshnavy));
    color:#fff;
}

.fshcontact-direct small,
.fshcontact-direct a{
    display:block;
}

.fshcontact-direct small{
    color:#8A8797;
    font-size:9px;
    font-weight:750;
}

.fshcontact-direct a{
    margin-top:2px;
    color:var(--fshnavy)!important;
    font-size:12px;
    font-weight:900;
    text-decoration:none!important;
}

.fshcontact-form-head{
    display:flex;
    align-items:center;
    gap:13px;
    margin-bottom:24px;
}

.fshcontact-form-icon{
    width:52px;
    height:52px;
    flex:0 0 52px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:linear-gradient(135deg,var(--fshpurple),var(--fshnavy));
    color:#fff;
    box-shadow:0 12px 27px rgba(79,50,154,.18);
    font-size:18px;
}

.fshcontact-mini-label{
    display:block;
    margin-bottom:4px;
    color:#9A92AE;
    font-size:8.5px;
    font-weight:900;
    letter-spacing:1.15px;
}

.fshcontact-form-head h2{
    margin:0;
    color:var(--fshnavy);
    font-size:27px;
    line-height:1.15;
    font-weight:900;
    letter-spacing:-.5px;
}

.fshcontact-form-head p{
    margin:4px 0 0;
    color:var(--fshmuted);
    font-size:10.5px;
}

.fshcontact-submit{
    min-height:48px;
    display:flex!important;
    align-items:center;
    justify-content:center;
    gap:8px;
}

.fshcontact-info-head{
    max-width:650px;
    margin:0 auto 28px;
}

.fshcontact-info-head > span{
    color:#968AA9;
    font-size:8.5px;
    font-weight:900;
    letter-spacing:1.3px;
}

.fshcontact-info-head h2{
    margin:8px 0 0;
    color:var(--fshnavy);
    font-size:clamp(28px,3vw,39px);
    line-height:1.08;
    letter-spacing:-1px;
    font-weight:900;
}

.fshcontact-info-head p{
    max-width:560px;
    margin:10px auto 0;
    color:var(--fshtext);
    font-size:11.5px;
    line-height:1.6;
}

.fshcontact-stats div{
    position:relative;
}

.fshcontact-stats div > i{
    display:block;
    margin-bottom:12px;
    color:#DED4F4;
    font-size:16px;
}

@media(max-width:575.98px){
    .fshcontact-title{
        font-size:38px;
        letter-spacing:-1.5px;
    }

    .fshcontact-quick-grid{
        grid-template-columns:1fr;
    }

    .fshcontact-form-head{
        align-items:flex-start;
    }
}

