/* poea-native: ONE global heading typography layer, enqueued last (after every template stylesheet). Roles per qa/ux/TYPE_SCALE.md.
   Inter only. The `html:not(#t)` prefix raises specificity above any template/Elementor rule, so template CSS must not set heading size/weight.
   Exceptions (left to their own CSS): .hero__h, .cta-band__title (home display), .ncard__title (Instrument Serif), dashboards (h1 only), header/footer chrome. */
:root { --t-page: clamp(28px, 2.5vw + 18px, 44px); --t-section: clamp(22px, 1.5vw + 16px, 32px); }
html:not(#t) body main {
	/* section title: page-level h2 */
	h2:not(:is(.hero__h, .cta-band__title, .ncard__title, .c-dash *)) { font-family: var(--font-sans) !important; font-size: var(--t-section) !important; font-weight: 700 !important; line-height: 1.2 !important; letter-spacing: -.025em !important; }
	/* widget / sidebar / accordion title */
	h3:not(:is(.hero__h, .cta-band__title, .ncard__title, .c-dash *)), :is(aside, .widget, .sidebar, details, .elementor-tabs, .elementor-accordion, .c-overview, .c-glance) :is(h2, h3, h4):not(:is(.hero__h, .cta-band__title, .ncard__title, .c-dash *)), :is(.widget-title, .company-letter, .elementor-tab-title, .elementor-accordion-title, .elementor-icon-box-title, .mini-title):not(#t) { font-family: var(--font-sans) !important; font-size: 18px !important; font-weight: 600 !important; line-height: 1.35 !important; letter-spacing: 0 !important; }
	/* label */
	:is(h4, h5, h6):not(:is(.hero__h, .cta-band__title, .ncard__title, .c-dash *)), :is(.jl-kicker, .group-label, .section-label, .c-overview__label, .c-glance__title, .hero__pill, .jobsec__lead, [class*="kicker"], [class*="eyebrow"]):not(#t) { font-family: var(--font-sans) !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1.4 !important; letter-spacing: .02em !important; }
	/* card title */
	:is(.card, .c-card, .jl-card, .ncard, .dcard, .job_listing-categories li, [class*="-card"], [class*="__card"], [class*="-row"], .c-tile) :is(h2, h3, h4):not(:is(.hero__h, .cta-band__title, .ncard__title, .c-dash *)), :is(.elementor-cta__title, [class*="card__title"], [class*="row__title"], [class*="row__name"], .dcard__name):not(#t) { font-family: var(--font-sans) !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1.35 !important; letter-spacing: 0 !important; overflow-wrap: break-word; hyphens: manual; word-break: normal; }
	/* media card (blog index / related posts): title > excerpt > meta */
	:is(.c-post-card) :is(h2, h3, h4):not(:is(.hero__h, .cta-band__title, .ncard__title, .c-dash *)), .c-post-card__title:not(#t) { font-size: clamp(18px, 1vw + 14px, 20px) !important; font-weight: 700 !important; line-height: 1.3 !important; }
	.c-post-card__excerpt { font-size: 15px !important; font-weight: 400 !important; }
	.c-post-card__kicker, .c-post-card__kicker :is(time, span), .c-post-card__author { font-size: 13px !important; font-weight: 500 !important; }
	/* 404: the two link groups are section titles */
	.l-404 h2.c-glance__title:not(#t) { font-size: var(--t-section) !important; font-weight: 700 !important; line-height: 1.2 !important; letter-spacing: -.025em !important; text-transform: none !important; }
	/* page title */
	h1 { font-family: var(--font-sans) !important; font-size: var(--t-page) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.025em !important; }
}

/* Long titles (body class from poea_native_title_length_class): >28 chars 26px, >36 chars 26px + tighter tracking, >60 chars 24px. */
body.poea-title--l1 { --t-page: clamp(26px, 2.5vw + 16px, 44px); }
body.poea-title--l2 { --t-page: clamp(26px, 2.5vw + 16px, 44px); --t-track: -.035em; }
body.poea-title--l3 { --t-page: clamp(24px, 2.5vw + 14px, 44px); --t-track: -.035em; }
html:not(#t) body main h1:not(#t) { letter-spacing: var(--t-track, -.025em) !important; }

/* Footer fold titles: label role (12-14px / 600) */
html:not(#t) body :is(footer, .c-footer) :is(h1, h2, h3, h4, h5, h6):not(#t) { font-family: var(--font-sans) !important; font-weight: 600 !important; font-size: 13px !important; }

/* Non-heading roles. Buttons 600; chips/badges 600 13-14px; prose 16px. Card meta keeps its own 13-14px (never touched here). */
html:not(#t) body :is(.btn, .button, .c-btn, a.elementor-button, input[type=submit], button.c-btn):not(#t) { font-family: var(--font-sans) !important; font-weight: 600 !important; }
html:not(#t) body :is(.c-btn--sm, .btn-sm):not(#t) { font-size: 14px !important; }
html:not(#t) body :is([class*="chip"], [class*="badge"]):not(#t):not(:is(.c-dash *)) { font-weight: 600 !important; }
html:not(#t) body main .entry-content :is(p, li):not(:is(.c-dash *, .c-post-card *, .jl-card *, .c-job-row *, .c-company-row *, .c-job-card *, .c-tile *)):not(#t) { font-size: 16px !important; line-height: 1.7 !important; }

/* Card title links: up to 3 lines (no 2-line clamp ellipsis) */
html:not(#t) body main :is([class*="card__title"], [class*="row__title"], [class*="row__name"]) > a:not(#t) { -webkit-line-clamp: 3 !important; line-clamp: 3 !important; }

/* CARD META: one style everywhere (13px mobile / 14px desktop, 500, muted, links keep the muted colour) */
html:not(#t) body main :is(.jl-card__line, .jl-card__co, .jl-card__place, .c-job-row__company, .c-job-row__company a, .c-job-row__aside, .c-job-row__aside time, .c-job-row__body .location, .c-meta, .c-meta .location, .c-meta a, .company-details, .company-jobs, .c-tile__meta):not(#t) {
	font-family: var(--font-sans) !important; font-size: 13px !important; font-weight: 500 !important; color: var(--text-secondary) !important; letter-spacing: 0 !important; text-decoration: none;
}
@media (min-width: 768px) {
	html:not(#t) body main :is(.jl-card__line, .jl-card__co, .jl-card__place, .c-job-row__company, .c-job-row__company a, .c-job-row__aside, .c-job-row__aside time, .c-job-row__body .location, .c-meta, .c-meta .location, .c-meta a, .company-details, .company-jobs, .c-tile__meta):not(#t) { font-size: 14px !important; }
}
html:not(#t) body main :is(.c-job-row__company a, .c-meta a):not(#t):hover { text-decoration: underline; }

/* Form labels: 600 / 14px */
html:not(#t) body main label:not([class*="jl-more"]):not(#t) { font-family: var(--font-sans) !important; font-size: 14px !important; font-weight: 600 !important; }

/* Detail hero on phones: logo above the title so a long title gets the full width (<=2 lines at 390) */
@media (max-width: 480px) { html:not(#t) body main .c-detail-hero__main { grid-template-columns: minmax(0, 1fr) !important; gap: var(--space-3, 12px); } }
