/* Google review carousel — uses the existing visual language and brand palette. */
.reviews-section { background:var(--paper-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.reviews-section[hidden] { display:none !important; }
.reviews-header { display:block; margin-bottom:36px; }
.reviews-heading h2 { color:var(--green-dark); font-size:clamp(38px,4.5vw,58px); line-height:1.05; margin:20px 0 14px; }
.reviews-heading p { color:var(--muted); max-width:580px; margin:0; }
.review-card-stars { color:#9b7544; letter-spacing:.12em; }
.reviews-carousel { display:grid; grid-template-columns:46px minmax(0,1fr) 46px; gap:18px; align-items:center; max-width:930px; margin:0 auto; }
.reviews-viewport { overflow:hidden; min-width:0; }
.reviews-track { display:flex; transform:translateX(0); transition:transform .45s ease; align-items:stretch; }
.review-card { flex:0 0 100%; min-width:0; padding:34px clamp(22px,4vw,52px); background:var(--white); border:1px solid var(--line); box-shadow:0 14px 38px rgba(35,48,38,.055); }
.review-card-top { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-bottom:19px; }
.review-card-source { color:var(--muted); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.review-card-comment { margin:0; color:var(--green-dark); font:400 clamp(18px,2vw,23px)/1.55 var(--serif); white-space:pre-wrap; overflow-wrap:anywhere; }
.review-card-author { display:flex; align-items:center; gap:12px; margin-top:25px; padding-top:18px; border-top:1px solid var(--line); color:var(--green-dark); font-size:13px; font-weight:800; }
.review-card-author-mark { display:grid; place-items:center; width:36px; height:36px; flex:0 0 auto; border-radius:50%; background:#e7ecdf; color:var(--green); font:italic 17px var(--serif); }
.reviews-control { display:grid; place-items:center; width:44px; height:44px; border:1px solid #b8c4b4; border-radius:50%; background:transparent; color:var(--green-dark); font-size:28px; line-height:1; cursor:pointer; transition:background .2s,color .2s; }
.reviews-control:hover,.reviews-control:focus-visible { background:var(--green); color:white; outline:2px solid var(--leaf); outline-offset:2px; }
.reviews-dots { display:flex; justify-content:center; align-items:center; gap:8px; margin-top:22px; }
.reviews-dot { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:#bac5b6; cursor:pointer; }
.reviews-dot[aria-current="true"] { background:var(--green); transform:scale(1.3); }
.reviews-footer { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:10px 20px; margin-top:26px; color:var(--muted); font-size:12px; }
.reviews-google-link { color:var(--green); font-weight:800; border-bottom:1px solid #a7b6a7; padding-bottom:3px; }
.reviews-google-link:hover { color:var(--leaf); }
.reviews-status { color:var(--muted); font-size:14px; text-align:center; }
@media (max-width:820px) {
  .reviews-carousel { grid-template-columns:34px minmax(0,1fr) 34px; gap:8px; }
  .reviews-control { width:34px; height:34px; font-size:22px; }
  .review-card { padding:25px 22px; }
  .review-card-comment { font-size:18px; }
}
@media (max-width:430px) {
  .reviews-carousel { grid-template-columns:28px minmax(0,1fr) 28px; gap:5px; }
  .reviews-control { width:28px; height:32px; }
  .review-card { padding:22px 17px; }
  .review-card-top { align-items:flex-start; flex-direction:column; }
  .review-card-comment { font-size:17px; }
}
@media (prefers-reduced-motion:reduce) { .reviews-track { transition:none; } }
