/* 课前导入跨设备可读性：字号保留下限，空间不足时滚动而不是缩小。 */
.j-preintro {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.j-preintro aside {
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
}

.j-preintro h3 {
  font-size: clamp(14px, calc(12px + .22vw), 17px);
  line-height: 1.45;
}

.j-preintro .j-pre-card {
  padding: clamp(8px, 1vh, 11px) clamp(9px, .8vw, 13px);
}

.j-preintro .j-pre-card b,
.j-preintro .j-service-copy b {
  font-size: clamp(13px, calc(11px + .18vw), 15px);
  line-height: 1.45;
}

.j-preintro .j-pre-card small,
.j-preintro .j-service-copy small {
  margin-top: 4px;
  overflow: visible;
  font-size: clamp(12px, calc(10px + .16vw), 14px);
  line-height: 1.5;
  white-space: normal;
  text-overflow: clip;
}

.j-preintro .j-service-copy {
  padding: clamp(8px, 1vh, 11px) clamp(9px, .8vw, 13px);
}

.j-preintro .j-pre-card span {
  margin-top: 4px;
  font-size: clamp(11px, calc(9px + .14vw), 13px);
  line-height: 1.45;
}

.j-preintro > header small {
  font-size: clamp(10px, calc(9px + .1vw), 12px);
}

.j-preintro > header h2 {
  font-size: clamp(22px, 2vw, 28px);
}

.j-preintro > header p,
.j-preintro .j-pre-visual p,
.j-preintro > footer p {
  font-size: clamp(12px, calc(10px + .16vw), 14px);
}

@media (max-width: 1100px) {
  .j-preintro > main {
    grid-template-columns: minmax(230px, 1fr) minmax(300px, 1.25fr) minmax(230px, 1fr);
  }
}

@media (max-height: 720px) {
  .j-preintro {
    gap: 7px;
    padding-block: 9px;
  }

  .j-preintro aside,
  .j-preintro .j-pre-visual {
    padding: 9px;
  }
}
