.page-contact {
  padding-bottom: var(--section-y-lg);
}

.page-contact .page-contact__hero {
  padding-top: var(--space-6);
}

.page-contact .page-contact__hero-grid {
  gap: var(--space-6);
  align-items: start;
  margin-top: var(--space-6);
}

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

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

.page-contact .page-contact__quick {
  display: grid;
  gap: var(--space-2);
  margin: var(--space-8) 0 0;
  padding: 0;
}

.page-contact .page-contact__quick-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2);
  padding-bottom: var(--space-2);
  border-bottom: var(--border-thin) solid var(--color-line);
}

.page-contact .page-contact__quick-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.page-contact .page-contact__quick dt {
  flex: 0 0 auto;
  min-width: 8em;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
}

.page-contact .page-contact__quick dd {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-heading);
  color: var(--color-ink);
}

.page-contact .page-contact__hero-figure {
  position: relative;
}

.page-contact .page-contact__hero-figure .media {
  margin: 0;
}

.page-contact .page-contact__hero-badge {
  display: grid;
  gap: var(--space-1);
  margin-top: calc(-1 * var(--space-4));
  margin-left: var(--space-3);
  margin-right: var(--space-3);
  position: relative;
  z-index: 2;
  padding: var(--space-3);
  background: var(--color-contrast-surface);
  color: var(--color-contrast-ink);
  border-left: calc(var(--border-thin) * 4) solid var(--color-accent);
}

.page-contact .page-contact__hero-badge .meta-note {
  color: var(--color-contrast-ink);
  opacity: 0.7;
}

.page-contact .page-contact__hero-badge .figure-num {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--text-xl);
  font-weight: var(--weight-heading);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: var(--color-contrast-ink);
}

/* ---------- 通道总览表 ---------- */
.page-contact .page-contact__overview-head {
  gap: var(--space-6);
  align-items: start;
}

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

.page-contact .page-contact__h3 {
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-heading);
  line-height: var(--leading-heading);
  color: var(--color-ink);
  margin: var(--space-1) 0 var(--space-2);
}

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

.page-contact .page-contact__table-wrap {
  margin-top: var(--space-6);
  overflow-x: auto;
}

.page-contact .page-contact__table {
  width: 100%;
  min-width: 660px;
  border-collapse: collapse;
  text-align: left;
}

.page-contact .page-contact__table-caption {
  caption-side: top;
  text-align: left;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  color: var(--color-ink-muted);
  padding-bottom: var(--space-2);
}

.page-contact .page-contact__table th,
.page-contact .page-contact__table td {
  vertical-align: top;
  padding: var(--space-3) var(--space-3) var(--space-3) 0;
  border-bottom: var(--border-thin) solid var(--color-line);
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--color-ink-soft);
}

.page-contact .page-contact__table thead th {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
  padding-bottom: var(--space-2);
}

.page-contact .page-contact__table tbody th {
  font-family: var(--font-heading);
  font-size: var(--text-base);
  font-weight: var(--weight-heading);
  color: var(--color-ink);
  width: 26%;
}

.page-contact .page-contact__table-mono {
  display: inline-block;
  margin-top: var(--space-1);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--weight-body);
  letter-spacing: 0.01em;
  color: var(--color-primary);
  word-break: break-all;
}

/* ---------- 入口切换 ---------- */
.page-contact .page-contact__channels-head {
  max-width: var(--measure);
}

.page-contact .page-contact__channel-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: var(--space-6) 0 var(--space-3);
}

.page-contact .page-contact__channel-btn {
  flex: 1 1 190px;
  display: grid;
  gap: var(--space-1);
  align-content: start;
  text-align: left;
  padding: var(--space-3);
  border: var(--border-thin) solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-surface-alt);
  color: var(--color-ink);
  font-family: var(--font-body);
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.page-contact .page-contact__channel-key {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.75;
}

.page-contact .page-contact__channel-value {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing: 0.01em;
  word-break: break-all;
}

.page-contact .page-contact__channel-btn--phone .page-contact__channel-value {
  font-size: var(--text-lg);
  font-weight: var(--weight-heading);
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
  word-break: normal;
}

.page-contact .page-contact__channel-btn--ticket {
  background: var(--color-contrast-surface);
  color: var(--color-contrast-ink);
  border-color: var(--color-contrast-line);
}

.page-contact .page-contact__channel-btn--local {
  background: transparent;
  border-style: dashed;
}

.page-contact .page-contact__channel-btn:hover {
  background: var(--color-surface-deep);
  border-color: var(--color-ink-muted);
}

.page-contact .page-contact__channel-btn--ticket:hover {
  background: var(--color-contrast-line);
}

.page-contact .page-contact__channel-btn[aria-pressed="true"] {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-primary-ink);
}

.page-contact .page-contact__filter-status {
  display: block;
  margin: 0 0 var(--space-4);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  color: var(--color-ink-muted);
}

.page-contact .page-contact__channel-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-2);
}

.page-contact .page-contact__channel {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-3);
  background: var(--color-surface-alt);
  border-left: calc(var(--border-thin) * 3) solid var(--color-primary);
}

.page-contact .page-contact__channel--phone {
  background: var(--color-surface-deep);
  border-left-color: var(--color-accent);
}

.page-contact .page-contact__channel--ticket {
  background: var(--color-contrast-surface);
  border-left-color: var(--color-contrast-accent);
}

.page-contact .page-contact__channel--ticket .page-contact__h3,
.page-contact .page-contact__channel--ticket dt {
  color: var(--color-contrast-ink);
}

.page-contact .page-contact__channel--ticket dd {
  color: var(--color-contrast-ink);
  opacity: 0.85;
}

.page-contact .page-contact__channel--ticket .kicker {
  color: var(--color-contrast-accent);
}

.page-contact .page-contact__channel--local {
  background: transparent;
  border: var(--border-thin) solid var(--color-line);
  border-left-width: calc(var(--border-thin) * 3);
  border-left-color: var(--color-ink-muted);
}

.page-contact .page-contact__channel-body {
  display: grid;
  gap: var(--space-3);
  margin: 0;
}

.page-contact .page-contact__channel-body dt {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  color: var(--color-ink-muted);
  margin-bottom: var(--space-1);
}

.page-contact .page-contact__channel-body dd {
  margin: 0;
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--color-ink-soft);
  max-width: var(--measure);
}

/* ---------- 轮值时段条 ---------- */
.page-contact .page-contact__hours-grid {
  gap: var(--space-6);
  align-items: start;
}

.page-contact .page-contact__timeline {
  display: grid;
  gap: var(--space-2);
}

.page-contact .page-contact__timeline-track {
  display: grid;
  grid-template-columns: 37.5% 58.333% 4.167%;
  min-height: 62px;
  border: var(--border-thin) solid var(--color-line);
}

.page-contact .page-contact__timeline-off {
  background: var(--color-surface-deep);
}

.page-contact .page-contact__timeline-off--tail {
  border-left: var(--border-thin) solid var(--color-line);
}

.page-contact .page-contact__timeline-on {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--space-2);
  background: var(--color-primary);
  color: var(--color-primary-ink);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-weight: var(--weight-heading);
  letter-spacing: 0.04em;
  text-align: center;
}

.page-contact .page-contact__timeline-labels {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-ink-muted);
  letter-spacing: 0.06em;
}

.page-contact .page-contact__timeline-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-ink-soft);
}

.page-contact .page-contact__legend-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}

.page-contact .page-contact__legend-swatch {
  display: inline-block;
  width: calc(var(--space-3));
  height: calc(var(--space-2));
  border: var(--border-thin) solid var(--color-line);
}

.page-contact .page-contact__legend-swatch--on {
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.page-contact .page-contact__legend-swatch--off {
  background: var(--color-surface-deep);
}

/* ---------- 本地对接点 ---------- */
.page-contact .page-contact__local-card {
  position: relative;
}

.page-contact .page-contact__local-figure {
  margin: 0;
}

.page-contact .page-contact__local-body {
  padding: var(--space-4) var(--space-3) var(--space-4) 0;
}

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

.page-contact .page-contact__address {
  display: grid;
  gap: var(--space-1);
  font-style: normal;
  padding: var(--space-3);
  border: var(--border-thin) solid var(--color-line);
  background: var(--color-surface-alt);
  max-width: var(--measure);
}

.page-contact .page-contact__address-label {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
}

.page-contact .page-contact__address-value {
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-heading);
  line-height: var(--leading-heading);
  color: var(--color-ink);
}

.page-contact .page-contact__local-body .meta-note {
  margin: var(--space-2) 0 0;
  max-width: var(--measure);
}

/* ---------- 自查清单 ---------- */
.page-contact .page-contact__checklist-grid {
  gap: var(--space-6);
  align-items: start;
}

.page-contact .page-contact__checks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-2);
}

.page-contact .page-contact__check {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3);
  background: var(--color-surface-alt);
  border-left: calc(var(--border-thin) * 3) solid transparent;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}

.page-contact .page-contact__check:hover {
  background: var(--color-surface-deep);
}

.page-contact .page-contact__check:has(input:checked) {
  border-left-color: var(--color-accent);
  background: var(--color-highlight);
}

.page-contact .page-contact__check input {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  position: relative;
  width: calc(var(--space-3));
  height: calc(var(--space-3));
  margin: 2px 0 0;
  border: var(--border-thin) solid var(--color-ink-muted);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease;
}

.page-contact .page-contact__check input:checked {
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.page-contact .page-contact__check input:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 5px;
  height: 10px;
  border-right: 2px solid var(--color-primary-ink);
  border-bottom: 2px solid var(--color-primary-ink);
  transform: rotate(45deg);
}

.page-contact .page-contact__check-num {
  flex: 0 0 auto;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing: 0.08em;
  color: var(--color-ink-muted);
  padding-top: 2px;
}

.page-contact .page-contact__check-text {
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--color-ink);
}

/* ---------- 延伸入口 ---------- */
.page-contact .page-contact__more-grid {
  gap: var(--space-6);
  align-items: start;
}

.page-contact .page-contact__more-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-2);
}

.page-contact .page-contact__more-item {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
  background: var(--color-surface-alt);
  border-left: calc(var(--border-thin) * 3) solid var(--color-primary-soft);
  transition: border-color 160ms ease, background-color 160ms ease;
}

.page-contact .page-contact__more-item:hover {
  border-left-color: var(--color-primary);
  background: var(--color-surface-deep);
}

.page-contact .page-contact__more-link {
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-heading);
  color: var(--color-ink);
  text-decoration: none;
  border-bottom: var(--border-thin) solid var(--color-line);
  justify-self: start;
  transition: color 160ms ease, border-color 160ms ease;
}

.page-contact .page-contact__more-link:hover {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}

.page-contact .page-contact__more-desc {
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--color-ink-soft);
  max-width: var(--measure);
}

.page-contact .page-contact__more-list a {
  color: inherit;
}

.page-contact :focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

/* ---------- 响应式 ---------- */
@media (min-width: 640px) {
  .page-contact .page-contact__channel {
    padding: var(--space-6) var(--space-4);
  }

  .page-contact .page-contact__channel-body {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
  }

  .page-contact .page-contact__local-body {
    padding: var(--space-6) var(--space-4) var(--space-6) 0;
  }

  .page-contact .page-contact__check-text {
    font-size: var(--text-base);
  }
}

@media (min-width: 900px) {
  .page-contact .page-contact__title {
    font-size: var(--text-3xl);
  }

  .page-contact .page-contact__h2 {
    font-size: var(--text-2xl);
  }

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

  .page-contact .page-contact__hero-figure {
    padding-top: var(--space-6);
  }

  .page-contact .page-contact__local-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .page-contact .page-contact__local-body {
    position: relative;
    z-index: 2;
    margin-top: calc(-1 * var(--space-8));
    margin-left: var(--space-6);
    margin-right: auto;
    max-width: 60%;
    padding: var(--space-4);
    background: var(--color-surface-alt);
    border: var(--border-thin) solid var(--color-line);
  }
}

@media (max-width: 639px) {
  .page-contact .page-contact__table-wrap {
    overflow-x: visible;
  }

  .page-contact .page-contact__table {
    min-width: 0;
    display: block;
  }

  .page-contact .page-contact__table-caption {
    display: block;
  }

  .page-contact .page-contact__table thead {
    display: none;
  }

  .page-contact .page-contact__table tbody,
  .page-contact .page-contact__table tr,
  .page-contact .page-contact__table th,
  .page-contact .page-contact__table td {
    display: block;
    width: auto;
  }

  .page-contact .page-contact__table tbody tr {
    padding: var(--space-3);
    margin-bottom: var(--space-2);
    background: var(--color-surface-alt);
    border-left: calc(var(--border-thin) * 3) solid var(--color-primary-soft);
  }

  .page-contact .page-contact__table tbody th,
  .page-contact .page-contact__table tbody td {
    border-bottom: 0;
    padding: 0 0 var(--space-2);
  }

  .page-contact .page-contact__table tbody td {
    font-size: var(--text-sm);
  }

  .page-contact .page-contact__table tbody td:last-child {
    padding-bottom: 0;
  }

  .page-contact .page-contact__table tbody td::before {
    display: block;
    margin-bottom: 2px;
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-ink-muted);
  }

  .page-contact .page-contact__table tbody td:nth-child(1)::before {
    content: "适合";
  }

  .page-contact .page-contact__table tbody td:nth-child(2)::before {
    content: "不适合";
  }

  .page-contact .page-contact__table tbody td:nth-child(3)::before {
    content: "节奏";
  }

  .page-contact .page-contact__timeline-track {
    grid-template-columns: 34% 60% 6%;
  }

  .page-contact .page-contact__timeline-on {
    font-size: var(--text-xs);
    letter-spacing: 0;
  }
}
