/* Kingsong Vision Canon semantic type presets v1.4.6
   Load after ks-tokens.css. Select by content role, not page name. */

:where(.ks-heading--flagship, .ks-heading--product, .ks-heading--compact) {
  margin: 0;
  color: var(--ks-ink, #171a20);
  font-family: var(--ks-font-heading, "Public Sans", Arial, sans-serif);
  font-weight: 600;
  font-synthesis: none;
  text-wrap: balance;
}

:where(.ks-heading--flagship) {
  font-size: clamp(34px, 8.7vw, 40px);
  line-height: 1.08;
  letter-spacing: -0.02em;
  max-inline-size: 18ch;
}

:where(.ks-heading--product) {
  font-size: clamp(32px, 8.2vw, 36px);
  line-height: 1.1;
  letter-spacing: -0.018em;
  max-inline-size: 20ch;
}

:where(.ks-heading--compact) {
  font-size: clamp(30px, 7.7vw, 36px);
  line-height: 1.12;
  letter-spacing: -0.016em;
  max-inline-size: 24ch;
}

@media (min-width: 768px) {
  :where(.ks-heading--flagship) { font-size: clamp(40px, 3.5vw, 56px); }
  :where(.ks-heading--product) { font-size: clamp(36px, 3vw, 48px); }
  :where(.ks-heading--compact) { font-size: clamp(32px, 2.5vw, 40px); }
}

:where(.ks-heading--on-media) { color: #fff; }
