.page-contact {
  --pc-rule: rgba(217, 95, 43, .34);
  --pc-rule-soft: rgba(11, 33, 28, .12);
  --pc-shadow: 0 24px 48px -34px rgba(5, 13, 11, .82);
  display: block;
  background:
    radial-gradient(110% 70% at 96% 0%, rgba(31, 111, 139, .3), transparent 60%),
    radial-gradient(90% 60% at 0% 100%, rgba(31, 158, 138, .14), transparent 62%),
    var(--hall);
  color: var(--cream);
  padding-block: clamp(18px, 3vw, 34px) clamp(44px, 7vw, 88px);
}

.page-contact .pc-topbar {
  margin-bottom: clamp(20px, 3.2vw, 34px);
}

.page-contact .pc-frame {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(26px, 4vw, 44px);
}

@media (min-width: 960px) {
  .page-contact .pc-frame {
    grid-template-columns: minmax(0, 336px) minmax(0, 1fr);
    gap: clamp(32px, 4.2vw, 56px);
    align-items: start;
  }
}

/* ---------- 左侧：竖排大字与联系方式 ---------- */
.page-contact .pc-aside__kicker {
  margin: 0 0 10px;
  font-family: var(--font-mono);
  font-size: .7rem;
  letter-spacing: .2em;
  color: var(--gold);
}

.page-contact .pc-aside__title {
  margin: 0 0 6px;
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 7vw, 3.05rem);
  line-height: 1.04;
  letter-spacing: -.02em;
  color: var(--cream);
}

.page-contact .pc-aside__title-accent {
  color: var(--gold);
}

@supports (-webkit-text-stroke: 1px #000) {
  .page-contact .pc-aside__title-accent {
    color: transparent;
    -webkit-text-stroke: 1.5px var(--gold);
  }
}

.page-contact .pc-aside__note {
  margin: 0 0 18px;
  font-family: var(--font-mono);
  font-size: .7rem;
  letter-spacing: .22em;
  color: var(--lake-soft);
}

.page-contact .pc-channels {
  display: grid;
  gap: 14px;
  margin-top: clamp(16px, 3vw, 26px);
}

.page-contact .pc-channel {
  background: var(--cream);
  color: var(--graphite);
  border: 1px solid var(--pc-rule);
  border-left: 4px solid var(--terra);
  border-radius: var(--radius);
  padding: clamp(15px, 2.3vw, 21px);
  box-shadow: var(--pc-shadow);
  transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);
}

.page-contact .pc-channel:hover,
.page-contact .pc-channel:focus-within {
  border-color: var(--terra);
  box-shadow: 0 18px 34px -26px rgba(5, 13, 11, .75);
}

.page-contact .pc-channel--lake {
  border-left-color: var(--lake);
}

.page-contact .pc-channel--gold {
  border-left-color: var(--gold);
}

.page-contact .pc-channel__label {
  margin: 0 0 9px;
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .14em;
  color: var(--terra-deep);
}

.page-contact .pc-channel--lake .pc-channel__label {
  color: var(--lake-deep);
}

.page-contact .pc-channel--gold .pc-channel__label {
  color: var(--terra-deep);
}

.page-contact .pc-channel__value {
  margin: 0 0 9px;
  font-family: var(--font-display);
  font-size: .95rem;
  line-height: 1.45;
  letter-spacing: -.005em;
  color: var(--ink);
  overflow-wrap: anywhere;
}

.page-contact .pc-channel__use {
  margin: 0 0 13px;
  font-size: .875rem;
  line-height: 1.72;
  color: var(--graphite);
}

.page-contact .pc-channel__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.page-contact .pc-channel__actions .btn,
.page-contact .pc-channel__actions .copy {
  font-size: .8125rem;
  padding: 7px 13px;
}

.page-contact .copy__status {
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .08em;
  color: var(--peacock);
  min-height: 1em;
}

/* ---------- 右侧主体 ---------- */
.page-contact .pc-main {
  display: grid;
  gap: clamp(20px, 3vw, 30px);
  min-width: 0;
}

/* 信笺 */
.page-contact .pc-letter {
  position: relative;
  background: var(--cream);
  color: var(--graphite);
  border: 1px solid var(--pc-rule);
  border-radius: var(--radius-lg);
  padding: clamp(20px, 3.4vw, 36px);
  box-shadow: var(--pc-shadow);
}

.page-contact .pc-letter::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 48px;
  border: 1px dashed var(--pc-rule);
  border-radius: 3px;
  background: rgba(232, 176, 75, .18);
  pointer-events: none;
}

.page-contact .pc-letter__stamp {
  margin: 0 0 12px;
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .16em;
  color: var(--terra-deep);
}

.page-contact .pc-letter__title {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 3.4vw, 1.9rem);
  line-height: 1.28;
  color: var(--ink);
  max-width: 22ch;
}

.page-contact .pc-letter__body {
  margin: 0 0 16px;
  font-size: .9375rem;
  line-height: 1.8;
  max-width: 62ch;
}

.page-contact .pc-letter__tips {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: grid;
  gap: 9px;
  max-width: 62ch;
}

.page-contact .pc-letter__tips li {
  position: relative;
  padding-left: 24px;
  font-size: .9375rem;
  line-height: 1.72;
}

.page-contact .pc-letter__tips li::before {
  content: "";
  position: absolute;
  left: 5px;
  top: .58em;
  width: 9px;
  height: 9px;
  border: 2px solid var(--terra);
  border-radius: 50%;
}

.page-contact .pc-letter__media {
  margin: 22px 0 0;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--pc-rule-soft);
}

.page-contact .pc-letter__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* 方位 */
.page-contact .pc-map {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(16px, 2.6vw, 26px);
  background: rgba(247, 242, 232, .055);
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-lg);
  padding: clamp(18px, 3vw, 30px);
}

@media (min-width: 760px) {
  .page-contact .pc-map {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    align-items: center;
  }
}

.page-contact .pc-map__kicker {
  margin: 0 0 10px;
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .2em;
  color: var(--peacock);
}

.page-contact .pc-map__title {
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 3vw, 1.75rem);
  line-height: 1.25;
  color: var(--cream);
}

.page-contact .pc-map__body {
  margin: 0;
  font-size: .9375rem;
  line-height: 1.8;
  color: rgba(247, 242, 232, .84);
  max-width: 46ch;
}

.page-contact .pc-map__figure {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line-dark);
}

.page-contact .pc-map__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* 站内事务路径 */
.page-contact .pc-route {
  background: rgba(31, 111, 139, .14);
  border: 1px solid rgba(191, 227, 239, .26);
  border-left: 4px solid var(--lake);
  border-radius: var(--radius-lg);
  padding: clamp(18px, 3vw, 30px);
}

.page-contact .pc-route__kicker {
  margin: 0 0 10px;
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .18em;
  color: var(--lake-soft);
}

.page-contact .pc-route__title {
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 3vw, 1.75rem);
  line-height: 1.26;
  color: var(--cream);
}

.page-contact .pc-route__body {
  margin: 0 0 18px;
  font-size: .9375rem;
  line-height: 1.8;
  color: rgba(247, 242, 232, .85);
  max-width: 60ch;
}

.page-contact .pc-steps {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: grid;
  gap: 12px;
}

@media (min-width: 700px) {
  .page-contact .pc-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.page-contact .pc-step {
  position: relative;
  background: var(--cream);
  color: var(--graphite);
  border-radius: var(--radius);
  padding: 16px 18px 16px 18px;
  border-top: 3px solid var(--peacock);
}

.page-contact .pc-step__num {
  display: inline-block;
  margin-bottom: 8px;
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .16em;
  color: var(--peacock);
}

.page-contact .pc-step__title {
  margin: 0 0 7px;
  font-size: 1.02rem;
  line-height: 1.4;
  font-weight: 700;
  color: var(--ink);
}

.page-contact .pc-step__desc {
  margin: 0;
  font-size: .875rem;
  line-height: 1.72;
}

.page-contact .pc-route__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* 回复节奏 */
.page-contact .pc-hours__kicker {
  margin: 0 0 8px;
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .18em;
  color: var(--gold);
}

.page-contact .pc-hours__title {
  margin: 0 0 14px;
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 3vw, 1.65rem);
  line-height: 1.3;
  color: var(--cream);
}

.page-contact .pc-hours__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.page-contact .pc-hours__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  background: var(--cream);
  color: var(--graphite);
  border-left: 3px solid var(--gold);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 13px 16px;
}

@media (min-width: 700px) {
  .page-contact .pc-hours__item {
    grid-template-columns: 190px minmax(0, 1fr);
    column-gap: 18px;
    row-gap: 5px;
    align-items: baseline;
  }

  .page-contact .pc-hours__desc {
    grid-column: 2;
  }
}

.page-contact .pc-hours__label {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .1em;
  color: var(--terra-deep);
}

.page-contact .pc-hours__name {
  font-size: .9375rem;
  font-weight: 700;
  color: var(--ink);
}

.page-contact .pc-hours__desc {
  margin: 0;
  font-size: .875rem;
  line-height: 1.7;
  color: var(--graphite);
  max-width: 56ch;
}

/* 合作 */
.page-contact .pc-partner {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  padding: clamp(20px, 3.4vw, 34px);
  background:
    radial-gradient(80% 90% at 100% 0%, rgba(232, 176, 75, .35), transparent 58%),
    linear-gradient(150deg, #D95F2B 0%, #A63E17 100%);
  color: var(--cream);
}

.page-contact .pc-partner__kicker {
  margin: 0 0 10px;
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .2em;
  color: rgba(247, 242, 232, .82);
}

.page-contact .pc-partner__title {
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 3.2vw, 1.9rem);
  line-height: 1.24;
  color: var(--cream);
}

.page-contact .pc-partner__body {
  margin: 0 0 16px;
  font-size: .9375rem;
  line-height: 1.78;
  color: rgba(247, 242, 232, .92);
  max-width: 58ch;
}

.page-contact .pc-partner__list {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: grid;
  gap: 8px;
}

.page-contact .pc-partner__list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  background: rgba(5, 13, 11, .18);
  border: 1px solid rgba(247, 242, 232, .22);
  border-radius: var(--radius);
  padding: 10px 14px;
  font-size: .9rem;
  line-height: 1.66;
  color: rgba(247, 242, 232, .94);
}

.page-contact .pc-partner__key {
  font-family: var(--font-mono);
  font-size: .7rem;
  letter-spacing: .14em;
  color: var(--gold);
  flex: 0 0 auto;
}

.page-contact .pc-partner__foot {
  margin: 0;
  font-size: .8125rem;
  line-height: 1.7;
  color: rgba(247, 242, 232, .84);
}

/* 到访提示 */
.page-contact .pc-visit {
  background: rgba(247, 242, 232, .05);
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-lg);
  padding: clamp(18px, 3vw, 30px);
}

.page-contact .pc-visit__title {
  margin: 0 0 14px;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.8vw, 1.5rem);
  line-height: 1.3;
  color: var(--cream);
}

.page-contact .pc-visit__list {
  margin: 0 0 16px;
  padding: 0;
  display: grid;
  gap: 10px;
}

@media (min-width: 760px) {
  .page-contact .pc-visit__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.page-contact .pc-visit__row {
  border-top: 1px solid var(--line-dark);
  padding-top: 9px;
}

.page-contact .pc-visit__row dt {
  font-family: var(--font-mono);
  font-size: .7rem;
  letter-spacing: .14em;
  color: var(--lake-soft);
  margin-bottom: 4px;
}

.page-contact .pc-visit__row dd {
  margin: 0;
  font-size: .9rem;
  line-height: 1.72;
  color: rgba(247, 242, 232, .9);
}

.page-contact .pc-visit__foot {
  margin: 0;
  font-size: .8125rem;
  line-height: 1.75;
  color: rgba(247, 242, 232, .72);
}

.page-contact .pc-visit__foot a {
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(232, 176, 75, .45);
  transition: color var(--t) var(--ease), border-color var(--t) var(--ease);
}

.page-contact .pc-visit__foot a:hover,
.page-contact .pc-visit__foot a:focus-visible {
  color: var(--cream);
  border-bottom-color: var(--cream);
}

/* 焦点可见性 */
.page-contact a:focus-visible,
.page-contact button:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .page-contact .pc-channel,
  .page-contact .pc-visit__foot a {
    transition: none;
  }
}
