/* ============================================================
   Google profile + Google reviews (google-reviews.js)
   Uses the site's existing tokens from styles.v2.css.
   ============================================================ */
.gr{min-height:420px}
.gr--strip{min-height:360px}
.gr[data-gr-state="ready"]{min-height:0}

/* ---- "Find us on Google" profile block ---- */
.gr-profile{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;margin-bottom:34px}
.gr-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:30px 28px;display:flex;flex-direction:column;gap:14px}
.gr-card__brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--muted);font-size:.9rem}
.gr-card__brand .gr-g{width:22px;height:22px}
.gr-card h3{font-size:1.45rem;margin:0}
.gr-score{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.gr-score__num{font-size:2.4rem;font-weight:800;color:var(--ink);line-height:1;letter-spacing:-.02em}
.gr-score__meta{display:flex;flex-direction:column;gap:2px}
.gr-score__count{font-size:.92rem;color:var(--muted);font-weight:600}
.gr-area{display:flex;align-items:flex-start;gap:8px;color:var(--body);font-size:.97rem}
.gr-area svg{width:18px;height:18px;flex-shrink:0;margin-top:3px;color:var(--green-600)}
.gr-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.gr-actions .btn{white-space:normal;text-align:center}

/* ---- map (lazy) ---- */
.gr-map{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--mint);min-height:320px;box-shadow:var(--shadow-sm)}
.gr-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.gr-map__ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--muted);font-weight:600;padding:20px}
.gr-map__ph button{margin-top:10px}

/* ---- stars ---- */
.gr-stars{position:relative;display:inline-block;width:max-content;align-self:flex-start;line-height:0;vertical-align:middle}
.gr-stars__row{display:inline-flex;gap:2px;white-space:nowrap}
.gr-stars__on{position:absolute;top:0;left:0;overflow:hidden;color:#f5a623}
.gr-stars svg{width:18px;height:18px;flex-shrink:0}
.gr-stars--lg svg{width:22px;height:22px}
.gr-stars .gr-star--off{color:#d9e3de}

/* ---- review cards (extends .tcard) ---- */
.gr-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0;padding:0;list-style:none}
.gr-track>li{display:flex}
.gr-review{width:100%}
.gr-review__head{display:flex;align-items:center;gap:12px}
.gr-review__avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--green-50)}
.gr-review__name{color:var(--ink);font-weight:700;font-size:.98rem;line-height:1.3}
a.gr-review__name:hover{color:var(--green-700);text-decoration:underline}
.gr-review__date{display:block;color:var(--muted);font-size:.84rem;font-weight:500}
.gr-review__text{margin:0;font-size:1.02rem;line-height:1.6;color:var(--ink);white-space:pre-line;overflow-wrap:anywhere}
.gr-review__text.is-clamped{display:-webkit-box;-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.gr-more{align-self:flex-start;background:none;border:0;padding:0;font:inherit;font-weight:700;font-size:.92rem;color:var(--green-700);cursor:pointer}
.gr-more:hover{text-decoration:underline}
.gr-more[hidden]{display:none}
.gr-posted{margin-top:auto;display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--line);font-size:.84rem;font-weight:600;color:var(--muted)}
.gr-posted .gr-g{width:16px;height:16px}
.gr-posted a:hover{color:var(--green-700);text-decoration:underline}

/* ---- footer row under the reviews ---- */
.gr-foot{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:28px;text-align:center}
.gr-note{font-size:.82rem;color:var(--muted);max-width:620px}
.gr-dots{display:none;justify-content:center;gap:8px;margin-top:16px}
.gr-dots button{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:var(--line);cursor:pointer}
.gr-dots button[aria-current="true"]{background:var(--green-600);width:22px;border-radius:9px}
.gr-empty{text-align:center;color:var(--muted)}

/* ---- strip (service & area pages) ---- */
.gr-strip__summary{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin:-26px 0 30px;font-weight:700;color:var(--ink)}
.gr-strip__summary .gr-g{width:20px;height:20px}

/* ---- footer link (static, all pages) ---- */
.footer__contact a.footer__google{display:inline-flex;align-items:center;gap:7px}
.footer__google svg{width:15px;height:15px;flex-shrink:0}

/* ---- responsive: carousel on mobile ---- */
@media(max-width:860px){
  .gr-profile{grid-template-columns:1fr}
  .gr-map{min-height:260px}
  .gr-track{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 2px 10px;gap:14px}
  .gr-track::-webkit-scrollbar{display:none}
  .gr-track>li{scroll-snap-align:center}
  .gr-dots{display:flex}
  .gr-card{padding:24px 20px}
  .gr-actions .btn{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){.gr-track{scroll-behavior:auto}}
