@media (min-width: 621px) {
  .hero { min-height: clamp(480px, 60vh, 640px); }
}
.hero-art { animation: none !important; }
.hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  bottom: 0;
  height: 22%;
  pointer-events: none;
  opacity: .22;
  background: repeating-linear-gradient(174deg, transparent 0 18px, #c5ffffaa 19px 21px, transparent 22px 38px);
  mask-image: linear-gradient(transparent, #000 35%);
}
.hero[data-moving="true"]:not(.motion-paused)::after { animation: water-glint 5s ease-in-out infinite alternate; }
@keyframes water-glint { from { transform: translateX(-10px); opacity: .16; } to { transform: translateX(10px); opacity: .32; } }
.map-load-status { margin: 10px 0 0; color: #66798a; font-size: .75rem; line-height: 1.4; }
.chat-thread { display: grid; gap: 8px; max-height: 220px; overflow: auto; margin: 16px 0; }
.chat-message { max-width: 90%; padding: 10px 12px; border-radius: 14px; background: #edf6f5; color: #173b55; overflow-wrap: anywhere; white-space: pre-wrap; }
.chat-message.visitor { justify-self: end; background: #e2f4fa; }
.chat-message-meta { display: block; margin-top: 5px; color: #5e7485; font-size: .7rem; }
.website-field { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.chat-dialog button:disabled { opacity: .55; cursor: not-allowed; }
.contact-disabled { display: inline-flex; align-items: center; margin-left: auto; padding: 12px 18px; border-radius: 999px; background: #f0f3f2; color: #596e7b; font-size: .85rem; font-weight: 700; }
.map-open { display: inline-block; margin-top: 8px; color: #17647b; font-size: .78rem; font-weight: 700; }
a:focus-visible, button:focus-visible { outline: 3px solid #f0a93c; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .hero::after { animation: none !important; } }
