/* 공개 페이지의 제목·본문·메뉴·입력 요소는 SUIT로 통일합니다.
   메인 기준의 공개 페이지 글자 크기를 여기서 관리합니다. 관리자 화면에서는 불러오지 않습니다. */
body,
body .home-header,
body .home-footer,
button, input, select, textarea,
main :is(h1, h2, h3, h4, h5, h6, code, pre, kbd, samp),
.hero-content h1,
.page-header h1,
.company-opening.is-pinned .company-journey-title,
.npr-content-page .solution-banner h1,
.site-opening h1,
.solution-page-heading h1,
.site-article-heading h1,
.site-esg-document strong,
main .sector-heading > span:not([lang]),
main .company-stat dd,
main .company-history-meta > p,
main .company-history-summary > p:not(.company-history-highlight),
main .post-title {
    font-family: 'SUIT', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
}

/* Home reference: page-layout.css section headings/buttons, main.css offerings/news.
   Only public subpage text sizes are normalized; shared navigation and icon sizes stay intact. */
:root {
    --npr-type-title: 40px;
    --npr-type-feature: 32px;
    --npr-type-subtitle: 24px;
    --npr-type-card: 18px;
    --npr-type-body: 16px;
    --npr-type-intro: 15px;
    --npr-type-meta: 14px;
    --npr-type-caption: 12px;
}
@media (max-width: 720px) {
    :root {
        --npr-type-feature: 26px;
        --npr-type-subtitle: 20px;
        --npr-type-card: 16px;
        --npr-type-intro: 14px;
        --npr-type-meta: 12px;
    }
}
@media (max-width: 700px) {
    :root { --npr-type-title: 28px; }
}
body:not(.npr-home) {
    --npr-hero-title-size: var(--npr-type-title);
    --npr-hero-description-size: var(--npr-type-body);
}
/* Size-only !important overrides existing ID selectors, inline article sizes and
   page-specific !important rules without changing layout, color or visibility. */
body:not(.npr-home) :is(main,.page-header) {
    font-size: var(--npr-type-body) !important;
}
body:not(.npr-home) main :is(p,li,dt,dd,td,th,label,input,select,textarea),
body:not(.npr-home) .page-header p {
    font-size: var(--npr-type-body) !important;
}
body:not(.npr-home) main :is(a,span,strong,b,em,time,font):not([aria-hidden="true"]) {
    font-size: inherit !important;
}
body:not(.npr-home) main :is(h1,h2),
body:not(.npr-home) .page-header h1 {
    font-size: var(--npr-type-title) !important;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
}
body:not(.npr-home) main h3 {
    font-size: var(--npr-type-subtitle) !important;
    line-height: 1.45;
}
body:not(.npr-home) main :is(h4,h5,h6) {
    font-size: var(--npr-type-card) !important;
    line-height: 1.5;
}
/* Product/service titles use the home's offering headings; repeated news uses its news headings. */
body:not(.npr-home) main :is(
    .ss-card h2, .ss-card-back h3, .nc-subheading, .nc-story-english-title,
    .nc-story-points dt, .nc-adoption dt, .nc-planning h4,
    .site-form-group legend, .site-esg-areas strong, .site-esg-document strong, .site-careers-links strong,
    .site-value-copy > p, .company-stat dt, .company-history-meta > p,
    .site-contact-aside h2, .solution-dialog-heading h2
) {
    font-size: var(--npr-type-subtitle) !important;
    line-height: 1.45;
}
body:not(.npr-home) main :is(
    .site-featured-copy h2, .site-news-highlight-copy h2, .site-news-row h2, .site-archive-row h3, .sd-news-item h3,
    .company-project-list h3, .company-cert-heading h3, .career-job-title,
    .career-jobs h3, .career-process h3, .site-job-row h3, .site-related h3, .site-resource h3, .solution-card h2,
    .ss-context-heading, .company-history-group h4,
    .career-filter-heading h2, .career-result-count
) {
    font-size: var(--npr-type-card) !important;
    line-height: 1.5;
}
body:not(.npr-home) main :is(.ss-headline,.company-history-summary h3,.company-stat dd) {
    font-size: var(--npr-type-feature) !important;
    line-height: 1.4;
    white-space: normal;
}
body:not(.npr-home) main :is(.company-journey-title,.company-stats-heading,.talent-story-heading) {
    font-size: var(--npr-type-title) !important;
    line-height: 1.4;
}
/* Descriptions under section headings follow the home's section description. */
body:not(.npr-home) main :is(
    .site-section-heading > p, .section-subtitle, .solution-section-description,
    .nc-heading > p, .nc-story-intro, .nc-story-prose p,
    .sd-section-description, .company-chapter-heading > div > p:not(.company-eyebrow)
) {
    font-size: var(--npr-type-intro) !important;
}
/* Metadata is kept subordinate to body text instead of enlarged with every paragraph. */
body:not(.npr-home) main :is(
    figcaption, small, .site-news-meta, .site-label, .site-note, .site-caption,
    .solution-category, .solution-page-note, .nc-kicker, .nc-note, .nc-story-label,
    .nc-story-note, .nc-step, .sd-case-year, .sd-news-item time,
    .company-eyebrow, .company-project-meta, .company-cert-name,
    .company-history-meta h3, .company-talent-number, .company-project-list > li > strong,
    .talent-eyebrow, .talent-principle-label, .career-note, .career-job-meta,
    .career-job-type, .career-tag, .site-field-error, .site-form-field label span,
    .ss-category, .ss-back-label, .ss-count, .ss-tags li
) {
    font-size: var(--npr-type-meta) !important;
}
body:not(.npr-home) main :is(
    .ss-english, .ss-tab-number, .company-image-note, .company-history-figure figcaption span,
    .talent-photo-caption
) {
    font-size: var(--npr-type-caption) !important;
}
/* All ordinary text actions and fields follow the home's 16px button scale.
   Buttons carrying an accessible icon label keep their own symbol size. */
body:not(.npr-home) main button:not([aria-label]),
body:not(.npr-home) main :is(
    .home-button, .solution-button, .nc-button, .nc-card-detail, .nc-story-purchase,
    .cta-button, .sd-button, .sd-link, .sd-back, .sd-nav a, .ss-detail-link,
    .ss-context > a, .nc-text-link, .nc-story-nav a, .site-resource-nav a,
    .solution-section-nav a, .solution-back, .career-back, .career-inquiry,
    .company-links a, .company-history-years a
) {
    font-size: var(--npr-type-body) !important;
}
body:not(.npr-home) main :is(
    .site-article-body, .site-rich-text, .site-form-errors,
    .career-job-body, .nc-boundary
) {
    font-size: var(--npr-type-body) !important;
}
body.npr-privacy-readable main h4 {
    font-size: var(--npr-type-body) !important;
}
/* Caption and metadata links inherit their enclosing role, including stored article spans. */
body:not(.npr-home) main :is(
    .site-news-meta,.company-project-meta,.career-job-meta,figcaption
) :is(a,span,time) {
    font-size: inherit !important;
}

/* NPR/Siemens detail pages share one type scale; catalog lists keep the home scale. */
body.npr-solution-catalog main.nc-main[data-solution-id]:not([data-solution-id=""]) {
    --npr-type-title: 40px;
    --npr-type-subtitle: 24px;
    --npr-type-card: 24px;
    --npr-type-intro: 22px;
    --npr-type-body: 20px;
    --npr-type-meta: 14px;
    --npr-type-caption: 12px;
}
body.npr-solution-catalog main.nc-main[data-solution-id]:not([data-solution-id=""]) :is(
    .nc-button, .nc-card-detail, .nc-story-purchase, .nc-text-link,
    .site-resource-nav a, button
) {
    font-size: 16px !important;
}
body.npr-solution-catalog main.nc-main[data-solution-id]:not([data-solution-id=""]) .nc-lead {
    font-size: var(--npr-type-subtitle) !important;
}
body.npr-solution-catalog main.nc-main[data-solution-id]:not([data-solution-id=""]) :is(.nc-step,.nc-usage-number) {
    font-size: var(--npr-type-body) !important;
}
@media (max-width: 700px) {
    body.npr-solution-catalog main.nc-main[data-solution-id]:not([data-solution-id=""]) {
        --npr-type-title: 28px;
        --npr-type-subtitle: 22px;
        --npr-type-card: 22px;
        --npr-type-intro: 18px;
        --npr-type-body: 18px;
    }
}
