/* One quiet, direct contact action. The introductory pulse ends after two cycles. */
.whatsapp-float{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));z-index:20;display:grid;place-items:center;width:58px;height:58px;border:1px solid #ffffff40;border-radius:50%;background:#21664e;color:#fff;text-decoration:none;box-shadow:0 5px 22px #132b2426;isolation:isolate;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.whatsapp-float>svg{width:28px;height:28px;display:block}
.whatsapp-float::before{content:"";position:absolute;inset:-1px;border:1px solid #21664e70;border-radius:inherit;z-index:-1;opacity:0;pointer-events:none;animation:whatsapp-intro 1.8s ease-out 1s 2}
.whatsapp-float:hover{background:#194f3d;transform:translateY(-2px);box-shadow:0 8px 25px #132b2430}
.whatsapp-float:focus-visible{outline:3px solid #21664e;outline-offset:4px}
.whatsapp-float-label{position:absolute;right:calc(100% + 12px);padding:10px 15px;background:#fff;color:#292d28;border:1px solid #e6e8e2;border-radius:6px;font-size:13px;font-weight:500;line-height:1.25;white-space:nowrap;box-shadow:0 3px 14px #17291c0d;opacity:0;transform:translateX(4px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.whatsapp-float:is(:hover,:focus-visible) .whatsapp-float-label{opacity:1;transform:translateX(0)}
body:has(dialog[open],.nh-expanded,#nav.open) .whatsapp-float{visibility:hidden}
@keyframes whatsapp-intro{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.45);opacity:0}}
@media(max-width:700px){.whatsapp-float{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:54px;height:54px}.whatsapp-float>svg{width:26px;height:26px}.whatsapp-float-label{display:none}.has-whatsapp-float{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){.whatsapp-float,.whatsapp-float-label{transition:none}.whatsapp-float::before{animation:none}}
.mobile-contact-menu{display:none}
@media(max-width:700px){
 .whatsapp-float{display:none}
 .mobile-contact-menu{display:block;position:fixed;z-index:30;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));font-size:15px;color:#252922}
 .contact-toggle{display:flex;align-items:center;gap:8px;min-height:48px;padding:12px 17px;border-radius:28px;background:#21664e;color:#fff;box-shadow:0 4px 18px #132b2426;cursor:pointer;list-style:none;font-size:14px}
 .contact-toggle svg{width:22px;height:22px}
 .mobile-contact-menu summary::-webkit-details-marker{display:none}
 .mobile-contact-menu summary{list-style:none}
 .contact-panel{position:absolute;right:0;bottom:calc(100% + 12px);width:min(300px,calc(100vw - 32px));max-height:calc(100svh - 160px);overflow:auto;border:1px solid #d9ddd4;border-radius:14px;background:#fff;padding:10px;box-shadow:0 8px 32px #132b2424}
 .contact-panel>p{padding:8px 10px;margin:0;color:#64716e;font-size:13px}
 .contact-choice{display:flex;align-items:center;gap:13px;padding:14px 10px;min-height:52px;text-decoration:none;cursor:pointer;border-radius:7px}
 .contact-choice svg{width:23px;height:23px;flex-shrink:0;color:#21664e}
 .contact-choice span{line-height:1.35}
 .contact-choice small{display:block;font-size:12px;color:#64716e;margin-top:3px}
 .contact-choice:hover{background:#f6f5f0}
 .contact-projects{border-top:1px solid #e6e8e2}
 .contact-projects>div{padding-left:8px;border-left:2px solid #d9ddd4;margin-left:20px}
 .contact-toggle:focus-visible,.contact-choice:focus-visible{outline:2px solid #21664e;outline-offset:3px}
 body:has(dialog[open],.nh-expanded,#nav.open) .mobile-contact-menu{visibility:hidden}
}
