/** (PREGNORF ✅) Editorial 2026 — Typography Pack
 * Purpose
 * - restore one pack-owned typography lane between tokens and sections
 * - keep layout.css focused on layout/shell concerns instead of text scale ownership
 * - provide a stable type contract for Family 1 public surfaces and Family 2 app pages
 */

.dmxr4-public-core-page{
  --dmxr4-type-display: clamp(2.8rem, 5vw, 4.8rem);
  --dmxr4-type-heading: clamp(2.05rem, 3vw, 3rem);
  --dmxr4-type-body: clamp(1.04rem, 1.08vw, 1.12rem);
  --dmxr4-type-body-line: 1.68;
  --dmxr4-type-support: clamp(.95rem, .98vw, 1rem);
  --dmxr4-type-support-line: 1.58;
  --dmxr4-type-kicker: .78rem;
  --dmxr4-type-card-title: clamp(1.16rem, 1.42vw, 1.3rem);
  --dmxr4-type-card-body: .98rem;
  --dmxr4-type-card-body-line: 1.68;
}

.dmxr4-public-core-page :where(.dmxr4-page-title){
  font-size: var(--dmxr4-type-display);
  line-height: .96;
  letter-spacing: -.044em;
  text-wrap: balance;
}

.dmxr4-public-core-page :where(.dmxr4-page-heading){
  font-size: var(--dmxr4-type-heading);
  line-height: 1.04;
  letter-spacing: -.032em;
  text-wrap: balance;
}

.dmxr4-public-core-page :where(.dmxr4-page-subtitle,.dmxr4-page-intro,.dmxr4-page-body){
  font-size: var(--dmxr4-type-body);
  line-height: var(--dmxr4-type-body-line);
}

.dmxr4-public-core-page :where(.dmxr4-page-support,.dmxr4-page-meta,.dmxr4-hero-media__caption){
  font-size: var(--dmxr4-type-support);
  line-height: var(--dmxr4-type-support-line);
}

.dmxr4-public-core-page :where(.dmxr4-page-eyebrow,.dmxr4-page-kicker,.dmxr4-proof-strip__item){
  font-size: var(--dmxr4-type-kicker);
  line-height: 1.2;
}

.dmxr4-public-core-page :where(.dmxr4-info-card h3,.dmxr4-step-copy h3,.dmxr4-faq-summary,.dmxr4-catalog-card__title,.dmxr4-product-card__title,.dmxr4-product-card__plan strong){
  font-size: var(--dmxr4-type-card-title);
  line-height: 1.18;
  letter-spacing: -.018em;
}

.dmxr4-public-core-page :where(.dmxr4-info-card p,.dmxr4-step-copy p,.dmxr4-faq-answer .dmxr4-page-body,.dmxr4-catalog-card__desc,.dmxr4-product-card__desc,.dmxr4-product-card__support,.dmxr4-product-card__plan-note){
  font-size: var(--dmxr4-type-card-body);
  line-height: var(--dmxr4-type-card-body-line);
}

body:is(.dmxr4-public-shell-route--app-single,.dmxr4-dynamic-surface--app-single,.dmxr4-site-shell-runtime--app-single) .dmxr4-runtime-app-page{
  --dmxr4-app-type-display: clamp(2.25rem, 4vw, 3.8rem);
  --dmxr4-app-type-heading: clamp(1.5rem, 2.2vw, 2rem);
  --dmxr4-app-type-body: 1rem;
  --dmxr4-app-type-body-line: 1.66;
  --dmxr4-app-type-support: .94rem;
}

body:is(.dmxr4-public-shell-route--app-single,.dmxr4-dynamic-surface--app-single,.dmxr4-site-shell-runtime--app-single) .dmxr4-runtime-app-page :where(h1,.title:first-child){
  font-size: var(--dmxr4-app-type-display);
  line-height: .98;
  letter-spacing: -.038em;
}

body:is(.dmxr4-public-shell-route--app-single,.dmxr4-dynamic-surface--app-single,.dmxr4-site-shell-runtime--app-single) .dmxr4-runtime-app-page :where(h2,h3,.section-head h2,.section-head h3,.publish-band h3){
  font-size: var(--dmxr4-app-type-heading);
  line-height: 1.12;
  letter-spacing: -.022em;
}

body:is(.dmxr4-public-shell-route--app-single,.dmxr4-dynamic-surface--app-single,.dmxr4-site-shell-runtime--app-single) .dmxr4-runtime-app-page :where(p,li,span,.subtitle,.section-head p,.artifact-card p,.snapshot-row p,.snapshot-row span,.feature span,.use span,.cta-note,.launch-path-note){
  font-size: var(--dmxr4-app-type-body);
  line-height: var(--dmxr4-app-type-body-line);
}

body:is(.dmxr4-public-shell-route--app-single,.dmxr4-dynamic-surface--app-single,.dmxr4-site-shell-runtime--app-single) .dmxr4-runtime-app-page :where(.section-kicker,.preview-kicker,.artifact-kicker,.publish-band__eyebrow,.chip,.meta,.stat-hint,.metric-sub,.support-copy,.helper-note,.subtle-label,.dmxr4-smartapp-pdp__hero-job){
  font-size: var(--dmxr4-app-type-support);
  line-height: 1.45;
}

@media (max-width: 900px){
  .dmxr4-public-core-page{
    --dmxr4-type-display: clamp(2.45rem, 8vw, 3.6rem);
    --dmxr4-type-heading: clamp(1.8rem, 4.6vw, 2.4rem);
    --dmxr4-type-body: 1.02rem;
  }
}

@media (max-width: 640px){
  .dmxr4-public-core-page{
    --dmxr4-type-display: clamp(2.1rem, 10vw, 3rem);
    --dmxr4-type-heading: clamp(1.5rem, 7vw, 2rem);
    --dmxr4-type-body: 1rem;
    --dmxr4-type-support: .94rem;
    --dmxr4-type-card-title: 1.08rem;
    --dmxr4-type-card-body: .96rem;
  }

  body:is(.dmxr4-public-shell-route--app-single,.dmxr4-dynamic-surface--app-single,.dmxr4-site-shell-runtime--app-single) .dmxr4-runtime-app-page{
    --dmxr4-app-type-display: clamp(1.9rem, 9vw, 2.8rem);
    --dmxr4-app-type-heading: clamp(1.28rem, 5.8vw, 1.7rem);
  }
}
