/* Editorial service posters retain the shared sticky horizontal scroll track. */
.services-poster-section {
  --poster-height: clamp(310px, 51vh, 493px);
  background: #f8faff;
  color: var(--navy, #37445e);
  padding-block: 40px;
}
.services-poster-section .services-section-heading {
  max-width: none;
  margin: 0 0 28px;
  text-align: left;
}
.services-poster-section .section-eyebrow { color: var(--purple-dark, #6241c7); }
.services-poster-section .services-section-heading h2 {
  color: var(--navy, #37445e);
  font-size: clamp(1.5rem, 2.5vw, 2.5rem);
  letter-spacing: -.04em;
  margin-bottom: .4rem;
}
.services-poster-section .services-section-heading > p { color: var(--muted, #637189); font-size: .85rem; margin: 0; }
.services-poster-section .service-poster {
  position: relative;
  padding-top: 56px;
  min-width: 0;
  color: var(--navy, #37445e);
}
.service-poster-title {
  position: absolute;
  z-index: 3;
  inset: 0 0 auto;
  margin: 0;
  color: #26344d;
  font-size: clamp(2.3rem, 3.9vw, 3.7rem);
  font-weight: 900;
  line-height: .96;
  text-transform: uppercase;
  text-align: center;
  letter-spacing: -.065em;
  pointer-events: none;
}
.service-poster-ribbon {
  position: absolute;
  z-index: 4;
  top: 46px;
  left: 50%;
  width: max-content;
  max-width: 96%;
  margin: 0;
  padding: 8px 12px;
  color: #fff;
  background: var(--primary-gradient);
  font-size: clamp(.62rem, .95vw, .83rem);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%) rotate(-3deg);
  box-shadow: 0 6px 20px #0003;
}
.service-poster-art {
  position: relative;
  isolation: isolate;
  height: var(--poster-height);
  overflow: hidden;
  background: #f0f3f8;
  border: 1px solid #dfe6f0;
  box-shadow: 0 12px 30px #34466e0f;
}
.service-poster-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 65%;
  z-index: -2;
}
.service-poster-art::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, #f0f0f0d9, #f0f0f07a 36%, transparent 68%);
}
.service-poster-brand {
  position: absolute;
  top: 68px;
  left: 20px;
  color: #171717;
  font-size: .9rem;
  font-weight: 800;
}
.service-poster-brand span { color: var(--purple-dark, #6241c7); }
.service-poster-copy { position: absolute; left: 20px; top: 112px; width: 58%; }
.service-poster-copy h4 {
  margin: 0 0 18px;
  color: #101010;
  font-size: clamp(1.6rem, 2.65vw, 2.5rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -.055em;
}
.service-poster-copy h4 span { color: var(--purple-dark, #6241c7); }
.service-poster-copy p {
  color: #252525;
  max-width: 175px;
  font-size: .72rem;
  line-height: 1.55;
  margin: 0;
}
.service-poster-copy h4::after {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  margin-top: 16px;
  background: var(--primary-gradient);
}
.service-poster-link {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: #ffffffed;
  color: #37445e;
  border: 1px solid #e0e6ef;
  border-radius: 8px;
  font-size: .75rem;
  font-weight: 700;
}
.service-poster-link:hover { color: var(--purple-dark, #6241c7); background: #fff; }
.service-poster-link:focus-visible { outline: 3px solid var(--purple, #7e2ce8); outline-offset: 3px; }
.service-poster-link > span:last-child { color: var(--purple-dark, #6241c7); font-size: 1.35rem; }
.services-poster-section.is-pinned > .services-stage { padding-block: 24px 36px; }
.services-poster-section.is-pinned .services-track { gap: 40px; align-items: flex-start; }
.services-poster-section.is-pinned .services-track > div {
  flex-basis: clamp(320px, 34vw, 440px);
  width: clamp(320px, 34vw, 440px);
}
.services-poster-section.is-pinned .services-track > div:nth-child(odd) { padding-top: 42px; }
.services-poster-section.is-pinned .services-track > div:nth-child(even) .service-poster-art {
  height: calc(var(--poster-height) + 42px);
}
.services-poster-section.is-pinned .services-stage { overflow: clip; }
/* Content stays still inside the posters; only the existing track moves. */
.services-poster-section :is(.word-ink, .action-reveal) { animation: none !important; opacity: 1 !important; }
@media (min-width: 768px) and (max-height: 800px) {
  .service-poster-copy { top: 100px; }
  .service-poster-copy h4 { font-size: clamp(1.7rem, 2.4vw, 2.1rem); }
}
@media (max-width: 767.98px) {
  .services-poster-section { --poster-height: clamp(310px, 94vw, 390px); }
  .services-poster-section.is-pinned .services-track > div:nth-child(even) .service-poster-art {
    height: calc(var(--poster-height) + 18px);
  }
  .services-poster-section .services-section-heading h2 { font-size: 1.5rem; }
  .services-poster-section.is-pinned .services-track { gap: 24px; }
  .services-poster-section.is-pinned .services-track > div { flex-basis: 84vw; width: 84vw; }
  .services-poster-section.is-pinned .services-track > div:nth-child(odd) { padding-top: 18px; }
  .service-poster-title { font-size: clamp(2rem, 9vw, 3rem); }
  .service-poster-ribbon { top: 38px; font-size: .6rem; padding: 7px 9px; }
  .service-poster-copy h4 { font-size: clamp(1.5rem, 7vw, 2rem); }
  .service-poster-copy { top: 76px; left: 16px; }
  .service-poster-brand { top: 34px; left: 16px; }
  .service-poster-copy p { font-size: .67rem; max-width: 145px; }
  .services-poster-section .service-poster { padding-top: 48px; }
}
