/* Content layouts shared by expertise pages and the Insights library. */
.home-intro-row {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 90px;
  padding-top: 34px;
  align-items: start;
}
.hero-summary { font-size: 21px; line-height: 1.5; max-width: 620px; }
.home-intro-row .hero-location { margin-top: 28px; max-width: none; }
.home-intro-row .hero-actions { margin-top: 0; justify-self: end; }
.nav a.active { color: var(--blue); text-decoration: underline; text-underline-offset: 6px; }
.sector-band a { display: inline-block; padding: 6px 0; min-height: 32px; text-decoration: none; }
.sector-band a:hover { text-decoration: underline; text-underline-offset: 5px; }
.page-hero .lede { max-width: 750px; font-size: 21px; line-height: 1.5; }
.page-hero h1 { max-width: 1100px; font-size: clamp(48px, 6vw, 88px); letter-spacing: -.065em; }
.page-hero { padding-bottom: 60px; }
.page-hero + .section { padding-top: 55px; }
.split { display: grid; grid-template-columns: 1fr 1.35fr; gap: 80px; }
.split h2 { font-size: clamp(38px, 4vw, 62px); }
.split .lede { font-size: 21px; line-height: 1.55; }
.split p { max-width: 750px; }
.button-outline { border: 1px solid var(--ink); background: transparent; }
.button-outline:hover { background: var(--ink); color: white; }
.services-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px 60px; }
.services-grid article { border-top: 1px solid var(--line); padding-top: 24px; scroll-margin-top: 30px; }
.services-grid h3 { font-size: 32px; letter-spacing: -.045em; line-height: 1.15; margin: 25px 0 18px; }
.services-grid .number { font-size: 12px; font-weight: 700; }
.services-grid p { max-width: 590px; }
.services-grid.three { display: block; }
.services-grid.three article { display: grid; grid-template-columns: 1fr 1.5fr; column-gap: 70px; padding: 28px 0; }
.services-grid.three article > span { grid-column: 1; grid-row: 1; }
.services-grid.three h3 { grid-column: 1; grid-row: 2; margin: 16px 0 0; font-size: 29px; }
.services-grid.three p { grid-column: 2; grid-row: 1 / span 2; margin: 0; font-size: 18px; }
.services-grid.three article > a { grid-column: 2; margin-top: 12px; }
.sector-list { border-top: 1px solid var(--line); }
.sector-list a { display: grid; grid-template-columns: 45px 1fr 1.2fr 25px; gap: 15px; align-items: center; border-bottom: 1px solid var(--line); padding: 28px 0; text-decoration: none; }
.sector-list a:hover { color: var(--blue); }
.sector-list .row-no { font-size: 12px; }
.sector-list h3 { font-size: 28px; line-height: 1.15; letter-spacing: -.04em; margin: 0; }
.sector-list .row-desc { font-size: 15px; }
.role-list { margin: 0; padding: 0; list-style: none; }
.role-list li { display: flex; justify-content: space-between; border-top: 1px solid var(--line); padding: 22px 0; font-size: 22px; letter-spacing: -.025em; gap: 15px; }
.role-list li:last-child { border-bottom: 1px solid var(--line); }
.role-list span { display: none; }
.faq details { border-top: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; gap: 20px; cursor: pointer; padding: 24px 0; font-size: 21px; font-weight: 700; }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq details p { max-width: 850px; padding: 0 30px 20px 0; font-size: 18px; }
.cta { padding: 80px 0; background: var(--blue); color: var(--paper); }
.cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.cta h2 { font-size: clamp(40px, 4.5vw, 68px); letter-spacing: -.06em; line-height: 1.05; margin: 20px 0 0; }
.cta .button-outline { color: var(--ink); border: 0; background: var(--paper); }
.cta .button-outline:hover { background: var(--lime); }
.audience-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 55px; }
.insight-card { display: flex; flex-direction: column; align-items: start; padding: 30px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); text-decoration: none; }
.insight-card h2, .insight-card h3 { font-size: clamp(29px, 3vw, 44px); letter-spacing: -.045em; line-height: 1.12; margin: 30px 0 24px; }
.insight-card p { font-size: 17px; max-width: 550px; }
.insight-card .text-link { margin-top: auto; padding-top: 25px; }
.insight-card:hover h2, .insight-card:hover h3 { color: var(--blue); }
.homepage-insights { border-top: 1px solid var(--line); }
.article { max-width: 900px; padding-top: 70px; }
.article h1 { font-size: clamp(43px, 5.5vw, 76px); letter-spacing: -.055em; line-height: 1.07; margin: 28px 0; }
.article .lede { font-size: 23px; line-height: 1.5; max-width: 780px; }
.article-meta { border-top: 1px solid var(--line); padding-top: 20px; font-size: 13px; margin: 35px 0 65px; }
.article section { margin: 45px 0; }
.article.section section h2 { font-size: 31px; line-height: 1.2; letter-spacing: -.035em; margin-bottom: 18px; }
.article section p { font-size: 19px; line-height: 1.7; }
.article > .text-link { display: inline-block; min-height: 44px; margin-top: 20px; }
.breadcrumbs { flex-wrap: wrap; row-gap: 6px; }
.team-page > .section-heading { display: block; }
.team-page h1 { font-size: clamp(52px, 6vw, 90px); letter-spacing: -.06em; line-height: 1.02; margin: 28px 0; }
.team-page .lede { font-size: 21px; }
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 50px 22px; }
.team-grid .person h2 { font-size: 25px; line-height: 1.15; letter-spacing: -.04em; margin: 20px 0 8px; }
.team-grid .person p { min-height: 40px; }
.team-grid .person a { overflow-wrap: anywhere; }
.direct-contact h3 { border-top: 1px solid var(--line); margin: 0; padding-top: 24px; font-size: 27px; }
.direct-contact h3:not(:first-child) { margin-top: 30px; }
.direct-contact h3 span { font-size: 13px; font-weight: 400; margin-left: 14px; }
.direct-contact a { display: block; padding: 9px 0; min-height: 44px; font-size: 21px; overflow-wrap: anywhere; text-decoration: none; }
.direct-contact a:hover { color: var(--blue); text-decoration: underline; }
@media (max-width: 1100px) {
  .team-grid { grid-template-columns: repeat(3, 1fr); }
  .home-intro-row { gap: 40px; }
  .split { gap: 40px; }
}
@media (max-width: 820px) {
  .home-intro-row { grid-template-columns: 1fr; gap: 28px; }
  .home-intro-row .hero-actions { justify-self: start; }
  .hero-summary { max-width: 700px; }
  .split { grid-template-columns: 1fr; gap: 20px; }
  .services-grid.three article { column-gap: 35px; }
  .sector-list a { grid-template-columns: 32px 1fr 25px; }
  .sector-list .row-desc { grid-column: 2; grid-row: 2; }
  .sector-list .arrow { grid-column: 3; grid-row: 1; }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .audience-grid { gap: 30px; }
}
@media (max-width: 550px) {
  .page-hero h1 { font-size: clamp(42px, 11vw, 58px); }
  .hero-summary, .page-hero .lede, .split .lede { font-size: 18px; }
  .home-intro-row { padding-top: 26px; gap: 20px; }
  .home-intro-row .hero-location { margin-top: 22px; }
  .services-grid, .audience-grid { grid-template-columns: 1fr; gap: 38px; }
  .services-grid.three article { display: block; padding: 25px 0; }
  .services-grid.three h3 { margin: 16px 0; font-size: 27px; }
  .services-grid.three p { font-size: 17px; }
  .sector-list h3 { font-size: 25px; }
  .sector-list .row-desc { font-size: 14px; }
  .role-list li { font-size: 19px; }
  .faq summary { font-size: 18px; }
  .faq details p { font-size: 16px; }
  .cta { padding: 60px 0; }
  .cta-inner { align-items: start; flex-direction: column; gap: 30px; }
  .article { padding-top: 45px; }
  .article .lede { font-size: 20px; }
  .article-meta { margin-bottom: 45px; }
  .article.section section h2 { font-size: 27px; }
  .article section p { font-size: 17px; }
  .team-grid { gap: 35px 12px; }
  .team-grid .person h2 { font-size: 20px; }
  .team-page .lede { font-size: 18px; }
  .direct-contact a { font-size: 20px; }
}

/* Same layouts, original blue/navy colour treatment. */
.nav a.active { color: var(--reference-rust-text); }
.cta { background: var(--reference-blue); color: var(--ink); }
.cta .button-outline { background: var(--reference-navy); color: white; }
.cta .button-outline:hover { background: var(--reference-rust-text); color: white; }
.insight-card:hover { background: var(--light); }
