/* ============ floating contact buttons + message modal ============ */
.fabs{position:fixed;right:18px;bottom:22px;z-index:80;display:flex;flex-direction:column;gap:10px}
.fab{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 8px 20px rgba(11,43,59,.22);transition:transform .18s,box-shadow .18s;position:relative}
.fab:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(11,43,59,.28)}
.fab svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9}
.fab--wa{background:#25D366}
.fab--msg{background:#E8632A}
.fab--msg:hover{background:#C74A1A}
.fab--mail{background:#0E4D6E}
.fab .tip{position:absolute;right:62px;white-space:nowrap;background:var(--ink);color:#fff;font-size:12.5px;padding:6px 10px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .18s}
.fab:hover .tip{opacity:1}
@media (max-width:560px){
  .fabs{right:12px;bottom:14px;gap:8px}
  .fab{width:46px;height:46px}
  .fab .tip{display:none}
}

.mmodal{position:fixed;inset:0;z-index:95;display:none}
.mmodal.open{display:block}
.mmodal .scrim{position:absolute;inset:0;background:rgba(11,43,59,.55)}
.mmodal .panel{position:relative;z-index:1;width:min(560px,calc(100% - 32px));margin:6vh auto;max-height:88vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(11,43,59,.3);padding:26px 24px 24px}
.mmodal h2{font-family:var(--disp);font-size:26px;font-weight:700;letter-spacing:.06em;text-align:center;text-transform:uppercase;margin-bottom:4px}
.mmodal .sub{text-align:center;color:var(--steel);font-size:13.5px;margin-bottom:18px}
.mmodal .close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center}
.mmodal .close:hover{background:#000}
.mmodal .close svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.4;fill:none}
.mform{display:grid;gap:10px}
.mform input,.mform textarea{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:8px;font-size:15.5px;font-family:inherit;background:#fff;min-height:48px;color:var(--ink)}
.mform textarea{min-height:104px;resize:vertical}
.mform input:focus,.mform textarea:focus{border-color:var(--brand);outline:none}
.mform .err{border-color:#D64545;background:#FFF7F7}
.mform .submit{width:100%;background:var(--accent);color:#fff;font-weight:700;font-size:16px;letter-spacing:.06em;text-transform:uppercase;min-height:50px;border-radius:8px;margin-top:4px}
.mform .submit:hover{background:var(--accent-deep)}
.mform .note{font-size:12px;color:var(--steel);text-align:center;line-height:1.5}
.mmodal .ok{text-align:center;padding:26px 6px}
.mmodal .ok b{display:block;font-family:var(--disp);font-size:24px;margin-bottom:8px}
.mmodal .ok p{color:var(--steel);font-size:14.5px}

/* alternative contact routes inside the modal */
.malts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--steel)}
.malts span{width:100%}
.malts a{color:var(--brand);font-weight:600}
.malts a:hover{color:var(--accent);text-decoration:underline}