.reviews-carousel { position: relative; }
.reviews-carousel__viewport { overflow: hidden; touch-action: pan-y; }
.reviews-carousel__track { display: flex; margin-inline: -8px; transition: transform .35s ease; will-change: transform; }
.reviews-carousel__slide { flex: 0 0 33.333%; min-width: 0; padding: 8px; }
.review-card { display: flex; min-height: 260px; height: 100%; flex-direction: column; gap: 14px; padding: clamp(20px,3vw,28px); border: 1px solid #e8dfd1; border-radius: 22px; background: #fff; font-family: var(--tailorfit-font-primary); box-shadow: 0 12px 30px rgba(6,43,76,.06); }
.review-card__quote { color: #c8a26b; font-size: 2rem; line-height: .7; }
.review-card__stars { color: #c8a26b; letter-spacing: .06em; }
.review-card__text { margin: 0; color: #353535; font-size: clamp(1rem,2.8vw,1.18rem); line-height: 1.8; overflow-wrap: anywhere; }
.review-card__footer { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-top: auto; color: #062b4c; }
.review-card__name { font-weight: 700; overflow-wrap: anywhere; }
.review-card__date { color: #6f6a63; font-size: .85rem; white-space: nowrap; }
.reviews-carousel__controls { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 20px; }
.reviews-carousel__button { display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid #cbd9e4; border-radius: 50%; background: #fff; color: #1f5b8f; cursor: pointer; }
.reviews-carousel__button:disabled { opacity: .4; cursor: default; }
.reviews-carousel__button:focus-visible, .review-form :focus-visible { outline: 3px solid rgba(31,91,143,.35); outline-offset: 3px; }
.reviews-carousel__dots { display: flex; gap: 7px; }
.reviews-carousel__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: #cbd9e4; cursor: pointer; }
.reviews-carousel__dot[aria-current="true"] { background: #1f5b8f; }
.reviews-carousel__empty { padding: 28px; border: 1px solid #e8dfd1; border-radius: 22px; background: #fff; color: #6f6a63; text-align: center; }
.review-form-card { width: min(720px,100%); margin: 42px auto 0; padding: clamp(22px,4vw,36px); border: 1px solid #e8dfd1; border-radius: 24px; background: #fff; box-shadow: 0 16px 40px rgba(6,43,76,.07); font-family: var(--tailorfit-font-primary); }
.review-form-card h3 { margin: 0 0 22px; color: #062b4c; font-size: clamp(1.45rem,3vw,2rem); }
.review-form { display: grid; gap: 18px; }
.review-form__field { display: grid; gap: 7px; }
.review-form label, .review-form legend { color: #102d47; font-weight: 700; }
.review-form input[type="text"], .review-form textarea { width: 100%; border: 1px solid #cbd9e4; border-radius: 12px; background: #fff; color: #202020; font: inherit; }
.review-form input[type="text"] { min-height: 48px; padding: 10px 12px; }
.review-form textarea { min-height: 140px; padding: 12px; resize: vertical; }
.review-form__rating { margin: 0; padding: 0; border: 0; }
.review-form__stars { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; }
.review-form__stars input { position: absolute; opacity: 0; }
.review-form__stars label { padding: 3px; color: #cbd9e4; font-size: 2rem; cursor: pointer; }
.review-form__stars input:checked ~ label, .review-form__stars label:hover, .review-form__stars label:hover ~ label { color: #c8a26b; }
.review-form__consent { display: flex; align-items: flex-start; gap: 9px; font-weight: 400 !important; line-height: 1.7; }
.review-form__consent input { flex: 0 0 auto; margin-top: .4em; }
.review-form__count { color: #6f6a63; font-size: .85rem; text-align: end; }
.review-form__submit { min-height: 48px; padding: 11px 22px; border: 0; border-radius: 999px; background: #1f5b8f; color: #fff; font: 700 1rem var(--tailorfit-font-primary); cursor: pointer; }
.review-form__submit:disabled { opacity: .65; cursor: wait; }
.review-form__status { min-height: 1.7em; margin: 0; font-weight: 700; }
.review-form__status.is-success { color: #17743d; } .review-form__status.is-error { color: #a32929; }
.review-form__honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
@media (max-width:1023px) { .reviews-carousel__slide { flex-basis: 50%; } }
@media (max-width:767px) { .reviews-carousel__slide { flex-basis: 100%; } .review-card { min-height: 250px; } }
@media (prefers-reduced-motion:reduce) { .reviews-carousel__track { transition: none; } }

/* Keep native rating controls; show keyboard focus on their visible star labels. */
.review-form__stars input:focus-visible + label {
	outline: 3px solid #1f5b8f;
	outline-offset: 3px;
}
