/* Approved ONS typography: shared homepage, service and editorial scale. */
@media (max-width:900px) {
 body #primary-nav > a,
 body #primary-nav .ons-expertise-home,
 body #primary-nav .ons-help-menu > summary {
  display:flex; align-items:center; min-height:48px; margin:0;
  font-size:24px; font-weight:400; line-height:32px;
  padding-top:10px!important; padding-bottom:10px!important;
 }
 body #primary-nav .ons-expertise-wrap { align-items:center; }
 body #primary-nav .ons-expertise-menu[open] > summary { left:auto; right:0; }
 body #primary-nav .ons-help-menu .ons-help-links a { font-size:14px!important; line-height:1.5!important; min-height:48px; }
 body .menu-toggle { font-size:16px; min-height:44px; }
 body .chapter .intro,
 body .chapter .service-list details p { font-size:16px; line-height:1.7; }
 body .chapter .eyebrow { font-size:12px; letter-spacing:1.5px; }
 body .chapter .cta,
 body .chapter .whatsapp,
 body .chapter .result span { font-size:16px; }
 body .chapter .project-tabs a { font-size:16px; line-height:1.5; flex:1 1 110px; }
 body .chapter .service-list summary { font-size:18px; line-height:1.5; }
 body .chapter .service-list { max-height:none; }
 body .chapter .service-list summary span,
 body .chapter .art-note,
 body .chapter footer,
 body .chapter footer .ons-social-links a { font-size:12px; }
 body .journey-ui { font-size:12px; letter-spacing:.5px; gap:10px; }
 body .journey-ui #chapter-label { min-width:0; flex:1; }
 body .journey-ui #progress-label { min-width:32px; }
}

@media (min-width: 901px) {
 body #primary-nav { font-size:18px; align-items:center; }
 body #primary-nav > a,
 body #primary-nav .ons-expertise-home,
 body #primary-nav .ons-help-menu > summary {
  display:flex; align-items:center; min-height:44px; margin:0;
  font-size:18px; font-weight:400; line-height:24px; white-space:nowrap;
  padding-top:10px!important; padding-bottom:10px!important;
 }
 body #primary-nav > .ons-expertise-wrap { align-items:center; }
 body #primary-nav .ons-help-menu > summary span { line-height:1; }
 body .motion { display:inline-flex; align-items:center; justify-content:center; line-height:20px; }
 body .motion { font-size:14px; }
 body .chapter .eyebrow { font-size:14px; letter-spacing:2px; }
 body .chapter .intro { font-size:18px; line-height:1.7; }
 body .chapter .cta,
 body .chapter .whatsapp { font-size:16px; }
 body .side-note,
 body .journey-ui { font-size:14px; letter-spacing:1px; }
 body .chapter .result span { font-size:18px; }
 body .chapter .project-tabs,
 body .chapter .project-tabs a { font-size:18px; line-height:1.5; }
 body .chapter .art-note,
 body .chapter footer { font-size:14px; }
 body .chapter .service-list summary { font-size:18px; }
 body .chapter .service-list summary span { font-size:14px; }
 body .chapter .service-list details p { font-size:18px; line-height:1.7; }
 body .service-list { max-height:calc(100svh - 240px); overflow-y:auto; }
}
@media (min-width:901px) and (max-width:1200px) {
 body #primary-nav { gap:22px; }
 body header { gap:22px; }
 body .scroll-prompt { margin-right:12px; }
}


/* Supporting labels and diagram captions retain a smaller, readable tier. */
:root dialog .case-note,
:root .about-cue,
:root .commitment-mark small,
:root .customer-core small,
:root .founder-signature span,
:root .growth-stop>span,
:root .trust-centre small,
:root .trust-label,
:root .evidence-index,
:root .about-story .evidence-art-note,
:root .performance-orbit small,
:root .performance-pillars span,
:root .performance-body .performance-note,
:root .performance-body .performance-art-note,
:root .lens-centre small,
:root .lens-coordinate,
:root .discovery-node,
:root .search-fine,
:root .search-art-note,
:root .search-measures span,
:root .search-honesty,
:root .search-story .demo-label,
:root .demo-query,
:root .demo-result>span,:root .local-business>span,:root .ai-response>span,
:root .search-story .ai-line,
:root .ai-sources,
:root .work-visual-label,
:root .scan-branches,
:root .work-authority>span,
:root .search-story .work-visual-caption,
:root .web-story .web-small,
:root .device-chrome span,
:root .device-copy>span:first-child,
:root .device-example-cta,
:root .blueprint-tag,
:root .web-story .web-deliverable,
:root .web-art-note,
:root .web-journey .stage-index,
:root .web-journey .stage-caption,
:root .social-preview-label,
:root .social-preview-message>span:first-child,
:root .social-preview-action,
:root .social-preview-bottom,
:root .social-story .social-demo-note,
:root .social-purpose-detail>span,
:root .social-orbit small,
:root .brand-insight>span,
:root .brand-insight-tags span,
:root .brand-touch-controls small,
:root .brand-demo-top span,
:root .brand-demo-body>span,
:root .brand-demo-body>span:first-child,
:root .brand-demo-bottom,
:root .brand-demo-stage[data-touch-view="1"] .brand-demo-top span,
:root .brand-system-note small,
:root .brand-card-no,
:root .brand-card-output,
:root .brand-story .brand-workbench-hint,
:root .brand-workbench-step small,
:root .brand-working-label,
:root .brand-strategy-sheet span,
:root .brand-type-sample small,
:root .brand-expression-sheet>span,:root .brand-guideline-sheet>span,
:root .brand-guide-spread span,
:root .brand-workbench-foot,
:root .studios-view-top,
:root .studios-view-bottom>span,
:root .studios-format-controls span,
:root .studios-crop>span,
:root .studios-format-note small,
:root .studios-clapper>span,
:root .studios-clapper>small,
:root .studios-timeline small,
:root .studios-edit-visual>span,
:root .studios-story .studios-art-note,
:root .production-scene-label,
:root .production-concept-note,
:root .studios-production #studios-edit-label,
:root .studios-production #production-step-output,
:root .production-storyboard span,
:root .production-focus span,
:root .production-exports span,
:root .studios-production-controls small,
:root .case-toolbar>span,
:root .case-read,
:root .case-image-note,
:root .case-edition,
:root .case-visual-caption,
:root #case-dialog .case-note,
:root .case-next>span,
:root .contact-hero-foot,
:root .contact-compass small,
:root .contact-brief-intro .contact-care,
:root .contact-story form label,
:root .contact-optional,
:root .contact-story legend,
:root .contact-send-note,:root #contact-form-status,
:root .contact-channel-list a>span,
:root .contact-signoff,
:root .ons-social-links a,
:root .trust-explore,
:root .assurance-hero-stats>span,
:root .assurance-orbit span,
:root .assurance-inputs label span,
:root .assurance-output>span,
:root .assurance-stage-art>span,
:root .company-links a,
:root .credential-years span,
:root .credential-proof-links span,
:root .credential-principles span,
:root .credentials-facts dt,
:root .legal-draft,
:root .legal-contents a span,
:root .assurance-comparison small,
:root .credential-history-controls span,
:root .credential-history-controls small,
:root .assurance-bars>span,
:root .assurance-inputs #assurance-calculation-status,
:root .growth-landing .growth-small,
:root .growth-landing .growth-eyebrow,
:root .growth-hero-baseline,
:root .growth-step-output,
:root .growth-landing .growth-note,
:root .growth-form label,
:root .growth-form label span,
:root .growth-form #contact-form-status,
:root .growth-hero .growth-eyebrow,
:root .detail-view .ons-faq-number,
:root .industry-shell .ind-eyebrow,
:root .ind-hero-copy .ind-page-title,
:root .ind-hero-photo figcaption,
:root .ind-seal,
:root .ind-strip,
:root .ind-card .ind-card-index,
:root .ind-journey .ind-note,
:root .ind-case figure span,
:root .ind-related,
:root .ind-credit,
:root .industry-shell[data-industry=nightlife] .ind-strip,
:root .industry-shell[data-industry=nightlife] .ind-hero-photo figcaption,
:root .industry-shell[data-industry] .ind-strip,
:root .industry-shell .ind-tab span { font-size:var(--ons-label)!important; }

/* Reading copy and controls across every page template. */
:root { --ons-copy:18px; --ons-label:14px; --ons-control:16px; }
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) p,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) li,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) address,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) dd,
body .detail-intro,
body .ons-faq-answer p,
body .ons-faq-intro p,
body .ind-answer { font-size:var(--ons-copy)!important; line-height:1.75; }
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) button:not(.close):not(.case-close),
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) .cta,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) .text-link,
body .service-link,
body .back-link,
body .ind-button,
body .ind-text-link,
body .growth-button,
body .growth-text-link,
body .growth-card-link,
body .legal-contents a,
body .contact-service-choices span { font-size:var(--ons-control)!important; }
body .contact-story input:not([type=checkbox]),
body .contact-story textarea,
body .contact-story select,
body .growth-form input,
body .growth-form textarea { font-size:16px!important; line-height:1.5; }
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) label,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) legend,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) small,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) dt,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) figcaption,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) .eyebrow,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) .ind-eyebrow,
body :is(.detail-view,.trust-page,.legal-page,.archive-page,.archive-cta,.industry-shell,.growth-landing,#case-dialog) .growth-eyebrow,
body .contact-optional,
body .contact-send-note,
body #contact-form-status,
body .trust-page .trust-small,
body .trust-page .trust-callout,
body .growth-landing .growth-small,
body .growth-landing .growth-note,
body .ind-journey .ind-note,
body .case-note,
body .detail-social-footer > span,
body .detail-social-footer a,
body .archive-footer,
body .archive-footer a,
body .trust-footer,
body .company-links a,
body .chapter footer .ons-social-links a,
body .growth-footer { font-size:var(--ons-label)!important; line-height:1.6; }
body .ons-faq-question { line-height:1.4; }
body .contact-service-choices,
body .growth-service-tabs { flex-wrap:wrap; }
@media (max-width:900px) {
 :root { --ons-copy:16px; --ons-label:12px; --ons-control:16px; }
 body .archive-header .archive-nav { align-items:center; gap:12px 18px; flex-wrap:wrap; }
 body .archive-header .archive-nav > a,
 body .archive-header .archive-nav .ons-expertise-home,
 body .archive-header .archive-nav .ons-help-menu > summary {
  display:flex; align-items:center; font-size:16px!important;
  line-height:24px; min-height:44px; font-weight:400;
  padding-top:10px!important; padding-bottom:10px!important;
 }
 body header .archive-nav .ons-help-menu .ons-help-links a { font-size:14px!important; line-height:1.5!important; }
 body header .archive-nav .ons-help-menu .ons-help-links { max-width:calc(100vw - 32px); }
}
@media (min-width:901px) {
 body .archive-header .archive-nav { align-items:center; gap:24px; }
 body .archive-header .archive-nav > a,
 body .archive-header .archive-nav .ons-expertise-home,
 body .archive-header .archive-nav .ons-help-menu > summary {
  display:flex; align-items:center; font-size:18px!important;
  line-height:24px; min-height:44px; font-weight:400;
  padding-top:10px!important; padding-bottom:10px!important;
 }
 body header .ons-help-menu .ons-help-links a { font-size:16px!important; }
 body header .ons-help-menu .ons-help-links { width:290px; }
}
