.reviews-section{background:#edf4f2;border-top:1px solid #dae6e3}
.reviews-inner{padding-block:76px 58px}
.reviews-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:30px}
.reviews-heading h2{margin:15px 0 0;font-size:clamp(34px,3.8vw,54px);line-height:1.07;letter-spacing:-2px}
.reviews-heading h2 em{font-style:normal;color:#08788a}
.reviews-intro{max-width:240px;color:#476a74;font-size:16px;line-height:1.6}
.reviews-ratings{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:32px;border-block:1px solid #cadbd7;background:#ffffff70}
.review-rating{display:flex;align-items:center;gap:24px;padding:24px 28px;text-decoration:none;transition:background-color .2s}
.review-rating+ .review-rating{border-left:1px solid #cadbd7}
.review-rating:hover{background:#fff}
.rating-identity{display:flex;align-items:center;gap:14px;flex:1}
.google-g{display:block;width:28px;height:28px;flex:none}
.rating-centre{display:block;font-size:14px;font-weight:600;color:#163f4c;line-height:1.4}
.rating-platform{display:block;font-size:13px;color:#4e6570;margin-top:4px}
.rating-result{display:flex;align-items:center;gap:15px}
.rating-result strong{font-size:38px;font-weight:500;letter-spacing:-2px;line-height:1.1;white-space:nowrap}
.rating-result small{font-size:16px;letter-spacing:0;color:#4e6570;margin-left:3px}
.rating-details{display:grid;gap:3px}
.rating-details .review-stars{font-size:14px;letter-spacing:1px}
.rating-count{font-size:13px;color:#4e6570}
.rating-link{color:#08788a;font-size:18px}
.reviews-track{position:relative;display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;padding:3px 2px 12px;cursor:grab}
.reviews-track.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.review-card{flex:0 0 calc((100% - 40px)/3);display:flex;flex-direction:column;min-width:0;padding:25px;background:#fff;scroll-snap-align:start;border:1px solid #dfe5e4;border-radius:12px;box-shadow:0 3px 10px #153f4807;font-family:Arial,sans-serif}
.review-author{display:flex;align-items:center;gap:11px}
.review-avatar{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;background:#1565a6;color:#fff;font-size:14px}
.review-card:nth-child(2n) .review-avatar{background:#8c4279}
.review-card:nth-child(3n) .review-avatar{background:#397c59}
.review-author strong{display:block;font-size:15px;font-weight:500;color:#202124;line-height:1.3}
.review-author div>span{display:block;font-size:13px;color:#5f6368;margin-top:4px;line-height:1.4}
.review-google-label{margin-left:auto;align-self:start;flex:none;width:20px;height:20px}
.review-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:17px 0 11px;font-size:13px;color:#5f6368}
.review-stars{color:#f6b400;font-size:18px;letter-spacing:1px;white-space:nowrap}
.review-card blockquote{margin:0 0 20px;flex:1;min-height:110px}
.review-card blockquote p{font-size:15px;line-height:1.6;color:#202124;margin:0;letter-spacing:0}
.review-source{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#1769b3;text-decoration:none;margin-top:auto;padding-top:8px}
.review-source:hover{text-decoration:underline}
.reviews-foot{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:17px}
.reviews-foot p{font-size:13px;line-height:1.7;color:#4e6570;margin:0}
.reviews-navigation{display:flex;align-items:center;gap:12px}
.review-position{font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:1px}
.reviews-progress{width:90px;height:2px;background:#c7dad7;margin:0 10px}
.reviews-progress span{display:block;width:60%;height:100%;background:#08788a;transition:width .2s}
.reviews-section :focus-visible{outline:3px solid #08788a;outline-offset:4px}
@media(max-width:1000px){.review-card{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:1100px){.review-rating{gap:16px;padding:22px 18px}.rating-identity{gap:10px}.rating-result{gap:10px}.rating-centre{font-size:13px}.rating-link{display:none}}
@media(max-width:760px){.reviews-heading{display:block}.reviews-intro{max-width:none;margin-top:20px}.reviews-ratings{grid-template-columns:1fr}.review-rating{padding:20px 10px}.review-rating+.review-rating{border-left:0;border-top:1px solid #cadbd7}.rating-result strong{font-size:34px}.rating-centre{font-size:13px}.rating-details .review-stars{font-size:12px}.google-g{width:24px;height:24px}.reviews-inner{padding-block:54px 44px}.reviews-foot{align-items:start;flex-direction:column}.reviews-navigation{width:100%;justify-content:end}.review-position{margin-right:auto}.reviews-progress{width:65px}.review-card{flex-basis:90%;padding:22px}.review-card blockquote{min-height:110px}}
@media(prefers-reduced-motion:reduce){.reviews-progress span,.review-rating{transition:none}}
/* Side controls shared by the landing-page carousels. */
.carousel-stage { position: relative; }
.carousel-side { position: absolute; z-index: 4; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 48px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #437880; cursor: pointer; transition: background-color .2s, color .2s; }
.carousel-side::before { content: ""; width: 12px; height: 12px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); }
.carousel-side-prev { left: -48px; }
.carousel-side-prev::before { transform: rotate(-135deg); }
.carousel-side-next { right: -48px; }
.movement-section .carousel-side { color: #d4e3e5; }
.carousel-side:hover:not(:disabled) { color: #08788a; background: #dbeae7; }
.movement-section .carousel-side:hover { color: var(--ink-deep); background: white; }
.carousel-side:disabled { opacity: .25; cursor: default; }
.carousel-side:focus-visible { outline: 2px solid #e59352; outline-offset: 2px; }
.movement-section .carousel-side:focus-visible { outline-color: var(--ink-deep); }
.reviews-track { scrollbar-width: none; }
.reviews-track::-webkit-scrollbar { display: none; }
@media (max-width: 1000px) {
  .carousel-side-prev { left: -16px; }
  .carousel-side-next { right: -16px; }
  .carousel-side { background: #edf4f2ed; box-shadow: 0 2px 8px #073b4c12; }
  .movement-section .carousel-side { background: #edf4f2ed; color: var(--ink-deep); }
}
@media (prefers-reduced-motion: reduce) { .carousel-side { transition: none; } }
