.page-contact{
  --ct-h2:clamp(1.55rem,4.3vw,2.5rem);
  --ct-gap:clamp(20px,3.4vw,44px);
}

.page-contact .ct-h2{
  font-family:var(--font-display);
  font-weight:900;
  font-size:var(--ct-h2);
  line-height:1.15;
  letter-spacing:-.01em;
  color:var(--paper);
  margin:.4em 0 0;
  max-width:22ch;
}

/* ---- 首屏 ---- */
.page-contact .ct-hero{
  position:relative;
  background:
    radial-gradient(120% 95% at 88% -10%, rgba(57,242,208,.16), transparent 62%),
    radial-gradient(90% 70% at 0% 100%, rgba(255,61,139,.10), transparent 60%),
    var(--ink-deep);
  border-bottom:1px solid var(--line);
  padding:clamp(18px,3vw,30px) 0 clamp(36px,6vw,72px);
}

.page-contact .ct-hero__grid{
  display:grid;
  gap:var(--ct-gap);
  margin-top:clamp(20px,3.4vw,36px);
}

.page-contact .ct-hero__lead h1{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2rem,7.2vw,4.2rem);
  line-height:1.08;
  letter-spacing:-.02em;
  color:var(--paper);
  margin:.32em 0 .5em;
  max-width:14ch;
}

.page-contact .ct-hero__intro{
  font-size:clamp(.98rem,2.4vw,1.1rem);
  line-height:1.75;
  color:var(--sage);
  max-width:46ch;
  margin:0;
}

.page-contact .ct-call{
  margin:clamp(24px,3.6vw,38px) 0 0;
  padding-left:clamp(14px,2vw,22px);
  border-left:3px solid var(--cyan);
}

.page-contact .ct-call__label{
  margin:0;
  font-size:.74rem;
  letter-spacing:.26em;
  color:var(--sage);
}

.page-contact .ct-call__num{
  margin:.18em 0 .12em;
  font-weight:700;
  font-size:clamp(1.72rem,7vw,3.2rem);
  line-height:1.08;
  color:var(--cyan);
  letter-spacing:.015em;
  word-break:break-all;
}

.page-contact .ct-call__meta{
  margin:0;
  font-size:.86rem;
  line-height:1.6;
  color:var(--mist);
}

.page-contact .ct-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:clamp(22px,3vw,32px);
}

.page-contact .ct-hero__aside{
  display:grid;
  gap:14px;
}

.page-contact .ct-hero__figure{
  margin:0;
  border-radius:var(--radius-organic);
  overflow:hidden;
  border:1px solid var(--line-strong);
  background:var(--ink-band);
}

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

.page-contact .ct-address{
  padding:clamp(16px,2.6vw,24px);
  background:var(--ink-band);
  border:1px solid var(--line-strong);
  border-radius:8px 24px 8px 24px;
}

.page-contact .ct-address__kicker{
  margin:0 0 .5em;
  font-size:.72rem;
  letter-spacing:.24em;
  color:var(--magenta);
}

.page-contact .ct-address__line{
  margin:0 0 .5em;
  font-size:clamp(1rem,2.6vw,1.22rem);
  font-weight:700;
  line-height:1.5;
  color:var(--paper);
}

.page-contact .ct-address__hint{
  margin:0;
  font-size:.85rem;
  line-height:1.65;
  color:var(--sage);
}

/* ---- 电话与邮箱 ---- */
.page-contact .ct-channels__grid{
  display:grid;
  gap:16px;
  margin-top:clamp(22px,3.2vw,36px);
}

.page-contact .ct-card{
  position:relative;
  padding:clamp(20px,3vw,30px);
  background:linear-gradient(160deg, var(--ink-band), var(--ink-row));
  border:1px solid var(--line);
  border-radius:var(--radius-organic);
}

.page-contact .ct-card--mail{
  border-color:rgba(255,61,139,.4);
}

.page-contact .ct-card__kicker{
  margin:0 0 .6em;
  font-size:.72rem;
  letter-spacing:.24em;
  color:var(--sage);
}

.page-contact .ct-card__value{
  margin:0 0 .7em;
  font-weight:700;
  font-size:clamp(1.25rem,4.4vw,1.85rem);
  line-height:1.2;
  color:var(--cyan);
  word-break:break-all;
}

.page-contact .ct-card__value--mail{
  font-size:clamp(.92rem,3.1vw,1.24rem);
  color:var(--mist);
  letter-spacing:-.01em;
}

.page-contact .ct-card__text{
  margin:0;
  font-size:.94rem;
  line-height:1.75;
  color:var(--sage);
}

.page-contact .ct-card__list{
  list-style:none;
  margin:clamp(14px,2vw,20px) 0 0;
  padding:0;
  display:grid;
  gap:8px;
}

.page-contact .ct-card__list li{
  position:relative;
  padding-left:18px;
  font-size:.9rem;
  line-height:1.6;
  color:var(--paper);
}

.page-contact .ct-card__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--cyan);
}

.page-contact .ct-card--mail .ct-card__list li::before{
  background:var(--magenta);
}

/* ---- 四步流程 ---- */
.page-contact .ct-flow{
  background:var(--ink-band);
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}

.page-contact .ct-flow__head{
  display:grid;
  gap:var(--ct-gap);
  margin-bottom:clamp(24px,3.6vw,42px);
  align-items:end;
}

.page-contact .ct-flow__lead{
  margin:.9em 0 0;
  font-size:.98rem;
  line-height:1.75;
  color:var(--sage);
  max-width:52ch;
}

.page-contact .ct-flow__figure{
  margin:0;
  border-radius:8px 26px 8px 26px;
  overflow:hidden;
  border:1px solid var(--line);
}

.page-contact .ct-flow__figure img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:18/13;
  object-fit:cover;
  max-width:100%;
}

.page-contact .ct-flow__steps{
  list-style:none;
  counter-reset:ctstep;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
}

.page-contact .ct-step{
  counter-increment:ctstep;
  padding:clamp(18px,2.6vw,26px);
  background:var(--ink-deep);
  border:1px solid var(--line);
  border-top:3px solid var(--cyan);
  border-radius:4px 20px 4px 20px;
}

.page-contact .ct-step::before{
  content:"0" counter(ctstep);
  display:block;
  margin-bottom:10px;
  font-family:var(--font-mono);
  font-size:.92rem;
  letter-spacing:.14em;
  color:var(--cyan);
}

.page-contact .ct-step__title{
  margin:0 0 .55em;
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(1.02rem,2.6vw,1.2rem);
  line-height:1.3;
  color:var(--paper);
}

.page-contact .ct-step__text{
  margin:0;
  font-size:.9rem;
  line-height:1.72;
  color:var(--sage);
}

.page-contact .ct-flow .note{
  margin-top:clamp(18px,2.6vw,26px);
}

/* ---- 团体与活动 ---- */
.page-contact .ct-group__grid{
  display:grid;
  gap:var(--ct-gap);
}

.page-contact .ct-group__lead{
  margin:1em 0 0;
  font-size:.98rem;
  line-height:1.78;
  color:var(--sage);
  max-width:56ch;
}

.page-contact .ct-group__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:clamp(20px,2.8vw,30px);
}

.page-contact .ct-group__side{
  padding:clamp(20px,3vw,30px);
  background:var(--ink-band);
  border:1px solid var(--line-strong);
  border-radius:var(--radius-organic);
}

.page-contact .ct-side__title{
  margin:0 0 1em;
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(1rem,2.5vw,1.12rem);
  color:var(--paper);
}

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

.page-contact .ct-side__list li{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  align-items:baseline;
  font-size:.92rem;
  line-height:1.6;
  color:var(--mist);
}

.page-contact .ct-side__list .num{
  color:var(--amber);
  font-size:.82rem;
  letter-spacing:.06em;
}

.page-contact .ct-side__foot{
  margin:clamp(16px,2.2vw,22px) 0 0;
  padding-top:14px;
  border-top:1px dashed var(--line);
  font-size:.85rem;
  line-height:1.65;
  color:var(--sage);
}

/* ---- 服务范围 ---- */
.page-contact .ct-area{
  background:
    radial-gradient(100% 80% at 100% 0%, rgba(255,177,59,.10), transparent 62%),
    var(--ink-deep);
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}

.page-contact .ct-area__inner{
  display:grid;
  gap:var(--ct-gap);
}

.page-contact .ct-area__text{
  margin:1em 0 0;
  font-size:.96rem;
  line-height:1.8;
  color:var(--sage);
  max-width:56ch;
}

.page-contact .ct-area__panel{
  padding:clamp(20px,3vw,28px);
  background:var(--ink-band);
  border:1px solid var(--line);
  border-left:3px solid var(--amber);
  border-radius:4px 22px 4px 22px;
}

.page-contact .ct-area__panel-title{
  margin:0 0 1em;
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(.98rem,2.4vw,1.1rem);
  color:var(--paper);
}

.page-contact .ct-area__checks{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}

.page-contact .ct-area__checks li{
  position:relative;
  padding-left:24px;
  font-size:.9rem;
  line-height:1.6;
  color:var(--mist);
}

.page-contact .ct-area__checks li::before{
  content:"";
  position:absolute;
  left:2px;
  top:.28em;
  width:11px;
  height:6px;
  border-left:2px solid var(--cyan);
  border-bottom:2px solid var(--cyan);
  transform:rotate(-45deg);
}

.page-contact .ct-area__panel-foot{
  margin:clamp(16px,2.2vw,22px) 0 0;
  font-size:.82rem;
  line-height:1.6;
  color:var(--sage);
}

/* ---- 反馈处理 ---- */
.page-contact .ct-tabs{
  margin-top:clamp(20px,3vw,32px);
}

.page-contact .ct-tabs .tabs__list{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding-bottom:10px;
  scrollbar-width:thin;
}

.page-contact .ct-tabs .tabs__tab{
  flex:0 0 auto;
  padding:10px 16px;
  font-size:.88rem;
  font-family:var(--font-body);
  background:var(--ink-band);
  color:var(--mist);
  border:1px solid var(--line);
  border-radius:999px;
  cursor:pointer;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}

.page-contact .ct-tabs .tabs__tab:hover{
  border-color:var(--line-strong);
  color:var(--cyan);
}

.page-contact .ct-tabs .tabs__tab[aria-selected="true"]{
  background:var(--cyan);
  border-color:var(--cyan);
  color:var(--ink);
  font-weight:700;
}

.page-contact .ct-tabs .tabs__tab:focus-visible{
  outline:2px solid var(--amber);
  outline-offset:2px;
}

.page-contact .ct-tabs__panel{
  margin-top:16px;
  padding:clamp(20px,3vw,30px);
  background:var(--ink-band);
  border:1px solid var(--line);
  border-radius:var(--radius-organic);
}

.page-contact .ct-tabs__panel p{
  margin:0;
  font-size:.95rem;
  line-height:1.8;
  color:var(--sage);
}

.page-contact .ct-tabs__panel p + p{
  margin-top:.85em;
}

.page-contact .ct-feedback .note{
  margin-top:clamp(18px,2.6vw,26px);
}

/* ---- 媒体查询 ---- */
@media (min-width:720px){
  .page-contact .ct-channels__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .page-contact .ct-flow__steps{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (min-width:900px){
  .page-contact .ct-hero__grid{
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    align-items:start;
  }
  .page-contact .ct-flow__head{
    grid-template-columns:minmax(0,1.1fr) minmax(0,.75fr);
  }
  .page-contact .ct-flow__steps{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
  }
  .page-contact .ct-group__grid{
    grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);
    align-items:start;
  }
  .page-contact .ct-area__inner{
    grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
    align-items:start;
  }
}

@media (min-width:1100px){
  .page-contact .ct-hero__aside{
    padding-left:clamp(0px,2vw,24px);
  }
}

@media (prefers-reduced-motion:reduce){
  .page-contact .ct-tabs .tabs__tab{
    transition:none;
  }
}
