/* Fixed contact links: a quiet right rail on wide screens, a compact dock on phones. */
.social-dock {
  position: fixed;
  z-index: 60;
  inset-block-start: 50%;
  inset-inline-end: max(10px, env(safe-area-inset-right));
  display: flex;
  flex-direction: column;
  gap: 8px;
  transform: translateY(-50%);
}
.social-dock a {
  display: grid;
  place-items: center;
  inline-size: 44px;
  block-size: 44px;
  flex: none;
  border: 1px solid #1616161a;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 2px 12px #00000012;
  color: #111;
  -webkit-tap-highlight-color: #16161620;
  transition: transform .18s ease, box-shadow .18s ease;
}
.social-dock a:hover {
  transform: translateX(-3px);
  box-shadow: 0 5px 18px #00000026;
}
.social-dock a:focus-visible {
  outline: 3px solid #c51d42;
  outline-offset: 2px;
}
.social-dock img {
  display: block;
  inline-size: 23px;
  block-size: 23px;
  object-fit: contain;
}
.social-dock a:nth-child(3) img { inline-size: 22px; block-size: 22px; }
.social-dock a:nth-child(5) img { inline-size: 21px; block-size: 21px; }
body.menu-open .social-dock,
body:has(#cookie-banner:not([hidden])) .social-dock,
body:has(.portfolio-cookie-panel:not([hidden])) .social-dock { visibility: hidden; }
@media (max-width: 1200px) {
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .social-dock {
    inset-block-start: auto;
    inset-inline-end: auto;
    inset-block-end: calc(12px + env(safe-area-inset-bottom));
    inset-inline-start: 50%;
    flex-direction: row;
    gap: 2px;
    padding: 5px;
    border: 1px solid #16161620;
    border-radius: 12px;
    background: #fffffff2;
    box-shadow: 0 8px 26px #00000030;
    transform: translateX(-50%);
  }
  .social-dock a {
    inline-size: 46px;
    block-size: 46px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
  }
  .social-dock a:hover { transform: none; box-shadow: none; background: #ececec; }
  body:has(input:focus, textarea:focus, select:focus) .social-dock { visibility: hidden; }
  body .to-top { bottom: calc(86px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .social-dock a { transition: none; }
}
