.reviews {
  position:relative;
  overflow:hidden;
  padding:clamp(72px,8vw,118px) 0 clamp(78px,9vw,126px);
  border-block:1px solid #d9d7d0;
  background:#FFFFFF;
  color:#11110f;
}

.reviews-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
  margin-bottom:48px;
}

.reviews-head h2 {
  margin:0;
  font:700 clamp(38px,3.65vw,56px)/.96 'Montserrat',Arial,sans-serif;
  letter-spacing:-.04em;
}

.reviews-head h2 span {
  display:block;
  color:#FFC107;
  font-weight:400;
  letter-spacing:.025em;
}

.review-platforms {
  display:flex;
  align-items:center;
  gap:clamp(20px,2.6vw,38px);
}

.review-platforms > span {
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
}

.review-platforms img {
  display:block;
  width:25px;
  height:25px;
  object-fit:contain;
}

.review-platforms strong {
  font:600 14px/1 'Montserrat',Arial,sans-serif;
  letter-spacing:-.02em;
}

.review-edge-control {
  position:absolute;
  z-index:2;
  top:61%;
  display:grid;
  width:52px;
  height:72px;
  place-items:center;
  border:0;
  background:transparent;
  color:#11110f;
  font:400 38px/1 Arial,sans-serif;
  cursor:pointer;
  transform:translateY(-50%);
  transition:color 180ms ease,transform 140ms cubic-bezier(.23,1,.32,1);
}

.review-edge-control--previous { left:clamp(4px,1.25vw,24px); }
.review-edge-control--next { right:clamp(4px,1.25vw,24px); }
.review-edge-control:active { transform:translateY(-50%) scale(.92); }
.review-edge-control:focus-visible { outline:2px solid #FFC107; outline-offset:2px; }

.reviews-viewport {
  overflow-x:auto;
  border-block:1px solid #c9c7c0;
  scrollbar-width:none;
  scroll-snap-type:x mandatory;
}

.reviews-viewport::-webkit-scrollbar { display:none; }
.reviews-viewport:focus-visible { outline:3px solid rgba(255,193,7,.7); outline-offset:5px; }

.reviews-track {
  display:grid;
  grid-auto-columns:calc((100% - 2px) / 3);
  grid-auto-flow:column;
}

.review-item {
  display:flex;
  min-height:355px;
  flex-direction:column;
  justify-content:space-between;
  padding:30px clamp(24px,2.5vw,38px) 28px;
  border-right:1px solid #c9c7c0;
  scroll-snap-align:start;
}

.review-rating {
  color:#E4A900;
  font-size:15px;
  letter-spacing:.16em;
}

.review-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.review-source {
  color:#77746d;
  font:700 12px/1 'Montserrat',Arial,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.review-item blockquote {
  margin:38px 0 auto;
  color:#11110f;
  font:500 clamp(18px,1.55vw,23px)/1.52 'Montserrat',Arial,sans-serif;
  letter-spacing:-.025em;
}

.review-item footer {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center;
  gap:24px;
  margin-top:38px;
  padding-top:20px;
  border-top:1px solid #dedcd6;
  background:transparent;
  color:#11110f;
}

.review-client {
  display:grid;
  gap:7px;
}

.review-client strong,
.review-project {
  font:700 14px/1.2 'Montserrat',Arial,sans-serif;
}

.review-client span {
  color:#77746d;
  font:600 11px/1.3 'Montserrat',Arial,sans-serif;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.review-project {
  width:100%;
  max-width:none;
  justify-self:center;
  text-align:center;
}

@media (hover:hover) and (pointer:fine) {
  .review-edge-control:hover { color:#E4A900; }
}

@media (max-width:900px) {
  .reviews-head { align-items:flex-start; flex-direction:column; gap:28px; }
  .reviews-track { grid-auto-columns:50%; }
}

@media (max-width:820px) {
  .reviews-head h2 { font-size:clamp(38px,7vw,52px); }
}

@media (max-width:580px) {
  .reviews { padding-block:64px 72px; }
  .reviews-head { margin-bottom:34px; }
  .review-platforms { width:100%; justify-content:space-between; gap:12px; }
  .review-platforms > span { gap:6px; }
  .review-platforms img { width:21px; height:21px; }
  .review-platforms strong { font-size:12px; }
  .reviews-track { grid-auto-columns:88%; }
  .review-item { min-height:340px; padding-inline:22px; }
  .review-item footer { gap:15px; }
  .review-edge-control { top:64%; width:44px; font-size:32px; }
  .review-edge-control--previous { left:0; }
  .review-edge-control--next { right:0; }
}

@media (max-width:540px) {
  .reviews-head h2 { font-size:clamp(34px,9.6vw,44px); line-height:.98; }
}

@media (prefers-reduced-motion:reduce) {
  .review-edge-control { transition-duration:0ms; }
}
