.page-contact{
  --ct-panel:rgba(21,25,34,.72);
  --ct-rule:rgba(126,144,166,.22);
  display:block;
  background:var(--void);
  color:var(--text-body);
  font-family:var(--font-body);
  overflow-x:hidden;
}

.page-contact img{
  max-width:100%;
  height:auto;
  display:block;
}

/* ---------- 首屏 ---------- */

.page-contact .ct-hero{
  position:relative;
  padding:clamp(24px,4vw,42px) 0 clamp(38px,5vw,72px);
  border-bottom:1px solid var(--line-soft);
  background:
    radial-gradient(120% 92% at 86% -12%, rgba(255,75,31,.20), transparent 58%),
    linear-gradient(180deg, #0A0C12 0%, #0E1220 100%);
  overflow:hidden;
}

.page-contact .ct-hero::after{
  content:"";
  position:absolute;
  right:-16%;
  bottom:-48%;
  width:62%;
  height:126%;
  background:linear-gradient(140deg, rgba(20,26,58,.86), rgba(11,42,44,.46));
  transform:skewY(-6deg);
  pointer-events:none;
}

.page-contact .ct-hero__inner{
  position:relative;
  z-index:1;
}

.page-contact .ct-hero__grid{
  display:grid;
  gap:clamp(26px,4vw,52px);
  margin-top:clamp(20px,3vw,36px);
}

.page-contact .ct-hero__title{
  margin:.08em 0 .34em;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(42px,8vw,72px);
  line-height:1;
  letter-spacing:-.02em;
  color:var(--ice);
}

.page-contact .ct-hero__lede{
  max-width:var(--max-read);
  color:var(--ice);
  opacity:.84;
  font-size:clamp(16px,1.6vw,18px);
  line-height:1.78;
}

.page-contact .ct-quick{
  position:relative;
  padding:22px 20px 14px 24px;
  background:var(--ct-panel);
  border:1px solid var(--line);
  border-left:2px solid var(--flame);
}

.page-contact .ct-quick__label{
  margin:0 0 12px;
  font-size:13px;
  letter-spacing:.14em;
  color:var(--steel);
}

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

.page-contact .ct-quick__link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 0;
  border-top:1px solid var(--line-soft);
  color:var(--ice);
  text-decoration:none;
  font-size:15px;
  transition:color .25s var(--ease),padding-left .25s var(--ease);
}

.page-contact .ct-quick__link:hover,
.page-contact .ct-quick__link:focus-visible{
  color:var(--flame);
  padding-left:6px;
}

.page-contact .ct-quick__arrow{
  font-family:var(--font-data);
  color:var(--flame);
  font-size:14px;
  flex:none;
}

/* ---------- 三条联系渠道 ---------- */

.page-contact .ct-channels{
  background:var(--void);
}

.page-contact .ct-channels__inner{
  display:grid;
  gap:clamp(30px,4vw,56px);
}

.page-contact .ct-channels__aside .pa-prose{
  max-width:var(--max-read);
}

.page-contact .ct-channels__figure{
  margin:clamp(26px,3vw,38px) 0 0;
}

.page-contact .ct-channels__figure .pa-frame__media{
  aspect-ratio:3 / 2;
  overflow:hidden;
}

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

.page-contact .ct-channel{
  position:relative;
  padding:clamp(20px,2.6vw,30px) 0 clamp(20px,2.6vw,30px) clamp(18px,2.4vw,26px);
  border-left:1px solid var(--ct-rule);
  border-bottom:1px solid var(--line-soft);
}

.page-contact .ct-channel:first-child{
  border-top:1px solid var(--line-soft);
}

.page-contact .ct-channel::before{
  content:"";
  position:absolute;
  left:-1px;
  top:0;
  width:2px;
  height:0;
  background:linear-gradient(180deg, var(--flame), var(--ember));
  transition:height .38s var(--ease);
}

.page-contact .ct-channel:hover::before,
.page-contact .ct-channel:focus-within::before{
  height:100%;
}

.page-contact .ct-channel__label{
  margin:0 0 10px;
  font-size:13px;
  letter-spacing:.16em;
  color:var(--steel);
}

.page-contact .ct-channel__value{
  display:block;
  margin:0;
  font-family:var(--font-data);
  font-size:clamp(16px,2.2vw,22px);
  line-height:1.5;
  color:var(--ice);
  text-decoration:none;
  border-bottom:1px solid transparent;
  overflow-wrap:anywhere;
  transition:color .25s var(--ease),border-color .25s var(--ease);
}

.page-contact a.ct-channel__value:hover,
.page-contact a.ct-channel__value:focus-visible{
  color:var(--flame);
  border-bottom-color:var(--line-warm);
}

.page-contact .ct-channel__value--addr{
  font-family:var(--font-body);
  font-size:clamp(15px,1.8vw,18px);
  line-height:1.75;
  letter-spacing:.01em;
  color:var(--ice);
}

.page-contact .ct-channel__note{
  margin:12px 0 0;
  max-width:54ch;
  font-size:15px;
  line-height:1.78;
  color:var(--text-body);
}

/* ---------- 场景导流 ---------- */

.page-contact .ct-routes{
  background:linear-gradient(160deg, var(--indigo) 0%, #0C1027 60%, var(--void) 100%);
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}

.page-contact .ct-routes__head{
  max-width:var(--max-read);
}

.page-contact .ct-route-list{
  list-style:none;
  margin:clamp(26px,3.4vw,44px) 0 0;
  padding:0;
}

.page-contact .ct-route{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:6px 16px;
  align-items:start;
  padding:clamp(18px,2.4vw,26px) 0;
  border-top:1px solid var(--line-soft);
  transition:background .3s var(--ease);
}

.page-contact .ct-route:last-child{
  border-bottom:1px solid var(--line-soft);
}

.page-contact .ct-route:hover{
  background:rgba(255,75,31,.05);
}

.page-contact .ct-route__num{
  margin:3px 0 0;
  font-size:13px;
  color:var(--flame);
  letter-spacing:.1em;
}

.page-contact .ct-route__scene{
  margin:0 0 7px;
  font-family:var(--font-head);
  font-weight:800;
  font-size:clamp(17px,2vw,21px);
  line-height:1.4;
  letter-spacing:-.01em;
  color:var(--ice);
}

.page-contact .ct-route__desc{
  margin:0;
  max-width:62ch;
  font-size:15px;
  line-height:1.78;
  color:var(--text-body);
}

.page-contact .ct-route__pick{
  grid-column:2;
  margin:12px 0 0;
}

/* ---------- 服务时间 ---------- */

.page-contact .ct-hours{
  background:var(--void);
}

.page-contact .ct-hours__inner{
  display:grid;
  gap:clamp(28px,4vw,46px);
}

.page-contact .ct-hours__head{
  max-width:var(--max-read);
}

.page-contact .ct-timeline{
  margin:0;
}

.page-contact .ct-timeline__axis{
  display:flex;
  justify-content:space-between;
  padding-bottom:8px;
  border-bottom:1px solid var(--line);
  font-family:var(--font-data);
  font-size:11.5px;
  letter-spacing:.05em;
  color:var(--steel);
}

.page-contact .ct-bar{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px 14px;
  padding:18px 0;
  border-bottom:1px solid var(--line-soft);
}

.page-contact .ct-bar__name{
  margin:0;
  font-size:14px;
  letter-spacing:.06em;
  color:var(--ice);
}

.page-contact .ct-bar__val{
  margin:0;
  font-size:13px;
  letter-spacing:.04em;
  color:var(--cyan);
}

.page-contact .ct-bar__track{
  grid-column:1 / -1;
  position:relative;
  height:9px;
  background-color:rgba(126,144,166,.13);
  background-image:repeating-linear-gradient(90deg, rgba(126,144,166,.26) 0 1px, transparent 1px 20%);
}

.page-contact .ct-bar__fill{
  display:block;
  height:100%;
}

.page-contact .ct-bar--weekday .ct-bar__fill{
  width:80%;
  background:linear-gradient(90deg, var(--ember), var(--flame));
}

.page-contact .ct-bar--match .ct-bar__fill{
  width:100%;
  background:linear-gradient(90deg, var(--flame), #FF8A3D 68%, var(--cyan));
}

.page-contact .ct-resp{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:1px;
  background:var(--line-soft);
  border:1px solid var(--line-soft);
}

.page-contact .ct-resp__item{
  background:var(--carbon);
  padding:clamp(18px,2.4vw,26px);
}

.page-contact .ct-resp__num{
  margin:0 0 8px;
  display:flex;
  align-items:baseline;
  gap:6px;
  color:var(--flame);
}

.page-contact .ct-resp__num .pa-num{
  font-family:var(--font-data);
  font-size:clamp(26px,4vw,34px);
  line-height:1;
  letter-spacing:-.02em;
}

.page-contact .ct-resp__unit{
  font-size:13px;
  letter-spacing:.1em;
  color:var(--steel);
}

.page-contact .ct-resp__desc{
  margin:0;
  font-size:14.5px;
  line-height:1.78;
  color:var(--text-body);
}

/* ---------- 到访与反馈 ---------- */

.page-contact .ct-visit{
  background:linear-gradient(180deg, var(--void) 0%, #0B1220 100%);
  border-top:1px solid var(--line-soft);
}

.page-contact .ct-visit__grid{
  display:grid;
  gap:clamp(28px,3.6vw,46px);
}

.page-contact .ct-visit__block{
  position:relative;
}

.page-contact .ct-visit__block--alt{
  padding-top:clamp(24px,3vw,0px);
}

.page-contact .ct-visit__block .pa-prose{
  max-width:var(--max-read);
}

.page-contact .ct-facts{
  margin:24px 0 0;
  padding:0;
}

.page-contact .ct-fact{
  display:grid;
  grid-template-columns:96px minmax(0,1fr);
  gap:14px;
  padding:14px 0;
  border-top:1px solid var(--line-soft);
}

.page-contact .ct-fact:last-child{
  border-bottom:1px solid var(--line-soft);
}

.page-contact .ct-fact dt{
  font-size:13px;
  letter-spacing:.06em;
  color:var(--steel);
}

.page-contact .ct-fact dd{
  margin:0;
  font-size:15px;
  line-height:1.7;
  color:var(--ice);
}

.page-contact .ct-visit__tail{
  margin:20px 0 0;
  max-width:var(--max-read);
  font-size:15px;
  line-height:1.78;
  color:var(--steel);
}

.page-contact .ct-visit__tail a{
  color:var(--ice);
  text-decoration:none;
  border-bottom:1px solid var(--line-warm);
  transition:color .25s var(--ease);
}

.page-contact .ct-visit__tail a:hover,
.page-contact .ct-visit__tail a:focus-visible{
  color:var(--flame);
}

.page-contact .ct-checklist{
  list-style:none;
  margin:24px 0 0;
  padding:0;
}

.page-contact .ct-check{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  padding:clamp(16px,2vw,20px) 0;
  border-top:1px solid var(--line-soft);
}

.page-contact .ct-check:last-child{
  border-bottom:1px solid var(--line-soft);
}

.page-contact .ct-check__idx{
  padding-top:3px;
  font-size:12px;
  letter-spacing:.1em;
  color:var(--flame);
}

.page-contact .ct-check__body h3{
  margin:0 0 6px;
  font-family:var(--font-head);
  font-weight:800;
  font-size:16px;
  letter-spacing:-.01em;
  color:var(--ice);
}

.page-contact .ct-check__body p{
  margin:0;
  font-size:14.5px;
  line-height:1.78;
  color:var(--text-body);
}

/* ---------- 区位图形 ---------- */

.page-contact .ct-map{
  position:relative;
  padding:clamp(44px,6vw,84px) 0 0;
  background:linear-gradient(180deg, #0B1220 0%, var(--deepgreen) 118%);
  border-top:1px solid var(--line-soft);
  overflow:hidden;
}

.page-contact .ct-map::before{
  content:"";
  position:absolute;
  top:0;
  left:-8%;
  width:50%;
  height:100%;
  background:linear-gradient(180deg, rgba(255,75,31,.11), transparent 56%);
  transform:skewX(-6deg);
  pointer-events:none;
}

.page-contact .ct-map__head{
  position:relative;
  z-index:1;
  max-width:var(--max-read);
  padding-bottom:clamp(24px,3vw,40px);
}

.page-contact .ct-map__frame{
  position:relative;
  z-index:1;
  margin:0;
  max-width:100%;
}

.page-contact .ct-map__frame .pa-frame__media{
  aspect-ratio:16 / 9;
  overflow:hidden;
}

.page-contact .ct-map__frame .pa-frame__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* ---------- 响应式 ---------- */

@media (min-width:860px){
  .page-contact .ct-route{
    grid-template-columns:64px minmax(0,1fr) auto;
    align-items:center;
    gap:24px;
  }

  .page-contact .ct-route__num{
    margin:0;
  }

  .page-contact .ct-route__pick{
    grid-column:3;
    margin:0;
  }

  .page-contact .ct-resp{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
}

@media (min-width:960px){
  .page-contact .ct-hero__grid{
    grid-template-columns:minmax(0,7fr) minmax(0,4fr);
    align-items:end;
  }

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

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

  .page-contact .ct-visit__block--alt{
    padding-left:clamp(24px,3vw,44px);
    border-left:1px solid var(--line-soft);
    padding-top:0;
  }
}

@media (min-width:1200px){
  .page-contact .ct-hours__inner{
    grid-template-columns:minmax(0,4fr) minmax(0,8fr);
    align-items:start;
  }

  .page-contact .ct-hours__head{
    position:sticky;
    top:calc(var(--hdr) + 24px);
  }
}

@media (prefers-reduced-motion:reduce){
  .page-contact .ct-channel::before,
  .page-contact .ct-quick__link,
  .page-contact .ct-channel__value,
  .page-contact .ct-route,
  .page-contact .ct-visit__tail a{
    transition:none;
  }
}
