/* Google reviews: rating badge, summary card, review cards (built by build_reviews.py). */
.g-logo{width:20px;height:20px;flex:none}
.g-st{color:#F4B400;letter-spacing:1px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* small badge in heroes */
.g-badge{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:0 0 14px;padding:8px 14px 8px 10px;border:1px solid #DCE1E6;border-radius:999px;background:#fff;color:#16243A;text-decoration:none;font-weight:600;font-size:1rem;line-height:1.2;box-shadow:0 1px 2px rgba(22,36,58,.06)}
.g-badge:hover{border-color:#B9C2CC;box-shadow:0 2px 8px rgba(22,36,58,.10)}
.g-badge b{font-size:1.05rem}
.g-badge span:last-child{color:#4A5668;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#B9C2CC}

/* section */
.g-rev h2{margin-bottom:18px}
.g-sum{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;background:#fff;border:1px solid #DCE1E6;border-radius:16px;margin-bottom:18px}
.g-score{display:flex;align-items:center;gap:14px}
.g-score .g-logo{width:40px;height:40px}
.g-score div{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:10px;line-height:1.15}
.g-score b{font-size:2.3rem;font-weight:800;color:#16243A;grid-row:span 2}
.g-score .g-st{font-size:1.25rem}
.g-score span:last-child{color:#4A5668;font-size:.98rem}
.g-acts{display:flex;flex-wrap:wrap;gap:10px}
.g-acts .btn{min-height:46px;font-size:1rem}

/* cards: swipe row on phones, grid from tablet up */
.g-grid{display:grid;grid-auto-flow:column;grid-auto-columns:86%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;margin:0 -2px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.gr{position:relative;scroll-snap-align:start;margin:0;display:flex;flex-direction:column;background:#fff;border:1px solid #DCE1E6;border-radius:16px;padding:18px 18px 16px;box-shadow:0 1px 3px rgba(22,36,58,.05)}
.gr header{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.gr-av{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:1.15rem}
.gr-who{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.gr-who b{color:#16243A;font-size:1.02rem}
.gr-who small{font-size:.95rem}
.gr header .g-logo{margin-left:auto;width:22px;height:22px}
.gr-t{margin:0 0 12px;color:#16243A;font-size:1rem;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden}
.gr-t p{margin:0 0 .7em;max-width:none}
.gr-t p:last-child{margin:0}
.gr.open .gr-t{display:block;-webkit-line-clamp:unset}
.gr-more{align-self:flex-start;background:none;border:0;padding:0;margin:-4px 0 10px;font:inherit;font-size:.95rem;font-weight:600;color:#16324F;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.gr-link{margin-top:auto;font-size:.92rem;font-weight:600;color:#1A73E8;text-decoration:none}
.gr-link:hover{text-decoration:underline}
.g-all{margin:14px 0 0;font-weight:700;font-size:1.05rem}
.g-all a{text-decoration:none}
@media (min-width:720px){
  .g-grid{grid-auto-flow:row;grid-template-columns:repeat(2,1fr);overflow:visible;padding:0;margin:0}
}
@media (min-width:1000px){
  .g-grid{grid-template-columns:repeat(3,1fr)}
}
/* /reviews/ page: every review, masonry columns */
.g-all-grid{display:block;columns:1;column-gap:16px;overflow:visible;padding:0;margin:0}
.g-all-grid .gr{break-inside:avoid;margin:0 0 16px}
.g-all-grid .gr-t{display:block;-webkit-line-clamp:unset}
@media (min-width:720px){.g-all-grid{columns:2}}
@media (min-width:1000px){.g-all-grid{columns:3}}

/* footer line */
.g-foot a{display:inline-flex;align-items:center;gap:6px}
.g-foot .g-logo{width:16px;height:16px}

/* two-line logo: "Fresh Furnish" over a small gold "CLEANERS" */
.logo .lt{display:flex;flex-direction:column;line-height:1.02;white-space:nowrap}
.logo .lt small{font-size:.6em;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#B7832A;margin-top:3px}
footer .logo .lt small{color:#E2B868}

/* very narrow phones (320px): logo + number + menu don't fit, so the number moves to the bottom Call bar */
@media (max-width:360px){.top .menu-mob~.call,.top .menu-mob+.call{display:none}.top .menu-mob{margin-left:auto}}
@media (max-width:360px){.bar .btn{padding:0 10px;font-size:.98rem;white-space:nowrap}}
