@import url("typography-tokens.css?v=2026101204");

/* Opt-in roles: never style every h1/h2 globally. */
.type-display { font-family:var(--font-ko); font-size:var(--ty-display-size); font-weight:var(--ty-display-weight); line-height:var(--ty-display-leading); letter-spacing:var(--ty-display-tracking); }
.type-page { font-family:var(--font-ko); font-size:var(--ty-page-size); font-weight:var(--ty-page-weight); line-height:var(--ty-page-leading); letter-spacing:var(--ty-page-tracking); }
.type-section { font-family:var(--font-ko); font-size:var(--ty-section-size); font-weight:var(--ty-section-weight); line-height:var(--ty-section-leading); letter-spacing:var(--ty-section-tracking); }
.type-subheading { font-family:var(--font-ko); font-size:var(--ty-subheading-size); font-weight:var(--ty-subheading-weight); line-height:var(--ty-subheading-leading); letter-spacing:var(--ty-subheading-tracking); }
.type-card { font-family:var(--font-ko); font-size:var(--ty-card-size); font-weight:var(--ty-card-weight); line-height:var(--ty-card-leading); letter-spacing:var(--ty-card-tracking); }
.type-lead { font-family:var(--font-ko); font-size:var(--ty-lead-size); font-weight:var(--ty-lead-weight); line-height:var(--ty-lead-leading); letter-spacing:var(--ty-lead-tracking); }
.type-article { font-family:var(--font-ko); font-size:var(--ty-article-size); font-weight:var(--ty-article-weight); line-height:var(--ty-article-leading); letter-spacing:var(--ty-article-tracking); }
.type-body { font-family:var(--font-ko); font-size:var(--ty-body-size); font-weight:var(--ty-body-weight); line-height:var(--ty-body-leading); letter-spacing:var(--ty-body-tracking); }
.type-support { font-family:var(--font-ko); font-size:var(--ty-support-size); font-weight:var(--ty-support-weight); line-height:var(--ty-support-leading); letter-spacing:var(--ty-support-tracking); }
.type-caption { font-family:var(--font-ko); font-size:var(--ty-caption-size); font-weight:var(--ty-caption-weight); line-height:var(--ty-caption-leading); letter-spacing:var(--ty-caption-tracking); }
.type-label { font-family:var(--font-ko); font-size:var(--ty-label-size); font-weight:var(--ty-label-weight); line-height:var(--ty-label-leading); letter-spacing:var(--ty-label-tracking); }
.type-input { font-family:var(--font-ko); font-size:var(--ty-input-size); font-weight:var(--ty-input-weight); line-height:var(--ty-input-leading); letter-spacing:var(--ty-input-tracking); }
.type-button { font-family:var(--font-ko); font-size:var(--ty-button-size); font-weight:var(--ty-button-weight); line-height:var(--ty-button-leading); letter-spacing:var(--ty-button-tracking); }
.type-button-small { font-family:var(--font-ko); font-size:var(--ty-button-small-size); font-weight:var(--ty-button-small-weight); line-height:var(--ty-button-small-leading); letter-spacing:var(--ty-button-small-tracking); }
.type-admin-compact { font-family:var(--font-ko); font-size:var(--ty-admin-compact-size); font-weight:var(--ty-admin-compact-weight); line-height:var(--ty-admin-compact-leading); letter-spacing:var(--ty-admin-compact-tracking); }

.type-numeric { font-variant-numeric: tabular-nums; }
.type-english-display { font-family:var(--font-display); }
/* Existing compositions retain their own title scales and wrapping. */
:is(.home-page, .about-page, .cr-regular, .contact-page) {
  --reading-size:var(--ty-body-size);
  --lead-size:var(--ty-lead-size);
  --label-size:var(--ty-landing-label-size);
  --section-size:var(--ty-landing-section-size);
  --card-size:var(--ty-landing-card-size);
}
.sc-detail .sc-hero h1 { font-size:var(--ty-class-title-size); line-height:var(--ty-class-title-leading); letter-spacing:var(--ty-class-title-tracking); }
.sc-detail .sc-lead { font-size:var(--ty-class-lead-size); }
.sc-detail .sc-section h2 { font-size:var(--ty-class-section-size); }
.sc-detail .sc-intro { font-size:var(--ty-class-body-size); line-height:var(--ty-article-leading); }
.sc-detail :is(.sc-booking-note,.sc-price p,.sc-price>span) { font-size:var(--ty-caption-size); line-height:var(--ty-caption-leading); }
.sc-detail .sc-faq details p { font-size:var(--ty-support-size); line-height:var(--ty-support-leading); }
.guide-article { font-size:var(--ty-article-size); line-height:var(--ty-article-leading); letter-spacing:var(--ty-article-tracking); }
.guide-article p { margin-bottom:var(--ty-article-paragraph-gap); }
/* A preparation heading is an eyebrow, not a section title. See page CSS. */
@media(max-width:767px) {
  .home-page .main-bn-con-text p, .home-page .home-hero-actions a { font-size:14px; }
}

/* Compact form, editorial and listing title variants keep their existing weight/leading. */
.account-card h1 { font-size:var(--ty-account-title-size); }
.faq-page-heading h1 { font-size:var(--ty-faq-title-size); }
.portfolio-title h1 { font-size:var(--ty-portfolio-title-size); }
.jobs-page h1 { font-size:var(--ty-jobs-title-size); }
.jobs-single .jobs-detail-header h1 { font-size:clamp(25px,4vw,36px); }
.guide-catalog-title h1,.guide-reader-title h1,.guide-missing h1 { font-size:var(--ty-reader-title-size); }
.guide-article :is(h1,h2) { font-size:var(--ty-reader-section-size); }
.guide-story-card h2 { font-size:var(--ty-story-card-size); }
.contact-page .label { font-size:var(--ty-label-size); }
@media(max-width:767px) {
  .home-page .main-bn-con-text p.medium-text { font-size:14px; }
}
