/* Homepage art direction: a quiet architectural grid, crisp blue accents, and a
   consistent editorial type and spacing rhythm. The hero is styled separately. */
.philosophy,
.services,
.founder-feature,
.insights > .section,
.contact {
  padding-top: clamp(78px, 8vw, 112px);
  padding-bottom: clamp(78px, 8vw, 112px);
}

.philosophy { position: relative; }
.philosophy-stage {
  grid-template-columns: .84fr 1.16fr;
  min-height: 440px;
}
.philosophy-heading { padding-bottom: 18px; }
.philosophy-heading > p {
  color: #627897;
  font-size: 17px;
  letter-spacing: .025em;
  margin-bottom: 25px;
}
.philosophy-heading h2 {
  color: #263548;
  font-size: clamp(38px, 3.8vw, 53px);
  line-height: 1.46;
  letter-spacing: -.045em;
}
.philosophy .city-figure {
  /* Let the model breathe past its grid track while staying inside the viewport gutter. */
  width: calc(100% + 6.2vw);
  margin-left: -2vw;
  height: 460px;
  background: none;
  isolation: isolate;
}
.philosophy .city-figure::after {
  content: "";
  position: absolute;
  z-index: -2;
  inset: -12% -1.4vw;
  background: radial-gradient(ellipse 47% 47% at center, #cee3ff 0%, #e7f1ff 55%, transparent 100%);
  pointer-events: none;
}
.philosophy .city-canvas {
  /* The ground plane reaches the WebGL edge; dissolve that edge into the page. */
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 88%, transparent);
}
.philosophy .city-figure::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 11% 8%;
  opacity: .35;
  background-image: linear-gradient(#b9cee7 1px, transparent 1px), linear-gradient(90deg, #b9cee7 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: radial-gradient(ellipse at center, #000, transparent 68%);
  pointer-events: none;
}
.philosophy-body {
  gap: 8%;
  padding-top: 36px;
  border-color: #dbe5f1;
}
.philosophy-body article { max-width: 500px; }
.philosophy-body h3,
.services .service-card h3,
.role-problem-title {
  color: #263c57;
  font-weight: 400;
  letter-spacing: -.025em;
}
.philosophy-body h3,
.role-problem-title { font-size: clamp(24px, 2vw, 28px); line-height: 1.53; }
.philosophy-body h3 { margin-bottom: 15px; }
.philosophy-body p { color: #64758c; font-size: 16px; line-height: 1.9; }

.testimonials {
  padding-top: 70px;
  padding-bottom: 66px;
  background: linear-gradient(155deg, #f0f5fc 0%, #f7f9fd 52%, #eef4fb 100%);
}
.testimonials-heading {
  align-items: center;
  padding-bottom: 22px;
}
.testimonials-heading h2 { color: #263548; font-size: clamp(35px, 3.2vw, 44px); line-height: 1.35; }
.testimonials-heading p { color: #8291a6; font-size: 13px; }
.review-streams { transform: rotate(-1.45deg); padding: 30px 0; }
.review-group { gap: 18px; padding-right: 18px; }
.review-stream { padding: 12px 0; }
.review-card {
  width: 365px;
  min-height: 218px;
  padding: 28px 30px 25px;
  border: 1px solid #dfe9f5;
  border-radius: 18px;
  background: #ffffffee;
  box-shadow: 0 16px 30px #263d6308;
}
.review-card:nth-child(2) { background: #e6f0fd; border-color: #dbe9fa; }
.review-card::before {
  content: "";
  display: block;
  width: 27px;
  height: 3px;
  margin-bottom: 18px;
  border-radius: 3px;
  background: #4b86df;
}
.review-card blockquote { color: #344967; font-size: 17px; line-height: 1.8; }
.review-card figcaption { color: #7285a0; font-size: 13px; margin-top: 19px; }

.services .section-heading,
.insights .section-heading {
  align-items: end;
  margin: 0 0 43px;
}
.services .section-heading h2,
.insights .section-heading h2,
.expertise-gallery-heading h2,
.role-heading h2 { color: #263548; font-size: clamp(36px, 3.5vw, 46px); font-weight: 400; line-height: 1.42; letter-spacing: -.04em; }
.services .section-heading > p { color: #718096; font-size: 16px; line-height: 1.85; }
.service-grid { gap: 18px; }
.service-card {
  min-height: 323px;
  padding: 31px 32px 29px;
  border: 1px solid #e5ebf3;
  border-radius: 20px;
  background: linear-gradient(152deg, #f9fbfe, #f1f6fd);
  box-shadow: none;
}
.service-card:nth-child(2) { background: linear-gradient(152deg, #f7faff, #eaf2fd); }
.service-top { margin-bottom: 34px; }
.service-top svg { width: 27px; height: 27px; stroke-width: 1.5; }
.service-card h3 { font-size: 23px; line-height: 1.48; }
.service-card p { margin-top: 14px; color: #677992; font-size: 16px; line-height: 1.82; }
.service-card > a {
  align-items: center;
  color: #315f9d;
  border-color: #dce7f4;
  font-size: 14px;
  margin-top: 24px;
  padding-top: 17px;
}
.service-card > a .lucide { width: 17px; height: 17px; }

.expertise {
  background: radial-gradient(circle at 16% 15%, #edf4fe, transparent 38%), #f7f9fc;
}
.expertise-inner {
  grid-template-columns: .9fr 1.1fr;
  gap: 8%;
  padding-top: clamp(78px, 8vw, 112px);
  padding-bottom: clamp(78px, 8vw, 112px);
}
.expertise-sticky { top: 123px; }
.expertise-sticky h2 {
  margin: 0 0 16px;
  color: #263548;
  font-size: clamp(35px, 3.4vw, 46px);
  line-height: 1.48;
}
.expertise-sticky h2 > span { color: #557391; }
.case-list { border-top: 1px solid #dce6f1; }
.case-item { border-color: #dce6f1; padding: 30px 0 34px; }
.case-heading { margin-bottom: 20px; }
.case-item h3 { color: #344c6b; font-size: clamp(22px, 2vw, 27px); line-height: 1.45; }
.case-content { padding-right: 5%; }
.case-content > p { color: #63758d; font-size: 16px; line-height: 1.88; }
.case-content > span { color: #8799ae; font-size: 13px; line-height: 1.6; }
.case-content > a { color: #1760ef; font-size: 14px; }

.founder-feature { padding-bottom: 64px; }
.founder-heading h2 {
  margin-bottom: 43px;
  color: #263548;
  font-size: clamp(37px, 3.7vw, 51px);
  line-height: 1.4;
}
.founder-heading h2 span { color: #426dab; }
.founder-layout { grid-template-columns: .82fr 1fr; gap: 9%; align-items: start; }
.founder-portrait {
  position: relative;
  border-radius: 20px;
  background: #edf2f8;
  box-shadow: 15px 15px 0 #eaf1fb;
}
.founder-portrait > img { filter: saturate(.9); }
.founder-portrait figcaption {
  background: #f1f5fa;
  color: #263548;
  gap: 14px;
  font-size: 25px;
}
.founder-portrait figcaption span { font-size: 13px; }
.founder-feature-copy .founder-lead {
  color: #2d4562;
  font-size: clamp(26px, 2.5vw, 34px);
  line-height: 1.55;
  margin-bottom: 31px;
}
.founder-feature-copy .credentials { gap: 13px 24px; margin-bottom: 28px; }
.founder-feature-copy .credentials span {
  color: #426b9c;
  border-color: #d7e3f0;
  font-size: 14px;
}
.founder-feature-copy > p { color: #65758b; font-size: 16px; line-height: 1.9; }
.founder-career { border-color: #dbe5f0; margin-top: 33px; padding-top: 27px; }
.founder-career h3 { color: #2d415e; font-size: 20px; }
.founder-career ul { color: #6d7e94; font-size: 15px; }

.team-carousel-section { padding-top: 73px; padding-bottom: 83px; border-top: 1px solid #eaf0f6; }
.team-heading { padding-bottom: 35px; }
.team-heading h2 { color: #263548; font-size: clamp(37px, 3.55vw, 47px); line-height: 1.42; }
.team-heading h2 > span { color: #6e88a7; }
.team-heading > p { color: #6b7d94; font-size: 16px; line-height: 1.85; }
.team-track { gap: 18px; }
.person-card {
  flex-basis: 282px;
  border: 1px solid #e3eaf2;
  border-radius: 19px;
  background: #f4f7fa;
  box-shadow: 0 12px 30px #233f6708;
  transition: transform .4s ease, box-shadow .4s ease;
}
.person-card:hover { transform: translateY(-5px); box-shadow: 0 20px 38px #233f6712; }
.person-photo { height: 330px; background: #e9edf2; }
.person-caption { min-height: 96px; padding: 20px 23px; background: #f9fbfd; }
.person-caption h3 { color: #263548; font-size: 22px; }
.person-caption p { color: #71839a; font-size: 13px; }
.person-plus { color: #416da7; }
.team-controls { padding-top: 20px; }
.team-controls button { width: 42px; height: 42px; background: #eef4fc; color: #315e99; }
.team-controls button:hover { background: #dceafa; }

.insights { background: linear-gradient(180deg, #f6f9fd, #f1f6fc); }
.insight-grid { gap: 22px; }
.insight-card {
  display: flex;
  flex-direction: column;
  border: 1px solid #e1e9f3;
  border-radius: 23px;
  box-shadow: 0 12px 32px #203e6208;
}
.insight-picture { height: clamp(265px, 22vw, 315px); }
.insight-picture.books-picture,
.insight-picture.seminar-picture { background-size: cover; background-position: center; }
.books-picture {
  background-color: #e9ebf0;
  background-image: url('assets/editorial-books-insight-v2.jpg');
}
.seminar-picture {
  background-color: #e9eff4;
  background-image: url('assets/editorial-seminar-discussion.jpg');
  background-position: center 48%;
}
.insight-copy { display: flex; flex: 1; flex-direction: column; padding: 30px 32px 31px; }
.insight-copy h3 { color: #2c405d; font-size: 25px; line-height: 1.52; }
.insight-copy p { color: #697b93; font-size: 16px; line-height: 1.82; }
.insight-link { color: #386baf; font-size: 14px; margin-top: auto; padding-top: 26px; }
.publication-link { color: #53739a; font-size: 14px; margin-top: 29px; }

.contact { position: relative; }
.contact-top h2 { color: #263548; font-size: clamp(42px, 4vw, 55px); line-height: 1.48; }
.contact-top > p:not(.eyebrow) { color: #6e7f95; font-size: 16px; line-height: 1.85; }
.contact-details { margin-top: 76px; border-color: #dce6f1; gap: 38px; }
.contact-details > a { min-width: 0; padding-top: 5px; }
.contact-details > a > span:first-child { color: #6d82a0; font-size: 13px; letter-spacing: .03em; }
.contact-details strong { color: #293e5a; font-size: 19px; overflow-wrap: anywhere; }
.contact-details > a:last-child strong { font-size: 17px; }
.contact-details > a > span:last-child { color: #5076a6; font-size: 13px; }
.contact-details > a:hover strong { color: #1760ef; }
body:has(.hero) footer { background: #f1f5fa; }

@media (max-width: 1000px) {
  .philosophy-stage { min-height: 395px; }
  .philosophy .city-figure { height: 410px; }
  .philosophy-heading h2 { font-size: 38px; }
  .expertise-inner { gap: 5%; }
  .founder-layout { gap: 6%; }
  .founder-portrait { box-shadow: 10px 10px 0 #eaf1fb; }
}

@media (max-width: 720px) {
  .philosophy,
  .services,
  .founder-feature,
  .insights > .section,
  .contact { padding-top: 68px; padding-bottom: 70px; }
  .philosophy-stage { display: block; min-height: 0; }
  .philosophy-heading { padding-bottom: 0; }
  .philosophy-heading > p { font-size: 15px; margin-bottom: 19px; }
  .philosophy-heading h2 { font-size: clamp(31px, 8vw, 40px); line-height: 1.5; }
  .philosophy .city-figure { width: calc(100% + 28px); height: auto; aspect-ratio: 1.15; margin: 5px -14px 0; }
  .philosophy-body { padding-top: 27px; }
  .philosophy-body h3,
  .role-problem-title { font-size: 23px; }
  .philosophy-body h3 { margin-bottom: 13px; }
  .philosophy-body p { font-size: 16px; line-height: 1.84; }
  .philosophy-body article + article { margin-top: 28px; padding-top: 26px; }

  .testimonials { padding-top: 54px; padding-bottom: 49px; }
  .testimonials-heading { padding-bottom: 16px; }
  .testimonials-heading h2 { font-size: 32px; }
  .testimonials-heading p { font-size: 12px; margin-top: 10px; }
  .review-streams { transform: rotate(-1deg); padding: 15px 0; }
  .review-card { width: 288px; min-height: 211px; padding: 24px; border-radius: 17px; }
  .review-card blockquote { font-size: 16px; }

  .services .section-heading,
  .insights .section-heading { margin-bottom: 29px; }
  .services .section-heading h2,
  .insights .section-heading h2,
  .expertise-gallery-heading h2,
  .role-heading h2 { font-size: 31px; }
  .services .section-heading > p { font-size: 16px; margin-top: 15px; }
  .service-grid { gap: 14px; }
  .service-card { min-height: 0; padding: 26px 27px; border-radius: 18px; }
  .service-top { margin-bottom: 22px; }
  .service-card h3 { font-size: 23px; }
  .service-card p { font-size: 16px; margin-top: 10px; }

  .expertise .expertise-inner { padding-top: 76px; padding-bottom: 50px; }
  .expertise .expertise-sticky {
    position: relative;
    top: auto;
    z-index: auto;
    height: auto;
    padding: 0;
    margin-bottom: 32px;
    background: none;
    isolation: auto;
  }
  .expertise .expertise-sticky::before { content: none; }
  .expertise .expertise-sticky h2 {
    max-width: none;
    padding: 0;
    margin-bottom: 0;
    font-size: 31px;
  }
  .expertise .case-item { scroll-margin-top: 90px; }
  .case-item { padding: 25px 0 29px; }
  .case-item h3 { font-size: 21px; }
  .case-content > p { font-size: 16px; }
  .case-content > span { font-size: 12px; }
  .case-content > a { font-size: 14px; }

  .founder-feature { padding-top: 71px; padding-bottom: 48px; }
  .founder-heading h2 { font-size: 35px; margin-bottom: 31px; }
  .founder-layout { display: block; }
  .founder-portrait { max-width: 450px; margin: 0 auto 39px; }
  .founder-portrait figcaption { font-size: 23px; padding: 19px 22px; }
  .founder-feature-copy .founder-lead { font-size: 27px; margin-bottom: 23px; }
  .founder-feature-copy .credentials span { font-size: 13px; }
  .founder-feature-copy > p { font-size: 16px; }
  .founder-career ul { font-size: 14px; }

  .team-carousel-section { padding-top: 52px; padding-bottom: 62px; }
  .team-heading { padding-bottom: 27px; }
  .team-heading h2 { font-size: 33px; }
  .team-heading > p { font-size: 15px; margin-top: 16px; }
  .team-track { gap: 8px; padding-left: 16px; padding-right: 16px; }
  .person-card { flex-basis: calc((100vw - 48px) / 3); border-radius: 12px; box-shadow: none; }
  .person-card:hover { transform: none; box-shadow: none; }
  .person-photo { height: auto; aspect-ratio: .76; }
  .person-caption { min-height: 76px; padding: 11px 9px; }
  .person-caption h3 { font-size: 14px; }
  .person-caption p { font-size: 11px; line-height: 1.5; }
  .team-controls { padding-top: 17px; }

  .insight-grid { gap: 17px; }
  .insight-picture { height: 245px; }
  .insight-copy { padding: 24px 25px 27px; }
  .insight-copy h3 { font-size: 23px; }
  .insight-copy p { font-size: 16px; }
  .contact-top h2 { font-size: 39px; }
  .contact-top > p:not(.eyebrow) { font-size: 16px; }
  .contact-details { margin-top: 53px; gap: 23px; }
  .contact-details > a { padding-top: 3px; }
  .contact-details strong { font-size: 19px; }
}

@media (max-width: 360px) {
  .person-caption { padding-left: 6px; padding-right: 6px; }
  .person-caption h3 { font-size: 13px; }
  .founder-feature-copy .credentials { gap: 10px 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .person-card { transition: none; }
  .review-streams { transform: none; }
}
