.page-contact {
  --ct-panel: rgba(15, 26, 46, .78);
  --ct-panel-soft: rgba(15, 26, 46, .72);
  position: relative;
}

/* ---------- 首屏 ---------- */
.page-contact .contact-hero {
  position: relative;
  padding: 34px 0 52px;
  overflow: hidden;
}

.page-contact .contact-hero::before {
  content: "";
  position: absolute;
  top: -180px;
  left: -12%;
  right: -12%;
  height: 460px;
  background:
    radial-gradient(52% 64% at 16% 32%, rgba(54, 224, 216, .16), transparent 68%),
    radial-gradient(46% 58% at 84% 26%, rgba(201, 162, 74, .20), transparent 70%);
  pointer-events: none;
}

.page-contact .hero-grid {
  position: relative;
  display: grid;
  gap: 34px;
}

.page-contact .hero-copy h1 {
  margin: 12px 0 0;
  font-size: clamp(32px, 7.4vw, 58px);
  line-height: 1.16;
  letter-spacing: -.01em;
}

.page-contact .hero-copy .lede {
  margin-top: 18px;
  max-width: 60ch;
}

.page-contact .hero-quick {
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--ct-panel-soft);
}

.page-contact .quick-row {
  display: grid;
  grid-template-columns: minmax(84px, 98px) minmax(0, 1fr);
  gap: 6px 14px;
  align-items: baseline;
  padding: 13px 16px;
  border-top: 1px solid var(--line-soft);
}

.page-contact .quick-row:first-child {
  border-top: 0;
}

.page-contact .quick-key {
  color: var(--cyan);
  font-size: 12px;
  letter-spacing: .04em;
}

.page-contact .quick-val {
  color: var(--text);
  font-size: 15px;
  line-height: 1.6;
  word-break: break-word;
}

.page-contact .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}

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

.page-contact .hero-figure .media-frame {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--ink-2);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

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

.page-contact .figure-caption {
  display: block;
  margin-top: 12px;
  color: var(--text-dim);
  font-size: 12px;
}

/* ---------- 正文轨道区 ---------- */
.page-contact .contact-body {
  padding-top: 20px;
}

.page-contact .contact-main {
  min-width: 0;
}

/* ---------- 联系渠道卡 ---------- */
.page-contact .ch-grid {
  display: grid;
  gap: 16px;
  margin-top: 28px;
}

.page-contact .ch-card {
  position: relative;
  padding: 26px 22px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--ct-panel);
  overflow: hidden;
}

.page-contact .ch-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), rgba(201, 162, 74, 0));
}

.page-contact .ch-card--cyan::before {
  background: linear-gradient(90deg, var(--cyan), rgba(54, 224, 216, 0));
}

.page-contact .ch-card--coral::before {
  background: linear-gradient(90deg, var(--coral), rgba(255, 122, 89, 0));
}

.page-contact .ch-num {
  margin: 0 0 8px;
  color: var(--text-dim);
  font-size: 12px;
  letter-spacing: .12em;
}

.page-contact .ch-card .card-title {
  margin: 0 0 10px;
  font-size: 19px;
}

.page-contact .ch-value {
  margin: 0 0 12px;
  color: var(--gold-hi);
  font-family: var(--font-mono);
  font-size: 14.5px;
  line-height: 1.6;
  word-break: break-word;
}

.page-contact .ch-card--cyan .ch-value {
  color: var(--cyan-soft);
}

.page-contact .ch-card--coral .ch-value {
  color: var(--coral-soft);
}

.page-contact .ch-card .card-body {
  margin: 0;
  color: var(--text-dim);
  font-size: 15px;
  line-height: 1.72;
}

.page-contact .tag-row {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 0;
  padding: 0;
}

/* ---------- 服务时间 ---------- */
.page-contact .hours {
  display: grid;
  gap: 26px;
  margin-top: 28px;
}

.page-contact .hours-panel {
  padding: 24px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--ct-panel);
}

.page-contact .hours-bar {
  height: 10px;
  border-radius: 999px;
  background: rgba(58, 74, 99, .48);
  overflow: hidden;
}

.page-contact .hours-fill {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--cyan), var(--gold));
}

.page-contact .hours-marks {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 14px;
  margin-top: 10px;
  color: var(--text-dim);
  font-size: 12px;
}

.page-contact .hours-list {
  list-style: none;
  display: grid;
  gap: 12px;
  margin: 22px 0 0;
  padding: 0;
}

.page-contact .hours-list li {
  position: relative;
  padding-left: 18px;
  color: var(--text-dim);
  font-size: 15px;
  line-height: 1.72;
}

.page-contact .hours-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--cyan);
  box-shadow: 0 0 0 3px rgba(54, 224, 216, .16);
}

.page-contact .hours-list li:nth-child(3)::before {
  background: var(--gold);
  box-shadow: 0 0 0 3px rgba(201, 162, 74, .18);
}

.page-contact .hours-list li:nth-child(4)::before {
  background: var(--coral);
  box-shadow: 0 0 0 3px rgba(255, 122, 89, .18);
}

/* ---------- 咨询方向标签页 ---------- */
.page-contact .scope-panel {
  padding-top: 24px;
}

.page-contact .scope-grid {
  display: grid;
  gap: 22px;
}

.page-contact .scope-panel p {
  margin: 0;
  color: var(--text);
  font-size: 16px;
  line-height: 1.78;
}

.page-contact .scope-note {
  margin-top: 22px !important;
  color: var(--gold) !important;
  font-size: 12px !important;
  letter-spacing: .12em;
}

.page-contact .scope-panel .archive {
  margin-top: 12px;
}

.page-contact .scope-aside {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--ct-panel-soft);
}

.page-contact .scope-aside .card-title {
  margin: 0 0 12px;
  font-size: 17px;
}

.page-contact .scope-aside-text {
  margin: 0;
  color: var(--text-dim);
  font-size: 15px;
  line-height: 1.72;
  word-break: break-word;
}

.page-contact .scope-aside-links {
  list-style: none;
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
}

.page-contact .scope-aside-links .btn {
  width: 100%;
  text-align: center;
}

/* ---------- 到访信息 ---------- */
.page-contact .visit-card {
  margin-top: 26px;
  padding: 30px 26px;
  border: 1px solid rgba(201, 162, 74, .42);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  color: #16203A;
}

.page-contact .visit-num {
  margin: 0;
  color: #7A6220;
  font-size: 12px;
  letter-spacing: .14em;
}

.page-contact .visit-addr {
  margin: 10px 0 16px;
  font-family: var(--font-head);
  font-weight: 800;
  font-size: clamp(20px, 3.6vw, 28px);
  line-height: 1.42;
  color: #0F1828;
}

.page-contact .visit-card p {
  font-size: 15.5px;
  line-height: 1.78;
}

.page-contact .visit-list {
  list-style: none;
  display: grid;
  gap: 8px;
  margin: 18px 0 0;
  padding: 18px 0 0;
  border-top: 1px dashed rgba(22, 32, 58, .28);
}

.page-contact .visit-list li {
  color: #2C3A55;
  font-size: 14.5px;
  line-height: 1.7;
  word-break: break-word;
}

/* ---------- 发送前准备 ---------- */
.page-contact .prep-grid {
  display: grid;
  gap: 16px;
  margin-top: 26px;
}

.page-contact .prep-card {
  padding: 24px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--ct-panel-soft);
}

.page-contact .prep-num {
  margin: 0 0 10px;
  color: var(--coral);
  font-size: 12px;
  letter-spacing: .14em;
}

.page-contact .prep-card .card-title {
  margin: 0 0 10px;
  font-size: 18px;
}

.page-contact .prep-card p {
  margin: 0;
  color: var(--text-dim);
  font-size: 15px;
  line-height: 1.72;
}

.page-contact .notice {
  margin-top: 20px;
  word-break: break-word;
}

/* ---------- 常见问题快捷入口 ---------- */
.page-contact .faq-grid {
  display: grid;
  gap: 24px;
  margin-top: 26px;
}

.page-contact .faq-bars {
  display: grid;
  gap: 16px;
}

.page-contact .faq-bar-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 6px 12px;
  color: var(--text);
  font-size: 15px;
}

.page-contact .faq-bar-head .mono {
  color: var(--gold-hi);
  font-size: 12.5px;
}

.page-contact .faq-track {
  height: 8px;
  margin-top: 8px;
  border-radius: 999px;
  background: rgba(58, 74, 99, .45);
  overflow: hidden;
}

.page-contact .faq-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--cyan), var(--gold));
}

.page-contact .faq-fill--35 { width: 35%; }
.page-contact .faq-fill--25 { width: 25%; }
.page-contact .faq-fill--22 { width: 22%; }
.page-contact .faq-fill--18 { width: 18%; }

.page-contact .faq-links {
  padding: 24px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--ct-panel-soft);
}

.page-contact .faq-links .card-title {
  margin: 0 0 10px;
  font-size: 17px;
}

.page-contact .faq-links-text {
  margin: 0;
  color: var(--text-dim);
  font-size: 15px;
  line-height: 1.72;
}

.page-contact .faq-link-list {
  list-style: none;
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
}

.page-contact .faq-link-list .btn {
  width: 100%;
  text-align: center;
}

/* ---------- 响应式 ---------- */
@media (min-width: 720px) {
  .page-contact .ch-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-contact .prep-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .page-contact .contact-hero {
    padding: 48px 0 64px;
  }

  .page-contact .hero-grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 48px;
    align-items: start;
  }

  .page-contact .hours {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    align-items: start;
  }

  .page-contact .faq-grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
  }
}

@media (min-width: 880px) {
  .page-contact .scope-grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
  }
}

@media (max-width: 430px) {
  .page-contact .quick-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .page-contact .visit-card {
    padding: 24px 20px;
  }

  .page-contact .ch-card,
  .page-contact .prep-card,
  .page-contact .scope-aside,
  .page-contact .faq-links {
    padding-left: 18px;
    padding-right: 18px;
  }
}
