/* Homepage-only type system. No text, links, permissions, tabs or carousel
   behavior is changed. Navigation, footer and every other route are excluded. */
html.page--homepage #panel .main {
  --home-font: "Segoe UI", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --home-display: clamp(27px, 2.4vw, 34px);
  --home-section: clamp(22px, 2vw, 26px);
  --home-card: clamp(20px, 1.6vw, 22px);
  --home-body: 15px;
  --home-meta: 13px;
}
html.page--homepage #panel .main :is(#sz-exam-home, .sz-paths, .sz-hero),
html.page--homepage #panel .main :is(h1,h2,h3,h4,p,strong,small,button,a:not(.icon)),
html.page--homepage #sz-exam-home span:not(.icon):not([class*="icon-"]) {
  font-family: var(--home-font) !important;
}
html.page--homepage #sz-exam-home { font-size: var(--home-body); line-height: 1.8; }

/* Replace mixed 300/820/840 weights with intentional heading levels. */
html.page--homepage #panel .main :is(h1,h2,h3,h4) {
  font-weight: 700 !important;
  letter-spacing: .015em !important;
  line-height: 1.45 !important;
  text-shadow: none !important;
  text-wrap: pretty;
  overflow-wrap: anywhere;
}
html.page--homepage #panel .main :is(#sz-formal-feature-title,#sz-exam-title,.sz-hero__title) {
  font-size: var(--home-display) !important;
  margin-top: 10px;
  margin-bottom: 14px;
  line-height: 1.4 !important;
  text-wrap: balance;
}
html.page--homepage #panel .main :is(
  #sz-classroom-title,.sz-home-heading h2,.sz-study-tools h2,
  .sz-classroom-public__head h2,.sz-paths__title
) {
  font-size: var(--home-section) !important;
  margin-top: 8px;
  margin-bottom: 10px;
}
html.page--homepage #panel .main :is(.sz-exam-panel__head h3,.sz-classroom-card__copy strong,.sz-classroom-public__copy strong,.sz-paths__name) {
  font-size: var(--home-card) !important;
  font-weight: 700;
  letter-spacing: .015em;
  line-height: 1.45;
}
html.page--homepage #panel .main :is(.sz-content-block h4,.sz-round h4) {
  font-size: 20px !important;
  margin-bottom: 12px;
}
html.page--homepage #panel .main :is(.sz-formal-feature__sessions strong,.sz-action-list strong,.sz-exam-tab strong) {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: .01em;
}
html.page--homepage #sz-exam-home .sz-exam-tab strong {
  white-space: normal;
  overflow-wrap: anywhere;
}

/* All prose shares the same readable base instead of 12/13/16px mixtures. */
html.page--homepage #panel .main :is(
  #sz-exam-home p,.sz-classroom-card__desc,.sz-classroom-public__copy > span:not(.sz-classroom-public__tag),
  .sz-paths__desc,.sz-paths__intro,.sz-formal__desc
) {
  font-size: var(--home-body) !important;
  font-weight: 400;
  line-height: 1.85 !important;
  letter-spacing: .01em;
  text-wrap: pretty;
}
html.page--homepage #panel .main :is(.sz-home-hero__copy p,.sz-formal-feature__copy p,.sz-hero__lead) {
  font-size: 16px !important;
  line-height: 1.9 !important;
  max-width: 38em;
}
html.page--homepage #panel .main :is(
  .sz-formal-feature__sessions small,.sz-exam-tab span,.sz-action-list span,.sz-action-list small,
  .sz-home-heading__note,.sz-classroom-strip__head > p,.sz-paths__meta,.sz-paths__minidesc
) {
  font-size: var(--home-meta) !important;
  font-weight: 400;
  line-height: 1.75 !important;
  letter-spacing: .01em;
}
html.page--homepage #panel .main :is(
  .sz-classroom-strip__eyebrow,.sz-classroom-card__tag,.sz-home-kicker,.sz-home-eyebrow,
  .sz-formal-feature__label,.sz-formal-feature__sessions > article > span,.sz-round__label,
  .sz-exam-status,.sz-classroom-public__eyebrow,.sz-classroom-public__tag,.sz-formal__eyebrow
) {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: .06em;
}
html.page--homepage #panel .main :is(
  .sz-home-button,.sz-direct-links a,.sz-level-links a,.sz-study-tools nav a,
  .sz-classroom-card__go,.sz-formal-feature__link
) {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .02em;
}

/* Consistent rhythm; keep the established cards, artwork and section order. */
html.page--homepage #sz-exam-home .sz-classroom-strip { padding: 24px; margin-bottom: 24px; }
html.page--homepage #sz-exam-home .sz-classroom-strip__head { margin-bottom: 20px; align-items: center; }
html.page--homepage #sz-exam-home .sz-classroom-card__desc { margin-top: 10px; }
html.page--homepage #sz-exam-home .sz-classroom-card__go { margin-top: 18px; }
html.page--homepage #sz-exam-home .sz-home-heading { margin-top: 40px; margin-bottom: 20px; }
html.page--homepage #sz-exam-home .sz-exam-panel__head { min-height: 0; padding: 26px 30px; }
html.page--homepage #sz-exam-home .sz-exam-panel__head h3 { margin-top: 8px; margin-bottom: 10px; }
html.page--homepage #sz-exam-home .sz-content-block > p { margin-bottom: 18px; }
html.page--homepage #sz-exam-home .sz-study-tools { margin-top: 28px; }

html.page--homepage:not(.theme--dark) #panel .main :is(
  h1,h2,h3,h4,.sz-classroom-card__copy strong,.sz-formal-feature__sessions strong,.sz-action-list strong
) { color: #233f58; }
html.page--homepage:not(.theme--dark) #panel .main :is(
  #sz-exam-home p,.sz-classroom-card__desc,.sz-formal-feature__sessions small,
  .sz-action-list span,.sz-exam-tab span,.sz-home-heading__note
) { color: #5d7285; }

/* On tablets/phones the illustration and mascot used to squeeze the copy into
   a very narrow column. Keep the mascot by the action, free the text width. */
@media(max-width:1000px) {
  html.page--homepage #sz-exam-home .sz-classroom-card { padding: 22px !important; }
  html.page--homepage #sz-exam-home .sz-classroom-card__art { display: none; }
  html.page--homepage #sz-exam-home .sz-classroom-card__copy { width: 100%; }
  html.page--homepage #sz-exam-home .sz-classroom-card__desc { max-width: none; }
  html.page--homepage #sz-exam-home .sz-classroom-card__go { min-height: 38px; padding-right: 64px; }
  html.page--homepage #sz-exam-home .sz-classroom-card > .sz-mascot-link__portrait { width: 56px; height: 56px; right: 14px; bottom: 14px; border-radius: 18px; }
}
@media(max-width:600px) {
  html.page--homepage #panel .main { --home-meta: 13px; }
  html.page--homepage #sz-exam-home .sz-classroom-strip { padding: 18px; }
  html.page--homepage #sz-exam-home .sz-classroom-strip__head { gap: 6px; align-items: flex-start; }
  html.page--homepage #sz-exam-home .sz-classroom-strip__head p { text-align: left; }
  html.page--homepage #panel .main :is(.sz-home-hero__copy p,.sz-formal-feature__copy p) { font-size: 15px !important; }
  html.page--homepage #sz-exam-home .sz-home-heading { margin-top: 30px; }
  html.page--homepage #sz-exam-home .sz-exam-panel__head { padding: 22px; }
  html.page--homepage #sz-exam-home .sz-exam-tabs { gap: 6px; }
  html.page--homepage #sz-exam-home .sz-exam-tab { padding: 12px; }
}
