/*
 * Editorial refinement
 * Gives introductory text a deliberate architectural composition instead of
 * leaving headings and paragraphs floating across the full viewport.
 */
.portfolio-intro{
  position:relative;
  width:auto;
  margin:72px 7vw 34px;
  padding:68px 72px;
  grid-template-columns:minmax(0,.92fr) minmax(340px,.68fr);
  gap:7vw;
  align-items:center;
  background:#fff;
  border:1px solid rgba(7,24,60,.07);
  box-shadow:0 24px 60px rgba(7,24,60,.13);
}
.portfolio-intro:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:#24a6bd;
}
.portfolio-intro h2{
  max-width:620px;
  font-size:clamp(48px,4.6vw,72px);
  line-height:.94;
}
.portfolio-intro>p{
  position:relative;
  margin:0;
  padding:8px 0 8px 35px;
  border-left:1px solid #d8dce2;
  font-size:15px;
}
.portfolio-section{padding-top:14px}

/* Services introduction uses the same bounded editorial language. */
.page-intro{
  position:relative;
  margin:68px 7vw 36px;
  padding:62px 70px;
  background:#fff;
  border:1px solid rgba(7,24,60,.07);
  box-shadow:0 22px 55px rgba(7,24,60,.12);
}
.page-intro:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:#24a6bd;
}
.page-intro h2{max-width:900px;margin-bottom:0}
.service-detail-list{padding-top:6px}

/* Ensure the redesigned homepage photography reaches the card edges. */
.home-services .service-grid article{padding:0!important}
.home-services .service-card-copy{padding:28px 28px 31px}
.home-section-heading{
  position:relative;
  padding:58px 62px;
  background:#fff;
  border:1px solid rgba(7,24,60,.07);
  box-shadow:0 22px 55px rgba(7,24,60,.12);
}
.home-section-heading:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:#24a6bd;
}
.home-process{align-items:stretch}
.home-process .process-intro{
  position:sticky;
  top:45px;
  align-self:start;
  padding:58px 55px;
  color:#fff;
  background:#07183c;
  box-shadow:0 26px 62px rgba(7,24,60,.2);
}
.home-process .process-intro h2{color:#fff;font-size:clamp(50px,5.4vw,78px)}
.home-process .process-intro>p:last-child{color:rgba(255,255,255,.65)}

@media(max-width:900px){
  .portfolio-intro{grid-template-columns:1fr;gap:34px;padding:55px 45px}
  .portfolio-intro>p{padding-left:25px}
  .page-intro{padding:52px 45px}
  .home-section-heading{padding:50px 44px}
  .home-process .process-intro{position:static}
}
@media(max-width:620px){
  .portfolio-intro,.page-intro{margin:30px 14px;padding:42px 27px}
  .home-section-heading{padding:42px 27px}
  .home-process .process-intro{padding:45px 27px}
  .portfolio-intro h2{font-size:45px}
  .portfolio-intro>p{padding-left:18px}
}
