/* Samuel Roofing — Google reviews carousel */
.srf-reviews{background:#F6F8FA;padding:3rem 0}
.srf-rev-wrap{display:grid;grid-template-columns:1fr;gap:1.75rem;align-items:center}
@media(min-width:1024px){.srf-rev-wrap{grid-template-columns:300px 1fr;gap:2.5rem}}
.srf-summary{display:flex;flex-direction:column;align-items:flex-start;text-decoration:none;color:#1B2E3D}
.srf-kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#5C6B7D;font-weight:600}
.srf-stars{color:#D4A017;font-size:1.35rem;letter-spacing:2px;margin:.4rem 0}
.srf-big{font-family:"Instrument Serif",serif;font-size:4rem;line-height:1;color:#0E2A47}
.srf-count{color:#5C6B7D;font-size:.95rem;margin-top:.25rem}
.srf-count strong{color:#1B2E3D}
.srf-glogo{display:inline-flex;align-items:center;gap:.4rem;margin-top:.9rem;font-weight:600;color:#476172;font-size:.95rem}
.srf-summary:hover .srf-glogo{color:#3889B9}
.srf-carousel{position:relative}
.srf-viewport{overflow:hidden}
.srf-track{display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1);will-change:transform}
.srf-card{flex:0 0 100%;box-sizing:border-box;padding:0 .5rem}
@media(min-width:640px){.srf-card{flex-basis:50%}}
@media(min-width:1280px){.srf-card{flex-basis:33.3333%}}
.srf-card-inner{background:#fff;border:1px solid #E6EBF0;border-radius:1rem;box-shadow:0 4px 18px rgba(14,42,71,.06);padding:1.4rem;height:100%;display:flex;flex-direction:column;cursor:pointer}
.srf-card-top{display:flex;align-items:center;gap:.7rem}
.srf-avatar{width:42px;height:42px;border-radius:9999px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.05rem;flex:0 0 auto}
.srf-name{font-weight:600;color:#1B2E3D;font-size:.95rem;line-height:1.1}
.srf-when{color:#5C6B7D;font-size:.8rem}
.srf-gmark{margin-left:auto;font-weight:700;font-size:1.1rem;font-family:Inter,sans-serif;color:#4285F4}
.srf-cardstars{color:#D4A017;letter-spacing:1px;margin:.6rem 0 .5rem}
.srf-text{color:#476172;font-size:.92rem;line-height:1.55;flex:1}
.srf-readmore{color:#3889B9;font-weight:500}
.srf-verified{margin-top:.8rem;font-size:.78rem;color:#5C6B7D;display:flex;align-items:center;gap:.35rem}
.srf-verified svg{color:#D4A017}
.srf-arrow{position:absolute;top:42%;transform:translateY(-50%);z-index:5;width:40px;height:40px;border-radius:9999px;background:#fff;border:1px solid #E6EBF0;box-shadow:0 4px 14px rgba(14,42,71,.12);color:#0E2A47;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.4rem;line-height:1}
.srf-arrow:hover{color:#3889B9}
.srf-prev{left:-6px}.srf-next{right:-6px}
.srf-ctrls{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem}
.srf-pause{font-size:.8rem;color:#5C6B7D;background:none;border:1px solid #E6EBF0;border-radius:9999px;padding:.25rem .75rem;cursor:pointer}
.srf-dots{display:flex;gap:.35rem}
.srf-dot{width:7px;height:7px;border-radius:9999px;background:#CBD5E0;border:0;cursor:pointer;padding:0}
.srf-dot[aria-current="true"]{background:#3889B9}

/* Manufacturer-logo marquee carousel */
.srf-logos{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.srf-logos-track{display:flex;align-items:center;gap:3.5rem;width:max-content;animation:srf-marq 26s linear infinite}
.srf-logos:hover .srf-logos-track,.srf-logos:focus-within .srf-logos-track{animation-play-state:paused}
.srf-logos-track img{height:50px;width:auto;object-fit:contain;opacity:.85;flex:0 0 auto}
.srf-logos-track a.srf-logo-link{display:inline-flex;align-items:center;flex:0 0 auto;text-decoration:none}
.srf-logos-track a.srf-logo-link:hover img{opacity:1}
.srf-logos-track a.srf-logo-link:focus-visible{outline:2px solid #3889B9;outline-offset:3px;border-radius:6px}
@keyframes srf-marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.srf-logos-track{animation:none;flex-wrap:wrap;justify-content:center;width:100%;gap:2.5rem}.srf-logos{-webkit-mask-image:none;mask-image:none}}
