/* Approved Archivo Narrow / Barlow typography; repeated class preserves the comparison stylesheet specificity. */
body.theme-2.theme-2 {
  --serif: "Archivo Narrow", "Arial Narrow", Arial, sans-serif;
  --sans: "Barlow", Arial, sans-serif;
  --type-menu-family: "Barlow", Arial, sans-serif;
  --type-heading-tracking: -.01em;
}

body.theme-2.theme-2 {
  --heading-font: var(--serif);
  --body-font: var(--sans);
  --type-body-size: 18px;
  --type-display-size: clamp(48px, 5.2vw, 72px);
  --type-section-size: clamp(44px, 4.8vw, 66px);
  --type-inner-size: clamp(42px, 4.6vw, 64px);
  --type-contact-size: clamp(48px, 5.6vw, 80px);
  --type-years-size: clamp(104px, 10vw, 156px);
  font-family: var(--sans);
  font-size: var(--type-body-size);
  font-weight: 400;
  line-height: 1.75;
  font-synthesis: none;
}
body.theme-2.theme-2 :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--serif);
  font-style: normal;
  font-weight: 500;
  letter-spacing: var(--type-heading-tracking);
}
body.theme-2.theme-2 :is(h1, h2, h3, h4, h5, h6) em {
  font-family: inherit;
  font-style: normal;
  font-weight: inherit;
}
body.theme-2.theme-2 .scene h1 {
  font-size: var(--type-display-size);
  line-height: 1.1;
}
body.theme-2.theme-2 .scene h2 {
  font-size: var(--type-section-size);
  line-height: 1.12;
}
body.theme-2.theme-2 .scene h3 {
  font-size: 32px;
  line-height: 1.2;
}
body.theme-2.theme-2 .experience-copy h2 {
  font-size: var(--type-section-size);
  line-height: 1.12;
}
body.theme-2.theme-2 .experience-years {
  font-family: var(--serif);
  font-size: var(--type-years-size);
  font-style: normal;
  font-weight: 500;
  letter-spacing: var(--type-heading-tracking);
  line-height: 1;
}
body.theme-2.theme-2 .contact-scene-copy h2 {
  font-size: var(--type-contact-size);
  line-height: 1.1;
}

/* Functional text stays in the declared body/menu family. */
body.theme-2.theme-2 :is(.primary-nav, .nav-toggle) {
  font-family: var(--type-menu-family);
}
body.theme-2.theme-2 .primary-nav a {
  font-family: var(--type-menu-family);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}
body.theme-2.theme-2 .brand-name {
  font-family: var(--serif);
  font-size: 23px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.25;
}
body.theme-2.theme-2 :is(.brand-role, .eyebrow, .cinema-button, .button, .primary-cta, .text-link, .quiet-link, .production-links, .service-number, .scene-nav, .scroll-hint, .breadcrumbs, .site-footer, figcaption, .journey-label, .journey-dot) {
  font-family: var(--sans);
}
body.theme-2.theme-2 :is(.brand-role, .eyebrow, .seated-panel figcaption span, .service-number, .publication-links > a > span, .scroll-hint, .journey-label, .journey-dot > span) {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.6;
}
body.theme-2.theme-2 :is(.cinema-button, .button, .primary-cta, .text-link, .quiet-link, .nav-toggle, .publication-links b) {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}
body.theme-2.theme-2 :is(.hero-introduction, .production-copy > p:not(.eyebrow), .meeting-heading p:not(.eyebrow), .education-copy, .contact-scene-copy > p:not(.eyebrow), .hero-note, .meeting-services p, .publication-links p, .production-links a, .direct-contacts, .footer-contact) {
  font-family: var(--sans);
  font-size: var(--type-body-size);
  font-weight: 400;
  line-height: 1.75;
}
body.theme-2.theme-2 figcaption {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}
body.theme-2.theme-2 .scene-nav button {
  font-size: 12px;
  line-height: 1.5;
}
body.theme-2.theme-2 :is(.site-footer, .footer-bottom, .breadcrumbs) {
  font-size: 14px;
  line-height: 1.6;
}
body.theme-2.theme-2 .footer-links {
  font-size: 16px;
  line-height: 1.6;
}

/* The same typographic treatment applies across every inner route. */
body.theme-2.theme-2 .inner-hero h1 {
  font-size: var(--type-inner-size);
  line-height: 1.14;
}
body.theme-2.theme-2 :is(.inner-hero-copy p:not(.eyebrow), .article-section p:not(.eyebrow), .article-section li, .service-list p, .press-item p, .faq p, .journey-heading > p, .journey .journey-copy p) {
  font-family: var(--sans);
  font-size: var(--type-body-size);
  font-weight: 400;
  line-height: 1.8;
}
body.theme-2.theme-2 :is(.article-section h2, .faq h2, .contact-layout h2) {
  font-size: clamp(34px, 3.4vw, 46px);
  line-height: 1.2;
}
body.theme-2.theme-2 :is(.article-section h3, .service-list h3, .press-item h3) {
  font-size: 30px;
  line-height: 1.25;
}
body.theme-2.theme-2 .faq summary {
  font-family: var(--serif);
  font-size: 26px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.4;
}
body.theme-2.theme-2 .contact-layout a[href^="tel:"] {
  font-family: var(--serif);
  font-size: 32px;
  font-weight: 500;
}
body.theme-2.theme-2 .journey-heading h2 {
  font-size: clamp(42px, 4.8vw, 66px);
  line-height: 1.14;
}
body.theme-2.theme-2 .journey .journey-copy h3 {
  font-size: clamp(28px, 2.8vw, 36px);
  font-weight: 500;
  letter-spacing: var(--type-heading-tracking);
  line-height: 1.25;
}

@media (max-width: 1050px) {
  body.theme-2.theme-2 .primary-nav.is-open a {
    font-family: var(--type-menu-family);
    font-size: 22px;
    line-height: 1.5;
  }
}
@media (min-width: 801px) and (max-width: 1050px) {
  body.theme-2.theme-2 {
    --type-display-size: clamp(46px, 5.7vw, 60px);
    --type-section-size: clamp(43px, 5.1vw, 56px);
    --type-inner-size: clamp(40px, 4.8vw, 54px);
  }
}
@media (max-width: 800px) {
  body.theme-2.theme-2 {
    --type-body-size: 17px;
    --type-display-size: clamp(37px, 10.5vw, 46px);
    --type-section-size: clamp(37px, 10.4vw, 45px);
    --type-contact-size: clamp(37px, 10.5vw, 46px);
    --type-inner-size: clamp(35px, 10vw, 44px);
    --type-years-size: 120px;
  }
  body.theme-2.theme-2 .brand-name {
    font-size: 22px;
  }
  body.theme-2.theme-2 .scene h3 {
    font-size: 29px;
    line-height: 1.25;
  }
  body.theme-2.theme-2 :is(.article-section h2, .faq h2, .contact-layout h2) {
    font-size: 34px;
    line-height: 1.2;
  }
  body.theme-2.theme-2 :is(.article-section h3, .service-list h3, .press-item h3, .journey .journey-copy h3) {
    font-size: 28px;
    line-height: 1.25;
  }
  body.theme-2.theme-2 .journey-heading h2 {
    font-size: 41px;
    line-height: 1.16;
  }
  body.theme-2.theme-2 .faq summary {
    font-size: 24px;
  }
}
@media (max-width: 420px) {
  body.theme-2.theme-2 {
    --type-years-size: 108px;
  }
  body.theme-2.theme-2 .brand-name {
    font-size: 21px;
  }
}
