/* ============================================================================
 * contact.css · 联系区与询盘表单（[lzd_contact]）
 * ----------------------------------------------------------------------------
 * 子主题的 site.css 只覆盖作品页与上传页，首页由 Elementor 渲染，所以联系区、
 * 表单错误态、蜜罐、成功块这些规则原本缺失。此文件从设计源站补回，只使用
 * tokens.css 里已有的变量，不新增任何设计值。
 * ========================================================================== */

.lzd-btn[disabled], .lzd-btn[aria-busy="true"] {
  cursor: not-allowed;}

.lzd-btn__spinner {
  flex: none;
  width: 16px;
  height: 16px;
  border: 1px solid color-mix(in srgb, currentColor 40%, transparent);
  border-top-color: currentColor;
  border-radius: var(--lzd-radius-pill);
  animation: lzd-spin var(--lzd-dur-spin) var(--lzd-ease-linear) infinite;}

@keyframes lzd-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }}

.lzd-contact {
  padding-top: var(--lzd-section-y);}

.lzd-contact__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: var(--lzd-space-08);
  align-items: start;}

.lzd-contact__title {
  font-size: var(--lzd-fs-section);
  font-weight: var(--lzd-fw-light);
  line-height: var(--lzd-lh-section);
  letter-spacing: var(--lzd-ls-section);
  color: var(--lzd-text-primary);}

.lzd-contact__lead {
  margin-top: var(--lzd-block-y);
  font-size: var(--lzd-fs-lead);
  font-weight: var(--lzd-fw-light);
  line-height: var(--lzd-lh-long);
  letter-spacing: var(--lzd-ls-body);
  color: var(--lzd-text-secondary);}

.lzd-contact__note {
  margin-top: var(--lzd-space-04);
  font-size: var(--lzd-fs-label);
  font-weight: var(--lzd-fw-regular);
  letter-spacing: var(--lzd-ls-label);
  color: var(--lzd-text-tertiary);}

.lzd-contact__mail {
  margin-top: var(--lzd-space-05);
  font-size: var(--lzd-fs-label);
  font-weight: var(--lzd-fw-regular);
  letter-spacing: var(--lzd-ls-label);
  color: var(--lzd-text-secondary);}

.lzd-contact__pending {
  color: var(--lzd-text-primary);
  border-bottom: 1px dashed var(--lzd-underline);}

.lzd-contact__qr {
  margin-top: var(--lzd-space-07);}

.lzd-qr-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--lzd-qr-size);
  max-width: calc(100% - var(--lzd-space-06));
  aspect-ratio: 1;
  padding: var(--lzd-space-03);
  background-color: var(--lzd-black-020);
  border: 1px dashed var(--lzd-border-field);
  border-radius: var(--lzd-radius-1);
  color: var(--lzd-text-tertiary);
  font-size: var(--lzd-fs-xs);
  font-weight: var(--lzd-fw-regular);
  letter-spacing: var(--lzd-ls-label);
  line-height: var(--lzd-lh-tight);
  text-align: center;}

.lzd-contact__qr-text {
  margin-top: var(--lzd-space-04);
  max-width: 34em;
  font-size: var(--lzd-fs-label);
  font-weight: var(--lzd-fw-regular);
  line-height: var(--lzd-lh-tight);
  letter-spacing: var(--lzd-ls-label);
  color: var(--lzd-text-secondary);}

.lzd-contact__qr-note, .lzd-contact__wechat {
  margin-top: var(--lzd-space-02);
  max-width: 34em;
  font-size: var(--lzd-fs-xs);
  font-weight: var(--lzd-fw-regular);
  line-height: var(--lzd-lh-tight);
  letter-spacing: var(--lzd-ls-label);
  color: var(--lzd-text-tertiary);}

.lzd-form__field {
  margin-top: var(--lzd-space-05);}

.lzd-form__field:first-of-type {
  margin-top: 0;}

.lzd-form__label {
  display: block;
  margin-bottom: var(--lzd-space-02);
  font-size: var(--lzd-fs-xs);
  font-weight: var(--lzd-fw-regular);
  letter-spacing: var(--lzd-ls-meta);
  color: var(--lzd-text-secondary);}

.lzd-form__required {
  color: var(--lzd-text-tertiary);}

.lzd-form__help {
  margin-top: var(--lzd-space-02);
  font-size: var(--lzd-fs-xs);
  font-weight: var(--lzd-fw-regular);
  line-height: 1.7;
  letter-spacing: var(--lzd-ls-body);
  color: var(--lzd-text-tertiary);}

.lzd-form__field.has-error .lzd-input, .lzd-form__field.has-error .lzd-textarea, .lzd-form__field.has-error .lzd-select, .lzd-form__field.has-error .lzd-upload {
  border-color: var(--lzd-danger);
  border-left: 3px solid var(--lzd-danger);
  background-color: var(--lzd-danger-wash);}

.lzd-form__field.has-error .lzd-input, .lzd-form__field.has-error .lzd-textarea, .lzd-form__field.has-error .lzd-select {
  background-image: linear-gradient(var(--lzd-danger-wash), var(--lzd-danger-wash));
  background-color: var(--lzd-black-020);}

.lzd-form__error {
  margin-top: var(--lzd-space-02);
  font-size: var(--lzd-fs-xs);
  font-weight: var(--lzd-fw-regular);
  line-height: 1.7;
  letter-spacing: var(--lzd-ls-body);
  color: var(--lzd-danger);}

.lzd-form__alert {
  margin-top: var(--lzd-space-05);
  padding: var(--lzd-space-03) var(--lzd-space-04);
  background-color: var(--lzd-black-030);
  border: 1px solid var(--lzd-line-200);
  border-left: 3px solid var(--lzd-danger);
  border-radius: var(--lzd-radius-1);
  color: var(--lzd-danger);
  font-size: var(--lzd-fs-xs);
  font-weight: var(--lzd-fw-regular);
  line-height: 1.7;
  letter-spacing: var(--lzd-ls-body);
  animation: lzd-alert-in var(--lzd-dur-base) var(--lzd-ease-out);}

@keyframes lzd-alert-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }}

.lzd-form__anti-spam {
  margin-top: var(--lzd-space-05);
  font-size: var(--lzd-fs-xs);
  font-weight: var(--lzd-fw-regular);
  line-height: 1.7;
  letter-spacing: var(--lzd-ls-label);
  color: var(--lzd-text-tertiary);}

.lzd-form__actions {
  margin-top: var(--lzd-space-06);}

.lzd-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;}

.lzd-form-result {
  display: none;
  padding-left: var(--lzd-space-04);
  border-left: 3px solid var(--lzd-success);
  animation: lzd-result-in var(--lzd-dur-base) var(--lzd-ease-out);}

.lzd-form-result.is-visible {
  display: block;}

.lzd-form-result__inner {
  animation: lzd-result-grow var(--lzd-dur-slow) var(--lzd-ease-out);}

@keyframes lzd-result-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }}

@keyframes lzd-result-grow {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }}

.lzd-form-result__title {
  font-size: var(--lzd-fs-body);
  font-weight: var(--lzd-fw-light);
  letter-spacing: var(--lzd-ls-body);
  color: var(--lzd-text-primary);}

.lzd-form-result__text {
  margin-top: var(--lzd-space-02);
  font-size: var(--lzd-fs-label);
  font-weight: var(--lzd-fw-regular);
  line-height: 1.7;
  letter-spacing: var(--lzd-ls-body);
  color: var(--lzd-text-secondary);}

.lzd-form-result__actions {
  margin-top: var(--lzd-space-05);}

.lzd-studio__form .lzd-form__field + .lzd-form__field {
  margin-top: var(--lzd-space-05);}

@media (max-width: 768px) {
  .lzd-contact__inner {grid-template-columns: minmax(0, 1fr); row-gap: var(--lzd-space-08);}
  .lzd-summary__p, .lzd-about__text, .lzd-contact__lead {max-width: none;}
}

@media (prefers-reduced-motion: reduce) {
  .lzd-btn__spinner {display: none;}
  .lzd-form-result__inner {clip-path: none;}
}

.lzd-qr {
  display: inline-block;
  padding: 10px;
  background-color: var(--lzd-white);
  border: 1px solid var(--lzd-line-100);
  border-radius: var(--lzd-radius-1);
  line-height: 0;}

.lzd-qr__img {
  display: block;
  width: 168px;
  height: 168px;
  
  image-rendering: -webkit-optimize-contrast;}

.lzd-contact__mail-link {
  color: var(--lzd-text-primary);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--lzd-line-200);}

.lzd-contact__mail-link:hover {
  text-decoration-color: var(--lzd-underline-hover);}

@media (max-width: 768px) {
  .lzd-qr__img {width: 148px; height: 148px;}
}
