/* Restore rem sizing overridden by Bootstrap 3's 10px root. */
html { font-size: 100%; }

/* Readability and publication-figure refinements */
body {
  font-size: 20px !important;
}

.site-header {
  min-height: 72px !important;
}

.site-header .site-nav a {
  font-size: 1.16rem !important;
  font-weight: 700 !important;
  padding: .62rem .72rem !important;
}

.site-header .nav-contact {
  font-size: 1.16rem !important;
}

.wrapper:not(.homepage-wrapper) .main-wrapper {
  font-size: 1.08rem !important;
}

.wrapper:not(.homepage-wrapper) .page-intro {
  font-size: 1.22rem !important;
  line-height: 1.72 !important;
}

.wrapper:not(.homepage-wrapper) .content-card p,
.wrapper:not(.homepage-wrapper) .details,
.wrapper:not(.homepage-wrapper) .publication-item p,
.wrapper:not(.homepage-wrapper) .item p,
.wrapper:not(.homepage-wrapper) .contact-note p {
  font-size: 1.1rem !important;
  line-height: 1.72 !important;
}

.wrapper:not(.homepage-wrapper) .content-card h3,
.wrapper:not(.homepage-wrapper) .publication-item h3 {
  font-size: 1.75rem !important;
}

.wrapper:not(.homepage-wrapper) .section-title {
  font-size: 2rem !important;
}

.wrapper:not(.homepage-wrapper) .tag-list {
  gap: .75rem !important;
}

.wrapper:not(.homepage-wrapper) .tag {
  padding: .76rem 1.12rem !important;
  font-size: 1.14rem !important;
  line-height: 1.3 !important;
}

body .homepage-wrapper .home-kicker {
  font-size: 1rem !important;
}

body .homepage-wrapper .home-lead {
  font-size: 1.42rem !important;
  line-height: 1.62 !important;
}

body .homepage-wrapper .home-context {
  font-size: 1.28rem !important;
  line-height: 1.76 !important;
}

body .homepage-wrapper .home-profile-links a {
  font-size: 1.12rem !important;
}

body .homepage-wrapper .home-section-heading h2 {
  font-size: clamp(2.55rem, 3.2vw, 3.5rem) !important;
}

body .homepage-wrapper .home-text-link {
  font-size: 1.22rem !important;
}

body .homepage-wrapper .home-defence-label {
  font-size: 1.04rem !important;
}

body .homepage-wrapper .home-defence-callout p:last-child {
  font-size: 1.34rem !important;
}

body .homepage-wrapper .home-feature-card {
  min-height: 375px !important;
  padding: 40px 36px !important;
}

body .homepage-wrapper .home-feature-card h3 {
  font-size: 2.08rem !important;
}

body .homepage-wrapper .home-feature-card p {
  font-size: 1.28rem !important;
  line-height: 1.74 !important;
}

body .homepage-wrapper .home-card-link {
  font-size: 1.2rem !important;
}

body .homepage-wrapper .home-capability-grid h3,
body .homepage-wrapper .home-experience-grid h3 {
  font-size: 1.72rem !important;
}

body .homepage-wrapper .home-capability-grid p,
body .homepage-wrapper .home-experience-grid article > p:last-child,
body .homepage-wrapper .home-industry-bridge {
  font-size: 1.24rem !important;
  line-height: 1.74 !important;
}

body .homepage-wrapper .home-experience-org {
  font-size: 1.22rem !important;
}

body .homepage-wrapper .home-experience-time {
  font-size: 1.06rem !important;
}

body .homepage-wrapper .home-publication {
  grid-template-columns: minmax(430px, .82fr) minmax(0, 1.42fr) !important;
  min-height: 520px !important;
}

body .homepage-wrapper .home-publication-visual {
  min-height: 520px !important;
  padding: 0 !important;
  background: #fff !important;
}

body .homepage-wrapper .home-publication-plot {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 520px !important;
  object-fit: cover !important;
  object-position: center !important;
  background: var(--surface-soft) !important;
}

body .homepage-wrapper .home-publication-body h2 {
  font-size: clamp(2.45rem, 3vw, 3.45rem) !important;
  line-height: 1.08 !important;
}

body .homepage-wrapper .home-publication-meta {
  font-size: 1.1rem !important;
}

body .homepage-wrapper .home-publication-body > p:not(.home-publication-meta) {
  font-size: 1.32rem !important;
  line-height: 1.75 !important;
}

body .homepage-wrapper .home-publication-actions a {
  font-size: 1.24rem !important;
}

body .homepage-wrapper .home-contact-cta h2 {
  font-size: clamp(2.35rem, 3vw, 3.25rem) !important;
}

body .homepage-wrapper .home-contact-cta > div > p:last-child {
  font-size: 1.26rem !important;
  line-height: 1.72 !important;
}

body .homepage-wrapper .home-button {
  font-size: 1.08rem !important;
}

@media (max-width: 1050px) {
  body .homepage-wrapper .home-publication {
    grid-template-columns: 1fr !important;
  }
  body .homepage-wrapper .home-publication-visual,
  body .homepage-wrapper .home-publication-plot {
    min-height: 420px !important;
  }
}

@media (max-width: 760px) {
  body { font-size: 18px !important; }
  .site-header { min-height: 64px !important; }
  .site-header .site-nav a { font-size: 1.05rem !important; }
  body .homepage-wrapper .home-lead { font-size: 1.24rem !important; }
  body .homepage-wrapper .home-context { font-size: 1.14rem !important; }
  body .homepage-wrapper .home-feature-card {
    min-height: 0 !important;
    padding: 30px 25px !important;
  }
  body .homepage-wrapper .home-feature-card h3 { font-size: 1.78rem !important; }
  body .homepage-wrapper .home-feature-card p { font-size: 1.14rem !important; }
  body .homepage-wrapper .home-publication-visual,
  body .homepage-wrapper .home-publication-plot { min-height: 340px !important; }
  body .homepage-wrapper .home-publication-body h2 { font-size: 2.15rem !important; }
  body .homepage-wrapper .home-publication-body > p:not(.home-publication-meta) { font-size: 1.15rem !important; }
}

/* Keep supporting copy readable and let larger navigation labels wrap. */
body .homepage-wrapper .home-eyebrow,
body .homepage-wrapper .home-section-kicker,
body .homepage-wrapper .home-capabilities-label,
body .homepage-wrapper .home-contact-cta .home-kicker,
.site-footer,
.site-footer a,
.site-footer p {
  font-size: 1rem !important;
  line-height: 1.6;
}
.site-nav { flex-wrap: wrap; align-items: center; }
body .homepage-wrapper .home-feature-card,
body .homepage-wrapper .home-capability-grid article,
body .homepage-wrapper .home-experience-grid article {
  overflow-wrap: break-word;
}
@media (max-width: 600px) {
  body .homepage-wrapper .home-hero-copy h1 {
    font-size: clamp(2rem, 8vw, 2.9rem) !important;
    overflow-wrap: break-word;
  }
}
