.page-contact{
  --ct-panel:rgba(14,48,72,.55);
  --ct-hair:rgba(157,180,196,.18);
  --ct-soft:rgba(245,241,232,.76);
  padding-bottom:clamp(2rem,6vw,4rem);
}
.page-contact .page-shell{
  padding-top:clamp(.9rem,2.4vw,1.8rem);
}

/* ---------- 导出封面 ---------- */
.page-contact .contact-cover{
  position:relative;
  display:grid;
  gap:clamp(1.1rem,3vw,2rem);
  padding-block:clamp(1.4rem,4vw,2.8rem) clamp(2rem,5.5vw,4rem);
  border-bottom:var(--line);
  isolation:isolate;
}
.page-contact .contact-cover::before{
  content:"";
  position:absolute;
  inset:-1px -1px 0;
  z-index:-1;
  background-image:
    linear-gradient(rgba(32,56,74,.45) 1px,transparent 1px),
    linear-gradient(90deg,rgba(32,56,74,.45) 1px,transparent 1px);
  background-size:72px 72px;
  opacity:.5;
  -webkit-mask-image:radial-gradient(120% 90% at 12% 0%,#000 0%,transparent 72%);
  mask-image:radial-gradient(120% 90% at 12% 0%,#000 0%,transparent 72%);
  pointer-events:none;
}
.page-contact .contact-cover h1{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.02;
  font-size:clamp(2.15rem,7.4vw,4.8rem);
  margin:0;
  max-width:16ch;
}
.page-contact .contact-cover .lede{
  max-width:56ch;
  color:var(--ct-soft);
  margin:0;
}

.page-contact .cover-channels{
  display:grid;
  gap:clamp(.9rem,2.4vw,1.6rem);
  margin-top:clamp(.4rem,1.6vw,1rem);
}
.page-contact .channel{
  display:grid;
  gap:.42rem;
  padding:clamp(1rem,3vw,1.6rem) clamp(1rem,3vw,1.8rem);
  background:linear-gradient(135deg,rgba(14,48,72,.9),rgba(11,36,55,.5));
  border:1px solid var(--ct-hair);
  border-left:2px solid rgba(31,111,158,.85);
  box-shadow:0 18px 40px -34px rgba(78,240,208,.55);
}
.page-contact .channel-key{
  font-size:var(--step-label);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--haze);
}
.page-contact .channel-val{
  margin:0;
  font-family:var(--font-mono);
  font-weight:600;
  color:var(--paper);
  line-height:1.25;
  overflow-wrap:anywhere;
  word-break:break-word;
  border-bottom:1px dashed rgba(78,240,208,.5);
  padding-bottom:.28rem;
  font-size:clamp(1rem,3.4vw,1.42rem);
  display:inline-block;
}
.page-contact .channel-val-tel{
  font-size:clamp(2rem,8.4vw,3.6rem);
  letter-spacing:-.01em;
  color:var(--cyan);
  border-bottom-color:rgba(78,240,208,.32);
}
.page-contact .channel-tel{
  border-left-color:var(--cyan);
}
.page-contact .channel-hint{
  color:var(--haze);
  font-size:clamp(.82rem,.95vw,.9rem);
  line-height:1.6;
  max-width:40ch;
}

.page-contact .cover-links{
  list-style:none;
  margin:clamp(.4rem,2vw,1rem) 0 0;
  padding:clamp(.8rem,2.4vw,1.2rem) 0 0;
  border-top:var(--line);
  display:flex;
  flex-wrap:wrap;
  gap:.55rem clamp(1rem,3vw,2.2rem);
}
.page-contact .cover-links li{
  display:flex;
  align-items:baseline;
  gap:.5rem;
  min-height:28px;
}
.page-contact .cover-links .mono{
  font-size:var(--step-label);
  color:var(--cyan);
  letter-spacing:.1em;
}
.page-contact .cover-links a{
  color:var(--paper);
  text-decoration:none;
  border-bottom:1px solid rgba(157,180,196,.35);
  padding-bottom:1px;
  font-size:clamp(.88rem,1.05vw,.98rem);
}
.page-contact .cover-links a:hover,
.page-contact .cover-links a:focus-visible{
  color:var(--cyan);
  border-bottom-color:var(--cyan);
}

/* ---------- 章节骨架 ---------- */
.page-contact .section{
  padding-block:clamp(2.1rem,5.5vw,4.2rem);
  border-top:var(--line);
}
.page-contact .section:first-of-type{
  border-top:0;
}
.page-contact .section-head{
  display:grid;
  gap:.55rem;
  margin-bottom:clamp(1.2rem,3.2vw,2.2rem);
}
.page-contact .section-num{
  font-size:var(--step-label);
  letter-spacing:.2em;
  color:var(--cyan);
  text-transform:uppercase;
}
.page-contact .section-head .lede{
  max-width:60ch;
  color:var(--ct-soft);
  margin:0;
}
.page-contact .section-title{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.08;
  font-size:clamp(1.5rem,4.2vw,2.6rem);
  margin:0;
}
.page-contact .prose{
  max-width:64ch;
  color:var(--ct-soft);
  margin:0 0 1rem;
}

/* ---------- 反馈准备 ---------- */
.page-contact .feedback-grid{
  display:grid;
  gap:clamp(1.2rem,3.4vw,2.4rem);
}
.page-contact .checklist{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.55rem;
}
.page-contact .checklist label{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  padding:.78rem .9rem;
  background:var(--ct-panel);
  border-left:2px solid rgba(31,111,158,.55);
  cursor:pointer;
  transition:background .18s var(--ease),border-left-color .18s var(--ease);
  min-height:44px;
}
.page-contact .checklist label:hover{
  background:rgba(14,48,72,.82);
  border-left-color:var(--cyan);
}
.page-contact .checklist input{
  flex:none;
  width:18px;
  height:18px;
  margin:.22rem 0 0;
  accent-color:var(--cyan);
}
.page-contact .checklist span{
  font-size:clamp(.9rem,1.05vw,.98rem);
  line-height:1.65;
  color:var(--paper);
}
.page-contact .checklist input:checked + span{
  color:var(--haze);
}
.page-contact .feedback-side{
  padding:clamp(1.1rem,3.2vw,1.8rem);
}
.page-contact .feedback-side h3{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.15rem,2.4vw,1.45rem);
  margin:0 0 .8rem;
  letter-spacing:-.01em;
}
.page-contact .feedback-side p{
  margin:0 0 .85rem;
  font-size:clamp(.88rem,1vw,.95rem);
  line-height:1.72;
}
.page-contact .feedback-side strong{
  color:var(--ink);
}
.page-contact .side-note{
  margin:0;
  font-size:var(--step-label);
  line-height:1.7;
  color:rgba(16,24,32,.62);
  border-top:1px solid rgba(16,24,32,.12);
  padding-top:.7rem;
}

/* ---------- 合作 ---------- */
.page-contact .section-coop{
  background:linear-gradient(180deg,rgba(75,58,107,.22),rgba(42,30,66,.1));
  margin-inline:calc(var(--gutter) * -1);
  padding-inline:var(--gutter);
}
.page-contact .coop-grid{
  display:grid;
  gap:clamp(.9rem,2.4vw,1.4rem);
}
.page-contact .coop-card{
  padding:clamp(1rem,2.8vw,1.5rem);
  border-top:1px solid rgba(216,180,106,.42);
  background:rgba(11,29,46,.4);
}
.page-contact .coop-card h3{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.1rem,2.2vw,1.35rem);
  margin:.75rem 0 .5rem;
  letter-spacing:-.01em;
}
.page-contact .coop-card p{
  margin:0;
  color:var(--ct-soft);
  font-size:clamp(.88rem,1vw,.95rem);
  line-height:1.72;
}
.page-contact .coop-mail{
  margin-top:clamp(1.2rem,3vw,2rem);
  padding:clamp(1rem,3vw,1.6rem);
  border:1px dashed rgba(216,180,106,.5);
}
.page-contact .coop-mail h3{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1rem,2vw,1.2rem);
  margin:0 0 .55rem;
}
.page-contact .coop-mail p{
  margin:0 0 .6rem;
  color:var(--ct-soft);
  font-size:clamp(.88rem,1vw,.95rem);
  line-height:1.72;
}
.page-contact .coop-mail-addr{
  color:var(--sand);
  overflow-wrap:anywhere;
  margin:0;
}

/* ---------- 服务时段 ---------- */
.page-contact .hours-grid{
  display:grid;
  gap:clamp(1.2rem,3.4vw,2.4rem);
  align-items:start;
}
.page-contact .hours-figure{
  margin:0;
  display:grid;
  gap:.6rem;
}
.page-contact .hours-figure img{
  display:block;
  width:100%;
  height:auto;
  border:1px solid var(--ct-hair);
  background:var(--cabin);
}
.page-contact .hours-figure figcaption{
  font-size:var(--step-label);
  letter-spacing:.1em;
  color:var(--haze);
}
.page-contact .hours-list{
  margin:0;
  display:grid;
  gap:.9rem;
}
.page-contact .hours-list div{
  padding-left:.9rem;
  border-left:1px solid rgba(78,240,208,.4);
}
.page-contact .hours-list dt{
  font-size:var(--step-label);
  letter-spacing:.14em;
  color:var(--cyan);
  margin-bottom:.25rem;
}
.page-contact .hours-list dd{
  margin:0;
  color:var(--ct-soft);
  font-size:clamp(.88rem,1vw,.95rem);
  line-height:1.72;
}

/* ---------- 地址 ---------- */
.page-contact .address-band{
  position:relative;
  overflow:hidden;
  border:1px solid var(--ct-hair);
  padding:clamp(1.6rem,5vw,3.4rem) clamp(1.1rem,4vw,2.8rem);
  background:var(--night);
}
.page-contact .address-band img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.26;
  pointer-events:none;
}
.page-contact .address-body{
  position:relative;
  z-index:1;
  display:grid;
  gap:.6rem;
  max-width:46ch;
}
.page-contact .address-line{
  font-size:clamp(1.05rem,2.8vw,1.55rem);
  color:var(--paper);
  margin:.3rem 0 .2rem;
  letter-spacing:.02em;
  line-height:1.4;
}
.page-contact .address-note{
  margin:0;
  color:var(--haze);
  font-size:clamp(.86rem,1vw,.93rem);
  line-height:1.75;
}

/* ---------- 常用入口 ---------- */
.page-contact .entry-list{
  display:grid;
  border-top:1px solid var(--ct-hair);
}
.page-contact .entry-row{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.2rem .85rem;
  align-items:start;
  padding:1rem .2rem;
  border-bottom:1px solid var(--ct-hair);
  text-decoration:none;
  color:var(--paper);
  transition:background .18s var(--ease),padding-left .18s var(--ease);
  min-height:44px;
}
.page-contact .entry-row:hover,
.page-contact .entry-row:focus-visible{
  background:rgba(31,111,158,.16);
  padding-left:.7rem;
}
.page-contact .entry-idx{
  font-size:var(--step-label);
  letter-spacing:.12em;
  color:var(--cyan);
  padding-top:.28rem;
}
.page-contact .entry-body{
  display:grid;
  gap:.2rem;
}
.page-contact .entry-name{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.05rem,2.2vw,1.32rem);
  letter-spacing:-.01em;
}
.page-contact .entry-desc{
  color:var(--haze);
  font-size:clamp(.84rem,.98vw,.92rem);
  line-height:1.7;
}
.page-contact .entry-go{
  grid-column:2;
  font-size:var(--step-label);
  letter-spacing:.1em;
  color:rgba(78,240,208,.75);
}
.page-contact .entry-row:hover .entry-go,
.page-contact .entry-row:focus-visible .entry-go{
  color:var(--cyan);
}
.page-contact .entries-foot{
  margin:clamp(1.2rem,3vw,1.8rem) 0 0;
  padding-top:1rem;
  border-top:1px solid var(--ct-hair);
  font-size:var(--step-label);
  letter-spacing:.06em;
  color:var(--haze);
  overflow-wrap:anywhere;
}

/* ---------- 断点 ---------- */
@media (min-width:640px){
  .page-contact .cover-channels{
    grid-template-columns:1fr 1fr;
    align-items:stretch;
  }
  .page-contact .coop-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .page-contact .entry-row{
    grid-template-columns:auto 1fr auto;
    align-items:center;
    padding-block:1.15rem;
  }
  .page-contact .entry-go{
    grid-column:3;
    grid-row:1;
  }
  .page-contact .hours-list{
    grid-template-columns:1fr;
  }
}

@media (min-width:900px){
  .page-contact .contact-cover{
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    align-items:start;
    column-gap:clamp(1.6rem,4vw,3.4rem);
  }
  .page-contact .contact-cover > .eyebrow,
  .page-contact .contact-cover > h1,
  .page-contact .contact-cover > .lede{
    grid-column:1;
  }
  .page-contact .contact-cover > .cover-channels{
    grid-column:2;
    grid-row:1 / span 3;
    grid-template-columns:1fr;
    margin-top:0;
    align-self:end;
  }
  .page-contact .contact-cover > .cover-links{
    grid-column:1 / -1;
  }
  .page-contact .feedback-grid{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    align-items:start;
  }
  .page-contact .coop-grid{
    grid-template-columns:repeat(3,1fr);
  }
  .page-contact .hours-grid{
    grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
    gap:clamp(1.6rem,4vw,3.2rem);
  }
  .page-contact .section-coop{
    margin-inline:calc(var(--gutter) * -1.4);
    padding-inline:calc(var(--gutter) * 1.4);
  }
}

@media (prefers-reduced-motion:reduce){
  .page-contact .checklist label,
  .page-contact .entry-row{
    transition:none;
  }
}
