.pm-page {
  --pm-blue: #004cc1;
  --pm-ink: #252525;
  --pm-ease: cubic-bezier(0.22, 1, 0.36, 1);
  background: #fff;
  color: var(--pm-ink);
  overflow: hidden;
  padding-top: 175px !important;
}
body.single-ucg_service .ucg-inner-nav,
body.pm-static-page .ucg-inner-nav {
  height: 175px;
  padding: 0 62px;
}
body.single-ucg_service .ucg-inner-nav__logo img,
body.pm-static-page .ucg-inner-nav__logo img {
  height: 67px;
  width: 237px;
  object-fit: contain;
}
body.single-ucg_service .ucg-inner-nav__actions,
body.pm-static-page .ucg-inner-nav__actions {
  gap: 82px;
}
body.single-ucg_service .ucg-menu-trigger,
body.pm-static-page .ucg-menu-trigger {
  font-family: var(--display);
  font-size: 20px;
}
body.single-ucg_service .ucg-call-link,
body.pm-static-page .ucg-call-link {
  font-family: var(--display);
  font-size: 20px;
  height: 63px;
  min-width: 208px;
  padding: 0 25px;
}
.pm-page h1,
.pm-page h2,
.pm-page h3 {
  color: inherit;
  font-family: var(--display);
  letter-spacing: 0;
  margin: 0;
}
.pm-container {
  margin-inline: auto;
  max-width: 1452px;
  padding-inline: 16px;
  width: 100%;
}
.pm-eyebrow {
  align-items: center;
  color: var(--pm-blue);
  display: flex;
  font-family: "PP Neue Corp", var(--display);
  font-size: 20px;
  font-weight: 500;
  gap: 19px;
  letter-spacing: 8px;
  line-height: 1.58;
  margin: 0 0 25px;
  text-transform: none;
}
.pm-eyebrow:before {
  background: var(--pm-blue);
  border-radius: 50%;
  content: "";
  flex: 0 0 12px;
  height: 12px;
  width: 12px;
}
.pm-eyebrow--center {
  justify-content: center;
}
.pm-intro {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  /* min-height: 510px; */
  padding: 70px 24px 60px;
  text-align: center;
}
.pm-intro h1 {
  font-size: 80px;
  font-weight: 500;
  line-height: 1.16;
  max-width: 1227px;
}
.pm-blueprint {
  height: 970px;
  position: relative;
}
.pm-blueprint__image {
  filter: grayscale(1);
  height: 712px;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 100%;
}
.pm-blueprint__image:after {
  background: #fff;
  content: "";
  inset: 0;
  mix-blend-mode: saturation;
  position: absolute;
}
.pm-blueprint__image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.pm-blueprint__wordmark {
  left: 0;
  position: absolute;
  right: 0;
  top: 555px;
}
.pm-blueprint__wordmark strong {
  color: var(--pm-blue);
  display: block;
  font-family: var(--display);
  font-size: 200px;
  font-weight: 800;
  line-height: 1.02;
  margin-left: max(7vw, 118px);
}
.pm-blueprint__wordmark span {
  color: var(--pm-ink);
  display: block;
  font-family: "PP Neue Corp", var(--display);
  font-size: 80px;
  font-weight: 500;
  letter-spacing: 32px;
  line-height: 1.16;
  margin: -2px 0 0 28.5%;
  text-align: center;
  width: 60%;
}
.pm-story {
  display: grid;
  gap: 70px 40px;
  grid-template-columns: 551px minmax(0, 917px);
  padding: 0 6% 100px;
}
.pm-story__copy {
  align-self: center;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.58;
  padding-left: 15px;
}
.pm-story__copy p {
  margin: 0 0 38px;
}
.pm-story__media {
  height: 581px;
  margin: 0;
  overflow: hidden;
}
.pm-story__media img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.pm-story__media--second {
  grid-column: 1/2;
  width: 917px;
}
.pm-story__copy--second {
  grid-column: 2/3;
  margin-left: 405px;
  padding: 0;
  width: 551px;
}
.pm-related {
  padding: 0 0 105px;
}
.pm-related__heading {
  padding: 0 8% 75px;
}
.pm-related__heading h2 {
  font-size: 80px;
  font-weight: 500;
  line-height: 1.16;
  max-width: 1437px;
}
.pm-related__viewport {
  overflow: hidden;
  position: relative;
}
.pm-related__track {
  display: grid;
  gap: 59px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0 5.9%;
}
.pm-project {
  height: 809px;
  overflow: hidden;
  position: relative;
}
.pm-project > img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.pm-project:after {
  background: rgba(37, 37, 37, 0.25);
  content: "";
  inset: 0;
  position: absolute;
}
.pm-project h3 {
  bottom: 53px;
  color: #fff;
  font-size: 60px;
  font-weight: 500;
  left: 44px;
  line-height: 1.16;
  position: absolute;
  z-index: 2;
}
.pm-project--active:after {
  backdrop-filter: blur(4px);
  background: rgba(37, 37, 37, 0.7);
}
.pm-project--active .pm-project__content {
  color: #fff;
  inset: 0;
  padding: 45px;
  position: absolute;
  z-index: 3;
}
.pm-project--active h3 {
  bottom: auto;
  left: auto;
  position: relative;
}
.pm-project--active p {
  font-size: 30px;
  line-height: 1.58;
  margin: 55px 0 0;
  max-width: 401px;
}
.pm-project__link {
  align-items: center;
  background: #fff;
  border: 2px solid var(--pm-ink);
  bottom: 45px;
  color: var(--pm-ink);
  display: flex;
  font-family: var(--display);
  font-size: 20px;
  height: 63px;
  justify-content: space-between;
  left: 45px;
  padding: 0 25px;
  position: absolute;
  text-decoration: none;
  width: calc(100% - 90px);
}
.pm-related__arrow {
  align-items: center;
  background: #fff;
  border: 1px solid #b7b7b7;
  border-radius: 0;
  color: var(--ink);
  display: flex !important;
  height: 46px;
  justify-content: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  z-index: 5;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.pm-related__arrow:hover {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}
.pm-related__arrow--prev {
  left: 10px;
}
.pm-related__arrow--next {
  right: 10px;
}
.pm-related__arrow-icon {
  display: block;
  fill: none;
  height: 22px;
  pointer-events: none;
  position: relative;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
  width: 22px;
  z-index: 1;
}
.pm-trust {
  background-attachment: fixed;
  background-image:
    linear-gradient(rgba(37, 37, 37, 0.61), rgba(37, 37, 37, 0.61)),
    var(--pm-trust);
  background-position: center;
  background-size: cover;
  color: #fff;
  height: 672px;
  position: relative;
}
.pm-trust__copy {
  padding: 120px 8% 0;
}
.pm-trust h2 {
  color: #fff;
  font-size: 110px;
  font-weight: 800;
  line-height: 1.11;
  max-width: 1252px;
}
.pm-trust p {
  font-size: 30px;
  line-height: 1.58;
  margin: 35px 0 0;
  max-width: 1213px;
}
.pm-trust__consult {
  background: var(--pm-blue);
  bottom: -1px;
  color: #fff;
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr auto;
  min-height: 170px;
  padding: 28px 35px;
  position: absolute;
  right: 8%;
  text-decoration: none;
  width: 520px;
}
.pm-trust__consult strong {
  font-family: var(--display);
  font-size: 36px;
  font-weight: 500;
}
.pm-trust__consult small {
  font-family: "PP Neue Corp", var(--display);
  font-size: 20px;
  letter-spacing: 4px;
  line-height: 1.4;
}
.pm-trust__consult i {
  align-items: center;
  background: #fff;
  border-radius: 50%;
  color: var(--pm-ink);
  display: flex;
  grid-column: 2;
  grid-row: 1/3;
  height: 55px;
  justify-content: center;
  margin: auto;
  width: 55px;
}
.pm-reasons {
  padding: 100px 0;
}
.pm-reasons h2 {
  font-size: 80px;
  font-weight: 500;
  line-height: 1.16;
  margin-bottom: 72px;
  max-width: 1162px;
}
.pm-reason-grid {
  display: grid;
  gap: 50px;
  grid-template-columns: repeat(3, 1fr);
}
.pm-reason {
  background: rgba(200, 200, 200, 0.15);
  height: 390px;
  padding: 73px 66px;
}
.pm-reason:first-child {
  background: var(--pm-blue);
  color: #fff;
}
.pm-reason img {
  height: 68px;
  width: 68px;
}
.pm-reason:first-child img {
  height: 122px;
  width: 122px;
}
.pm-reason h3 {
  font-family: var(--body);
  font-size: 36px;
  font-weight: 600;
  line-height: 1.3;
  margin-top: 72px;
}
.pm-reason:first-child h3 {
  color: #fff;
  margin-top: 27px;
}
.pm-testimonial {
  background: var(--pm-ink);
  color: #fff;
  height: 590px;
  overflow: hidden;
  position: relative;
}
.pm-testimonial:after {
  color: rgba(255, 255, 255, 0.04);
  content: "\201c";
  font-family: Georgia, serif;
  font-size: 720px;
  line-height: 1;
  position: absolute;
  right: 80px;
  top: -140px;
}
.pm-testimonial__inner {
  padding: 105px 0;
  position: relative;
  z-index: 1;
}
.pm-testimonial blockquote {
  font-size: 40px;
  font-weight: 600;
  line-height: 1.58;
  margin: 0;
  max-width: 1420px;
}
.pm-testimonial cite {
  display: block;
  font-family: var(--display);
  font-size: 50px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.16;
  margin-top: 54px;
}
.pm-testimonial span {
  color: rgba(255, 255, 255, 0.7);
  display: block;
  font-size: 30px;
  font-weight: 600;
  margin-top: 2px;
}
.pm-testimonial__dots {
  bottom: 120px;
  display: flex;
  gap: 8px;
  position: absolute;
  right: 0;
}
.pm-testimonial__dots i {
  background: rgba(255, 255, 255, 0.3);
  border-radius: 6px;
  height: 11px;
  width: 11px;
}
.pm-testimonial__dots i:first-child {
  background: #fff;
  width: 99px;
}
.pm-faq {
  padding: 100px 0 0;
}
.pm-faq__heading {
  padding-bottom: 75px;
}
.pm-faq h2 {
  font-size: 80px;
  font-weight: 500;
  line-height: 1.16;
  max-width: 1204px;
}
.pm-faq__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 836px;
}
.pm-faq__media {
  align-items: center;
  background: #333;
  display: flex;
  justify-content: center;
  overflow: hidden;
  position: relative;
}
.pm-faq__media video {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.pm-faq__media:after {
  background: rgba(37, 37, 37, 0.61);
  content: "";
  inset: 0;
  position: absolute;
}
.pm-faq__media img {
  height: 540px;
  object-fit: contain;
  position: relative;
  width: 540px;
  z-index: 1;
}
.pm-faq__accordion {
  padding: 0 4.2%;
}
.pm-faq__item {
  border-bottom: 1px solid rgba(37, 37, 37, 0.3);
}
.pm-faq__item button {
  align-items: center;
  background: none;
  border: 0;
  color: #1e1e1e;
  display: flex;
  font-size: 30px;
  font-weight: 600;
  justify-content: space-between;
  line-height: 1.58;
  padding: 20px 0;
  text-align: left;
  width: 100%;
}
.pm-faq__item button:after {
  background:
    linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat,
    linear-gradient(currentColor, currentColor) center / 2px 14px no-repeat;
  content: "";
  flex: 0 0 14px;
  height: 14px;
  margin-left: 24px;
  width: 14px;
}
.pm-faq__item.is-open button:after {
  background:
    linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat,
    linear-gradient(currentColor, currentColor) center / 0 0 no-repeat;
}
.pm-faq__answer {
  display: none;
  font-size: 20px;
  line-height: 1.58;
  padding: 0 0 20px;
}
.pm-faq__item.is-open .pm-faq__answer {
  display: block;
}
.pm-services {
  padding: 75px 0 0;
}
.pm-services__heading {
  text-align: center;
}
.pm-services__heading .pm-eyebrow {
  justify-content: center;
}
.pm-services h2 {
  font-size: 80px;
  font-weight: 500;
  line-height: 1.16;
}
.pm-service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 52px;
}
.pm-service-card {
  height: 516px;
  overflow: hidden;
  position: relative;
}
.pm-service-card > img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.pm-service-card:after {
  background: rgba(255, 255, 255, 0.4);
  bottom: 0;
  content: "";
  height: 97px;
  left: 0;
  position: absolute;
  right: 0;
}
.pm-service-card h3 {
  bottom: 28px;
  font-family: var(--body);
  font-size: 40px;
  font-weight: 700;
  left: 45px;
  position: absolute;
  z-index: 2;
}
.pm-service-card--active:after {
  backdrop-filter: blur(8.8px);
  background: rgba(255, 255, 255, 0.64);
  height: 100%;
  mix-blend-mode: normal;
}
.pm-service-card--active .pm-service-card__copy {
  inset: 0;
  padding: 55px 50px;
  position: absolute;
  z-index: 2;
}
.pm-service-card--active h3 {
  bottom: auto;
  font-size: 60px;
  left: auto;
  line-height: 1.16;
  position: relative;
}
.pm-service-card--active p {
  font-size: 30px;
  line-height: 1.58;
  margin-top: 40px;
}
.pm-service-card--active a {
  align-items: center;
  background: #fff;
  border-radius: 50%;
  color: #111;
  display: flex;
  height: 55px;
  justify-content: center;
  position: absolute;
  right: 20px;
  text-decoration: none;
  top: 20px;
  width: 55px;
}
.pm-ready {
  padding: 95px 20px 125px;
  text-align: center;
}
.pm-ready h2 {
  font-size: 110px;
  font-weight: 800;
  line-height: 1.11;
}
.pm-ready p {
  font-size: 24px;
  line-height: 1.58;
  margin: 42px auto 28px;
  max-width: 850px;
}
.pm-ready__actions {
  display: flex;
  gap: 25px;
  justify-content: center;
}
.pm-ready__actions a {
  align-items: center;
  border: 1px solid var(--pm-ink);
  color: var(--pm-ink);
  display: flex;
  font-family: var(--display);
  font-size: 20px;
  height: 63px;
  justify-content: space-between;
  padding: 0 25px;
  text-decoration: none;
  width: 260px;
}
.pm-ready__actions a:first-child {
  background: var(--pm-blue);
  border-color: var(--pm-blue);
  color: #fff;
}
body.single-ucg_service .ucg-footer-quote,
body.pm-static-page .ucg-footer-quote {
  padding: 85px 0;
}
body.single-ucg_service .ucg-footer-quote h2,
body.pm-static-page .ucg-footer-quote h2 {
  font-family: var(--display);
  font-size: 80px;
  font-weight: 800;
}
@media (max-width: 1199px) {
  body.single-ucg_service .ucg-inner-nav,
  body.pm-static-page .ucg-inner-nav {
    height: 110px;
    padding: 0 35px;
  }
  .pm-page {
    padding-top: 110px !important;
  }
  .pm-intro {
    min-height: 420px;
  }
  .pm-intro h1 {
    font-size: 64px;
  }
  .pm-blueprint {
    height: 760px;
  }
  .pm-blueprint__image {
    height: 570px;
  }
  .pm-blueprint__wordmark {
    top: 470px;
  }
  .pm-blueprint__wordmark strong {
    font-size: 145px;
  }
  .pm-blueprint__wordmark span {
    font-size: 58px;
    letter-spacing: 23px;
  }
  .pm-story {
    grid-template-columns: 40% 60%;
    padding-inline: 4%;
  }
  .pm-story__copy {
    font-size: 24px;
  }
  .pm-story__media--second {
    width: 100%;
  }
  .pm-story__copy--second {
    margin-left: 0;
    width: auto;
  }
  .pm-related__track {
    gap: 25px;
    padding-inline: 3%;
  }
  .pm-project h3 {
    font-size: 43px;
  }
  .pm-trust h2 {
    font-size: 82px;
  }
  .pm-reason-grid {
    gap: 24px;
  }
  .pm-reason {
    padding: 55px 42px;
  }
  .pm-reason h3 {
    font-size: 29px;
  }
  .pm-faq__item button {
    font-size: 24px;
  }
}
@media (max-width: 767px) {
  body.single-ucg_service .ucg-inner-nav,
  body.pm-static-page .ucg-inner-nav {
    height: 76px;
    padding: 0 18px;
  }
  body.single-ucg_service .ucg-inner-nav__logo img,
  body.pm-static-page .ucg-inner-nav__logo img {
    height: 44px;
    width: 155px;
  }
  .pm-page {
    padding-top: 76px !important;
  }
  .pm-intro {
    min-height: 310px;
    padding: 65px 18px 45px;
  }
  .pm-eyebrow {
    font-size: 12px;
    gap: 10px;
    letter-spacing: 4px;
  }
  .pm-eyebrow:before {
    height: 7px;
    flex-basis: 7px;
    width: 7px;
  }
  .pm-intro h1 {
    font-size: 48px;
  }
  .pm-blueprint {
    height: 560px;
  }
  .pm-blueprint__image {
    height: 400px;
  }
  .pm-blueprint__wordmark {
    top: 350px;
  }
  .pm-blueprint__wordmark strong {
    font-size: 74px;
    margin-left: 18px;
  }
  .pm-blueprint__wordmark span {
    font-size: 32px;
    letter-spacing: 10px;
    margin: 6px 0 0;
    text-align: center;
    width: 100%;
  }
  .pm-story {
    display: flex;
    flex-direction: column;
    gap: 35px;
    padding: 0 18px 70px;
  }
  .pm-story__copy {
    font-size: 18px;
    order: 1;
    padding: 0;
  }
  .pm-story__media {
    height: 390px;
    order: 2;
    width: 100%;
  }
  .pm-story__media--second {
    order: 3;
  }
  .pm-story__copy--second {
    margin: 0;
    order: 4;
    width: 100%;
  }
  .pm-related__heading {
    padding: 0 18px 40px;
  }
  .pm-related__heading h2,
  .pm-reasons h2,
  .pm-faq h2,
  .pm-services h2 {
    font-size: 48px;
  }
  .pm-related__track {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding: 0 18px;
    scroll-snap-type: x mandatory;
  }
  .pm-project {
    flex: 0 0 86vw;
    height: 600px;
    scroll-snap-align: start;
  }
  .pm-trust {
    background-attachment: scroll;
    height: 630px;
  }
  .pm-trust__copy {
    padding: 70px 18px 0;
  }
  .pm-trust h2 {
    font-size: 58px;
  }
  .pm-trust p {
    font-size: 18px;
  }
  .pm-trust__consult {
    bottom: 0;
    left: 18px;
    right: 18px;
    width: auto;
  }
  .pm-reasons {
    padding: 70px 18px;
  }
  .pm-reason-grid {
    grid-template-columns: 1fr;
  }
  .pm-reason {
    height: 300px;
  }
  .pm-testimonial {
    height: auto;
    min-height: 590px;
  }
  .pm-testimonial__inner {
    padding: 80px 18px;
  }
  .pm-testimonial blockquote {
    font-size: 26px;
  }
  .pm-testimonial cite {
    font-size: 40px;
  }
  .pm-testimonial__dots {
    bottom: 40px;
    right: 18px;
  }
  .pm-faq {
    padding-top: 70px;
  }
  .pm-faq__heading {
    padding: 0 18px 45px;
  }
  .pm-faq__layout {
    grid-template-columns: 1fr;
    height: auto;
  }
  .pm-faq__media {
    height: 560px;
  }
  .pm-faq__media img {
    height: 250px;
    width: 250px;
  }
  .pm-faq__accordion {
    padding: 25px 18px;
  }
  .pm-faq__item button {
    font-size: 18px;
  }
  .pm-services {
    padding-top: 60px;
  }
  .pm-services__heading {
    padding-inline: 18px;
  }
  .pm-service-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
  .pm-service-card {
    flex: 0 0 88vw;
    scroll-snap-align: start;
  }
  .pm-ready {
    padding: 70px 18px;
  }
  .pm-ready h2 {
    font-size: 58px;
  }
  .pm-ready__actions {
    flex-direction: column;
  }
  .pm-ready__actions a {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pm-trust {
    background-attachment: scroll;
  }
}

/* Service-specific wordmarks and supporting related-work copy. */
.pm-blueprint__wordmark--long strong {
  font-size: clamp(78px, 9.4vw, 180px);
  letter-spacing: -.035em;
  margin-left: 0;
  text-align: center;
  white-space: nowrap;
  width: 100%;
}
.pm-blueprint__wordmark--long span {
  font-size: clamp(38px, 3.7vw, 70px);
  letter-spacing: clamp(11px, 1.35vw, 26px);
  margin-inline: auto;
  width: min(92%, 1280px);
}
.pm-related__intro {
  color: #4a4a4a;
  font-family: var(--body);
  font-size: clamp(17px, 1.15vw, 21px);
  line-height: 1.55;
  margin: 22px 0 0;
  max-width: 900px;
}

/* Centre every service-detail section heading group without changing card copy. */
.pm-related__heading,
.pm-faq__heading,
.pm-services__heading {
  text-align: center;
}
.pm-related__heading .pm-eyebrow,
.pm-reasons > .pm-container > .pm-eyebrow,
.pm-faq__heading .pm-eyebrow,
.pm-services__heading .pm-eyebrow {
  justify-content: center;
}
.pm-related__heading h2,
.pm-related__heading .pm-related__intro,
.pm-reasons > .pm-container > h2,
.pm-faq__heading h2,
.pm-services__heading h2 {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.pm-related__heading .pm-related__intro {
  max-width: 980px;
}
@media (max-width: 767px) {
  .pm-blueprint__wordmark--long strong {
    font-size: clamp(38px, 12vw, 66px);
    margin-left: 0;
    white-space: normal;
  }
  .pm-blueprint__wordmark--long span {
    font-size: clamp(24px, 7.5vw, 34px);
    letter-spacing: clamp(5px, 2vw, 9px);
    width: 100%;
  }
  .pm-related__intro {
    margin-top: 16px;
  }
}

/* Match the Home page shine interaction on service-page action buttons. */
.pm-page .ucg-shine,
.pm-page .pm-related__arrow {
  --button-shine: rgba(255, 255, 255, .58);
  isolation: isolate;
  overflow: hidden;
  position: relative;
}
.pm-page .ucg-shine::before,
.pm-page .pm-related__arrow::before {
  background: linear-gradient(45deg, transparent 25%, var(--button-shine) 50%, transparent 75%, transparent 100%);
  background-position: 200% 0;
  background-repeat: no-repeat;
  background-size: 250% 250%;
  border-radius: inherit;
  content: "";
  height: auto;
  inset: 0;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: none;
  transition: background-position 0s ease;
  width: auto;
}
.pm-page .ucg-shine:hover::before,
.pm-page .ucg-shine:focus-visible::before,
.pm-page .pm-related__arrow:hover::before,
.pm-page .pm-related__arrow:focus-visible::before {
  background-position: -100% 0;
  left: 0;
  transition-duration: 1.5s;
}
.pm-page .pm-project__link,
.pm-page .pm-service-card__copy a,
.pm-page .pm-ready__actions a:not(:first-child),
.pm-page .pm-related__arrow {
  --button-shine: rgba(11, 94, 215, .26);
}

/* Figma-matched, functional testimonial carousel. */
.pm-testimonial {
  isolation: isolate;
}
.pm-testimonial:after {
  background: url("../images/figma-service/testimonial-quotes.svg") center / 100% 100% no-repeat;
  color: transparent;
  content: "";
  font-size: 0;
  height: 785px;
  left: 50%;
  pointer-events: none;
  right: auto;
  top: -95px;
  transform: translateX(-50%);
  width: min(1530px, calc(100% - 32px));
  z-index: 0;
}
.pm-testimonial__track {
  inset: 0;
  position: absolute;
  z-index: 1;
}
.pm-testimonial__slide {
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  transform: translate3d(0, 34px, 0);
  transition: opacity 700ms cubic-bezier(.22, 1, .36, 1), transform 850ms cubic-bezier(.22, 1, .36, 1);
  visibility: hidden;
}
.pm-testimonial__slide.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(0, 0, 0);
  visibility: visible;
  z-index: 1;
}
.pm-testimonial__inner {
  padding: 105px 16px;
}
.pm-testimonial__controls {
  height: 100%;
  pointer-events: none;
  position: relative;
  z-index: 3;
}
.pm-testimonial__dots {
  pointer-events: auto;
  right: 16px;
}
.pm-testimonial__dots button {
  appearance: none;
  background: rgba(255, 255, 255, .3);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  flex: 0 0 auto;
  height: 11px;
  padding: 0;
  transition: background-color 350ms ease, width 550ms cubic-bezier(.22, 1, .36, 1);
  width: 11px;
}
.pm-testimonial__dots button[aria-current="true"] {
  background: #fff;
  width: 99px;
}
.pm-testimonial__dots button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}
.pm-testimonial:focus-visible {
  outline: 2px solid var(--pm-blue);
  outline-offset: -2px;
}
@media (max-width: 767px) {
  .pm-testimonial__inner {
    padding: 80px 18px;
  }
  .pm-testimonial__dots {
    bottom: 40px;
    right: 18px;
  }
  .pm-testimonial__slide {
    transform: translate3d(0, 24px, 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pm-testimonial__slide,
  .pm-testimonial__dots button {
    transition: none;
  }
}

/* Pixel alignment corrections from the 1728px Figma frame. */
body.single-ucg_service .ucg-inner-nav,
body.pm-static-page .ucg-inner-nav {
  position: absolute;
}
@media (min-width: 1200px) {
  .pm-blueprint__wordmark strong {
    margin-left: 11%;
  }
  .pm-blueprint__wordmark span {
    font-size: 68px;
    letter-spacing: 28px;
    margin: 4px auto 0;
    width: 900px;
  }
  .pm-story {
    gap: 70px 53px;
  }
  .pm-story__copy--second {
    margin-left: 366px;
  }
  .pm-related__track {
    gap: 3.414vw;
    grid-template-columns: repeat(3, min(507px, 29.34vw));
    padding: 0 0 0 5.9%;
    width: max-content;
  }
  .pm-project {
    height: clamp(620px, 46.82vw, 809px);
  }
}

/* Keep every inner-page text role on the same typography system as Home. */
body.single-ucg_service .ucg-menu-trigger,
body.pm-static-page .ucg-menu-trigger,
body.single-ucg_service .ucg-call-link,
body.pm-static-page .ucg-call-link,
.pm-eyebrow,
.pm-project__link,
.pm-trust__consult small,
.pm-ready__actions a {
  font-family: var(--body);
}
.pm-eyebrow {
  font-weight: 600;
}
.pm-project__link,
.pm-ready__actions a {
  font-weight: 500;
}
.pm-trust__consult small {
  letter-spacing: 0;
}

/* Match the complete Home typography scale, not only its font families. */
body.single-ucg_service .ucg-menu-trigger,
body.pm-static-page .ucg-menu-trigger,
body.single-ucg_service .ucg-call-link,
body.pm-static-page .ucg-call-link {
  font-size: 1rem;
  font-weight: 600;
}
.pm-eyebrow {
  font-size: 0.78rem;
  letter-spacing: 0.38em;
  line-height: 1.5;
  text-transform: uppercase;
}
.pm-intro h1 {
  font-size: clamp(3.2rem, 5.79vw, 6.25rem);
  line-height: 0.98;
}
.pm-related__heading h2,
.pm-reasons h2,
.pm-faq h2,
.pm-services h2 {
  font-size: clamp(2.4rem, 4.5vw, 5rem);
  line-height: 1.04;
}
.pm-trust h2,
.pm-ready h2 {
  font-size: clamp(3.2rem, 5.79vw, 6.25rem);
  line-height: 0.98;
}
.pm-story__copy,
.pm-project--active p,
.pm-trust p,
.pm-service-card--active p {
  font-size: clamp(1rem, 1.15vw, 1.5rem);
  font-weight: 400;
  line-height: 1.65;
}
.pm-project h3,
.pm-reason h3,
.pm-service-card h3 {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
}
.pm-project h3 {
  font-size: clamp(2rem, 3vw, 3.75rem);
  line-height: 1.04;
}
.pm-project__link,
.pm-ready__actions a {
  font-size: 0.9rem;
  font-weight: 600;
}
.pm-trust__consult strong {
  font-size: clamp(1.65rem, 3vw, 3.2rem);
}
.pm-trust__consult small {
  font-size: 0.9rem;
}
.pm-reason h3 {
  font-size: clamp(1.7rem, 2.5vw, 2.6rem);
  line-height: 1.08;
}
.pm-testimonial blockquote {
  font-size: clamp(1.6rem, 2.35vw, 2.5rem);
  font-weight: 500;
  line-height: 1.45;
}
.pm-testimonial cite {
  font-size: clamp(2rem, 3vw, 3.2rem);
}
.pm-testimonial span {
  font-size: clamp(1rem, 1.15vw, 1.25rem);
  font-weight: 500;
}
.pm-faq__item button {
  font-size: clamp(1rem, 1.35vw, 1.5rem);
  line-height: 1.45;
}
.pm-faq__answer {
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}
.pm-service-card h3 {
  font-size: clamp(1.7rem, 2.5vw, 2.6rem);
}
.pm-service-card--active h3 {
  font-size: clamp(2.15rem, 3.7vw, 4rem);
  line-height: 1.04;
}
.pm-ready p {
  font-size: 1.1rem;
  line-height: 1.7;
  margin: 2rem auto;
}
.pm-ready {
  padding: 70px 20px 110px;
}
.pm-ready h2 {
  font-size: clamp(3rem, 6vw, 6.4rem);
  font-weight: 500;
  line-height: 1.04;
  margin: 0 0 0.5rem;
}
.pm-ready__actions {
  gap: 1rem;
}
.pm-ready__actions a {
  box-sizing: border-box;
  height: 63px;
  min-height: 63px;
  min-width: 0;
  padding: 0 25px;
  width: min(100%, 320px);
}
body.single-ucg_service .ucg-footer-quote h2,
body.pm-static-page .ucg-footer-quote h2 {
  font-size: clamp(2.4rem, 4.5vw, 5rem);
  line-height: 1.04;
}
@media (min-width: 992px) and (min-height: 651px) and (max-height: 900px) {
  .pm-intro h1,
  .pm-trust h2 {
    font-size: clamp(3.4rem, min(6vw, 10vh), 5.4rem);
  }
  .pm-ready h2 {
    font-size: clamp(3rem, min(6vw, 8vh), 5.4rem);
  }
  .pm-ready {
    padding-bottom: clamp(52px, 7vh, 64px);
    padding-top: clamp(52px, 7vh, 64px);
  }
}

/* Home-style shine and arrow motion for every Service-page button. */
:is(body.pm-static-page, body.single-ucg_service) :where(
  .site-nav .btn,
  .floating-consult--banner,
  .pm-project__link,
  .pm-service-card__copy a,
  .pm-ready__actions a,
  .pm-related__arrow
) {
  --button-shine: rgba(255, 255, 255, .58);
  isolation: isolate;
  overflow: hidden;
}
:is(body.pm-static-page, body.single-ucg_service) :where(
  .site-nav .btn,
  .pm-project__link,
  .pm-ready__actions a
) {
  position: relative !important;
}
:is(body.pm-static-page, body.single-ucg_service) :where(
  .floating-consult--banner,
  .pm-service-card__copy a,
  .pm-related__arrow
) {
  position: absolute !important;
}
:is(body.pm-static-page, body.single-ucg_service) :where(
  .site-nav .btn,
  .floating-consult--banner,
  .pm-project__link,
  .pm-service-card__copy a,
  .pm-ready__actions a,
  .pm-related__arrow
)::before {
  background: linear-gradient(45deg, transparent 25%, var(--button-shine) 50%, transparent 75%, transparent 100%);
  background-position: 200% 0;
  background-repeat: no-repeat;
  background-size: 250% 250%;
  border-radius: inherit;
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  transition: background-position 0s ease;
  will-change: background-position;
  z-index: 0;
}
:is(body.pm-static-page, body.single-ucg_service) :where(
  .site-nav .btn,
  .floating-consult--banner,
  .pm-project__link,
  .pm-service-card__copy a,
  .pm-ready__actions a,
  .pm-related__arrow
):is(:hover, :focus-visible)::before {
  background-position: -100% 0;
  transition-duration: 1.5s;
}
:is(body.pm-static-page, body.single-ucg_service) :where(
  .pm-project__link,
  .pm-service-card__copy a,
  .pm-ready__actions a:not(:first-child),
  .pm-related__arrow
) {
  --button-shine: rgba(11, 94, 215, .26);
}
:is(body.pm-static-page, body.single-ucg_service) .pm-ready__actions a:not(:first-child) {
  transition: background-color .3s ease, border-color .3s ease, color .3s ease;
}
:is(body.pm-static-page, body.single-ucg_service) .pm-ready__actions a:not(:first-child):is(:hover, :focus-visible) {
  --button-shine: rgba(255, 255, 255, .58);
  background-color: var(--pm-ink);
  border-color: var(--pm-ink);
  color: #fff;
}
:is(body.pm-static-page, body.single-ucg_service) :where(
  .site-nav .btn,
  .floating-consult--banner,
  .pm-project__link,
  .pm-service-card__copy a,
  .pm-ready__actions a,
  .pm-related__arrow
) :is(i, .pm-related__arrow-icon) {
  position: relative;
  transition: transform .35s cubic-bezier(.22, 1, .36, 1);
  z-index: 1;
}
:is(body.pm-static-page, body.single-ucg_service) :where(
  .site-nav .btn,
  .pm-project__link,
  .pm-ready__actions a,
  .pm-related__arrow--next
):hover :is(i, .pm-related__arrow-icon) {
  transform: translateX(4px);
}
:is(body.pm-static-page, body.single-ucg_service) .pm-related__arrow--prev:hover :is(i, .pm-related__arrow-icon) {
  transform: translateX(-4px);
}
:is(body.pm-static-page, body.single-ucg_service) :where(
  .floating-consult--banner,
  .pm-service-card__copy a
):hover i {
  transform: translate(3px, -3px);
}

/* Circular Related Work carousel with the same reveal treatment as Home expertise cards. */
.pm-related__viewport {
  overflow: hidden;
  outline: none;
}
.pm-related__viewport:focus-visible {
  outline: 3px solid rgba(11, 94, 215, 0.7);
  outline-offset: -3px;
}
.pm-related__viewport > .pm-related__arrow {
  position: absolute !important;
  top: 50%;
  transform: translateY(-50%);
}
.pm-related__viewport > .pm-related__arrow--prev {
  left: clamp(10px, 2.2vw, 38px);
  right: auto;
}
.pm-related__viewport > .pm-related__arrow--next {
  left: auto;
  right: clamp(10px, 2.2vw, 38px);
}
.pm-related__track {
  display: flex;
  gap: clamp(14px, 3.414vw, 59px);
  grid-template-columns: none;
  padding: 0 5.9%;
  transform: translate3d(var(--pm-related-x, 0), 0, 0);
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  width: max-content;
  will-change: transform;
}
.pm-related__track.is-jumping {
  transition: none;
}
.pm-project {
  flex: 0 0 clamp(280px, 29.34vw, 507px);
  height: clamp(560px, 46.82vw, 809px);
  isolation: isolate;
  outline: none;
}
.pm-project:after {
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.78),
    rgba(0, 0, 0, 0.03) 62%
  );
  backdrop-filter: blur(0);
  -webkit-backdrop-filter: blur(0);
  transition:
    background 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    backdrop-filter 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    -webkit-backdrop-filter 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-project__content,
.pm-project--active .pm-project__content {
  color: #fff;
  inset: auto 0 0;
  padding: clamp(1.35rem, 2.6vw, 2.8rem);
  position: absolute;
  z-index: 3;
}
.pm-project h3,
.pm-project--active h3 {
  bottom: auto;
  left: auto;
  margin: 0;
  position: static;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-project__content p,
.pm-project--active p {
  font-size: clamp(1rem, 1.15vw, 1.25rem);
  line-height: 1.65;
  margin: 1.2rem 0 0;
  max-width: 26rem;
}
.pm-project__link {
  bottom: auto;
  height: auto;
  left: auto;
  margin-top: 2rem;
  min-height: 49px;
  padding: 0.85rem 1.25rem;
  position: static;
  width: 100%;
}
.pm-project:focus-visible {
  outline: 3px solid rgba(11, 94, 215, 0.82);
  outline-offset: -3px;
}
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
  .pm-project__content p,
  .pm-project__link {
    margin-top: 0;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transform: translateY(22px);
    transition:
      opacity 0.38s ease,
      visibility 0.38s ease,
      transform 0.52s cubic-bezier(0.22, 1, 0.36, 1),
      max-height 0.52s cubic-bezier(0.22, 1, 0.36, 1),
      margin-top 0.52s cubic-bezier(0.22, 1, 0.36, 1),
      padding 0.52s cubic-bezier(0.22, 1, 0.36, 1);
    visibility: hidden;
  }
  .pm-project__link {
    min-height: 0;
    padding-bottom: 0;
    padding-top: 0;
  }
  .pm-project:hover:after,
  .pm-project:focus:after,
  .pm-project:focus-within:after {
    background: rgba(0, 0, 0, 0.64);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
  }
  .pm-project:hover h3,
  .pm-project:focus h3,
  .pm-project:focus-within h3 {
    transform: translateY(-4px);
  }
  .pm-project:hover .pm-project__content p,
  .pm-project:focus .pm-project__content p,
  .pm-project:focus-within .pm-project__content p,
  .pm-project:hover .pm-project__link,
  .pm-project:focus .pm-project__link,
  .pm-project:focus-within .pm-project__link {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
  }
  .pm-project:hover .pm-project__content p,
  .pm-project:focus .pm-project__content p,
  .pm-project:focus-within .pm-project__content p {
    margin-top: 1.2rem;
    max-height: 9rem;
  }
  .pm-project:hover .pm-project__link,
  .pm-project:focus .pm-project__link,
  .pm-project:focus-within .pm-project__link {
    margin-top: 2rem;
    max-height: 4.25rem;
    min-height: 49px;
    padding: 0.85rem 1.25rem;
  }
}
@media (hover: none), (pointer: coarse) {
  .pm-project:after {
    background: linear-gradient(0deg, rgba(0, 0, 0, .78), rgba(0, 0, 0, .03) 62%);
    backdrop-filter: blur(0);
    -webkit-backdrop-filter: blur(0);
  }
  .pm-project__content p,
  .pm-project__link {
    margin-top: 0;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transform: translateY(22px);
    transition: opacity .3s ease, transform .42s cubic-bezier(.22, 1, .36, 1), max-height .42s cubic-bezier(.22, 1, .36, 1), margin-top .42s cubic-bezier(.22, 1, .36, 1), padding .42s cubic-bezier(.22, 1, .36, 1);
    visibility: hidden;
  }
  .pm-project__link {
    min-height: 0;
    padding-bottom: 0;
    padding-top: 0;
  }
  .pm-project.is-touch-active:after {
    background: rgba(0, 0, 0, .64);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
  }
  .pm-project.is-touch-active h3 { transform: translateY(-4px); }
  .pm-project.is-touch-active .pm-project__content p,
  .pm-project.is-touch-active .pm-project__link {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
  }
  .pm-project.is-touch-active .pm-project__content p {
    margin-top: 1.2rem;
    max-height: 12rem;
  }
  .pm-project.is-touch-active .pm-project__link {
    margin-top: 2rem;
    max-height: 4.25rem;
    min-height: 49px;
    padding: .85rem 1.25rem;
  }
}
@media (max-width: 767px) {
  .pm-related__track {
    gap: 14px;
    padding: 0 18px;
  }
  .pm-project {
    flex-basis: 86vw;
    height: 600px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pm-related__track,
  .pm-project:after,
  .pm-project h3,
  .pm-project__content p,
  .pm-project__link {
    transition: none;
  }
}

/* Interactive Our Available Service cards: hover plus continuous active reveal. */
.pm-service-card {
  cursor: default;
  isolation: isolate;
  outline: none;
}
.pm-service-card:after {
  backdrop-filter: blur(0);
  -webkit-backdrop-filter: blur(0);
  background: rgba(255, 255, 255, 0.4);
  height: clamp(78px, 5.62vw, 97px);
  transition:
    height 0.58s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.45s ease,
    backdrop-filter 0.58s cubic-bezier(0.22, 1, 0.36, 1),
    -webkit-backdrop-filter 0.58s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-service-card__copy {
  color: var(--pm-ink);
  inset: 0;
  padding: clamp(42px, 3.2vw, 55px) clamp(30px, 2.9vw, 50px);
  pointer-events: none;
  position: absolute;
  transform: translate3d(0, calc(100% - clamp(118px, 7.64vw, 132px)), 0);
  transition: transform 0.62s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 2;
}
.pm-service-card .pm-service-card__copy h3 {
  bottom: auto;
  font-size: clamp(1.7rem, 2.5vw, 2.6rem);
  left: auto;
  line-height: 1.04;
  margin: 0;
  position: static;
  transition: font-size 0.58s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-service-card__copy p {
  font-size: clamp(1rem, 1.15vw, 1.25rem);
  line-height: 1.65;
  margin: clamp(24px, 2.3vw, 40px) 0 0;
  max-width: 34rem;
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.32s ease,
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.32s ease;
  visibility: hidden;
}
.pm-service-card__copy a {
  align-items: center;
  background: #fff;
  border-radius: 50%;
  color: #111;
  display: flex;
  height: 55px;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  right: 20px;
  text-decoration: none;
  top: 20px;
  transform: translateY(12px);
  transition:
    opacity 0.32s ease,
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.32s ease;
  visibility: hidden;
  width: 55px;
}
.pm-service-card:hover:after,
.pm-service-card:focus:after,
.pm-service-card:focus-within:after,
.pm-service-card.is-active:after {
  backdrop-filter: blur(8.8px);
  -webkit-backdrop-filter: blur(8.8px);
  background: rgba(255, 255, 255, 0.64);
  height: 100%;
}
.pm-service-card:hover .pm-service-card__copy,
.pm-service-card:focus .pm-service-card__copy,
.pm-service-card:focus-within .pm-service-card__copy,
.pm-service-card.is-active .pm-service-card__copy {
  transform: translate3d(0, 0, 0);
}
.pm-service-card:hover .pm-service-card__copy h3,
.pm-service-card:focus .pm-service-card__copy h3,
.pm-service-card:focus-within .pm-service-card__copy h3,
.pm-service-card.is-active .pm-service-card__copy h3 {
  font-size: clamp(2.15rem, 3.7vw, 4rem);
}
.pm-service-card:hover .pm-service-card__copy p,
.pm-service-card:focus .pm-service-card__copy p,
.pm-service-card:focus-within .pm-service-card__copy p,
.pm-service-card.is-active .pm-service-card__copy p,
.pm-service-card:hover .pm-service-card__copy a,
.pm-service-card:focus .pm-service-card__copy a,
.pm-service-card:focus-within .pm-service-card__copy a,
.pm-service-card.is-active .pm-service-card__copy a {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}
.pm-service-card:hover .pm-service-card__copy a,
.pm-service-card:focus .pm-service-card__copy a,
.pm-service-card:focus-within .pm-service-card__copy a,
.pm-service-card.is-active .pm-service-card__copy a {
  pointer-events: auto;
}
.pm-service-card:focus-visible {
  outline: 3px solid rgba(11, 94, 215, 0.82);
  outline-offset: -3px;
}
@media (hover: none), (pointer: coarse) {
  .pm-service-card:after,
  .pm-service-card.is-active:after {
    backdrop-filter: blur(0);
    -webkit-backdrop-filter: blur(0);
    background: rgba(255, 255, 255, .4);
    height: clamp(78px, 5.62vw, 97px);
  }
  .pm-service-card__copy,
  .pm-service-card.is-active .pm-service-card__copy {
    transform: translate3d(0, calc(100% - clamp(118px, 7.64vw, 132px)), 0);
  }
  .pm-service-card .pm-service-card__copy h3,
  .pm-service-card.is-active .pm-service-card__copy h3 {
    font-size: clamp(1.7rem, 7vw, 2.6rem);
  }
  .pm-service-card__copy p,
  .pm-service-card__copy a,
  .pm-service-card.is-active .pm-service-card__copy p,
  .pm-service-card.is-active .pm-service-card__copy a {
    opacity: 0;
    pointer-events: none;
    transform: translateY(18px);
    visibility: hidden;
  }
  .pm-service-card.is-touch-active:after {
    backdrop-filter: blur(8.8px);
    -webkit-backdrop-filter: blur(8.8px);
    background: rgba(255, 255, 255, .64);
    height: 100%;
  }
  .pm-service-card.is-touch-active .pm-service-card__copy {
    transform: translate3d(0, 0, 0);
  }
  .pm-service-card.is-touch-active .pm-service-card__copy h3 {
    font-size: clamp(2.15rem, 8vw, 3.4rem);
  }
  .pm-service-card.is-touch-active .pm-service-card__copy p,
  .pm-service-card.is-touch-active .pm-service-card__copy a {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
  }
  .pm-service-card.is-touch-active .pm-service-card__copy a {
    pointer-events: auto;
  }
}
@media (max-width: 767px) {
  .pm-service-card__copy {
    padding: 42px 30px;
  }
  .pm-service-card__copy p {
    margin-top: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pm-service-card:after,
  .pm-service-card__copy,
  .pm-service-card__copy h3,
  .pm-service-card__copy p,
  .pm-service-card__copy a {
    transition: none;
  }
}

/* Project Management blueprint image parallax. */
.pm-blueprint__image img {
  height: 116%;
  left: 0;
  object-fit: cover;
  object-position: center top;
  position: absolute;
  top: 0;
  transform: translate3d(0, var(--pm-blueprint-y, 0px), 0) scale(1.025);
  transform-origin: center top;
  width: 100%;
  will-change: transform;
}

/* Physical infinite slider for Our Available Service. */
@media (min-width: 768px) {
  .pm-service-viewport {
    overflow: hidden;
    width: 100%;
  }
  .pm-service-grid[data-pm-service-slider] {
    display: flex;
    overflow: visible;
    transform: translate3d(0, 0, 0);
    transition: transform .85s cubic-bezier(.22, 1, .36, 1);
    will-change: transform;
  }
  .pm-service-grid[data-pm-service-slider].is-jumping {
    transition: none;
  }
  .pm-service-grid[data-pm-service-slider] .pm-service-card {
    flex: 0 0 33.333333%;
    min-width: 0;
  }
  .pm-service-card.is-slider-clone {
    pointer-events: none;
  }
}

/* Why Choose Us cards become blue only on hover/focus. */
.pm-reason,
.pm-reason:first-child {
  background: rgba(200, 200, 200, 0.15);
  color: var(--pm-ink);
  outline: none;
  transition:
    background-color 0.48s cubic-bezier(0.22, 1, 0.36, 1),
    color 0.38s ease,
    transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-reason:first-child img {
  filter: brightness(0);
  height: 68px;
  width: 68px;
}
.pm-reason:first-child h3 {
  color: inherit;
  margin-top: 72px;
}
.pm-reason img,
.pm-reason h3 {
  transition:
    filter 0.38s ease,
    color 0.38s ease;
}
.pm-reason:hover,
.pm-reason:focus,
.pm-reason:focus-visible {
  background: var(--pm-blue);
  color: #fff;
  transform: translateY(-6px);
}
.pm-reason:hover h3,
.pm-reason:focus h3,
.pm-reason:focus-visible h3 {
  color: #fff;
}
.pm-reason:hover img,
.pm-reason:focus img,
.pm-reason:focus-visible img {
  filter: brightness(0) invert(1);
}
.pm-reason:focus-visible {
  outline: 3px solid rgba(11, 94, 215, 0.62);
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  .pm-blueprint__image img {
    transform: none;
    will-change: auto;
  }
  .pm-reason,
  .pm-reason img,
  .pm-reason h3 {
    transition: none;
  }
}

/* Reuse the Home trust banner component without inner-page heading overrides. */
.pm-trust-match h2 {
  margin: 0 0 0.5rem;
}
.pm-trust-match .floating-consult--banner h3 {
  font-family: var(--body) !important;
  font-size: clamp(1.45rem, 1.74vw, 1.875rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.2;
  margin: 0 0 1.5rem;
}
.pm-trust-match .floating-consult--banner p {
  font-family: var(--body) !important;
  font-size: 1.5rem !important;
  font-weight: 400;
  line-height: normal;
  margin: 0;
}
@media (min-width: 992px) and (min-height: 651px) and (max-height: 900px) {
  .pm-trust-match .floating-consult--banner h3 {
    font-size: 1.45rem;
    margin-bottom: 1rem;
  }
}


/* Native desktop parallax for the Project Management blueprint image.
   The mobile image keeps the scroll-linked transform fallback. */
@media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
  .pm-blueprint__image {
    background-attachment: fixed;
    background-image: var(--pm-blueprint-bg);
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
  }
  .pm-blueprint__image img {
    opacity: 0;
  }
  .pm-blueprint--top-focus .pm-blueprint__image {
    background-attachment: scroll;
    background-image: none;
    background-position: center top;
  }
  .pm-blueprint--top-focus .pm-blueprint__image img {
    opacity: 1;
  }
}

.pm-blueprint--top-focus .pm-blueprint__image img {
  object-position: center top;
  top: 0;
  transform-origin: center top;
  transition: transform 80ms linear;
}


/* Scroll-scrubbed PROJECT / MANAGEMENT wordmark reveal. */
.pm-blueprint.is-wordmark-ready .pm-blueprint__wordmark strong {
  clip-path: inset(var(--pm-project-clip, 100%) 0 0 0);
  opacity: var(--pm-project-opacity, 0);
  transform: translate3d(0, var(--pm-project-y, 180px), 0);
  transform-origin: center bottom;
  will-change: transform, opacity, clip-path;
}
.pm-blueprint.is-wordmark-ready .pm-blueprint__wordmark span {
  clip-path: inset(var(--pm-management-clip, 100%) 0 0 0);
  opacity: var(--pm-management-opacity, 0);
  transform: translate3d(0, var(--pm-management-y, 64px), 0);
  transform-origin: center bottom;
  will-change: transform, opacity, clip-path;
}


@media (prefers-reduced-motion: reduce) {
  .pm-blueprint .pm-blueprint__wordmark strong,
  .pm-blueprint .pm-blueprint__wordmark span {
    animation: none;
    clip-path: none;
    opacity: 1;
    transform: none;
  }
}

/* Keep long service names inside the blueprint frame after desktop overrides. */
.pm-blueprint__wordmark--long strong {
  font-size: clamp(78px, 9.4vw, 180px);
  letter-spacing: -.035em;
  margin-left: 0;
  text-align: center;
  white-space: nowrap;
  width: 100%;
}
.pm-blueprint__wordmark--long span {
  font-size: clamp(38px, 3.7vw, 70px);
  letter-spacing: clamp(11px, 1.35vw, 26px);
  margin-inline: auto;
  width: min(92%, 1280px);
}
@media (max-width: 767px) {
  .pm-blueprint__wordmark--long strong {
    font-size: clamp(38px, 12vw, 66px);
    margin-left: 0;
    white-space: normal;
  }
  .pm-blueprint__wordmark--long span {
    font-size: clamp(24px, 7.5vw, 34px);
    letter-spacing: clamp(5px, 2vw, 9px);
    width: 100%;
  }
}

/* Center service-page content groups while preserving full-bleed backgrounds. */
.pm-wide-container {
  box-sizing: border-box;
  margin-inline: auto;
  max-width: 1728px;
  width: 100%;
}
.pm-story {
  grid-template-columns: minmax(0, 551fr) minmax(0, 917fr);
}
@media (max-width: 1719px) {
  .pm-story__media--second {
    width: 100%;
  }
  .pm-story__copy--second {
    margin-left: 0;
    width: auto;
  }
}

/* Home typography system shared by all Service Detail pages. */
.pm-page {
  font-family: var(--body);
  font-size: 1rem;
  line-height: 1.6;
}
.pm-page :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--display) !important;
  font-stretch: condensed;
  letter-spacing: 0;
}
.pm-page h1 {
  font-size: clamp(3.2rem, 5.79vw, 6.25rem) !important;
  font-weight: 800 !important;
  line-height: .98 !important;
}
.pm-page h2 {
  font-size: clamp(2.4rem, 4.5vw, 4.8rem) !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
}
.pm-page :is(h3, h4, h5, h6) {
  font-weight: 500;
}
.pm-page :is(p, li, a, button, input, select, textarea) {
  font-family: var(--body);
}
.pm-page .pm-eyebrow {
  color: var(--blue);
  font-family: var(--body) !important;
  font-size: .78rem !important;
  font-weight: 600;
  gap: .75rem;
  letter-spacing: .38em;
  line-height: 1.5;
  margin-bottom: 1.2rem;
}
.pm-page .pm-eyebrow::before {
  flex-basis: 7px;
  height: 7px;
  width: 7px;
}
@media (min-width: 992px) and (min-height: 651px) and (max-height: 900px) {
  .pm-page h1 {
    font-size: clamp(3.4rem, min(6vw, 10vh), 5.4rem) !important;
  }
}
@media (max-width: 767px) {
  .pm-page h1 {
    font-size: 2.8rem !important;
  }
}

/* Match Home typography by component role, not only by heading tag. */
.pm-page .pm-project h3,
.pm-page .pm-service-card h3 {
  font-family: var(--display) !important;
  font-size: clamp(1.5rem, 2.3vw, 2.4rem) !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}
.pm-page .pm-reason h3 {
  font-family: var(--body) !important;
  font-size: clamp(1.35rem, 2.08vw, 2.25rem);
  font-weight: 600;
  line-height: 1.22;
}
.pm-page .pm-faq__item button {
  font-family: var(--body);
  font-size: clamp(1.1rem, 1.25vw, 1.32rem);
  font-weight: 600;
  line-height: 1.25;
  transition: color .25s ease;
}
.pm-page .pm-faq__item.is-open button,
.pm-page .pm-faq__item button[aria-expanded="true"] {
  color: var(--pm-blue);
}
.pm-page .pm-ready h2 {
  font-size: clamp(3rem, 6vw, 6.4rem) !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
}
.pm-page .pm-ready p {
  font-family: var(--body);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.7;
}
.pm-page .pm-ready__actions a {
  font-family: var(--body);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.5;
}
@media (min-width: 992px) and (min-height: 651px) and (max-height: 900px) {
  .pm-page .pm-faq__item button {
    font-size: 1.1rem;
  }
  .pm-page .pm-ready h2 {
    font-size: clamp(3rem, min(6vw, 8vh), 5.4rem) !important;
  }
}

/* Coarse pointers use normal tap states instead of sticky desktop hover. */
@media (hover: none), (pointer: coarse) {
  .pm-reason:hover,
  .pm-reason:focus:not(:focus-visible) {
    background: rgba(200, 200, 200, .15);
    color: var(--pm-ink);
    transform: none;
  }
  .pm-reason:hover h3,
  .pm-reason:focus:not(:focus-visible) h3 {
    color: inherit;
  }
  .pm-reason:hover img,
  .pm-reason:focus:not(:focus-visible) img {
    filter: brightness(0);
  }
  .pm-page .ucg-shine:hover::before,
  .pm-page .pm-related__arrow:hover::before {
    background-position: 200% 0;
    transition-duration: 0s;
  }
}

/* Service templates add an !important absolute position for button effects.
 * Restore the shared trust-banner's responsive in-flow layout on narrow screens. */
@media (max-width: 991px) {
  body.pm-static-page .pm-trust-match .floating-consult--banner,
  body.pm-static-page .pm-trust-match .floating-consult--banner.is-scroll-animated,
  body.pm-static-page .pm-trust-match .floating-consult--banner.is-scroll-animated.reveal.visible {
    bottom: auto;
    left: auto;
    position: relative !important;
    right: auto;
    transform: none !important;
  }
}

@media (max-width: 575px) {
  body.pm-static-page .pm-trust-match .floating-consult--banner h3 {
    font-size: 1.15rem;
    margin-bottom: 14px;
  }
  body.pm-static-page .pm-trust-match .floating-consult--banner p {
    font-size: 1.25rem !important;
    line-height: 1.45;
  }
}

/* Project Detail Related Work: visible button-only carousel controls. */
.ucg-project-related-service .pm-related__viewport {
  position: relative;
  touch-action: pan-y;
}
.ucg-project-related-service .pm-related__arrow {
  background: #fff;
  border: 1px solid #aaa;
  border-radius: 0;
  box-shadow: none;
  color: #252525;
  display: flex !important;
  height: 46px;
  overflow: hidden;
  position: absolute !important;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
}
.ucg-project-related-service .pm-related__arrow--prev {
  left: clamp(12px, 2.5vw, 42px);
}
.ucg-project-related-service .pm-related__arrow--next {
  right: clamp(12px, 2.5vw, 42px);
}
.ucg-project-related-service .pm-related__arrow-icon {
  transition: transform .35s cubic-bezier(.22, 1, .36, 1);
}
.ucg-project-related-service .pm-related__arrow--prev:hover .pm-related__arrow-icon {
  transform: translateX(-4px);
}
.ucg-project-related-service .pm-related__arrow--next:hover .pm-related__arrow-icon {
  transform: translateX(4px);
}

@media (max-width: 767px) {
  .ucg-project-related-service .pm-related__viewport {
    padding-bottom: 76px;
  }
  .ucg-project-related-service .pm-related__track {
    overflow-x: visible;
    scroll-snap-type: none;
  }
  .ucg-project-related-service .pm-related__arrow {
    bottom: 8px;
    height: 52px;
    top: auto;
    transform: none;
    width: 52px;
  }
  .ucg-project-related-service .pm-related__arrow--prev {
    left: calc(50% - 58px);
    right: auto;
  }
  .ucg-project-related-service .pm-related__arrow--next {
    left: calc(50% + 6px);
    right: auto;
  }
}
