/* Fade the edges of hero photos into their surrounding surfaces. */
.home-photo,
.photograph,
.services-photo-blend,
.industry-image,
.partnership-image,
.contact-photo,
.advisor-blend {
  position: relative;
  isolation: isolate;
  --photo-surface: 250, 248, 245;
}
.home-photo { --photo-surface: 234, 240, 241; }
.services-photo-blend { --photo-surface: 230, 236, 239; }
.advisor-blend { --photo-surface: 240, 239, 235; }
.home-photo::after,
.photograph::after,
.services-photo-blend::after,
.industry-image::after,
.partnership-image::after,
.contact-photo::after,
.advisor-blend::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(var(--photo-surface), 1), rgba(var(--photo-surface), 0) 15%),
    linear-gradient(270deg, rgba(var(--photo-surface), .75), rgba(var(--photo-surface), 0) 10%),
    linear-gradient(180deg, rgba(var(--photo-surface), .7), rgba(var(--photo-surface), 0) 10%),
    linear-gradient(0deg, rgba(var(--photo-surface), 1), rgba(var(--photo-surface), 0) 13%);
}
.services-photo-blend {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  min-width: 0;
  width: 100%;
}
.services-photo-blend > .hero-image {
  position: static;
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: initial;
  object-position: initial;
  opacity: 1;
  filter: none;
}
@media (max-width: 580px) {
  .services-photo-blend { order: 2; }
}
/* Home: one continuous photographic hero, with a readable text area. */
.site-home .home-hero {
  position: relative;
  display: block;
  min-height: 640px;
  overflow: hidden;
  background: #eaf0f1;
}
.site-home .home-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
}
.site-home .home-photo > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
  filter: brightness(1.8);
}
.site-home .home-photo::after {
  background: linear-gradient(90deg,
    #eaf0f1 0%,
    rgba(234,240,241,.98) 24%,
    rgba(234,240,241,.87) 36%,
    rgba(234,240,241,.42) 50%,
    rgba(234,240,241,0) 65%);
}
.site-home .home-copy {
  position: relative;
  z-index: 1;
  width: 57%;
  padding: 65px 3% 65px 7%;
}
.site-home .home-copy h1 { font-size: clamp(46px,4.8vw,74px); }
@media (max-width: 900px) {
  .site-home .home-copy { width: 70%; padding: 45px 5% 45px 7%; }
  .site-home .home-hero { min-height: 560px; }
  .site-home .home-photo::after {
    background: linear-gradient(90deg,#eaf0f1 0%,rgba(234,240,241,.96) 35%,rgba(234,240,241,.65) 57%,rgba(234,240,241,0) 85%);
  }
}
@media (max-width: 580px) {
  .site-home .home-hero { display: flex; flex-direction: column; min-height: 0; }
  .site-home .home-copy { width: 100%; padding: 36px 7%; }
  .site-home .home-copy h1 { font-size: clamp(39px,10.5vw,52px); }
  .site-home .home-photo { position: relative; inset: auto; height: auto; order: 2; }
  .site-home .home-photo > img { height: auto; object-fit: initial; }
  .site-home .home-photo::after { content: none; }
}
/* Services: continuous photo hero with a single fade behind the copy. */
.services-hero {
  position: relative;
  display: block;
  min-height: 640px;
  overflow: hidden;
  background: #e6ecef;
}
.services-photo-blend {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.services-photo-blend > .hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}
.services-photo-blend::after {
  background: linear-gradient(90deg,
    #e6ecef 0%,
    rgba(230,236,239,.98) 22%,
    rgba(230,236,239,.9) 31%,
    rgba(230,236,239,.48) 42%,
    rgba(230,236,239,0) 55%);
}
.services-hero .hero-copy {
  position: relative;
  z-index: 1;
  width: 40%;
  max-width: 600px;
  margin: 0;
  padding: 55px 3% 55px 7%;
}
.services-hero .hero-copy h1 { font-size: clamp(43px,4.3vw,65px); }
/* Industries and Contact retain their clean, natural-proportion photographs. */
.industry-image::after,
.contact-photo::after { content: none; }
/* About photo is on the left: soften only its boundary with the text. */
.photograph::after {
  background: linear-gradient(270deg, #faf8f5 0%, rgba(250,248,245,0) 12%);
}
/* Why Choose Us photo is on the right: soften only its text-side boundary. */
.advisor-blend::after {
  background: linear-gradient(90deg, #f0efeb 0%, rgba(240,239,235,0) 15%);
}
@media (max-width: 900px) {
  .services-hero .hero-copy { width: 52%; padding: 42px 4% 42px 7%; }
  .services-hero { min-height: 570px; }
  .services-photo-blend::after {
    background: linear-gradient(90deg,#e6ecef 0%,rgba(230,236,239,.97) 30%,rgba(230,236,239,.65) 46%,rgba(230,236,239,0) 72%);
  }
}
@media (max-width: 700px) {
  .advisor-blend::after { content: none; }
}
@media (max-width: 620px) {
  .photograph::after { content: none; }
}
@media (max-width: 580px) {
  .services-hero { display: flex; flex-direction: column; min-height: 0; }
  .services-hero .hero-copy { width: 100%; max-width: none; padding: 36px 7%; }
  .services-hero .hero-copy h1 { font-size: clamp(39px,10.5vw,52px); }
  .services-photo-blend { position: relative; inset: auto; height: auto; order: 2; }
  .services-photo-blend > .hero-image { height: auto; object-fit: initial; }
  .services-photo-blend::after { content: none; }
}
/* Contact: blend the photo into the adjacent text panel. */
.contact-photo::after {
  content: "";
  background: linear-gradient(90deg, #faf8f5 0%, rgba(250,248,245,0) 16%);
}
@media (max-width: 580px) {
  .contact-photo::after {
    background: linear-gradient(180deg, #faf8f5 0%, rgba(250,248,245,0) 14%);
  }
}
/* Contact: let the photo extend toward the copy for a continuous transition. */
.site-contact .contact-layout { overflow: hidden; }
.site-contact .contact-copy { position: relative; z-index: 1; }
.site-contact .contact-photo {
  width: calc(100% + 100px);
  margin-left: -100px;
}
.site-contact .contact-photo::after {
  background: linear-gradient(90deg,
    #faf8f5 0%,
    rgba(250,248,245,.94) 7%,
    rgba(250,248,245,.65) 17%,
    rgba(250,248,245,0) 34%);
}
@media (max-width: 800px) and (min-width: 581px) {
  .site-contact .contact-photo { width: calc(100% + 60px); margin-left: -60px; }
}
@media (max-width: 580px) {
  .site-contact .contact-photo {
    width: 100%;
    margin-left: 0;
    margin-top: -24px;
  }
  .site-contact .contact-photo::after {
    background: linear-gradient(180deg,#faf8f5 0%,rgba(250,248,245,.8) 8%,rgba(250,248,245,0) 28%);
  }
}
/* Why Choose Us: a quiet photographic background, as in the reference. */
.why-reference .reference-hero {
  position: relative;
  display: block;
  min-height: 550px;
  overflow: hidden;
  background: #f3f1ed;
}
.why-reference .advisor-blend {
  position: absolute;
  inset: 0 0 0 auto;
  width: 62%;
  height: 100%;
  background: transparent;
}
.why-reference .advisor-blend .advisor-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 37%;
}
.why-reference .advisor-blend::after {
  content: "";
  background: linear-gradient(90deg,
    #f3f1ed 0%,
    rgba(243,241,237,.94) 14%,
    rgba(243,241,237,.72) 32%,
    rgba(243,241,237,.46) 60%,
    rgba(243,241,237,.48) 100%);
}
.why-reference .reference-content {
  position: relative;
  z-index: 1;
  width: 61%;
  max-width: 1100px;
  margin: 0;
  padding: 62px 0 45px 7.3%;
}
.why-reference .reference-content h1 {
  font-size: clamp(45px,4.4vw,74px);
  margin-bottom: 40px;
}
.why-reference .reference-benefits { gap: 30px; }
@media (max-width: 1100px) {
  .why-reference .reference-content { width: 68%; padding: 44px 0 38px 6%; }
  .why-reference .reference-content h1 { font-size: 49px; }
  .why-reference .reference-benefits { gap: 20px; }
}
@media (max-width: 700px) {
  .why-reference .reference-hero { display: block; min-height: 0; }
  .why-reference .advisor-blend { width: 100%; height: 100%; }
  .why-reference .advisor-blend .advisor-photo { object-position: 58% center; }
  .why-reference .advisor-blend::after {
    background: linear-gradient(90deg,rgba(243,241,237,.96),rgba(243,241,237,.88));
  }
  .why-reference .reference-content { width: 100%; padding: 36px 7%; }
  .why-reference .reference-content h1 { font-size: clamp(36px,8vw,48px); }
  .why-reference .reference-benefits { grid-template-columns: 1fr; gap: 28px; }
}
/* Slightly softer Why Choose Us background photograph. */
@media (min-width: 701px) {
  .why-reference .advisor-blend::after {
    background: linear-gradient(90deg,
      #f3f1ed 0%,
      rgba(243,241,237,.97) 14%,
      rgba(243,241,237,.85) 32%,
      rgba(243,241,237,.66) 60%,
      rgba(243,241,237,.68) 100%);
  }
}
@media (max-width: 700px) {
  .why-reference .advisor-blend::after {
    background: linear-gradient(90deg,rgba(243,241,237,.98),rgba(243,241,237,.93));
  }
}
/* Services: a natural-proportion photo beside the introduction, like About. */
.services-hero {
  display: grid;
  grid-template-columns: 55.3% 44.7%;
  min-height: 0;
  overflow: visible;
  background: #faf8f5;
  align-items: center;
}
.services-photo-blend {
  position: relative;
  inset: auto;
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  height: auto;
  align-self: center;
  --photo-surface: 250, 248, 245;
}
.services-photo-blend > .hero-image {
  position: static;
  width: 100%;
  height: auto;
  object-fit: initial;
  object-position: initial;
}
.services-photo-blend::after {
  background: linear-gradient(270deg, #faf8f5 0%, rgba(250,248,245,0) 12%);
}
.services-hero .hero-copy {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 44px 10%;
}
.services-hero .hero-copy h1 {
  font-size: clamp(38px, 3.7vw, 60px);
  line-height: 1.08;
}
.services-hero .hero-copy h1 br { display: none; }
.services-hero .hero-copy .intro { font-size: 16px; line-height: 1.75; }
@media (max-width: 900px) {
  .services-hero { grid-template-columns: 50% 50%; }
  .services-hero .hero-copy { padding: 32px 8%; }
  .services-hero .hero-copy h1 { font-size: 38px; }
  .services-hero .hero-copy .intro { font-size: 14px; }
}
@media (max-width: 620px) {
  .services-hero { display: flex; flex-direction: column; }
  .services-photo-blend { order: 0; }
  .services-photo-blend::after { content: none; }
  .services-hero .hero-copy { order: 1; padding: 34px 7%; }
  .services-hero .hero-copy h1 { font-size: 40px; }
  .services-hero .hero-copy .intro { font-size: 15px; }
}

/* Services: a photograph-free introduction above the service cards. */
.services-hero.services-text-only {
  display: block;
  min-height: 0;
  background: #faf8f5;
  text-align: center;
}
.services-hero.services-text-only .hero-copy {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 52px 6% 36px;
}
.services-hero.services-text-only .hero-copy h1 {
  font-size: clamp(36px, 4.2vw, 60px);
  line-height: 1.1;
}
.services-hero.services-text-only .gold-rule { margin-inline: auto; }
.services-hero.services-text-only .intro {
  max-width: 680px;
  margin: 22px auto;
  font-size: 16px;
}
@media (max-width: 620px) {
  .services-hero.services-text-only .hero-copy { padding: 36px 7% 28px; }
  .services-hero.services-text-only .intro { font-size: 15px; }
}
/* Emphasize the presentation screen; let the people recede into the background. */
.services-photo-blend.screen-focus {
  aspect-ratio: 1.3;
  overflow: hidden;
}
.services-photo-blend.screen-focus > .hero-image {
  width: 145%;
  max-width: none;
  height: auto;
}
.screen-focus .people-soften {
  position: absolute;
  inset: 0;
  pointer-events: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: rgba(250,248,245,.68);
  mask-image: linear-gradient(90deg,transparent 48%,#000 65%),linear-gradient(180deg,transparent 43%,#000 60%);
  -webkit-mask-image: linear-gradient(90deg,transparent 48%,#000 65%),linear-gradient(180deg,transparent 43%,#000 60%);
}
/* Industries returns to the original photo-free heading and vertical icon list. */
.site-industries .industry-intro.industry-simple { display: block; min-height: 0; }
.site-industries .industry-intro.industry-simple > div { padding: 42px 7% 20px; text-align: center; }
.site-industries .industry-simple h1 { font-size: 42px; margin: 0 0 22px; }
.site-industries .industry-simple .gold-rule { margin: auto; }
.site-industries .industry-grid.industry-list {
  display: flex;
  flex-direction: column;
  max-width: 1000px;
  padding: 18px 6% 50px;
  gap: 0;
}
.site-industries .industry-list .industry-card {
  flex-direction: row;
  align-items: center;
  padding: 26px 0;
  gap: 28px;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.site-industries .industry-list .industry-card h2 { font-size: 26px; margin-bottom: 10px; }
.site-industries .industry-list .industry-card p { margin: 0; font-size: 16px; }
@media(max-width:580px) {
  .site-industries .industry-list .industry-card { gap: 18px; align-items: flex-start; }
  .site-industries .industry-list .industry-card h2 { font-size: 23px; }
  .site-industries .industry-list .industry-card p { font-size: 14px; }
  .site-industries .industry-list .icon-disc { width: 48px; height: 48px; }
}
