.contact-dock {
  position: fixed;
  z-index: 35;
  right: max(18px, env(safe-area-inset-right));
  bottom: calc(18px + env(safe-area-inset-bottom));
  display: grid;
  gap: 8px;
  width: 142px;
  font-family: inherit;
}

.contact-dock a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 49px;
  padding: 9px 13px;
  border: 1px solid #155db7;
  border-radius: 10px;
  background: #1769c8;
  color: #fff;
  box-shadow: 0 5px 16px rgb(16 72 139 / 19%);
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.15;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.contact-dock a:hover {
  transform: translateY(-2px);
  background: #0d56af;
}

.contact-dock a:focus-visible {
  outline: 3px solid #80bdf2;
  outline-offset: 3px;
}

.contact-dock a>span:first-child {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: rgb(255 255 255 / 16%);
  font-size: 1rem;
  line-height: 1;
}

.contact-dock a svg {
  display: block;
  width: 21px;
  height: 21px;
  flex: none;
  fill: none;
}

.contact-dock .contact-dock-whatsapp {
  border-color: #119849;
  background: #25d366;
  color: #073b21;
}

.contact-dock .contact-dock-whatsapp:hover {
  border-color: #087b36;
  background: #1fc45a;
}

.contact-dock .contact-dock-whatsapp>span:first-child {
  background: rgb(5 84 39 / 12%);
}

body:has(.contact-form:focus-within) .contact-dock,
body:has(.gallery-lightbox[open]) .contact-dock,
body:has(.site-footer:focus-within) .contact-dock {
  display: none;
}

body[data-page="contact"] .contact-dock {
  right: auto;
  left: max(18px, env(safe-area-inset-left));
}

.site-footer {
  padding-bottom: calc(120px + env(safe-area-inset-bottom));
}

@media (max-width: 640px) {
  .contact-dock {
    right: max(10px, env(safe-area-inset-right));
    bottom: calc(10px + env(safe-area-inset-bottom));
    left: max(10px, env(safe-area-inset-left));
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: auto;
    gap: 8px;
  }

  .contact-dock a {
    min-width: 0;
    min-height: 48px;
    padding: 8px;
    border-radius: 9px;
    font-size: .78rem;
  }

  body[data-page="contact"] .contact-dock {
    right: max(10px, env(safe-area-inset-right));
    left: max(10px, env(safe-area-inset-left));
  }

  .contact-section { padding-bottom: calc(145px + env(safe-area-inset-bottom)); }

  .site-footer {
    padding-bottom: calc(112px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 340px) {
  .contact-dock a { gap: 5px; font-size: .72rem; }
  .contact-dock a>span:first-child { width: 19px; height: 19px; }
}

@media (prefers-reduced-motion: reduce) {
  .contact-dock a { transition: none; }
  .contact-dock a:hover { transform: none; }
}

@media print {
  .contact-dock { display: none; }
}
