.contact-page {
  color:#17233b;
  background:#f6f9fd;
  font-family:"Microsoft YaHei","微软雅黑",Arial,sans-serif;
}

.contact-page .contact-button.is-current {
  box-shadow:0 0 0 4px rgba(9,92,215,.12);
}

.contact-hero {
  position:relative;
  overflow:hidden;
  padding:5.75rem 0 7.5rem;
  color:#fff;
  background:
    radial-gradient(circle at 16% 30%,rgba(90,187,255,.24),transparent 26rem),
    radial-gradient(circle at 84% 8%,rgba(103,118,255,.24),transparent 25rem),
    linear-gradient(120deg,#073e9f 0%,#0968dc 56%,#078bc8 100%);
}

.contact-hero::before,
.contact-hero::after {
  position:absolute;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  content:"";
}

.contact-hero::before {
  top:-5rem;
  right:2%;
  width:min(42vw,36rem);
  height:calc(100% + 10rem);
  border:0;
  border-radius:0;
  background:url("../assets/home/decor-background-texture.png") center/contain no-repeat;
  opacity:.24;
}

.contact-hero::after {
  bottom:-16rem;
  left:5%;
  width:27rem;
  height:27rem;
}

.contact-hero__inner {
  position:relative;
  z-index:1;
  text-align:center;
}

.contact-hero__eyebrow {
  margin:0 0 .7rem;
  color:#aee5ff;
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.26em;
}

.contact-hero h1 {
  margin:0;
  font-size:clamp(2.25rem,4.5vw,3.75rem);
  line-height:1.2;
  font-weight:700;
  letter-spacing:.08em;
}

.contact-hero h1::after {
  display:block;
  width:3.5rem;
  height:.3rem;
  margin:1.15rem auto 1.3rem;
  border-radius:99px;
  content:"";
  background:#7edcff;
}

.contact-hero__inner>p:last-child {
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:1.05rem;
  line-height:1.8;
}

.contact-section {
  position:relative;
  z-index:2;
  margin-top:-3.4rem;
  padding-bottom:6.5rem;
}

.contact-section::before {
  position:absolute;
  z-index:0;
  inset:0;
  content:"";
  background:
    radial-gradient(circle at 8% 28%,rgba(34,148,226,.09),transparent 22rem),
    radial-gradient(circle at 92% 72%,rgba(49,98,218,.08),transparent 24rem),
    url("../assets/home/decor-background-pattern.svg") center 8rem/48rem 8.5rem repeat-y;
  opacity:.72;
  pointer-events:none;
}

.contact-layout {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(17rem,23rem) minmax(0,1fr);
  gap:1.5rem;
  align-items:stretch;
}

.contact-details,
.contact-form-card {
  border:1px solid rgba(214,226,242,.9);
  border-radius:1.5rem;
  background:#fff;
  box-shadow:0 1.25rem 3.75rem rgba(28,71,127,.1);
}

.contact-details {
  position:relative;
  display:flex;
  overflow:hidden;
  flex-direction:column;
  padding:2.5rem 2.25rem;
  color:#17233b;
  background:
    radial-gradient(circle at 100% 0,rgba(25,151,226,.1),transparent 13rem),
    #fff;
}

.contact-details h2 {
  margin:0;
  font-size:1.75rem;
  line-height:1.4;
}

.contact-details__intro {
  margin:.75rem 0 1.5rem;
  color:#6f7c91;
  font-size:.94rem;
  line-height:1.7;
}

.contact-details__list {
  display:grid;
  gap:.75rem;
  margin:0;
  font-style:normal;
}

.contact-details__list>a,
.contact-details__list>div {
  display:grid;
  grid-template-columns:2.5rem minmax(0,1fr);
  gap:.9rem;
  align-items:start;
  padding:.9rem;
  border:1px solid #e1eaf5;
  border-radius:1rem;
  background:rgba(246,250,255,.86);
  transition:border-color .2s ease,background-color .2s ease,transform .2s ease;
}

.contact-details__list>a:hover {
  border-color:#b8d7f5;
  background:#f0f7ff;
  transform:translateX(.2rem);
}

.contact-details__icon {
  position:relative;
  display:grid;
  place-items:center;
  width:2.5rem;
  height:2.5rem;
  border:0;
  border-radius:.75rem;
  color:#fff;
  background:linear-gradient(145deg,#0a67d8,#16a8c9);
  box-shadow:0 .4rem 1rem rgba(9,92,215,.16);
  font-family:"Segoe UI Symbol","Microsoft YaHei",sans-serif;
  font-size:1.3rem;
  font-weight:700;
}

.contact-details__icon--location::before {
  width:.78rem;
  height:1rem;
  border:2px solid currentColor;
  border-radius:50% 50% 50% 0;
  content:"";
  transform:rotate(-45deg);
}

.contact-details__icon--location::after {
  position:absolute;
  top:50%;
  left:50%;
  width:.25rem;
  height:.25rem;
  border-radius:50%;
  content:"";
  background:currentColor;
  transform:translate(-50%,-50%);
}

.contact-details__list span:last-child {
  min-width:0;
}

.contact-details__list small,
.contact-details__list strong {
  display:block;
}

.contact-details__list small {
  margin-bottom:.2rem;
  color:#8490a3;
  font-size:.78rem;
  line-height:1.5;
}

.contact-details__list strong {
  color:#1e2e49;
  font-size:.98rem;
  line-height:1.7;
  font-weight:500;
  overflow-wrap:anywhere;
}

.contact-details__wechat {
  display:flex;
  align-items:center;
  gap:1rem;
  margin:0 0 1.5rem;
  padding:1rem;
  border:1px solid #dce9f7;
  border-radius:1rem;
  background:linear-gradient(135deg,#f5faff,#fff);
}

.contact-details__wechat img {
  width:8.25rem;
  height:8.25rem;
  flex:0 0 auto;
  border-radius:.65rem;
  object-fit:contain;
  background:#fff;
}

.contact-details__wechat-copy,
.contact-details__wechat strong {
  display:block;
}

.contact-details__wechat-copy {
  min-width:0;
}

.contact-details__wechat strong {
  margin-top:0;
  color:#1e2e49;
  font-size:1.02rem;
  line-height:1.5;
  font-weight:700;
}

.contact-details__wechat-copy p {
  margin:.42rem 0 0;
  color:#7c8ba0;
  font-size:.78rem;
  line-height:1.65;
}

.contact-form-card {
  padding:2.6rem clamp(1.5rem,4vw,3.5rem) 2.75rem;
}

.contact-form-card__header {
  margin-bottom:2rem;
}

.contact-form-card__header h2 {
  margin:0;
  color:#17233b;
  font-size:clamp(1.65rem,3vw,2.2rem);
  line-height:1.4;
}

.contact-form-card__header span {
  display:block;
  margin-top:.6rem;
  color:#8a95a8;
  font-size:.82rem;
}

.contact-form b {
  color:#e43f4d;
  font-weight:700;
}

.contact-form__grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.35rem 1.5rem;
}

.form-field--hp {
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

.form-field {
  display:flex;
  min-width:0;
  flex-direction:column;
}

.form-field--wide {
  grid-column:1/-1;
}

.form-field label {
  margin-bottom:.65rem;
  color:#26334b;
  font-size:1.08rem;
  line-height:1.5;
  font-weight:700;
}

.form-field input,
.form-field textarea {
  width:100%;
  border:1px solid #dce4ee;
  border-radius:.75rem;
  outline:none;
  color:#1f2e47;
  background:#fbfcfe;
  font:inherit;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;
}

.form-field input {
  height:3.35rem;
  padding:0 1rem;
}

.form-field textarea {
  min-height:9.5rem;
  padding:.9rem 1rem;
  line-height:1.7;
  resize:vertical;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
  color:#a9b2c0;
}

.form-field input:hover,
.form-field textarea:hover {
  border-color:#b9cbe1;
}

.form-field input:focus,
.form-field textarea:focus {
  border-color:#1477e7;
  background:#fff;
  box-shadow:0 0 0 4px rgba(20,119,231,.1);
}

.form-field.is-invalid input,
.form-field.is-invalid textarea {
  border-color:#e34b58;
  box-shadow:0 0 0 3px rgba(227,75,88,.08);
}

.form-field__error {
  min-height:1.15rem;
  margin-top:.25rem;
  color:#d73543;
  font-size:.75rem;
  line-height:1.5;
}

.contact-form__footer {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1.5rem;
  margin-top:1.1rem;
}

.contact-submit {
  display:inline-flex;
  min-width:10.5rem;
  min-height:3.25rem;
  padding:.75rem 1.65rem;
  border:0;
  border-radius:99px;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  color:#fff;
  background:linear-gradient(90deg,#075bd5,#0797d0);
  box-shadow:0 .65rem 1.5rem rgba(9,92,215,.2);
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease;
}

.contact-submit:hover {
  transform:translateY(-2px);
  box-shadow:0 .8rem 1.8rem rgba(9,92,215,.26);
}

.contact-submit:focus-visible {
  outline:3px solid rgba(9,92,215,.25);
  outline-offset:3px;
}

.contact-submit:disabled {
  cursor:wait;
  opacity:.72;
  transform:none;
  box-shadow:0 .45rem 1rem rgba(9,92,215,.14);
}

.contact-submit.is-pending>span:last-child {
  width:.95rem;
  height:.95rem;
  border:2px solid rgba(255,255,255,.42);
  border-top-color:#fff;
  border-radius:50%;
  font-size:0;
  animation:contact-submit-spin .75s linear infinite;
}

.contact-form__status {
  min-height:1.5rem;
  margin:.85rem 0 0;
  color:#14725e;
  font-size:.84rem;
  line-height:1.6;
  text-align:right;
}

.contact-form__status.is-success {
  color:#14725e;
}

.contact-form__status.is-error {
  color:#d73543;
}

@keyframes contact-submit-spin {
  to { transform:rotate(360deg); }
}

@media(max-width:900px) {
  .contact-layout {
    grid-template-columns:1fr;
  }

}

@media(max-width:640px) {
  .contact-hero {
    padding:4rem 0 6.5rem;
  }

  .contact-hero__inner>p:last-child {
    max-width:19rem;
    margin-inline:auto;
    font-size:.94rem;
  }

  .contact-hero::before {
    right:-7rem;
    width:22rem;
    opacity:.16;
  }

  .contact-section {
    margin-top:-3rem;
    padding-bottom:4rem;
  }

  .contact-details,
  .contact-form-card {
    border-radius:1.15rem;
  }

  .contact-details {
    padding:2rem 1.35rem;
  }

  .contact-details__wechat {
    gap:.85rem;
    padding:.85rem;
  }

  .contact-details__wechat img {
    width:7.25rem;
    height:7.25rem;
  }

  .contact-form-card {
    padding:2rem 1.25rem;
  }

  .contact-form__grid {
    grid-template-columns:1fr;
    gap:1rem;
  }

  .form-field--wide {
    grid-column:auto;
  }

  .contact-form__footer {
    align-items:stretch;
    flex-direction:column;
  }

  .contact-submit {
    width:100%;
  }

  .contact-form__status {
    text-align:left;
  }
}

@media(prefers-reduced-motion:reduce) {
  .form-field input,
  .form-field textarea,
  .contact-submit {
    transition:none;
  }

  .contact-submit.is-pending>span:last-child {
    animation:none;
  }
}
