/* V10.5 / Reputation section — static first and keyboard accessible.
   Customer names and quotes supplied from a Google Business Profile snapshot on 2026-11-09.
   Rating and counts are editorial snapshots, not a live integration. */
.reputation {
  --rep-ink: #12171d;
  --rep-accent: #0857da;
  position:relative;
  isolation:isolate;
  background:#f2f2ef;
  color:var(--rep-ink);
  padding:clamp(76px,8vw,130px) 0 clamp(70px,7.5vw,112px);
  scroll-margin-top:84px;
  border-top:1px solid rgba(14,24,36,.06);
}
.reputation::before{
  content:"";position:absolute;inset:0 0 auto;height:1px;
  background:linear-gradient(90deg,transparent,rgba(8,87,218,.24),transparent);pointer-events:none;
}
.reputation-shell {position:relative;}
.reputation-heading {
  display:grid;grid-template-columns:minmax(0,1.12fr) minmax(350px,.88fr);
  align-items:end;gap:clamp(38px,5vw,100px);
  padding-bottom:clamp(36px,4vw,62px);
}
.reputation-intro h2 {
  margin:0;
  font-size:clamp(48px,5.65vw,104px);
  line-height:1.01;
  font-weight:530;
  letter-spacing:-.035em;
  max-width:850px;
  text-wrap:balance;
}
.reputation-intro p {font-size:clamp(16px,1.18vw,19px);line-height:1.65;color:#626b74;margin:24px 0 0;max-width:580px;}
.reputation-overall {
  display:flex;align-items:center;gap:clamp(18px,2.4vw,34px);
  border-left:1px solid #cdd2d7;
  padding:3px 0 5px clamp(25px,3vw,55px);
  min-height:140px;
}
.reputation-score {
  white-space:nowrap;font-size:clamp(79px,8.2vw,133px);
  letter-spacing:-.09em;line-height:.95;font-weight:570;
  font-variant-numeric:tabular-nums;
}
.reputation-score span {font-size:.20em;letter-spacing:-.01em;vertical-align:baseline;color:#77818b;font-weight:450;margin-left:7px;}
.reputation-overall-meta {display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:130px;}
.reputation-stars{display:block;color:var(--rep-accent);font-size:23px;letter-spacing:2px;white-space:nowrap;line-height:1;}
.reputation-overall-meta strong{font-size:clamp(14px,1vw,17px);letter-spacing:.015em;font-weight:600;}
.reputation-google-link,.reputation-links>a {font-size:14px;text-underline-offset:5px;text-decoration-thickness:1px;transition:color .2s ease;color:#445063;}
.reputation-google-link:hover,.reputation-links>a:hover {color:var(--rep-accent);}
.reputation-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.2vw,20px);}
.reputation-card {
  background:#fff;
  border:1px solid rgba(16,32,54,.10);
  min-width:0;
  min-height:330px;
  padding:clamp(24px,2.35vw,38px);
  display:flex;flex-direction:column;
  position:relative;
  box-shadow:0 6px 26px rgba(10,22,38,.025);
  transition:transform .4s cubic-bezier(.2,.7,.25,1),box-shadow .4s ease,border-color .4s ease;
}
.reputation-card::after{content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--rep-accent);transition:width .55s cubic-bezier(.2,.7,.25,1)}
.reputation-card:hover,.reputation-card:focus-within {transform:translateY(-5px);box-shadow:0 22px 52px rgba(10,25,46,.08);border-color:rgba(8,87,218,.25)}
.reputation-card:hover::after,.reputation-card:focus-within::after{width:100%}
.reputation-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:24px;}
.reputation-source{color:#637181;font-size:12px;font-weight:600;letter-spacing:.015em;}
.reputation-quote-mark{color:var(--rep-accent);font-family:Georgia,serif;font-size:58px;line-height:.64;font-weight:400;opacity:.8;}
.reputation-card blockquote {margin:0 0 42px;font-size:clamp(18px,1.36vw,23px);line-height:1.52;letter-spacing:-.014em;font-weight:490;flex:1;overflow-wrap:break-word;}
.reputation-author {padding-top:19px;border-top:1px solid #e6e9ec;font-size:14px;font-weight:650;letter-spacing:.01em;margin:0;}
.reputation-links {margin-top:clamp(23px,2.8vw,42px);padding-top:clamp(21px,2.2vw,29px);border-top:1px solid #cdd2d7;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.reputation-yelp{display:flex;align-items:center;gap:16px;min-width:0;}
.reputation-yelp-symbol {display:grid;place-items:center;flex:none;width:37px;height:37px;background:#d32323;color:#fff;font-family:Arial, sans-serif;font-size:18px;font-weight:800;border-radius:6px;}
.reputation-yelp p {font-size:clamp(14px,1vw,16px);line-height:1.5;color:#5a6570;margin:0;max-width:790px;}
.reputation-yelp strong{color:#202a33;font-weight:600;}
.reputation-links>a {flex:none;white-space:nowrap;}
.reputation a:focus-visible{outline:3px solid #1266e8;outline-offset:5px;}
@media (max-width:1120px) {
  .reputation-heading{grid-template-columns:1fr;gap:38px;align-items:start;}
  .reputation-overall{border-left:0;border-top:1px solid #cdd2d7;padding:30px 0 0;min-height:0;}
  .reputation-intro h2{font-size:clamp(49px,7vw,86px)}
  .reputation-card{min-height:340px;}
}
@media (max-width:760px){
  .reputation {padding:76px 0 72px;scroll-margin-top:77px;}
  .reputation-heading{gap:30px;padding-bottom:31px;}
  .reputation-intro h2{font-size:clamp(42px,10.5vw,64px);line-height:1.05;}
  .reputation-intro p {font-size:16px;line-height:1.65;margin-top:17px;}
  .reputation-overall{padding:26px 0 0;gap:26px;}
  .reputation-score{font-size:83px;letter-spacing:-.075em;}
  .reputation-stars {font-size:19px;}
  .reputation-cards{grid-template-columns:1fr;gap:12px;}
  .reputation-card{min-height:0;padding:27px 27px 23px;}
  .reputation-card blockquote{font-size:19px;line-height:1.5;margin-bottom:33px;}
  .reputation-links{align-items:flex-start;flex-direction:column;gap:18px;}
}
@media (max-width:360px){
  .reputation-overall{gap:17px;}
  .reputation-score{font-size:70px;}
  .reputation-stars{font-size:17px;letter-spacing:1px;}
  .reputation-overall-meta strong{font-size:13px;}
}
@media (prefers-reduced-motion:reduce){
  .reputation-card,.reputation-card::after,.reputation-google-link,.reputation-links>a{transition:none!important;}
  .reputation-card:hover,.reputation-card:focus-within{transform:none;}
}
