.page-contact {
  --contact-row-gap: var(--space-4);
  --contact-figure-offset: var(--space-6);
}

.page-contact .contact-hero {
  padding-block: var(--space-6) var(--space-4);
}

.page-contact .contact-hero h1 {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
  color: var(--color-ink);
  margin: var(--space-2) 0 0;
  max-width: 20ch;
}

.page-contact .contact-hero .lead {
  max-width: var(--measure);
  margin-top: var(--space-4);
  font-size: var(--text-lg);
  line-height: var(--leading-body);
  color: var(--color-ink-soft);
}

.page-contact .quick-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin-top: var(--space-6);
  padding-top: var(--space-3);
  border-top: var(--border-thin) solid var(--color-line);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}

.page-contact .quick-nav a {
  color: var(--color-accent);
  text-decoration: none;
  border-bottom: var(--border-thin) solid transparent;
}

.page-contact .quick-nav a:hover,
.page-contact .quick-nav a:focus-visible {
  color: var(--color-focus);
  border-bottom-color: var(--color-focus);
}

.page-contact .section-head {
  margin-bottom: var(--space-6);
}

.page-contact .section-head h2 {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
  color: var(--color-ink);
  margin: var(--space-2) 0 0;
  max-width: 24ch;
}

/* 渠道总览 */
.page-contact .channels-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}

.page-contact .channel-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-contact .channel-row {
  padding-block: var(--space-4);
  border-top: var(--border-thin) solid var(--color-line);
}

.page-contact .channel-row:last-child {
  border-bottom: var(--border-thin) solid var(--color-line);
}

.page-contact .channel-name {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
  color: var(--color-ink);
  margin: 0 0 var(--space-2);
}

.page-contact .channel-value {
  font-family: var(--font-mono);
  font-size: var(--text-lg);
  line-height: var(--leading-heading);
  color: var(--color-ink);
  overflow-wrap: anywhere;
}

.page-contact .channel-value a {
  color: var(--color-accent);
  text-decoration: none;
  border-bottom: var(--border-thin) solid var(--color-accent);
}

.page-contact .channel-value a:hover,
.page-contact .channel-value a:focus-visible {
  color: var(--color-focus);
  border-bottom-color: var(--color-focus);
}

.page-contact .channel-note {
  max-width: 46ch;
  margin: var(--space-2) 0 0;
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--color-ink-muted);
}

.page-contact .mail-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2) var(--space-3);
  min-width: 0;
}

.page-contact .mail-line .mail-text {
  min-width: 0;
}

.page-contact .copy-mail {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}

.page-contact .address-line {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-style: normal;
  line-height: var(--leading-heading);
  color: var(--color-ink);
  max-width: 24ch;
}

/* 图片容器 */
.page-contact .figure {
  margin: 0;
}

.page-contact .figure__frame {
  overflow: hidden;
  background-color: var(--color-surface-deep);
}

.page-contact .figure__frame--contact {
  aspect-ratio: 20 / 13;
}

.page-contact .figure__frame--diagram {
  aspect-ratio: 12 / 7;
}

.page-contact .figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-contact .figure__caption {
  margin-top: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--color-ink-muted);
}

/* 邮箱章节 */
.page-contact .mail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
  align-items: start;
}

.page-contact .mail-grid .prose {
  max-width: var(--measure);
}

.page-contact .mail-grid .prose p {
  margin: 0 0 var(--space-3);
  color: var(--color-ink);
  line-height: var(--leading-body);
}

.page-contact .mail-grid .prose a {
  color: var(--color-accent);
  text-decoration: none;
  border-bottom: var(--border-thin) solid var(--color-accent);
}

.page-contact .mail-grid .prose a:hover,
.page-contact .mail-grid .prose a:focus-visible {
  color: var(--color-focus);
  border-bottom-color: var(--color-focus);
}

.page-contact .field-list {
  margin: var(--space-4) 0 0;
}

.page-contact .field-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-1);
  padding-block: var(--space-3);
  border-top: var(--border-thin) solid var(--color-line);
}

.page-contact .field-row dt {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-ink-soft);
}

.page-contact .field-row dd {
  margin: 0;
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--color-ink);
}

/* 电话与地址 */
.page-contact .office-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}

.page-contact .office-block {
  padding-top: var(--space-4);
  border-top: var(--border-thin) solid var(--color-line);
}

.page-contact .office-label {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-ink-muted);
}

.page-contact .office-figure {
  margin: var(--space-2) 0 0;
  font-family: var(--font-mono);
  font-size: var(--text-2xl);
  line-height: var(--leading-heading);
  color: var(--color-ink);
  overflow-wrap: anywhere;
}

.page-contact .office-figure a {
  color: var(--color-accent);
  text-decoration: none;
  border-bottom: var(--border-thin) solid var(--color-accent);
}

.page-contact .office-figure a:hover,
.page-contact .office-figure a:focus-visible {
  color: var(--color-focus);
  border-bottom-color: var(--color-focus);
}

.page-contact .office-address {
  margin: var(--space-2) 0 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-style: normal;
  line-height: var(--leading-heading);
  color: var(--color-ink);
  max-width: 22ch;
}

.page-contact .office-note {
  max-width: 44ch;
  margin: var(--space-2) 0 0;
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--color-ink-muted);
}

/* 响应节奏 */
.page-contact .routing-table {
  border-top: var(--border-thin) solid var(--color-line);
}

.page-contact .routing-head {
  display: none;
  font-size: var(--text-sm);
  color: var(--color-ink-muted);
}

.page-contact .routing-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-1);
  padding-block: var(--space-4);
  border-bottom: var(--border-thin) solid var(--color-line);
}

.page-contact .routing-row:nth-child(odd) {
  background-color: transparent;
}

.page-contact .routing-type {
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
  color: var(--color-ink);
  margin: 0;
}

.page-contact .routing-channel {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--color-accent);
  overflow-wrap: anywhere;
}

.page-contact .routing-pace {
  margin: 0;
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--color-ink-soft);
}

.page-contact .routing-foot {
  max-width: var(--measure);
  margin: var(--space-6) 0 0;
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--color-ink-soft);
}

.page-contact .routing-foot a {
  color: var(--color-accent);
  text-decoration: none;
  border-bottom: var(--border-thin) solid var(--color-accent);
}

.page-contact .routing-foot a:hover,
.page-contact .routing-foot a:focus-visible {
  color: var(--color-focus);
  border-bottom-color: var(--color-focus);
}

.page-contact .contact-routing {
  padding-bottom: var(--space-8);
}

@media (min-width: 760px) {
  .page-contact .channels-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: var(--space-8);
    align-items: start;
  }

  .page-contact .channels-figure {
    margin-top: var(--contact-figure-offset);
  }

  .page-contact .mail-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr);
    gap: var(--space-8);
  }

  .page-contact .mail-figure {
    margin-top: var(--space-4);
  }

  .page-contact .field-row {
    grid-template-columns: minmax(0, 0.3fr) minmax(0, 1fr);
    gap: var(--space-3);
  }

  .page-contact .office-grid {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: var(--space-8);
  }

  .page-contact .routing-head,
  .page-contact .routing-row {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr) minmax(0, 1.4fr);
    gap: var(--space-3);
    align-items: start;
  }

  .page-contact .routing-head {
    display: grid;
    padding-block: var(--space-2);
    border-bottom: var(--border-thin) solid var(--color-line);
  }
}

@media (min-width: 1040px) {
  .page-contact .contact-hero h1 {
    max-width: 16ch;
  }

  .page-contact .channels-figure {
    margin-top: var(--space-8);
  }
}
