/* Shared portfolio type scale. Loaded after page styles and before mobile overrides. */
:root{
  --type-micro:11px;
  --type-nav:10px;
  --type-brand:11px;
  --type-caption:16px;
  --type-body:20px;
  --type-body-emphasis:20px;
  --type-feature-heading:48px;
  --type-section-heading:48px;
  --type-project-heading:96px;
  --body-primary:#f2f1ec;
  --body-secondary:#8d8c87;
}

/* Two shared body treatments: identical type metrics, distinct emphasis. */
.body-primary,
.body-1{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  color:var(--body-primary)!important;
}
.body-secondary,
.body-2{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  color:#8d8c87!important;
}

/* Editorial ledes use the lighter display weight consistently site-wide. */
body .lede{font-weight:300!important}

/* IBM Plex Sans is the single reading-text style site-wide. */
.shell main p,
.shell main dd,
.shell main figcaption small,
.shell main figcaption>span:not(:first-child),
.shell main .media-caption small,
.shell main .activity-metric-description{
  font-size:var(--type-body)!important;
  line-height:1.5!important;
}

/* Shared case-study hierarchy: keep custom layouts, collapse incidental type drift. */
.case-study-page main .section>.label,
.case-study-page main .section>.eyebrow,
.case-study-page main .section .tag,
.case-study-page main .section [class$="-kicker"],
.case-study-page main .section figcaption>b:first-child,
.case-study-page main .section figcaption>span:first-child,
.case-study-page main .section .media-caption>span:first-child{
  font-size:var(--type-brand)!important;
  line-height:1.4!important;
}
.case-study-page main .section p,
.case-study-page main .section .lede,
.case-study-page main .section figcaption>span:not(:first-child),
.case-study-page main .section figcaption>small,
.case-study-page main .section .media-caption>small,
.case-study-page main .section [class$="-copy"] p,
.case-study-page main .section [class$="-principles"] p,
.case-study-page main .section [class$="-card"] p{
  font-size:var(--type-body)!important;
  line-height:1.5!important;
}
.case-study-page main .section h4,
.case-study-page main .section figcaption>strong,
.case-study-page main .section .media-caption>strong,
.case-study-page main .section [class$="-card"]>strong,
.case-study-page main .section [class$="-copy"]>strong{
  font-size:var(--type-body-emphasis)!important;
  line-height:1.25!important;
}

body .brand{font-size:var(--type-brand)}
body nav a{font-size:var(--type-nav)}
body .eyebrow,
body .section-num,
body .label,
body .tag,
body .next-label,
body .role-grid dt,
body .meta dt{font-size:var(--type-micro)}
body .role-grid dd,
body .meta dd{font-size:var(--type-caption);line-height:1.4}

body .hero-copy p{font-size:var(--type-body-emphasis)}
body .copy-grid h3,
body .copy h3{font-size:var(--type-body-emphasis)}
body .copy-grid p,
body .copy p,
body .feature p{font-size:var(--type-body);line-height:1.5}
body .feature h3{font-size:var(--type-feature-heading)}
body .section h2{font-size:var(--type-section-heading)}
body .caption,
body .media-caption,
body .process-item figcaption span{font-size:var(--type-caption);line-height:1.45}

/* Lab system text intentionally uses one desktop size. */
body .lab-shell .project-count,
body .lab-shell .project-meta,
body .lab-shell .project-meta span,
body .lab-shell .project-visual figcaption,
body .lab-shell .experiment-number,
body .lab-shell .experiment-type,
body .lab-shell .experiment-status,
body .lab-shell .viewer-chrome,
body .lab-shell .viewer-kicker,
body .lab-shell .project-story dt{font-size:11px;line-height:1.45}
body .lab-shell .project-story dd{font-size:var(--type-body)}

/* Roche uses the shared editorial scale across its custom modules. */
.roche-page .case-reveal-label,
.roche-page .device-before-label,
.roche-page .device-before li span,
.roche-page .device-outcome>span,
.roche-page .stat-label,
.roche-page .journey-head,
.roche-page .logic-key,
.roche-page .logic-no,
.roche-page .activity-metric-ring span,
.roche-page .activity-metric-copy span,
.roche-page .activity-metric-ring small,
.roche-page .activity-screen figcaption span,
.roche-page .activity-principles span,
.roche-page .companion-key span,
.roche-page .companion-hero figcaption span,
.roche-page .companion-scene figcaption,
.roche-page .companion-principles span,
.roche-page .device-branch::before,
.roche-page .device-recovery>span,
.roche-page .approach-panel-head span,
.roche-page .flow-node small,
.roche-page .relevance-inputs button span,
.roche-page .relevance-engine>span,
.roche-page .relevance-output>span,
.roche-page .flow-lane-label,
.roche-page .flow-card small,
.roche-page .flow-decision span,
.roche-page .zoomable-media::after,
.roche-page .feature-video::after,
.roche-page .diagram-pan-frame::after{font-size:var(--type-micro);line-height:1.35}

.roche-page .case-reveal p,
.roche-page .device-outcome p,
.roche-page .activity-intro,
.roche-page .companion-intro>p,
.roche-page .monitoring-intro{font-size:var(--type-body);line-height:1.55}

.roche-page .device-before li small,
.roche-page .logic-node p,
.roche-page .activity-metric-copy small,
.roche-page .activity-principles p,
.roche-page .companion-moments figcaption p,
.roche-page .companion-principles p,
.roche-page .activity-screen figcaption small,
.roche-page .flow-node span,
.roche-page .flow-card span,
.roche-page .architecture-zones span,
.roche-page .relevance-engine small{font-size:var(--type-caption);line-height:1.45}

.roche-page .device-before li b,
.roche-page .logic-node h4,
.roche-page .device-flow .logic-node h4,
.roche-page .logic-caption strong,
.roche-page .activity-screen figcaption strong,
.roche-page .approach-panel-head b,
.roche-page .flow-node strong,
.roche-page .flow-card strong,
.roche-page .relevance-output li strong{font-size:var(--type-body);line-height:1.2}

.roche-page .case-reveal h3,
.roche-page .device-outcome h4,
.roche-page .feature-copy h3{font-size:var(--type-feature-heading)}
.roche-page .activity-heading .feature-copy h3,
.roche-page .companion-heading h3{font-size:var(--type-section-heading)}
.roche-page .process-item figcaption strong,
.roche-page .approach-diagram figcaption strong{font-size:var(--type-body-emphasis)}
.roche-page .process-item figcaption span,
.roche-page .approach-diagram figcaption span{font-size:var(--type-caption)}

/* Strict Roche hierarchy: remove module-by-module type drift. */
.roche-page main .section h3,
.roche-page main .section .feature-copy h3,
.roche-page main .section .activity-heading .feature-copy h3,
.roche-page main .section .companion-heading h3{
  font-size:var(--type-feature-heading)!important;
  line-height:1.02!important;
}
.roche-page main .section h4{
  font-size:var(--type-body-emphasis)!important;
  line-height:1.2!important;
}
.roche-page main .section p:not(.lede){
  font-size:var(--type-body)!important;
  line-height:1.5!important;
}
.roche-page main .section small,
.roche-page main .section figcaption,
.roche-page main .section figcaption p,
.roche-page main .section .logic-node p,
.roche-page main .section .flow-node span,
.roche-page main .section .flow-card span,
.roche-page main .section .architecture-zones span,
.roche-page main .section .relevance-engine small,
.roche-page main .section .activity-screen figcaption small{
  font-size:var(--type-caption)!important;
  line-height:1.45!important;
}
.roche-page main .section .tag,
.roche-page main .section .caption,
.roche-page main .section [class$="-label"],
.roche-page main .section [class*="-label "],
.roche-page main .section .logic-no,
.roche-page main .section .flow-node small,
.roche-page main .section .flow-card small,
.roche-page main .section .flow-lane-label,
.roche-page main .section .experiment-number{
  font-size:var(--type-micro)!important;
  line-height:1.35!important;
}
.roche-page main .section .process-item figcaption strong,
.roche-page main .section .approach-diagram figcaption strong,
.roche-page main .section .logic-caption strong,
.roche-page main .section .activity-screen figcaption strong{
  font-size:var(--type-body-emphasis)!important;
}
.roche-page main .activity-metric-description{
  margin:0!important;
  max-width:34rem;
  color:#a6a8a5!important;
  font-size:var(--type-body-emphasis)!important;
  line-height:1.45!important;
}

/* Diabetes care: one display size, one reading size, one metadata size. */
.roche-page main .monitoring-section>.tag,
.roche-page main .monitoring-path b,
.roche-page main .monitoring-phone-stage figcaption span{
  font-size:11px!important;
  line-height:1.4!important;
}
.roche-page main .monitoring-intro,
.roche-page main .monitoring-path strong,
.roche-page main .monitoring-path span,
.roche-page main .monitoring-phone-stage figcaption strong,
.roche-page main .monitoring-phone-stage figcaption small{
  font-size:var(--type-body)!important;
  line-height:1.45!important;
}
.roche-page main .activity-story .activity-screen figcaption span,
.roche-page main .companion-principles span{
  font-size:11px!important;
  line-height:1.4!important;
}
.roche-page main .activity-story .activity-screen figcaption strong,
.roche-page main .activity-story .activity-screen figcaption small,
.roche-page main .companion-principles p{
  font-size:var(--type-body)!important;
  line-height:1.45!important;
}
.roche-page main .character-journey>figcaption,
.roche-page main .character-role-gallery figure>figcaption{
  font-size:11px!important;
  line-height:1.4!important;
}

/* Portfolio-wide consolidation: one utility, caption, body and emphasis scale. */
body .case-index,
body .case-label,
body .case-caption,
body .project-notes span,
body .case-panel>span,
body .case-meta dt,
body .role-grid dt,
body .meta dt,
body .stat-label,
body .next-label{
  font-size:var(--type-micro)!important;
  line-height:1.4!important;
}

body .case-panel p,
body .case-intro>p,
body .case-gallery-intro>p,
body .project-notes p,
body .journey-briefs p{
  font-size:var(--type-body)!important;
  line-height:1.5!important;
}

body .role-grid dd,
body .case-meta dd,
body .meta dd{
  font-size:var(--type-caption)!important;
  line-height:1.4!important;
}

body .case-panel h3,
body .project-notes h3,
body .journey-briefs h4,
body .copy-grid h3,
body .copy h3{
  font-size:var(--type-body-emphasis)!important;
  line-height:1.25!important;
}

body figcaption,
body .caption,
body .media-caption{
  font-size:var(--type-caption);
  line-height:1.45;
}

/* REX is the master five-role case-study system. No intermediate sizes. */
.rex-page .hero h1{
  font-size:var(--type-project-heading)!important;
  line-height:.86!important;
}

.rex-page .hero-copy h2,
.rex-page .section h2,
.rex-page .section h3,
.rex-page .quote blockquote,
.rex-page .next h2,
.rex-page .next .arrow{
  font-size:var(--type-feature-heading)!important;
  line-height:1.05!important;
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-weight:300!important;
  letter-spacing:-.035em!important;
}

.rex-page .hero-copy>p,
.rex-page .section p,
.rex-page .section .lede,
.rex-page .section h4,
.rex-page .section .principle-copy h4,
.rex-page .section .brand-strategy-block strong,
.rex-page .section .journey-briefs h4,
.rex-page .section .journey-media-pair figcaption strong{
  font-size:var(--type-body)!important;
  line-height:1.38!important;
}

.rex-page .section p,
.rex-page .section p.lede{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  color:#c9c8c2!important;
}

.rex-page .section .principle-copy h4,
.rex-page .section .growth-stats h3{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  color:#c9c8c2!important;
}

.rex-page .role-grid dd,
.rex-page .section figcaption,
.rex-page .section figcaption span,
.rex-page .section .hotspot span{
  font-size:var(--type-caption)!important;
  line-height:1.45!important;
}

.rex-page .eyebrow,
.rex-page .role-grid dt,
.rex-page .section-num,
.rex-page .section .tag,
.rex-page .section .principle-copy b,
.rex-page .section .brand-strategy-block b,
.rex-page .section .brand-story-copy>span,
.rex-page .section figcaption b,
.rex-page .section .carousel-slide figcaption,
.rex-page .section .growth-support-grid figcaption,
.rex-page .quote cite,
.rex-page .next-label{
  font-size:var(--type-micro)!important;
  line-height:1.4!important;
}

/* REX media captions use eyebrow + body + caption, with no legacy display styling. */
.rex-page .journey-media-pair figcaption{
  display:grid!important;
  gap:10px!important;
  max-width:760px!important;
  margin:0!important;
  padding:18px 0 0!important;
  border-top:1px solid var(--line)!important;
  background:transparent!important;
}

.rex-page .journey-media-pair figure{
  padding-top:0!important;
}

.rex-page .journey-media-pair figcaption>b,
.rex-page .carousel-slide figcaption,
.rex-page .growth-support-grid figcaption{
  font-family:"IBM Plex Mono",monospace!important;
  font-size:var(--type-micro)!important;
  font-weight:400!important;
  line-height:1.4!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
  color:#8d8c87!important;
}

.rex-page .journey-media-pair figcaption>strong{
  margin:0!important;
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  color:#c9c8c2!important;
}

.rex-page .journey-media-pair figcaption>span{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-caption)!important;
  font-weight:400!important;
  line-height:1.45!important;
  letter-spacing:normal!important;
  color:#8d8c87!important;
}

.rex-page .growth-support-grid figcaption{
  padding:16px 18px!important;
}

/* A visibly simpler editorial hierarchy across every case-study template. */
.case-study-page .hero h1,
.case-study-page .case-hero h1,
.roche-page .project-hero h1,
.roche-page .case-hero h1{
  font-size:var(--type-project-heading)!important;
  line-height:.86!important;
  font-weight:300!important;
}

.case-study-page .hero-copy h2,
.case-study-page .case-hero h2,
.roche-page .hero-copy h2,
.roche-page .case-hero h2{
  font-size:var(--type-feature-heading)!important;
  line-height:1!important;
  font-weight:300!important;
}

.case-study-page .section h2,
.roche-page .section h2{
  font-size:var(--type-section-heading)!important;
  line-height:.98!important;
}

.choosi-case .case-quote blockquote{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-section-heading)!important;
  font-weight:300!important;
  line-height:.98!important;
  letter-spacing:-.025em!important;
}

.case-study-page .section h3,
.roche-page .section h3{
  font-size:var(--type-feature-heading)!important;
  line-height:1.05!important;
}

.case-study-page .section h4,
.roche-page .section h4,
body .project-notes h3,
body .journey-briefs h4{
  font-size:var(--type-body-emphasis)!important;
  line-height:1.25!important;
}

.case-study-page .section p,
.roche-page .section p,
.case-study-page .section dd,
.roche-page .section dd{
  font-size:var(--type-body)!important;
  line-height:1.5!important;
}

@media(max-width:700px){
  :root{
    --type-caption:15px;
    --type-body:18px;
    --type-body-emphasis:18px;
    --type-feature-heading:36px;
    --type-section-heading:36px;
    --type-project-heading:66px;
  }
  body .lab-shell .project-count,
  body .lab-shell .project-meta,
  body .lab-shell .project-meta span,
  body .lab-shell .project-visual figcaption,
  body .lab-shell .experiment-number,
  body .lab-shell .experiment-type,
  body .lab-shell .experiment-status,
  body .lab-shell .viewer-chrome,
  body .lab-shell .viewer-kicker,
  body .lab-shell .project-story dt{font-size:10px}
}

/* Master portfolio typography: the five roles established on REX. */
body .shell h1,
body .lab-shell h1{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-project-heading)!important;
  font-weight:300!important;
  line-height:.86!important;
  letter-spacing:-.055em!important;
}

@media(min-width:701px){
  html body.home-page .shell .hero h1,
  html body .shell main > .hero h1,
  html body .shell main .contact-hero h1,
  html body .lab-shell main .lab-hero h1,
  html body.case-study-page .shell .hero h1,
  html body.case-study-page .shell .case-hero h1,
  html body.roche-page .shell .project-hero h1,
  html body.roche-page .shell .case-hero h1{
    font-size:96px!important;
  }
}

body .shell h2,
body .shell h3,
body .lab-shell h2,
body .lab-shell h3{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-feature-heading)!important;
  font-weight:300!important;
  line-height:1.05!important;
  letter-spacing:-.035em!important;
}

body .shell p,
body .shell li,
body .shell h4,
body .lab-shell p,
body .lab-shell li,
body .lab-shell h4{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}

/* Body Primary is white; Body Secondary carries descriptive copy in gray. */
body .shell h4,
body .lab-shell h4{
  color:var(--body-primary)!important;
}
body .shell p,
body .shell li,
body .lab-shell p,
body .lab-shell li{
  color:var(--body-secondary)!important;
}

body .shell figcaption,
body .shell figcaption span,
body .shell small,
body .shell dd,
body .shell .caption,
body .shell .media-caption,
body .lab-shell figcaption,
body .lab-shell small,
body .lab-shell dd{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-caption)!important;
  font-weight:400!important;
  line-height:1.45!important;
  letter-spacing:normal!important;
}

body .shell .eyebrow,
body .shell .section-num,
body .shell .tag,
body .shell dt,
body .shell figcaption>b,
body .shell .next-label,
body .lab-shell .project-count,
body .lab-shell .project-meta,
body .lab-shell .experiment-number,
body .lab-shell .experiment-type,
body .lab-shell .experiment-status,
body .lab-shell .viewer-kicker,
body .lab-shell dt{
  font-family:"IBM Plex Mono",monospace!important;
  font-size:var(--type-micro)!important;
  font-weight:400!important;
  line-height:1.4!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
}

/* Components intentionally use body copy rather than display headings. */
.rex-page .section .principle-copy h4,
.rex-page .section .growth-stats h3,
.mgo-page .section .copy-grid h3,
.case-study-page .section .copy-grid h3,
.case-study-page .section .journey-briefs h4,
.roche-page .section .project-notes h3{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  color:var(--body-primary)!important;
}

@media(max-width:700px){
  body .shell h1,
  body .lab-shell h1{font-size:var(--type-project-heading)!important}
  body .shell h2,
  body .shell h3,
  body .lab-shell h2,
  body .lab-shell h3{font-size:var(--type-feature-heading)!important}
}

/* Roche diagram and screen labels remain eyebrows inside composite captions. */
.roche-page .activity-screen figcaption>span,
.roche-page .character-journey>figcaption>span,
.roche-page .character-role-gallery figure>figcaption{
  font-family:"IBM Plex Mono",monospace!important;
  font-size:var(--type-micro)!important;
  font-weight:400!important;
  line-height:1.4!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
}

.case-study-page .section p.lede{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  color:#c9c8c2!important;
}

/* Innit narrative labels and impact copy use the shared body role. */
.innit-page .platform-story strong,
.innit-page .platform-example .example-name,
.innit-page .section .copy-grid p{
  display:block;
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  text-transform:none!important;
}
.innit-page .platform-story strong,
.innit-page .platform-example .example-name{
  color:var(--body-primary)!important;
}
.innit-page .section .copy-grid p{
  color:var(--body-secondary)!important;
}

.mgo-page .section p.lede,
.mgo-page .section .copy-grid p{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}

.baxter-case .case-panel.body-panel h3,
.baxter-case .case-panel.body-panel p,
.dropoff-case .case-panel.body-panel h3,
.dropoff-case .case-panel.body-panel p,
.hangar-case .case-panel.body-panel h3,
.hangar-case .case-panel.body-panel p,
.choosi-case .case-panel.body-panel h3,
.choosi-case .case-panel.body-panel p,
.visible-case .case-panel.body-panel h3,
.visible-case .case-panel.body-panel p,
.dhkrahn-case .case-panel.body-panel h3,
.dhkrahn-case .case-panel.body-panel p{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}
.baxter-case .case-panel.body-panel h3,
.dropoff-case .case-panel.body-panel h3,
.hangar-case .case-panel.body-panel h3,
.choosi-case .case-panel.body-panel h3,
.visible-case .case-panel.body-panel h3,
.dhkrahn-case .case-panel.body-panel h3{
  color:var(--body-primary)!important;
}
.baxter-case .case-panel.body-panel p,
.dropoff-case .case-panel.body-panel p,
.hangar-case .case-panel.body-panel p,
.choosi-case .case-panel.body-panel p,
.visible-case .case-panel.body-panel p,
.dhkrahn-case .case-panel.body-panel p{
  color:var(--body-secondary)!important;
}

/* Innit health case-study label stays compact while its explanation uses body copy. */
.innit-page .health-example .example-details > div:first-child,
.innit-page .health-example .example-details > div:first-child b{
  font-size:11px!important;
}
.innit-page .health-example .example-details > div:first-child p{
  font-size:var(--type-body)!important;
  line-height:1.38!important;
}

/* Roche approach-card titles are supporting body copy, not feature headings. */
.roche-page .approach-cards h3{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}

/* Consistent heading-to-body rhythm within Roche feature narratives. */
.roche-page .feature-copy h3{
  margin-bottom:20px!important;
}
.roche-page .feature-copy h3 + p{
  margin-top:0!important;
}

/* Preserve the diagrams' original compact internal type scale. */
.roche-page .research-service-flow small{
  font:7px/1.15 "IBM Plex Mono",monospace!important;
  letter-spacing:.09em!important;
}
.roche-page .research-service-flow strong{
  font-size:15px!important;
  font-weight:400!important;
  line-height:normal!important;
}
.roche-page .research-service-flow span{
  font-size:9px!important;
  line-height:1.35!important;
}
.roche-page .device-flow .logic-node h4{
  font-size:17px!important;
  line-height:1.25!important;
}
.roche-page .device-flow .logic-node p{
  font-size:11px!important;
  line-height:1.45!important;
}
.roche-page .device-flow .logic-node small{
  font-size:8px!important;
  line-height:1.3!important;
}
.roche-page .wireframe-map-v2 h4,
.roche-page .wireframe-map-v2 p{
  font-size:16px!important;
  line-height:1.45!important;
  letter-spacing:normal!important;
}
.roche-page .wireframe-map-v2 small,
.roche-page .wireframe-map-v2 figcaption{
  font-size:7px!important;
  line-height:1.3!important;
}

/* Explicit review roles for REX. */
.rex-page .brand-principle .principle-copy h4,
.rex-page .growth-stats h3{
  color:var(--body-primary)!important;
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}
.rex-page .brand-principle .principle-copy p{
  color:var(--body-secondary)!important;
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}

/* Named Innit examples function as section headings. */
.innit-page .platform-example .example-name{
  display:block!important;
  margin:0 0 20px!important;
  color:var(--body-primary)!important;
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-section-heading)!important;
  font-weight:300!important;
  line-height:1.04!important;
  letter-spacing:-.025em!important;
}

/* Reviewed legacy panels: remove secondary eyebrows and use body typography. */
.baxter-case .case-panels .case-panel:nth-child(n+2) > span,
.dropoff-case .case-panels .case-panel:nth-child(n+2) > span,
.hangar-case .case-panels .case-panel:nth-child(n+2) > span,
.choosi-case .case-panels .case-panel:nth-child(n+2) > span,
.visible-case .case-panels .case-panel:nth-child(n+2) > span,
.dhkrahn-case .case-panels .case-panel:nth-child(n+2) > span{
  display:none!important;
}
.baxter-case .case-panels .case-panel:nth-child(n+2) h3,
.dropoff-case .case-panels .case-panel:nth-child(n+2) h3,
.hangar-case .case-panels .case-panel:nth-child(n+2) h3,
.choosi-case .case-panels .case-panel:nth-child(n+2) h3,
.visible-case .case-panels .case-panel:nth-child(n+2) h3,
.dhkrahn-case .case-panels .case-panel:nth-child(n+2) h3,
.baxter-case .case-panels .case-panel:nth-child(n+2) p,
.dropoff-case .case-panels .case-panel:nth-child(n+2) p,
.hangar-case .case-panels .case-panel:nth-child(n+2) p,
.choosi-case .case-panels .case-panel:nth-child(n+2) p,
.visible-case .case-panels .case-panel:nth-child(n+2) p,
.dhkrahn-case .case-panels .case-panel:nth-child(n+2) p{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}
.hangar-case .case-section .case-lede,
.dhkrahn-case .case-section .case-lede,
.choosi-case .case-section .case-lede,
.baxter-case .case-section .case-lede,
.dropoff-case .case-section .case-lede,
.visible-case .case-section .case-lede{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
  color:var(--body-secondary)!important;
}

/* Recurring case-study testimonials and next-project names use the H2 role. */
body.case-study-page .quote blockquote,
body.case-study-page .quote h2,
body.roche-page .quote blockquote,
body.roche-page .quote h2,
body.legacy-case .case-quote blockquote,
body.legacy-case .case-quote h2,
body.case-study-page main > .next h2,
body.case-study-page main > a > .next h2,
body.roche-page main > a > .next h2,
body.roche-page main > .next h2,
body.legacy-case main > .case-next h2{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-section-heading)!important;
  font-weight:300!important;
  line-height:.98!important;
  letter-spacing:-.025em!important;
}

body.case-study-page .quote h2,
body.roche-page .quote h2,
body.legacy-case .case-quote h2{
  grid-column:2;
  max-width:1100px;
  margin:0;
}

@media(max-width:850px){
  body.case-study-page .quote h2,
  body.roche-page .quote h2,
  body.legacy-case .case-quote h2{grid-column:1}
}

/* About and contact lead statements use the H2 visual role. */
body:not(.case-study-page) .hero-copy,
body:not(.case-study-page) h2.contact-intro{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-section-heading)!important;
  font-weight:300!important;
  line-height:1.04!important;
  letter-spacing:-.025em!important;
}

/* Lab review roles. */
.lab-shell main .lab-hero-copy > h2,
.lab-shell main .lab-provocation > h2,
.lab-shell main #active-projects-title,
.lab-shell main #experiment-title,
.lab-shell main .project-story > h2{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-section-heading)!important;
  font-weight:300!important;
  line-height:1.04!important;
  letter-spacing:-.025em!important;
}
.lab-shell main .lab-hero-copy > h2{
  max-width:760px;
  margin:0;
  color:#d6d4ce;
}
.lab-shell main .lab-provocation > h2{
  position:relative;
  z-index:1;
  max-width:5ch;
  margin:0 clamp(62px,5vw,84px) 0 auto;
  color:var(--body-primary);
}
.lab-shell main .project-story > h2{
  max-width:none;
  margin:38px 0 18px;
}
.lab-shell main .project-story > p,
.lab-shell main .project-link strong{
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}
.lab-shell main .project-link small{
  font-family:"IBM Plex Mono",monospace!important;
  font-size:var(--type-micro)!important;
  line-height:1.4!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}

/* Explicit body roles always outrank contextual lede/component styling. */
body .body-1{
  color:var(--body-primary)!important;
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}
body .body-2,
body.case-study-page main .section .body-2,
body.roche-page main .section .body-2,
body.rex-page main .section .body-2,
html body main .section .body-2.body-2,
html body .section p.lede.body-2,
html body .body-2.body-2.body-2.body-2{
  color:#8d8c87!important;
  font-family:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.38!important;
  letter-spacing:normal!important;
}
