/* Shared reviews carousel for every page in the services branch. */
.sr-service-reviews-bridge .sr-direct-reviews {
  overflow: hidden;
  padding: clamp(48px, 4.5vw, 66px) 0 28px;
  background: #fff;
}

.sr-service-reviews-bridge .sr-direct-reviews__wrap {
  width: min(calc(100% - 48px), 1240px);
  margin: 0 auto;
}

.sr-service-reviews-bridge .sr-direct-reviews__heading {
  max-width: 760px;
  margin: 0 auto 30px;
  text-align: center;
}

.sr-service-reviews-bridge .sr-direct-reviews__eyebrow {
  margin: 0 0 12px;
  color: #e30613;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.sr-service-reviews-bridge .sr-direct-reviews h2 {
  margin: 0;
  color: #071925;
  font-family: "Roboto Condensed", sans-serif;
  font-size: clamp(42px, 5.2vw, 68px);
  font-weight: 900;
  letter-spacing: -.045em;
  line-height: 1;
}

.sr-service-reviews-bridge .sr-direct-reviews h2 span { color: #e30613; }

.sr-service-reviews-bridge .sr-direct-reviews h2::after {
  display: block;
  width: 82px;
  height: 4px;
  margin: 20px auto 0;
  border-radius: 999px;
  background: #e30613;
  content: "";
}

.sr-service-reviews-bridge .sr-direct-reviews__heading > p:last-child {
  margin: 20px auto 0;
  color: #52616b;
  font-size: 18px;
  line-height: 1.55;
}

.sr-service-reviews-bridge .sr-review-carousel {
  position: relative;
  padding: 0 58px 42px;
}

.sr-service-reviews-bridge .sr-review-carousel__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  border-radius: 24px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.sr-service-reviews-bridge .sr-review-carousel__viewport::-webkit-scrollbar { display: none; }
.sr-service-reviews-bridge .sr-review-carousel__viewport:focus-visible { outline: 3px solid rgba(227, 6, 19, .35); outline-offset: 5px; }

.sr-service-reviews-bridge .sr-review-carousel__track {
  display: flex;
  gap: 24px;
  margin: 0;
  padding: 8px 4px 24px;
  list-style: none;
}

.sr-service-reviews-bridge .sr-review-carousel__item {
  flex: 0 0 calc((100% - 72px) / 4);
  min-width: 0;
  margin: 0;
  scroll-snap-align: start;
}

.sr-service-reviews-bridge .sr-review-card {
  position: relative;
  display: block;
  height: clamp(290px, 23vw, 350px);
  overflow: hidden;
  border: 1px solid rgba(7, 25, 37, .09);
  border-radius: 22px;
  background: #eef1f3;
  box-shadow: 0 16px 42px rgba(7, 25, 37, .10);
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.sr-service-reviews-bridge .sr-review-card::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 70%, rgba(7, 25, 37, .6));
  content: "";
  opacity: 0;
  transition: opacity .25s ease;
}

.sr-service-reviews-bridge .sr-review-card img {
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: top center;
  transition: transform .35s ease;
}

.sr-service-reviews-bridge .sr-review-card__zoom {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 16px;
  padding: 9px 13px;
  border-radius: 999px;
  color: #fff;
  background: #e30613;
  font-size: 13px;
  font-weight: 850;
  line-height: 1;
  opacity: 0;
  transform: translate(-50%, 8px);
  transition: opacity .25s ease, transform .25s ease;
}

.sr-service-reviews-bridge .sr-review-card:hover,
.sr-service-reviews-bridge .sr-review-card:focus-visible {
  border-color: rgba(227, 6, 19, .3);
  box-shadow: 0 22px 52px rgba(7, 25, 37, .16);
  transform: translateY(-5px);
}

.sr-service-reviews-bridge .sr-review-card:hover::after,
.sr-service-reviews-bridge .sr-review-card:focus-visible::after,
.sr-service-reviews-bridge .sr-review-card:hover .sr-review-card__zoom,
.sr-service-reviews-bridge .sr-review-card:focus-visible .sr-review-card__zoom { opacity: 1; transform: translate(-50%, 0); }

.sr-service-reviews-bridge .sr-review-carousel__arrow {
  position: absolute;
  z-index: 3;
  top: calc(50% - 28px);
  display: grid;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(7, 25, 37, .11);
  border-radius: 50%;
  color: #071925;
  background: #fff;
  box-shadow: 0 10px 28px rgba(7, 25, 37, .12);
  cursor: pointer;
  place-items: center;
  transform: translateY(-50%);
}

.sr-service-reviews-bridge .sr-review-carousel__arrow--prev { left: 0; }
.sr-service-reviews-bridge .sr-review-carousel__arrow--next { right: 0; }
.sr-service-reviews-bridge .sr-review-carousel__arrow span { width: 11px; height: 11px; border-top: 3px solid currentColor; border-right: 3px solid currentColor; }
.sr-service-reviews-bridge .sr-review-carousel__arrow--prev span { margin-left: 4px; transform: rotate(-135deg); }
.sr-service-reviews-bridge .sr-review-carousel__arrow--next span { margin-right: 4px; transform: rotate(45deg); }
.sr-service-reviews-bridge .sr-review-carousel__arrow:hover,
.sr-service-reviews-bridge .sr-review-carousel__arrow:focus-visible { color: #fff; background: #e30613; }

.sr-service-reviews-bridge .sr-review-carousel__dots {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: center;
  gap: 10px;
}

.sr-service-reviews-bridge .sr-review-carousel__dot {
  width: 11px;
  height: 11px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #c8cdd1;
  cursor: pointer;
}

.sr-service-reviews-bridge .sr-review-carousel__dot[aria-current="true"] { width: 30px; background: #e30613; }

.sr-review-lightbox {
  width: min(94vw, 1050px);
  max-width: none;
  max-height: 94vh;
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 22px;
  background: transparent;
}

.sr-review-lightbox::backdrop { background: rgba(0, 14, 21, .88); backdrop-filter: blur(5px); }
.sr-review-lightbox__panel { position: relative; display: flex; flex-direction: column; max-height: 94vh; padding: 14px; border-radius: 22px; background: #fff; box-shadow: 0 30px 90px rgba(0, 0, 0, .38); }
.sr-review-lightbox__media { display: flex; min-height: 0; flex: 1 1 auto; justify-content: center; overflow: auto; border-radius: 14px; background: #eef1f3; }
.sr-review-lightbox__media img { display: block; width: auto; max-width: 100%; height: auto; max-height: calc(94vh - 82px); margin: 0; object-fit: contain; }
.sr-review-lightbox__caption { margin: 10px 46px 0 6px; color: #52616b; font-size: 14px; line-height: 1.4; }

.sr-review-lightbox__close {
  position: absolute;
  z-index: 2;
  top: -16px;
  right: -16px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #e30613;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .25);
  cursor: pointer;
}

.sr-review-lightbox__close::before,
.sr-review-lightbox__close::after { position: absolute; top: 50%; left: 50%; width: 20px; height: 2px; border-radius: 999px; background: #fff; content: ""; }
.sr-review-lightbox__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.sr-review-lightbox__close::after { transform: translate(-50%, -50%) rotate(-45deg); }
body:has(.sr-review-lightbox[open]) { overflow: hidden; }

@media (max-width: 920px) {
  .sr-service-reviews-bridge .sr-review-carousel__item { flex-basis: calc((100% - 20px) / 2); }
  .sr-service-reviews-bridge .sr-review-carousel__track { gap: 20px; }
  .sr-service-reviews-bridge .sr-review-card { height: 380px; }
}

@media (max-width: 620px) {
  .sr-service-reviews-bridge .sr-direct-reviews { padding: 48px 0 28px; }
  .sr-service-reviews-bridge .sr-direct-reviews__wrap { width: min(calc(100% - 32px), 1240px); }
  .sr-service-reviews-bridge .sr-direct-reviews__heading > p:last-child { font-size: 16px; }
  .sr-service-reviews-bridge .sr-review-carousel { padding: 0 0 42px; }
  .sr-service-reviews-bridge .sr-review-carousel__item { flex-basis: 88%; }
  .sr-service-reviews-bridge .sr-review-carousel__track { gap: 14px; padding-inline: 2px; }
  .sr-service-reviews-bridge .sr-review-card { height: min(98vw, 380px); border-radius: 18px; }
  .sr-service-reviews-bridge .sr-review-carousel__arrow { display: none; }
  .sr-service-reviews-bridge .sr-review-card__zoom { opacity: 1; transform: translateX(-50%); }
  .sr-review-lightbox { width: calc(100vw - 24px); max-height: 92vh; }
  .sr-review-lightbox__panel { max-height: 92vh; padding: 8px; border-radius: 16px; }
  .sr-review-lightbox__media img { max-height: calc(92vh - 68px); }
  .sr-review-lightbox__close { top: -10px; right: -8px; width: 40px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .sr-service-reviews-bridge .sr-review-carousel__viewport { scroll-behavior: auto; }
  .sr-service-reviews-bridge .sr-review-card,
  .sr-service-reviews-bridge .sr-review-card img,
  .sr-service-reviews-bridge .sr-review-card__zoom { transition: none; }
}
