.legal-contact { margin: 1rem 0; }
.legal-contact-overlay[hidden] { display: none; }
.legal-contact-overlay {
  position: fixed; inset: 0; z-index: 1040; padding: 1rem;
  display: grid; place-items: center; background: rgb(25 32 44 / 64%);
  overscroll-behavior: contain; overflow-y: auto;
}
.legal-contact-panel {
  position: relative; width: min(100%, 32rem); max-height: calc(100dvh - 2rem);
  overflow-y: auto; padding: 1.5rem; border: 1px solid #dce1e7; border-radius: 14px;
  background: #fff; color: #3b404e; box-shadow: 0 20px 70px rgb(0 0 0 / 20%);
}
.legal-contact-panel h2 { margin: 0 2.5rem .8rem 0; font-size: 1.25rem; }
.legal-contact-panel p { font-size: .9rem; line-height: 1.6; }
.legal-contact-close {
  position: absolute; top: .6rem; right: .6rem; width: 2.3rem; height: 2.3rem;
  padding: 0; border: 0; border-radius: 50%; background: #f0f3f6; color: #3b404e; font-size: 0; line-height: 1; cursor: pointer;
}
.legal-contact-close::before, .legal-contact-close::after {
  content: ''; position: absolute; top: 50%; left: 50%; width: 1rem; height: 2px;
  border-radius: 1px; background: currentColor; pointer-events: none;
  transform: translate(-50%, -50%) rotate(45deg);
}
.legal-contact-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.legal-contact-close:hover { background: #e1e6ec; }
.legal-contact-panel :focus-visible { outline: 3px solid #ba382b; outline-offset: 3px; }
.legal-contact-form { display: grid; gap: .8rem; }
.legal-contact-form button:disabled, .legal-contact-form input:disabled { opacity: .55; cursor: not-allowed; }
.legal-contact-dismiss { margin-top: 1rem; }
.legal-contact-errors { padding: .6rem .8rem; border-left: 3px solid #b63327; background: #fff3f1; }
.legal-contact-errors p { margin: 0; }
.legal-contact-details { display: grid; grid-template-columns: 6rem 1fr; gap: .6rem .8rem; margin: 1.2rem 0; }
.legal-contact-details dt { font-weight: 600; }
.legal-contact-details dd { margin: 0; overflow-wrap: anywhere; }
.legal-contact-form .captcha-field { margin: 0; }
.legal-contact-form .captcha-note, .legal-contact-form .captcha-message { font-size: .78rem; }
.legal-contact-form .captcha-widget { min-height: 60px; }
body.legal-contact-modal-open { overflow: hidden; }
@media (max-width: 420px) {
  .legal-contact-panel { padding: 1.2rem; }
  .legal-contact-details { grid-template-columns: 1fr; gap: .15rem; }
  .legal-contact-details dd { margin-bottom: .7rem; }
}
@media print { .legal-contact { display: none; } }
