/* Typography roles informed by 182gram.com; see docs/typography-reference.md.
 * Paperlogy: brand/headings. Pretendard: detailed content. Montserrat: numerals.
 * Self-hosted fonts and their OFL licenses live in /assets/fonts/.
 */
@font-face {
    font-family: "Paperlogy";
    src: url("../fonts/paperlogy/Paperlogy-4Regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Paperlogy";
    src: url("../fonts/paperlogy/Paperlogy-5Medium.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Paperlogy";
    src: url("../fonts/paperlogy/Paperlogy-6SemiBold.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Paperlogy";
    src: url("../fonts/paperlogy/Paperlogy-7Bold.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: "Paperlogy";
    src: url("../fonts/paperlogy/Paperlogy-8ExtraBold.woff2") format("woff2");
    font-style: normal;
    font-weight: 800;
    font-display: swap;
}

@font-face {
    font-family: "Montserrat";
    src: url("../fonts/montserrat/Montserrat-Variable-Latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 700 900;
    font-display: swap;
}

html.public-site {
    font-size: 17px;
    --type-leading-copy: 1.75;
    --type-tracking-display: -0.035em;
    --type-tracking-title: -0.025em;
    --type-tracking-kicker: 0.14em;
    --font-brand: "Paperlogy", "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-reading: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.public-site body.font-sans {
    font-family: var(--font-brand);
    font-weight: 400;
    letter-spacing: -0.01em;
    -webkit-font-smoothing: antialiased;
}

/* Restore the small-text hierarchy flattened by the earlier global overrides. */
.public-site .text-xs { font-size: 0.75rem !important; }
.public-site .text-sm { font-size: 0.875rem !important; }

.public-site .site-utility-bar .site-container {
    height: 36px;
    min-height: 36px;
    font-size: 13px !important;
    font-family: var(--font-reading);
    font-weight: 400;
    letter-spacing: 0;
}

/* Header wordmark: compact symbol, weighted Korean name, spaced English line. */
.public-site .site-brand {
    gap: 13px;
    color: #10323f;
    font-family: var(--font-reading);
}

.public-site .site-brand-mark {
    width: 56px;
    height: 56px;
    border: 0;
    border-radius: 13px;
    box-shadow: none;
}

.public-site .site-brand-wordmark {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 7px;
}

.public-site .site-brand-korean {
    display: flex;
    align-items: baseline;
    gap: 9px;
    white-space: nowrap;
}

.public-site .site-brand-name {
    max-width: none;
    overflow: visible;
    color: inherit;
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.055em;
}

.public-site .site-brand-description {
    font-size: 17px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.04em;
}

.public-site .site-brand-english {
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.15em;
    white-space: nowrap;
}

.public-site .site-nav-link {
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.public-site .site-dropdown-link,
.public-site .site-mobile-sublink {
    font-size: 15px;
    font-weight: 500;
}

.public-site .section-kicker {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
}

.public-site .page-heading {
    font-size: clamp(34px, 4.2vw, 52px);
    font-weight: 700;
    line-height: 1.3;
}

.public-site .section-title,
.public-site .home-profile .home-profile__title,
.public-site .home-savings__title,
.public-site .home-final-title {
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.03em;
}

.public-site h3 {
    font-weight: 700;
    letter-spacing: -0.02em;
}

.public-site .about-hero-lead {
    max-width: 620px;
    font-size: 18px;
    line-height: 1.85;
    letter-spacing: -0.012em;
}

.public-site .about-hero-proof li {
    font-size: 14px;
    font-weight: 500;
}

.public-site .home-film-topline > p {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
}

.public-site .home-film-eyebrow {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: -0.01em;
}

.public-site .home-film-copy h1 {
    font-size: clamp(44px, 4.7vw, 72px);
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -0.035em;
}

.public-site .home-film-copy h1 > .home-film-accent {
    font-weight: 800;
}

.public-site .home-film-description {
    font-size: 19px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: -0.012em;
}

.public-site .home-film-primary {
    font-size: 16px;
    font-weight: 700;
}

.public-site .home-film-secondary {
    font-size: 15px;
    font-weight: 500;
}

.public-site .home-film-services button {
    letter-spacing: -0.02em;
}

/* Dense tax explanations and forms benefit from a quieter reading face. */
.public-site main :where(p.leading-7, p.leading-8, .section-lead, .prose, table, dl),
.public-site .about-hero-lead,
.public-site .career-group-list,
.public-site .career-stat-copy,
.public-site .career-benefit-card > p:not(.career-benefit-number),
.public-site .career-disclaimer,
.public-site .home-profile__description,
.public-site .home-profile__careers,
.public-site .home-savings__panel,
.public-site .home-savings__post,
.public-site .home-savings__example-note,
.public-site .home-savings__footer > p,
.public-site .consult-form,
.public-site .site-footer {
    font-family: var(--font-reading);
}

.public-site .home-savings__story h3,
.public-site .home-savings__post h3 {
    font-family: var(--font-reading);
    font-weight: 750;
}

.public-site .btn-primary,
.public-site .btn-outline {
    font-family: var(--font-brand);
    font-weight: 700;
}

.public-site .home-savings__kicker { font-weight: 700; }

/* Use the Latin face only for discrete numbers, keeping Korean units native. */
.public-site .type-number,
.public-site .career-stat-number,
.public-site .career-benefit-number,
.public-site .home-film-service-num,
.public-site .home-savings__tab-number {
    font-family: "Montserrat", var(--font-brand);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.public-site .career-stat-number {
    font-weight: 800;
    letter-spacing: -0.05em;
}

.public-site .career-stat-number > span {
    font-family: var(--font-brand);
    font-weight: 600;
}

@media (max-width: 1023px) {
    .public-site .home-film-copy h1 {
        font-size: clamp(38px, 5.8vw, 60px);
    }
}

@media (max-width: 640px) {
    html.public-site { font-size: 16px; }
    .public-site .site-brand { gap: 9px; }
    .public-site .site-brand-mark { width: 40px; height: 40px; border-radius: 10px; }
    .public-site .site-brand-wordmark { gap: 5px; }
    .public-site .site-brand-korean { gap: 6px; }
    .public-site .site-brand-name { font-size: 25px; }
    .public-site .site-brand-description { font-size: 12px; }
    .public-site .site-brand-english { font-size: 8px; letter-spacing: 0.11em; }
    .public-site .page-heading { font-size: clamp(30px, 8vw, 38px); }
    .public-site .about-hero .page-heading { font-size: clamp(28px, 7.3vw, 36px); }
    .public-site .about-hero-lead { font-size: 16px; line-height: 1.8; }
    .public-site .home-film-copy h1 { font-size: clamp(26px, 7.7vw, 44px); letter-spacing: -0.04em; }
    .public-site .home-film-eyebrow { font-size: 13px; }
    .public-site .home-film-description { font-size: 16px; }
    .public-site .home-film-primary { font-size: 15px; }
    .public-site .home-film-secondary { font-size: 14px; }
}
