/* Shared type system. Reference: Wolverine, measured at 390 / 768 / 1440px.
 * Onest chosen by the owner: one family for Cyrillic and Latin.
 * These typography-only !important rules bridge the imported legacy styles;
 * layout, spacing, animation transforms and logo artwork remain component-owned.
 * New components should consume these tokens rather than add local type scales.
 */
:root {
 --pro-font: Onest, Arial, sans-serif;
 --pro-display: clamp(50px, calc(20px + 7.5vw), 128px);
 --pro-hero: clamp(50px, 11.67vw, 168px);
 --pro-title: clamp(32px, calc(14px + 3vw), 57px);
 --pro-section: clamp(26px, calc(18px + 1.04vw), 33px);
 --pro-card: clamp(20px, calc(17px + .63vw), 26px);
 /* Heading-only scales: H1, body copy, controls and prices retain their sizes. */
 --pro-section-heading: clamp(30px, calc(22px + 1.5vw), 46px);
 --pro-title-heading: clamp(36px, calc(16px + 3.4vw), 64px);
 --pro-card-heading: clamp(22px, calc(18px + .83vw), 30px);
 --pro-copy: clamp(16px, calc(14.8px + .29vw), 19px);
 --pro-ui: clamp(14px, calc(13.6px + .1vw), 15px);
 --pro-label: 11px;
 --h2: var(--pro-section-heading);
 --h3: var(--pro-card-heading);
 --body: var(--pro-copy);
}
body.wp-theme-pro-agency,
body.wp-theme-pro-agency * { font-family: var(--pro-font) !important; }
body.wp-theme-pro-agency { font-size:var(--pro-copy); line-height:1.45; }
body.wp-theme-pro-agency :is(p,blockquote) {
 font-size:var(--pro-copy)!important; line-height:1.45!important;
 font-weight:400!important; letter-spacing:-.02em!important;
}

/* Default semantic levels across every public template. */
body.wp-theme-pro-agency h1 {
 font-size:var(--pro-title)!important; font-weight:700!important;
 line-height:1.05!important; letter-spacing:-.04em!important;
}
body.wp-theme-pro-agency h2 {
 font-size:var(--pro-section-heading)!important; font-weight:700!important;
 line-height:1.08!important; letter-spacing:-.03em!important;
}
/* Consistent measure for reading/section headings, not animated display titles.
 * Preserve mobile component widths and the surrounding column geometry.
 */
body.wp-theme-pro-agency :is(.sl-section-heading,.agency-ref-heading,.pro-formats-heading,.faq-heading,.svc-section,.contact-brief-copy,.report-copy,.ed-prose,.news-article-body,.article-body,.article-copy) h2 {
 text-wrap:balance;
}
@media(min-width:761px) {
 body.wp-theme-pro-agency :is(.sl-section-heading,.agency-ref-heading,.pro-formats-heading,.faq-heading,.svc-section,.contact-brief-copy,.report-copy,.ed-prose,.news-article-body,.article-body,.article-copy) h2 {
  max-width:min(100%,12em);
 }
}
body.wp-theme-pro-agency :is(h3,h4,h5,h6) {
 font-size:var(--pro-card-heading)!important; font-weight:500!important;
 line-height:1.2!important; letter-spacing:-.02em!important;
}
/* Display is a role, not every H1/H2. Keep the original hero/portfolio hierarchy. */
body.wp-theme-pro-agency .hero h1 {
 font-size:min(var(--pro-hero),14svh)!important; line-height:.98!important; letter-spacing:-.05em!important;
}
body.wp-theme-pro-agency :is(.portfolio-copy h1,.portfolio-copy h2,.proof-film-title) {
 font-size:var(--pro-display)!important; line-height:.98!important; letter-spacing:-.05em!important;
}
body.wp-theme-pro-agency :is(.sl-standout-title h2,.sl-showcase-media h2,.report-copy h2) {
 font-size:var(--pro-title-heading)!important; line-height:1.05!important; letter-spacing:-.04em!important;
}
body.wp-theme-pro-agency :is(.sl-hero h1,.sl-hero-statement) {
 font-size:var(--pro-section)!important; line-height:1.1!important;
 font-weight:700!important; letter-spacing:-.03em!important;
}

/* Body copy: the same reading size, including lists and contact details. */
body.wp-theme-pro-agency :is(
 .sl-prose,.sl-prose p,.sl-text-row p,.sl-check-row p,.sl-detail-body,
 .service-main p,.svc-price-grid ul,.hub-intro p,.hub-help p,
 .ss-hero-copy p,.ss-card p,.sv-card p,.ss-service-copy p,
 .agency-hero-description,.agency-history-copy p,.agency-value-copy p,
 .agency-format-grid p,.pro-format-copy p,.promise-details-copy p,
 .benefit-grid p,.contact-brief-copy>p,.contact-ref-info,
 .ed-masthead-copy,.news-info>p,.faq-list details>p,.svc-questions details>p
) {
 font-size:var(--pro-copy)!important; line-height:1.45!important;
 font-weight:400!important; letter-spacing:-.02em!important;
}
body.wp-theme-pro-agency :is(.news-card h3,.news-card-link h3,.news-info h2) {
 font-size:clamp(18px,calc(16px + .4vw),22px)!important; line-height:1.25!important;
 font-weight:400!important; letter-spacing:-.02em!important;
}
body.wp-theme-pro-agency :is(.faq-list summary,.svc-questions summary,.sl-detail summary) {
 font-size:var(--pro-card)!important; line-height:1.25!important;
 font-weight:500!important; letter-spacing:-.02em!important;
}
body.wp-theme-pro-agency :is(.news-article-body,.ed-prose,.article-body,.article-copy) :is(p,li) {
 font-size:var(--pro-copy)!important; line-height:1.6!important; letter-spacing:-.01em!important;
}
body.wp-theme-pro-agency :is(.contact-ref-card h2,.sl-check-row h3,.sl-text-row h3) {
 font-size:var(--pro-card-heading)!important; line-height:1.2!important; font-weight:500!important;
}

/* Buttons/inputs share a scale; do not resize icon spans or pointer hit areas. */
body.wp-theme-pro-agency :is(
 .sl-button,.svc-button,.ed-button,.button,.pill-button,.agency-tile-button,
 .pro-format-copy>a,.agency-format-link,.topbar-nav a,
 .pro-formats-controls button,.agency-history-controls button,
 .contact-page-nav,.hub-directions a,.svc-section-nav a,
 .ss-direction,.ss-filter,.sv-filter
) {
 font-size:var(--pro-ui)!important; line-height:1.2!important;
 font-weight:500!important; letter-spacing:-.02em!important;
}
body.wp-theme-pro-agency :is(input,textarea,select) {
 font-size:16px!important; line-height:1.4!important; letter-spacing:-.01em!important;
}
body.wp-theme-pro-agency :is(.sl-form label,.contact-brief-form label) {
 font-size:var(--pro-ui)!important; line-height:1.4!important;
}
body.wp-theme-pro-agency :is(
 .eyebrow,.ed-mono,.sl-label,.svc-eyebrow,.sv-eyebrow,.hero-kicker,
 .pro-format-toggle,.news-card small,.agency-history-copy>span,
 .price-card-content>small,.footer-meta,.sl-note,.sl-consent,
 .contact-test-note,.contact-brief-form .contact-consent
) {
 font-size:var(--pro-label)!important; line-height:1.45!important;
 font-weight:500!important; letter-spacing:.015em!important;
}
/* Card labels are interactive headings, not large content headings. */
body.wp-theme-pro-agency .pro-format-panel h3 { font-size:var(--pro-label)!important; line-height:1.45!important; }
body.wp-theme-pro-agency :is(.price-card-content h3,.price-card .price,.svc-price-grid .svc-price) {
 font-size:var(--pro-title)!important; line-height:1.05!important; letter-spacing:-.04em!important;
}
@media(max-width:600px) {
 :root { --pro-hero:clamp(40px,10.7vw,64px); --pro-display:clamp(40px,12.9vw,72px); }
 body.wp-theme-pro-agency .hero .hero-kicker { font-size:9px!important;line-height:1.4!important;letter-spacing:0!important; }
 body.wp-theme-pro-agency .portfolio-copy :is(h1,h2) { font-size:clamp(26px,8vw,42px)!important;max-width:100%;line-height:1.05!important; }
}

