.contact-float-button{
    position:fixed;
    z-index:140;
    right:20px;
    bottom:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:48px;
    min-width:48px;
    height:48px;
    padding:0;
    border:1px solid color-mix(in srgb,#fff 22%,transparent);
    border-radius:999px;
    background:linear-gradient(135deg,#0e58bd,#176fd8);
    box-shadow:0 12px 28px rgba(7,57,128,.26);
    color:#fff;
    font:850 12px 'DM Sans',sans-serif;
    letter-spacing:.01em;
    cursor:pointer;
    opacity:.9;
    transition:width .2s ease, opacity .2s ease, transform .2s ease, box-shadow .2s ease;
}
.contact-float-button:hover,.contact-float-button:focus-visible{
    width:128px;
    opacity:1;
    transform:translateY(-2px);
    box-shadow:0 16px 34px rgba(7,57,128,.32);
}
.contact-float-button svg{
    flex:0 0 auto;
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.contact-float-button span{
    display:inline-block;
    max-width:0;
    overflow:hidden;
    white-space:nowrap;
    opacity:0;
    transition:max-width .2s ease, opacity .15s ease;
}
.contact-float-button:hover span,.contact-float-button:focus-visible span{
    max-width:80px;
    opacity:1;
}
.contact-popup{
    position:fixed;
    z-index:141;
    right:20px;
    bottom:82px;
    width:min(390px,calc(100vw - 24px));
    max-height:calc(100vh - 108px);
    padding:0;
    overflow:auto;
    border:1px solid var(--ui-border,#dce4ed);
    border-radius:16px;
    background:var(--ui-panel,#fff);
    box-shadow:0 24px 70px rgba(8,35,72,.26);
    color:var(--ui-text,#173354);
    opacity:0;
    visibility:hidden;
    transform:translateY(12px) scale(.98);
    transition:.18s;
}
.contact-popup.open{opacity:1;visibility:visible;transform:none}
.contact-popup>header{display:flex;align-items:center;justify-content:space-between;padding:17px 18px 10px}
.contact-popup header small{display:block;color:var(--ui-blue,#1767cf);font-size:8px;font-weight:850;letter-spacing:1px}
.contact-popup h2{margin:2px 0 0;color:var(--ui-heading,#09284d);font-size:20px}
.contact-popup header button{display:grid;place-items:center;width:31px;height:31px;border:0;border-radius:50%;background:var(--ui-panel-2,#edf4fb);color:var(--ui-muted,#60758e);font-size:20px;cursor:pointer}
.contact-popup>p{margin:0;padding:0 18px 13px;color:var(--ui-muted,#60758e);font-size:11px}
.contact-popup form{display:grid;gap:10px;padding:0 18px 18px}
.contact-popup form>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.contact-popup label{display:block;color:var(--ui-muted,#60758e);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.contact-popup input,.contact-popup select,.contact-popup textarea{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--ui-border,#dce4ed);border-radius:8px;background:var(--ui-panel-2,#f4f7fa);color:var(--ui-text,#173354);font:500 11px 'DM Sans',sans-serif;outline:0;text-transform:none}
.contact-popup textarea{resize:vertical}
.contact-popup input:focus,.contact-popup select:focus,.contact-popup textarea:focus{border-color:var(--ui-blue,#1767cf);box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-blue,#1767cf) 12%,transparent)}
.contact-submit{min-height:39px;border:0;border-radius:8px;background:var(--ui-blue,#1767cf);color:#fff;font-weight:800;cursor:pointer}
.contact-submit:disabled{opacity:.55}
.contact-popup output{display:block;min-height:15px;color:var(--ui-muted,#60758e);font-size:10px;text-align:center}
.contact-popup output.success{color:var(--ui-green,#16803c)}
.contact-popup output.error{color:var(--ui-red,#c7333c)}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:600px){
    .contact-float-button{
        right:12px;
        bottom:calc(76px + env(safe-area-inset-bottom,0px));
        width:46px;
        min-width:46px;
        height:46px;
        opacity:.94;
    }
    .contact-float-button:hover,.contact-float-button:focus-visible{width:46px;transform:translateY(-1px)}
    .contact-float-button span{display:none}
    .contact-popup{right:12px;bottom:calc(128px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px);max-height:calc(100vh - 150px)}
    .contact-popup form>div{grid-template-columns:1fr}
}
