/* James Woolford Design — unified pages and reliable FAQ v36 */

/* -------------------------------------------------------------------------- */
/* One continuous visual canvas for portfolio, services, insights and about.  */
/* -------------------------------------------------------------------------- */
.portfolio-page,
.services-page,
.service-detail-page,
.insights-page,
.about-page {
  position: relative !important;
  isolation: isolate !important;
  overflow-x: clip !important;
  color: #101010 !important;
  background:
    radial-gradient(circle at 86% 10%, rgba(36, 88, 255, .17), rgba(36, 88, 255, .055) 23%, transparent 42%),
    radial-gradient(circle at 12% 64%, rgba(22, 26, 38, .07), transparent 34%),
    #f3f1eb !important;
  background-attachment: fixed !important;
}

.portfolio-page .portfolio-hero,
.portfolio-page .portfolio-index,
.services-page .services-hero,
.services-page .services-grid-section,
.service-detail-page .service-detail-hero,
.service-detail-page .service-capabilities,
.service-detail-page .service-process,
.service-detail-page .service-coverage,
.insights-page .insights-hero,
.insights-page .insights-featured,
.insights-page .insights-list-section,
.about-page .about-hero,
.about-page .about-intro,
.about-page .about-proof,
.about-page .about-approach,
.about-page .about-timeline {
  background: transparent !important;
}

/* -------------------------------------------------------------------------- */
/* Portfolio: remove the visible join between hero and project index.          */
/* -------------------------------------------------------------------------- */
.portfolio-page .portfolio-hero {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.portfolio-page .portfolio-hero__bottom {
  margin-bottom: 0 !important;
}

.portfolio-page .portfolio-index {
  margin-top: 0 !important;
  padding-top: clamp(42px, 5vw, 78px) !important;
  border-top: 0 !important;
}

.portfolio-page .portfolio-index::before,
.portfolio-page .portfolio-index::after {
  display: none !important;
}

/* -------------------------------------------------------------------------- */
/* Shared editorial page intros — same left-aligned visual system as Portfolio.*/
/* -------------------------------------------------------------------------- */
.services-page .services-hero,
.insights-page .insights-hero,
.about-page .about-hero,
.service-detail-page .service-detail-hero {
  padding: clamp(96px, 9vw, 142px) 0 clamp(54px, 6vw, 86px) !important;
  border: 0 !important;
}

.services-page .services-hero__grid,
.insights-page .insights-hero__grid,
.about-page .about-hero__inner,
.service-detail-page .service-detail-hero__grid {
  display: block !important;
  grid-template-columns: none !important;
  width: min(1440px, calc(100% - clamp(40px, 8vw, 160px))) !important;
  max-width: 1440px !important;
  margin: 0 auto !important;
  padding-bottom: clamp(36px, 4vw, 58px) !important;
  border-bottom: 1px solid rgba(16, 16, 16, .16) !important;
}

.services-page .services-hero h1,
.insights-page .insights-hero h1,
.about-page .about-hero__copy h1,
.service-detail-page .service-detail-hero__copy h1 {
  width: 100% !important;
  max-width: 13.5ch !important;
  margin: 18px 0 0 !important;
  color: #101010 !important;
  font-size: clamp(58px, 5.7vw, 94px) !important;
  line-height: .9 !important;
  letter-spacing: -.072em !important;
  text-align: left !important;
  text-wrap: balance !important;
}

.services-page .services-hero p,
.insights-page .insights-hero p,
.about-page .about-hero__copy p,
.service-detail-page .service-detail-hero__copy p {
  width: 100% !important;
  max-width: 680px !important;
  margin: clamp(38px, 4vw, 58px) 0 0 !important;
  padding-top: 22px !important;
  border-top: 1px solid rgba(16, 16, 16, .15) !important;
  color: #625e57 !important;
  font-size: clamp(15px, 1.05vw, 18px) !important;
  line-height: 1.72 !important;
  text-align: left !important;
}

.about-page .about-hero__copy {
  max-width: none !important;
}

.about-page .about-hero__visual,
.service-detail-page .service-detail-hero__art {
  display: none !important;
}

.service-detail-page .service-detail-hero__copy > a {
  margin-top: 28px !important;
}

/* -------------------------------------------------------------------------- */
/* Every service detail page: coherent light editorial layout.                */
/* -------------------------------------------------------------------------- */
.service-detail-page .service-capabilities,
.service-detail-page .service-process,
.service-detail-page .service-coverage {
  color: #101010 !important;
  border-top: 1px solid rgba(16, 16, 16, .14) !important;
}

.service-detail-page .service-capabilities,
.service-detail-page .service-process {
  padding: clamp(78px, 8vw, 126px) 0 !important;
}

.service-detail-page .service-section-head {
  display: block !important;
  grid-template-columns: none !important;
  max-width: 1440px !important;
  margin: 0 0 clamp(44px, 5vw, 70px) !important;
  text-align: left !important;
}

.service-detail-page .service-section-head h2 {
  max-width: 12ch !important;
  margin: 18px 0 0 !important;
  color: #101010 !important;
  font-size: clamp(52px, 5.2vw, 82px) !important;
  line-height: .92 !important;
  letter-spacing: -.068em !important;
  text-align: left !important;
}

.service-detail-page .service-capabilities__grid {
  border-color: rgba(16, 16, 16, .16) !important;
  background: rgba(250, 249, 245, .34) !important;
}

.service-detail-page .service-capabilities__grid article {
  border-color: rgba(16, 16, 16, .16) !important;
  background: rgba(255, 255, 255, .22) !important;
}

.service-detail-page .service-capabilities__grid h3 {
  color: #101010 !important;
}

.service-detail-page .service-capabilities__grid p {
  color: #666159 !important;
}

.service-detail-page .service-process__layout {
  grid-template-columns: minmax(280px, .65fr) minmax(0, 1.35fr) !important;
  gap: clamp(54px, 8vw, 126px) !important;
}

.service-detail-page .service-process__intro {
  position: sticky !important;
  top: 120px !important;
}

.service-detail-page .service-process__intro .section-kicker,
.service-detail-page .section-kicker--light {
  color: #2458ff !important;
}

.service-detail-page .service-process__intro h2 {
  color: #101010 !important;
  font-size: clamp(50px, 5.2vw, 80px) !important;
}

.service-detail-page .service-process__steps {
  border-top-color: rgba(16, 16, 16, .16) !important;
}

.service-detail-page .service-process__steps article {
  border-bottom-color: rgba(16, 16, 16, .16) !important;
}

.service-detail-page .service-process__steps h3 {
  color: #101010 !important;
}

.service-detail-page .service-process__steps p {
  color: #666159 !important;
}

.service-detail-page .service-related {
  display: none !important;
}

.service-detail-page .service-coverage {
  padding: clamp(58px, 6vw, 86px) 0 !important;
  background: transparent !important;
}

/* -------------------------------------------------------------------------- */
/* Insights: same left-aligned intro and no section colour breaks.             */
/* -------------------------------------------------------------------------- */
.insights-page .insights-featured {
  padding-top: clamp(48px, 5vw, 76px) !important;
}

.insights-page .insights-list-section {
  padding-top: clamp(58px, 6vw, 92px) !important;
}

.insights-page .insights-list-head,
.insights-page .insight-row {
  border-color: rgba(16, 16, 16, .16) !important;
}

/* -------------------------------------------------------------------------- */
/* About: same page language, no disconnected white/dark blocks.               */
/* -------------------------------------------------------------------------- */
.about-page .about-intro,
.about-page .about-proof,
.about-page .about-approach,
.about-page .about-timeline {
  border-color: rgba(16, 16, 16, .14) !important;
}

.about-page .about-intro {
  padding: clamp(78px, 8vw, 126px) 0 !important;
}

.about-page .about-proof {
  color: #101010 !important;
}

.about-page .about-approach {
  padding: clamp(78px, 8vw, 126px) 0 !important;
  color: #101010 !important;
  border-top: 1px solid rgba(16, 16, 16, .14) !important;
  border-bottom: 1px solid rgba(16, 16, 16, .14) !important;
}

.about-page .about-approach .section-kicker--light {
  color: #2458ff !important;
}

.about-page .about-approach__grid {
  border-color: rgba(16, 16, 16, .16) !important;
}

.about-page .about-approach__grid article {
  border-color: rgba(16, 16, 16, .16) !important;
}

.about-page .about-approach__grid h3 {
  color: #101010 !important;
}

.about-page .about-approach__grid p {
  color: #666159 !important;
}

.about-page .about-timeline {
  padding: clamp(78px, 8vw, 126px) 0 !important;
}

.about-page .about-closing {
  display: none !important;
}

/* -------------------------------------------------------------------------- */
/* FAQ: JS-controlled state which cannot be hidden by reveal animations.       */
/* -------------------------------------------------------------------------- */
.faq-item,
.motion-ready .faq-item.site-reveal {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.faq-answer {
  display: block !important;
  height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: height .38s cubic-bezier(.22, 1, .36, 1), opacity .24s ease !important;
}

.faq-answer > div,
.faq-answer p {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.faq-item[data-jw-open="true"] .faq-answer,
.faq-item.is-open .faq-answer {
  opacity: 1 !important;
  visibility: visible !important;
}

.faq-item[data-jw-open="true"] .faq-answer p,
.faq-item.is-open .faq-answer p {
  display: block !important;
  color: #625e57 !important;
}

/* -------------------------------------------------------------------------- */
/* Responsive                                                                 */
/* -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .services-page .services-hero__grid,
  .insights-page .insights-hero__grid,
  .about-page .about-hero__inner,
  .service-detail-page .service-detail-hero__grid {
    width: calc(100% - 48px) !important;
  }

  .service-detail-page .service-process__layout {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  .service-detail-page .service-process__intro {
    position: relative !important;
    top: auto !important;
  }
}

@media (max-width: 760px) {
  .portfolio-page,
  .services-page,
  .service-detail-page,
  .insights-page,
  .about-page {
    background-attachment: scroll !important;
  }

  .services-page .services-hero,
  .insights-page .insights-hero,
  .about-page .about-hero,
  .service-detail-page .service-detail-hero {
    padding: 82px 0 44px !important;
  }

  .services-page .services-hero__grid,
  .insights-page .insights-hero__grid,
  .about-page .about-hero__inner,
  .service-detail-page .service-detail-hero__grid {
    width: calc(100% - 36px) !important;
    padding-bottom: 36px !important;
  }

  .services-page .services-hero h1,
  .insights-page .insights-hero h1,
  .about-page .about-hero__copy h1,
  .service-detail-page .service-detail-hero__copy h1 {
    max-width: 10ch !important;
    font-size: clamp(48px, 14vw, 66px) !important;
    line-height: .92 !important;
  }

  .services-page .services-hero p,
  .insights-page .insights-hero p,
  .about-page .about-hero__copy p,
  .service-detail-page .service-detail-hero__copy p {
    margin-top: 34px !important;
    font-size: 15px !important;
  }

  .portfolio-page .portfolio-index {
    padding-top: 34px !important;
  }

  .service-detail-page .service-section-head h2 {
    font-size: clamp(46px, 13vw, 62px) !important;
  }

  .service-detail-page .service-capabilities,
  .service-detail-page .service-process {
    padding: 68px 0 !important;
  }

  .about-page .about-approach__grid article {
    border-right: 0 !important;
  }
}
