.floating-contact { position: fixed; right: 20px; top: 50%; transform: translateY(-50%); z-index: 850; display: grid; gap: 8px; color: var(--c-text, #1f2937); }
.floating-contact-item { position: relative; }
.floating-contact-trigger { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border: 1px solid var(--c-border, #e5e7eb); border-radius: 10px; background: #fff; color: #07142a; box-shadow: 0 4px 18px rgba(7,20,42,.12); cursor: pointer; transition: background-color .2s, color .2s; }
.floating-contact-trigger .iconfont { font-size: 25px; line-height: 1; }
.floating-contact-whatsapp { color: #146c36; }
.floating-contact-trigger:hover, .floating-contact-trigger[aria-expanded="true"] { background: #07142a; color: #fff; }
.floating-contact-panel { position: absolute; right: calc(100% + 12px); top: 0; width: 260px; padding: 20px; display: grid; gap: 10px; background: #fff; border: 1px solid var(--c-border, #e5e7eb); border-radius: 12px; box-shadow: 0 8px 32px rgba(7,20,42,.16); overflow-wrap: anywhere; }
.floating-contact-panel[hidden] { display: none; }
.floating-contact-panel::after { content: ''; position: absolute; top: 0; left: 100%; width: 14px; height: 100%; }
.floating-contact-panel strong { font-size: 16px; color: #07142a; }
.floating-contact-panel a { font-size: 14px; text-decoration: underline; text-underline-offset: 3px; min-height: 44px; display: flex; align-items: center; }
.floating-contact-panel a:hover { color: #146c36; }
.floating-contact-panel span { font-size: 13px; color: #596273; }
.floating-contact-panel img { width: 144px; height: 144px; object-fit: contain; justify-self: center; }
.floating-contact a:focus-visible, .floating-contact-trigger:focus-visible { outline: 3px solid #f7921b; outline-offset: 3px; }
.nav-open .floating-contact { visibility: hidden; }
#contact { scroll-margin-top: 96px; }
@media (max-width: 767px), (max-height: 650px) {
    .floating-contact { top: auto; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); right: calc(12px + env(safe-area-inset-right, 0px)); transform: none; }
    .floating-contact-trigger { width: 44px; height: 44px; }
    .floating-contact-panel { position: fixed; right: 56px; top: auto; bottom: 0; width: min(260px, calc(100vw - 80px - env(safe-area-inset-right, 0px))); max-height: calc(100dvh - 110px); overflow-y: auto; padding: 16px; }
}
@media (prefers-reduced-motion: reduce) { .floating-contact-trigger { transition: none; } html { scroll-behavior: auto; } }
@media print { .floating-contact { display: none; } }
