/* One image-free banner system for every published page except the home page. */
.inner-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 0;
  padding: 30px 0 62px;
  background: #1c2a32;
  color: #fff;
}
.inner-hero::before {
  position: absolute;
  z-index: -1;
  top: -440px;
  right: -210px;
  width: 850px;
  height: 850px;
  border: 1px solid #ffffff12;
  border-radius: 50%;
  box-shadow: 0 0 0 42px #ffffff08, 0 0 0 112px #ffffff05;
  content: "";
  pointer-events: none;
}
.inner-hero::after { position: absolute; z-index: -1; right: 0; bottom: 0; left: 0; height: 1px; background: #ffffff14; content: ""; pointer-events: none; }
.inner-hero > .container,
.inner-hero .container { width: min(1300px, calc(100% - 64px)); margin-inline: auto; }
.inner-hero .ab-breadcrumb,
.inner-hero .pp-breadcrumb,
.inner-hero .sv-breadcrumb,
.inner-hero .gv-breadcrumb,
.inner-hero .ct-breadcrumb,
.inner-hero .breadcrumb { display: flex; align-items: center; gap: 11px; margin: 0 0 32px; color: #c5cdd1; font-size: 12px; }
.inner-hero .ab-breadcrumb a,
.inner-hero .pp-breadcrumb a,
.inner-hero .sv-breadcrumb a,
.inner-hero .gv-breadcrumb a,
.inner-hero .ct-breadcrumb a,
.inner-hero .breadcrumb a { color: #c5cdd1; }
.inner-hero .ab-breadcrumb a:hover,
.inner-hero .pp-breadcrumb a:hover,
.inner-hero .breadcrumb a:hover { color: #fff; text-decoration: underline; }
.inner-hero .ab-hero-grid,
.inner-hero .pp-hero-grid,
.inner-hero .sv-hero-grid,
.inner-hero .gv-hero-grid,
.inner-hero .ct-hero-grid { display: grid; grid-template-columns: 1.08fr .82fr; align-items: center; gap: 8%; min-height: 338px; }
.inner-hero .ab-hero-copy,
.inner-hero .pp-hero-copy { max-width: 690px; }
.inner-hero .ab-kicker,
.inner-hero .cp-kicker { color: #ffab7c; font-size: 11px; letter-spacing: 1.6px; }
.inner-hero h1 { margin: 0 0 19px; color: #fff; font-size: clamp(42px, 4.4vw, 60px); font-weight: 600; line-height: 1.18; letter-spacing: -.6px; }
.inner-hero h1 em { color: #ff873d; font-style: normal; }
.inner-hero .ab-hero-lead,
.inner-hero .pp-hero-description,
.inner-hero .sv-hero-lead,
.inner-hero .gv-hero-lead,
.inner-hero .ct-hero-lead { max-width: 650px; margin: 0; color: #d0d8dc; font-size: 15px; line-height: 1.85; }
.inner-hero .ab-hero-actions { margin-top: 26px; }

/* About: replace the photographic banner with a concise service-style card. */
.inner-hero .ab-hero-inner { display: block; min-height: 0; padding: 0; }
.inner-hero .ab-hero-card { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 310px; overflow: hidden; padding: 27px 29px; border: 1px solid #ffffff27; border-radius: 12px; background: linear-gradient(145deg, #ffffff12, #ffffff06); }
.inner-hero .ab-hero-card::after { position: absolute; top: -75px; right: -62px; width: 250px; height: 250px; border: 1px solid #f971215c; border-radius: 50%; box-shadow: 0 0 0 25px #f9712114, 0 0 0 52px #f971210b; content: ""; pointer-events: none; }
.inner-hero .ab-hero-card small { position: relative; z-index: 1; color: #ffab7c; font-size: 10px; letter-spacing: 1.3px; }
.inner-hero .ab-hero-card strong { position: relative; z-index: 1; display: block; color: #fff; font-size: clamp(27px, 2.5vw, 37px); font-weight: 500; line-height: 1.35; }
.inner-hero .ab-hero-card em { color: #ff873d; font-style: normal; }
.inner-hero .ab-hero-card p { position: relative; z-index: 1; max-width: 330px; margin: 0; padding-top: 15px; border-top: 1px solid #ffffff27; color: #d0d8dc; font-size: 12px; line-height: 1.7; }

/* Projects: put the existing proof points in the banner's right-hand card. */
.inner-hero .pp-hero-inner { min-height: 0; padding: 0; }
.inner-hero .pp-hero-subtitle { margin: -7px 0 14px; color: #ff873d; font-size: clamp(23px, 2.5vw, 32px); font-weight: 500; line-height: 1.3; }
.inner-hero .pp-hero-proof { display: flex; flex-direction: column; align-items: stretch; gap: 0; min-height: 310px; max-width: none; padding: 19px 28px; border: 1px solid #ffffff27; border-radius: 12px; background: linear-gradient(145deg, #ffffff12, #ffffff06); }
.inner-hero .pp-hero-proof > div { display: flex; flex: 1; align-items: center; gap: 18px; padding: 13px 0; }
.inner-hero .pp-hero-proof > div + div { padding-left: 0; border-left: 0; border-top: 1px solid #ffffff25; }
.inner-hero .pp-hero-proof svg { flex: 0 0 33px; color: #ff873d; }
.inner-hero .pp-hero-proof strong { color: #fff; font-size: 23px; }
.inner-hero .pp-hero-proof strong small { color: #fff; }
.inner-hero .pp-hero-proof span > small { color: #c7d0d5; font-size: 11px; }

/* Legacy service details use the same width, colour, spacing, and title scale. */
.inner-hero.page-hero { min-height: 350px; padding: 30px 0 62px; background: #1c2a32; }
.inner-hero.page-hero::after { display: block; top: auto; width: auto; border: 0; border-radius: 0; box-shadow: none; }
.inner-hero.page-hero .eyebrow { margin-bottom: 14px; color: #ffab7c; }
.inner-hero.page-hero h1 { max-width: 750px; margin: 0 0 19px; font-size: clamp(42px, 4.4vw, 60px); line-height: 1.18; }
.inner-hero.page-hero p { max-width: 650px; margin: 0; color: #d0d8dc; font-size: 15px; line-height: 1.85; }

@media (max-width: 1100px) {
  .inner-hero .ab-hero-grid,
  .inner-hero .pp-hero-grid,
  .inner-hero .sv-hero-grid,
  .inner-hero .gv-hero-grid,
  .inner-hero .ct-hero-grid { grid-template-columns: 1.05fr .9fr; gap: 5%; }
}
@media (max-width: 800px) {
  .inner-hero { padding: 23px 0 46px; }
  .inner-hero > .container,
  .inner-hero .container { width: calc(100% - 48px); }
  .inner-hero .ab-hero-grid,
  .inner-hero .pp-hero-grid,
  .inner-hero .sv-hero-grid,
  .inner-hero .gv-hero-grid,
  .inner-hero .ct-hero-grid { grid-template-columns: 1fr; gap: 30px; min-height: 0; }
  .inner-hero .ab-hero-card,
  .inner-hero .pp-hero-proof { min-height: 0; }
  .inner-hero.page-hero { min-height: 0; padding: 23px 0 46px; }
}
@media (max-width: 560px) {
  .inner-hero > .container,
  .inner-hero .container { width: calc(100% - 36px); }
  .inner-hero .ab-breadcrumb,
  .inner-hero .pp-breadcrumb,
  .inner-hero .sv-breadcrumb,
  .inner-hero .gv-breadcrumb,
  .inner-hero .ct-breadcrumb,
  .inner-hero .breadcrumb { margin-bottom: 24px; }
  .inner-hero h1,
  .inner-hero.page-hero h1 { font-size: 39px; }
  .inner-hero .ab-hero-lead,
  .inner-hero .pp-hero-description,
  .inner-hero .sv-hero-lead,
  .inner-hero .gv-hero-lead,
  .inner-hero .ct-hero-lead,
  .inner-hero.page-hero p { font-size: 14px; }
  .inner-hero .ab-hero-card { padding: 23px 21px; }
  .inner-hero .pp-hero-proof { padding: 12px 22px; }
  .inner-hero .pp-hero-proof > div:last-child { display: flex; }
}
@media (max-width: 360px) {
  .inner-hero h1,
  .inner-hero.page-hero h1 { font-size: 33px; }
}
