.contact-dialog {
  width: min(680px,calc(100vw - 32px));
  max-height: calc(100svh - 32px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 0;
  border-radius: 30px;
  background: #f5f4ef;
  color: #101010;
  box-shadow: 0 32px 100px rgba(0,0,0,.32);
}
.contact-dialog::backdrop { background: rgba(0,0,0,.72); backdrop-filter: blur(8px); }
.contact-dialog[open] { animation: contact-in .25s cubic-bezier(.16,1,.3,1); }
.contact-dialog__inner { padding: clamp(26px,5vw,48px); }
.contact-dialog__head { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: start; }
.contact-dialog__eyebrow { margin: 0 0 12px; color: #777; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.contact-dialog h2 { margin: 0; font-size: clamp(38px,7vw,64px); font-weight: 680; line-height: 1; letter-spacing: -.07em; }
.contact-dialog__close { width: 42px; height: 42px; padding: 0; border: 1px solid rgba(0,0,0,.16); border-radius: 50%; background: transparent; color: #101010; font: inherit; font-size: 23px; line-height: 1; cursor: pointer; }
.contact-dialog__intro { margin: 20px 0 28px; color: #686868; font-size: 15px; line-height: 1.65; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 14px; }
.contact-field { display: grid; gap: 8px; }
.contact-field--full { grid-column: 1/-1; }
.contact-field span { font-size: 12px; font-weight: 750; }
.contact-field em { color: #777; font-style: normal; font-weight: 500; }
.contact-field input,.contact-field select,.contact-field textarea { width: 100%; border: 1px solid rgba(0,0,0,.18); border-radius: 13px; background: #fff; color: #101010; font: inherit; font-size: 15px; outline: none; transition: border-color .2s ease,box-shadow .2s ease; }
.contact-field input,.contact-field select { min-height: 50px; padding: 0 14px; }
.contact-field textarea { min-height: 145px; padding: 14px; resize: vertical; line-height: 1.55; }
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus { border-color: #101010; box-shadow: 0 0 0 3px rgba(16,16,16,.09); }
.contact-consent { grid-column: 1/-1; display: flex; gap: 10px; align-items: flex-start; color: #666; font-size: 12px; line-height: 1.5; cursor: pointer; }
.contact-consent input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: #101010; }
.contact-submit { grid-column: 1/-1; min-height: 54px; border: 0; border-radius: 999px; background: #101010; color: #fff; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }
.contact-dialog__note { grid-column: 1/-1; margin: -4px 0 0; color: #777; font-size: 11px; line-height: 1.55; text-align: center; }
.contact-dialog__fallback { color: #101010; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.contact-form-status { grid-column: 1/-1; min-height: 18px; margin: 0; color: #315f44; font-size: 12px; font-weight: 700; text-align: center; }
body.contact-dialog-open { overflow: hidden; }
@keyframes contact-in { from { opacity: 0; transform: translateY(18px) scale(.985); } }
@media (max-width:600px) {
  .contact-dialog { width: calc(100vw - 20px); max-height: calc(100svh - 20px); border-radius: 24px; }
  .contact-dialog__inner { padding: 25px 20px 28px; }
  .contact-form { grid-template-columns: 1fr; }
  .contact-field--full,.contact-consent,.contact-submit,.contact-dialog__note,.contact-form-status { grid-column: 1; }
}
@media (prefers-reduced-motion:reduce) { .contact-dialog[open] { animation: none; } }
