/* ============================================================
 * commonListing.css
 * ----------------------------------------------------------
 * Extracted from the legacy Laravel app on 2026-05-04 (originally at
 * legacy/frontend_v3_goodfirm/...).
 *
 * Listing-page-shared shell (intro, filter sidebar, firm-wrapper, firm-rating, firm-services, firm-urls, why-trust block, FAQ, related-services). Inlined in legacy on software-listing + software-compare pages via layouts/partials/css/commonListing.blade.php. New app loads it via per-route layouts. Edit this file directly.
 *
 * After legacy decommission this file remains the canonical source.
 * ============================================================ */
main{color:var(--primary)}.introduction-text{display:flex;flex-direction:column;gap:20px;padding:10px 0 0}.head-content-more .introduction-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;contain-intrinsic-size:auto 82px;content-visibility:auto;display:-webkit-box;overflow:hidden}.page-intro-image{flex:0 0 auto;padding:0 0 0 30px}.introduction-text ol,.introduction-text ul{display:flex;flex-direction:column;gap:10px}.buyers-guide-answer ul li,.faq-questions-description ul li,.introduction-text ol li,.introduction-text ul li{list-style:none!important;padding-left:20px;position:relative}.introduction-text ol li h2,.introduction-text ul li h2{color:var(--gray);font-size:15px}.introduction-text ol li{list-style:decimal!important;padding-left:10px}.introduction-text ol{padding-left:25px}.faq-answer a,.introduction-text a{color:var(--blue)}.faq-answer a:focus,.faq-answer a:hover,.introduction-text a:hover,introduction-text:focus{color:var(--blue-hover)}.read-less-intro,.read-more-intro{color:var(--blue);cursor:pointer;font-size:16px;margin-top:5px}.read-less-intro:hover,.read-more-intro:hover{color:var(--blue-hover)}.m-head-content-more .read-more-intro{display:none}.m-head-content-more.head-content-more .read-more-intro{display:flex}.disclaimer{color:var(--gray);font-size:12px;margin-top:15px}.disclaimer a{color:var(--gray);text-decoration:underline}.firms-navbar{border-bottom:1px solid var(--border-color);color:var(--gray);display:flex;flex-direction:column;gap:15px;justify-content:space-between;margin-top:20px;padding-bottom:20px;width:100%}.filter-head-sort-by{align-items:center;display:flex;font-size:12px;gap:10px}.firms_count_update{display:inline}.firms_count_update .total-firms{padding-right:10px}.firms_count_update .last_update{padding-left:10px}.trust-detail{display:grid;gap:10px}#listTab{padding-top:20px}#listTab ul{border-bottom:1px solid var(--border-color);display:flex}#listTab ul a{align-items:center;color:var(--secondary);display:flex;font-weight:600;height:62px;padding:0 35px}#listTab ul li.active a{background:var(--primary);border-radius:12px 12px 0 0;color:var(--white)}#listTab ul a:hover{color:var(--primary)}.listing-banner{padding-top:20px}.banner-list-wrap{align-items:center;background:linear-gradient(91.2deg,#00cc85 59.42%,#fff 107.26%);border:1px solid #cfdbe8;border-radius:6px;display:grid;grid-template-columns:auto 266px}.banner-information{color:var(--white);display:flex;flex-direction:column;gap:10px;padding:20px 30px}.banner-footer{align-items:center;display:flex;gap:20px}.banner-heading{font-size:34px;font-weight:600}.banner-heading span{color:#b5fdc8}.banner-link{align-items:center;background:var(--white);border-radius:var(--border-radius);color:#000;display:flex;font-size:18px;font-weight:600;height:45px;justify-content:center;padding:0 20px;width:200px}.banner-link:hover,.banner-list-wrap:hover .banner-link{color:#00cc85}.banner-link-wrap{align-items:center;display:flex;gap:20px}.apply-filter-action{align-items:center;background:var(--primary);border-radius:var(--border-radius);color:var(--white);cursor:pointer;display:flex;font-size:14px;height:34px;justify-content:center;padding:0 20px;width:100%}.apply-filter-action:hover{background:var(--black-hover)}.list-header{align-items:center;display:flex;justify-content:space-between;padding:20px 0}h2{font-size:24px;margin:0}.list-header h2{font-weight:400}.firm-container{display:flex;gap:20px;margin-bottom:30px;padding-top:20px}.pagination-wrapper{padding:50px 0 20px}.related-services-wrapper{contain-intrinsic-size:auto 310px;content-visibility:auto}aside#filter{align-self:flex-start;border:1px solid var(--border-color);border-radius:var(--border-radius);height:calc(100vh - 40px);position:sticky;top:20px;width:280px}.filter-input-elements{display:flex;flex-direction:column;gap:20px;height:calc(100% - 72px);overflow-y:auto;padding:20px 20px 0}.filter-input-action{padding:20px}.filter-selection-results-clear{display:flex;flex-direction:column;gap:15px}.filter-selection-header{align-items:center;display:flex;justify-content:space-between}.web-reset-filter{font-size:14px}.show-filter,.transBG-link{align-items:center;border:1px solid var(--primary);border-radius:var(--border-radius);color:var(--primary);cursor:pointer;display:flex;font-size:16px;height:34px;justify-content:center;padding:0 25px;width:fit-content}.show-filter:focus,.show-filter:hover,.transBG-link:focus,.transBG-link:hover{background:var(--primary);color:var(--white)}.show-filter{content-visibility:hidden;display:none;height:34px}.filter-input-elements::-webkit-scrollbar-track{background:#fff}.filter-input-elements::-webkit-scrollbar-thumb{background-color:var(--border-color);border:0;border-radius:0;outline:1px solid transparent}.filter-input-elements::-webkit-scrollbar{background-color:transparent;border:0;border-radius:0;width:3px}.more-inputs,.selected-input{align-items:center;background:var(--primary);border-radius:var(--border-radius);color:var(--white);cursor:pointer;display:flex;font-size:12px;gap:5px;height:24px;padding:0 8px}.filter-selection-results{display:flex;flex-wrap:wrap;gap:10px}.remove-input{cursor:pointer}.remove-input:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 10 10'%3E%3Cpath fill='%23fff' d='M6.93.69 6.24 0 3.46 2.78.69 0 0 .69l2.78 2.77L0 6.24l.69.69 2.77-2.78 2.78 2.78.69-.69-2.78-2.78z'/%3E%3C/svg%3E");content:"";display:inline-block;height:9px;width:9px}.directory-list{width:calc(100% - 300px)}.firm-directory-list{display:flex;flex-direction:column;gap:20px}.firm-wrapper{border:1px solid var(--border-color);border-radius:var(--border-radius);display:flex;flex-wrap:wrap;padding:20px;position:relative}.filterLabel{color:var(--primary);font-size:14px;font-weight:600}.filter-input,.filter-input ul{display:flex;flex-direction:column;gap:10px}.filter-input{border-bottom:1px solid var(--border-color);padding-bottom:20px}.filter-input ul{gap:2px}.filter-input ul li{position:relative}.filter-head-sort-by li a,.filter-input ul li label{align-content:center;cursor:pointer;display:flex;font-size:15px;gap:10px;line-height:normal;overflow:hidden;padding:8px 7px;position:relative;word-break:break-all}.filter-head-sort-by li a:hover,.filter-input ul li label:hover{background:#fdf6e9;border-radius:var(--border-radius);color:var(--primary)}.filter-input ul li label:before{border:1px solid var(--secondary);border-radius:var(--border-radius);content:"";display:inline-block;height:16px;width:16px}.filter-input ul li label.checked:before{background:var(--secondary) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='8' fill='none'%3E%3Cpath fill='%23fff' d='M2.414 3.379A1 1 0 1 0 1 4.793l2.828 2.829a1 1 0 0 0 1.415 0l4.95-4.95a1 1 0 0 0-1.415-1.414L4.536 5.5z'/%3E%3C/svg%3E") 50% 50% no-repeat;border-color:var(--secondary)}.devices-supported ul li label:before,.target-company-size ul li label:before{display:none}.devices-supported ul,.target-company-size ul{flex-direction:row;flex-wrap:wrap;gap:5px}.devices-supported ul li label,.target-company-size ul li label{border:1px solid var(--secondary);border-radius:var(--border-radius);padding:8px 12px}.devices-supported ul li label.checked,.target-company-size ul li label.checked{background:var(--secondary);color:var(--white)}.filter-input ul li label input{cursor:pointer;height:0;left:0;margin:0;opacity:0;position:absolute;width:0}.filterToggle{color:var(--secondary);cursor:pointer;font-weight:600;text-align:left;width:fit-content}.filter-header{display:none}.firm-header-wrapper{align-items:center;display:flex;gap:20px;padding-bottom:20px;width:calc(100% - 220px)}.firm-wrapper-item{width:100%}.firm-logo{align-items:center;border:1px solid var(--border-color);border-radius:10px;display:flex;height:56px;justify-content:center;overflow:hidden;width:56px}.firm-logo img{max-height:54px;max-width:54px}.firm-logo img[alt]{font-size:0}.firm-name-rating{width:auto}.firm-wrapper h3{display:flex;line-height:1.4;margin-bottom:0}h3 a{color:var(--primary)}h3 a:focus,h3 a:hover{color:var(--blue)}.firm-rating{align-items:center;display:inline-flex;font-size:15px;gap:10px;line-height:normal}.firm-rating a{color:var(--blue)}.firm-rating a:focus,.firm-rating a:hover{color:var(--blue-hover)}.rating-number{color:var(--gray);font-size:18px;font-weight:600}.rating-star-container{background:url(https://assets.goodfirms.co/static/star-fill.svg);height:15px}.rating-star-container-base{background:url(https://assets.goodfirms.co/static/star-strock.svg);display:flex;height:15px;width:89px}.bar{background:var(--border-color);height:16px;width:1px}.verified-tag{align-items:center;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' fill='none'%3E%3Cpath fill='%2324d790' fill-rule='evenodd' d='M8.904.3a8 8 0 0 1 8 8 8 8 0 0 1-8 8 8 8 0 0 1-8-8 8 8 0 0 1 8-8m4.246 5.148a.687.687 0 0 0-.956 0l-4.52 4.43-2.06-2.019a.687.687 0 0 0-.956 0 .65.65 0 0 0-.198.468.7.7 0 0 0 .052.254q.052.121.147.214l2.538 2.486a.68.68 0 0 0 .478.194.68.68 0 0 0 .478-.194l4.998-4.898a.7.7 0 0 0 .146-.214.65.65 0 0 0 0-.508.7.7 0 0 0-.146-.214z'/%3E%3C/svg%3E") 0 50% no-repeat;color:var(--gray);display:inline-flex;font-size:14px;padding-left:25px}.firm-urls{background:none;justify-content:flex-end;padding:0}.firm-urls a{font-weight:600;height:45px;width:200px}.list-blue-link{align-items:center;background-color:var(--primary);border:1px solid var(--primary);border-radius:var(--border-radius);color:var(--white);display:flex;gap:10px;justify-content:center}.list-blue-link:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Cpath fill='%23fff' d='M2.716.256H8.54a.83.83 0 0 1 .825.728l.006.104v5.823a.83.83 0 0 1-.832.832.83.83 0 0 1-.825-.728l-.006-.104-.001-3.899-6.072 6.073A.83.83 0 1 1 .458 7.91l5.988-5.989h-3.73a.83.83 0 1 1 0-1.664z'/%3E%3C/svg%3E");content:"";height:10px;width:10px}.list-blue-link:focus,.list-blue-link:hover{background-color:var(--black-hover);color:var(--white)}.firm-content-services{display:grid;gap:10px 20px;grid-template-columns:auto 177px}.firm-services{border-left:1px solid var(--border-color);display:flex;flex-direction:column;gap:15px;grid-column:2;grid-row:1/span 2;padding-left:15px}.firm-short-description{color:var(--gray)}.firm-short-description a{color:var(--blue)}.firm-short-description a:focus,.firm-short-description a:hover{color:var(--blue-hover)}.service-label{color:var(--gray);font-size:12px}.latest-review-highlight h4{margin:0}.blockquote-review-highlight{font-size:15px}.reviewer-info{color:var(--gray);font-size:12px;margin-left:5px}.reviewer-info .custom_tooltip{display:inline-flex;margin-left:8px;top:2px}.icon-verified{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='13'%3E%3Cpath fill='%233ebe69' d='M5.34 0a.27.27 0 0 1 .174.058l.035.025 1.438.878.279.144a10 10 0 0 0 1.506.575L7.695 2.74l-.947-.399a11 11 0 0 1-1.11-.606l-.126-.077a.4.4 0 0 0-.136-.058l-.037-.003-.015.001-.015.002a.4.4 0 0 0-.144.058l-.126.077a11 11 0 0 1-1.11.606 9.8 9.8 0 0 1-2.459.815.21.21 0 0 0-.133.148v2.804a2 2 0 0 1 .007.345l.016.505a2.7 2.7 0 0 0 .081.558c.135.479.389.919.726 1.325a6 6 0 0 0 .492.524l.14.128.074.065.068.057.105.087.022.018.199.153.109.08.037.026a10.3 10.3 0 0 0 1.816.994q.053.022.107.023c.054.001.072-.008.101-.021.646-.283 1.261-.601 1.822-.996l.037-.026.109-.08.199-.153.022-.018.105-.087.068-.057.074-.065.137-.125q.262-.248.495-.526c.337-.405.591-.845.726-1.325a2.7 2.7 0 0 0 .081-.558l.016-.505a2 2 0 0 1 .007-.345l.002-.165 1.336-1.636.001 2.312v.033c-.005 1.452-.641 2.617-1.664 3.599l-.096.089-.037.034-.072.067a9 9 0 0 1-1.643 1.171l-.04.023-.128.07a13 13 0 0 1-1.491.68.4.4 0 0 1-.1.024l-.029.003-.02.001H5.32l-.02-.001-.023-.002a.5.5 0 0 1-.106-.025 13 13 0 0 1-1.491-.68l-.127-.069-.041-.023a9 9 0 0 1-1.643-1.171l-.072-.067-.037-.034-.096-.089C.642 9.267.005 8.102 0 6.65v-.033l.001-2.35c0-.039.003-.078.008-.131L.005 2.308c0-.292.053-.341.35-.359q.739-.046 1.439-.231.85-.242 1.621-.612l.279-.144c.494-.265.963-.579 1.438-.878l.035-.025A.27.27 0 0 1 5.34 0m6.239.645.24.214c.224.21.24.396.051.631l-1.854 2.296-1.406 1.74-.314.389-2.557 3.164c-.262.319-.574.31-.802-.04L3.339 6.56 2.35 5.001c-.173-.274-.136-.456.125-.653l.257-.193c.291-.218.451-.205.69.06l1.773 1.97.149.157 2.818-2.899L10.864.665c.273-.28.423-.281.715-.02'/%3E%3C/svg%3E") no-repeat;height:12px;width:13px}.tagline,blockquote{font-style:italic}blockquote{background:#fff9f6;border-left:4px solid #ff7042;font-size:15px;line-height:30px;margin:0 0 20px;padding:12px 30px 13px 25px;page-break-inside:avoid}.fbg1,.fbg3,.fbg5{background:var(--background);padding:50px 0}.fbg2,.fbg4,.fbg6{padding:50px 0}.buyers-guide-container{background:var(--white);border:1px solid var(--border-color);border-radius:var(--border-radius);gap:20px;padding:20px}.no-directory-list{align-items:center;display:flex;flex-direction:column;gap:25px;justify-content:center;padding:70px 0}.why-trust-goodfirms-wrapper{border-top:1px solid var(--border-color);display:grid;padding:50px 0 10px}.trust-overview{border-bottom:1px solid var(--border-color);display:grid;gap:20px;padding-bottom:20px;text-align:center}.why-trust-goodfirms-wrapper .trust-overview h2{align-items:center;border:0;display:flex;gap:20px;justify-content:center;padding:0}.trust-overview h2:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='55' height='55' fill='none'%3E%3Cpath fill='%23c5a063' d='M26.539.218 16.385 5.037c-.864.41-1.394 1.343-1.331 2.342.176 2.805.846 8.555 3.38 12.844 3.197 5.41 7.167 6.827 8.557 7.17.335.082.682.082 1.017 0 1.39-.343 5.36-1.76 8.557-7.17 2.535-4.289 3.204-10.04 3.38-12.844.063-.999-.468-1.933-1.33-2.342L28.46.217a2.23 2.23 0 0 0-1.921 0'/%3E%3Cpath fill='%23f1f2f2' d='M26.824 4.218 19.677 7.61c-.608.289-.981.946-.937 1.649.124 1.974.595 6.021 2.38 9.04 2.25 3.809 5.044 4.805 6.022 5.047.236.058.48.058.716 0 .978-.242 3.772-1.238 6.022-5.047 1.784-3.019 2.255-7.066 2.38-9.04.044-.703-.33-1.36-.937-1.649l-7.147-3.392a1.57 1.57 0 0 0-1.352 0'/%3E%3Cpath fill='%23171923' d='M27.027 18.382c-.284 0-.56-.107-.772-.303l-3.287-3.043a1.176 1.176 0 0 1-.075-1.643 1.133 1.133 0 0 1 1.618-.076l2.361 2.185 3.932-5.262a1.135 1.135 0 0 1 1.606-.224c.504.389.602 1.118.22 1.63l-4.69 6.276a1.14 1.14 0 0 1-.913.46'/%3E%3Cpath fill='%23ffeed0' d='M32.807 37.633c.39-.144.734-.423.958-.817l1.27-2.233a.235.235 0 0 0-.084-.318l-9.349-5.48a2.273 2.273 0 0 0-3.13.851l-.828 1.454z'/%3E%3Cpath fill='%23c5a063' d='M39.313 27.598 21.61 37.976l7.89 13.876 7.582-4.444a9.5 9.5 0 0 0 3.507-3.597l5.958-3.492z'/%3E%3Cpath fill='%23d9b677' d='m39.93 42.653 5.958-3.492.657 1.156-5.958 3.493z'/%3E%3Cpath fill='%23171923' d='M49.163 41.194 55 37.773l-9.29-16.334-5.837 3.421a1.877 1.877 0 0 0-.671 2.543l7.455 13.11a1.82 1.82 0 0 0 2.505.681'/%3E%3Cpath fill='%23e59076' d='m39.932 42.654.658 1.157a9.5 9.5 0 0 1-3.507 3.597l-7.581 4.444-.658-1.156 7.581-4.444a9.5 9.5 0 0 0 3.507-3.598'/%3E%3Cpath fill='%23ffeed0' d='M42.29 43.191 15.686 27.598l-7.234 12.72 5.958 3.492a9.5 9.5 0 0 0 3.507 3.598l6.087 3.567 6.406 3.756c.944.553 2.15.225 2.695-.733a2.02 2.02 0 0 0-.722-2.736l3.417 2.003c.944.553 2.15.225 2.695-.733a2.02 2.02 0 0 0-.722-2.736l1.708 1.001c.944.553 2.15.225 2.695-.733a2.02 2.02 0 0 0-.722-2.736l-1.139-.668c.944.553 2.15.225 2.695-.733a2.02 2.02 0 0 0-.722-2.736'/%3E%3Cpath fill='%23171923' d='M5.837 41.194 0 37.773l9.289-16.334 5.837 3.421a1.877 1.877 0 0 1 .67 2.543l-7.454 13.11a1.82 1.82 0 0 1-2.505.681'/%3E%3Cpath fill='%23ffe0a9' d='M38.726 51.861a1.94 1.94 0 0 1-2.239.195l-7.546-4.423-.687 1.209 7.546 4.423a1.957 1.957 0 0 0 2.926-1.404m3.681-2.468a1.945 1.945 0 0 1-2.239.195l-9.254-5.424-.687 1.209 9.254 5.424c.943.553 2.15.225 2.694-.733a2 2 0 0 0 .232-.67m.833-4.137a1.94 1.94 0 0 1-2.238.195l-8.115-4.757-.688 1.209 8.116 4.756c.943.554 2.15.225 2.694-.733.122-.213.194-.44.231-.67M8.451 40.318l.658-1.156 5.958 3.492-.658 1.157zm22.647 13.204-12.523-7.27a9.5 9.5 0 0 1-3.507-3.598l-.658 1.157a9.5 9.5 0 0 0 3.507 3.597l12.493 7.323a1.957 1.957 0 0 0 2.926-1.404 1.94 1.94 0 0 1-2.238.195'/%3E%3Cpath fill='%23c5a063' d='m24.588 54.731 2.99-1.752a2.02 2.02 0 0 0 .722-2.736 1.957 1.957 0 0 0-2.695-.733l-2.99 1.752a2.02 2.02 0 0 0-.721 2.736 1.957 1.957 0 0 0 2.694.733'/%3E%3Cpath fill='%23d9b677' d='m26.921 51.822-2.99 1.753a1.94 1.94 0 0 1-2.261-.217 1.957 1.957 0 0 0 2.919 1.373l2.99-1.752a2.02 2.02 0 0 0 .722-2.736 2 2 0 0 0-.433-.517 2.01 2.01 0 0 1-.947 2.096'/%3E%3Cpath fill='%23c5a063' d='m19.2 53.265 5.837-3.422a2.02 2.02 0 0 0 .722-2.736 1.957 1.957 0 0 0-2.695-.733l-5.837 3.422a2.02 2.02 0 0 0-.722 2.736 1.957 1.957 0 0 0 2.695.733'/%3E%3Cpath fill='%23d9b677' d='m24.378 48.687-5.837 3.421a1.94 1.94 0 0 1-2.262-.216 1.957 1.957 0 0 0 2.919 1.373l5.837-3.421a2.02 2.02 0 0 0 .723-2.736 2 2 0 0 0-.434-.517c.147.81-.203 1.66-.946 2.096'/%3E%3Cpath fill='%23c5a063' d='m15.518 50.797 6.976-4.09a2.02 2.02 0 0 0 .722-2.735 1.957 1.957 0 0 0-2.694-.733l-6.977 4.09a2.02 2.02 0 0 0-.722 2.735 1.957 1.957 0 0 0 2.695.733'/%3E%3Cpath fill='%23d9b677' d='m21.837 45.552-6.976 4.09a1.94 1.94 0 0 1-2.261-.217 1.957 1.957 0 0 0 2.919 1.373l6.976-4.09a2.02 2.02 0 0 0 .722-2.736 2 2 0 0 0-.433-.516 2.01 2.01 0 0 1-.947 2.096'/%3E%3Cpath fill='%23c5a063' d='m14.684 46.66 5.268-3.087a2.02 2.02 0 0 0 .722-2.736 1.957 1.957 0 0 0-2.695-.733l-5.268 3.087a2.02 2.02 0 0 0-.722 2.736 1.957 1.957 0 0 0 2.695.733'/%3E%3Cpath fill='%23d9b677' d='m19.295 42.416-5.268 3.088a1.94 1.94 0 0 1-2.261-.216 1.957 1.957 0 0 0 2.919 1.373l5.267-3.088a2.02 2.02 0 0 0 .722-2.736 2 2 0 0 0-.433-.517 2.01 2.01 0 0 1-.946 2.096'/%3E%3Cpath fill='%23ffeed0' d='m19.308 43.18.462-.271a1.173 1.173 0 0 0 .419-1.59l-.17-.297a1.136 1.136 0 0 0-1.565-.426l-.461.27a.47.47 0 0 0-.168.636l.857 1.507a.455.455 0 0 0 .626.17m2.542 3.136.461-.271a1.173 1.173 0 0 0 .42-1.59l-.17-.297a1.137 1.137 0 0 0-1.565-.426l-.666.39a.227.227 0 0 0-.081.309l.975 1.714a.454.454 0 0 0 .625.17m2.543 3.136.462-.27a1.173 1.173 0 0 0 .419-1.59l-.17-.298a1.136 1.136 0 0 0-1.565-.425l-.461.27a.47.47 0 0 0-.168.636l.857 1.506a.455.455 0 0 0 .626.17m2.543 3.136.462-.27a1.173 1.173 0 0 0 .419-1.59l-.17-.297a1.137 1.137 0 0 0-1.565-.426l-.461.27a.47.47 0 0 0-.168.636l.857 1.507a.455.455 0 0 0 .626.17'/%3E%3Cpath fill='%23c5a063' d='m25.527 36.45 8.158-4.781-1.155-2.033a2.273 2.273 0 0 0-3.13-.851l-9.35 5.48a.235.235 0 0 0-.084.318l.24.42c1.075 1.892 3.458 2.54 5.321 1.448'/%3E%3Cpath fill='%23ffebc7' d='m23.297 34.594 1.046-.614a.673.673 0 0 0 .241-.912l-.623-1.096-2.97 1.741.169.3a1.55 1.55 0 0 0 2.137.58'/%3E%3C/svg%3E") no-repeat 0 0;content:"";height:56px;width:55px}.trust-detail-wrap{display:grid;gap:40px;grid-template-columns:calc(50% - 20px) calc(50% - 20px);padding:40px 0}.trust-detail-wrap h3{align-items:center;display:flex;gap:15px}.trust-detail-wrap .trust-detail h3:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='25' fill='none'%3E%3Cpath fill='%23c5a063' d='M22.485 9.701c-.404-.422-.822-.857-.979-1.24-.146-.35-.154-.931-.163-1.494-.016-1.046-.033-2.231-.857-3.055s-2.009-.841-3.055-.857c-.562-.009-1.143-.017-1.494-.163-.381-.158-.818-.575-1.24-.979C13.959 1.203 13.119.398 12 .398s-1.957.805-2.698 1.515c-.422.404-.857.822-1.24.979-.348.146-.931.154-1.494.163-1.046.016-2.231.033-3.055.857s-.836 2.009-.857 3.055c-.009.563-.017 1.143-.163 1.494-.157.381-.575.817-.979 1.24C.805 10.44 0 11.28 0 12.398s.805 1.957 1.515 2.698c.404.422.822.857.979 1.24.146.35.154.931.163 1.494.016 1.046.033 2.231.857 3.055s2.009.841 3.055.857c.563.009 1.143.017 1.494.163.381.157.818.575 1.24.979.739.71 1.579 1.515 2.698 1.515s1.957-.805 2.698-1.515c.422-.404.857-.822 1.24-.979.35-.146.931-.154 1.494-.163 1.046-.016 2.231-.033 3.055-.857s.841-2.009.857-3.055c.009-.562.017-1.143.163-1.494.157-.381.575-.817.979-1.24.71-.739 1.515-1.579 1.515-2.698s-.805-1.958-1.515-2.698zm-5.593.733-6 6a.85.85 0 0 1-.606.251.9.9 0 0 1-.328-.065.8.8 0 0 1-.278-.186l-2.571-2.571a.86.86 0 0 1-.251-.606.855.855 0 0 1 .857-.857c.227 0 .446.09.606.251l1.965 1.966 5.394-5.395a.86.86 0 0 1 .606-.251.9.9 0 0 1 .328.065q.158.065.278.186c.12.121.143.174.186.278a.9.9 0 0 1 .065.328.86.86 0 0 1-.251.606'/%3E%3C/svg%3E") no-repeat 0 0;content:"";height:24px;width:24px}.trust-detail-wrap .trust-detail:nth-of-type(2) h3:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='25' fill='none'%3E%3Cpath fill='%23c5a063' d='M22 .398H2a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-20a2 2 0 0 0-2-2M10.708 15.106l-4 4a1 1 0 0 1-.707.293 1 1 0 0 1-.707-.293l-2-2a1 1 0 0 1 0-1.415 1 1 0 0 1 1.415 0L6 16.985l3.293-3.294a1 1 0 0 1 1.415 0 1 1 0 0 1 0 1.415m0-8-4 4a1 1 0 0 1-.707.293 1 1 0 0 1-.707-.293l-2-2a1 1 0 0 1-.293-.707A1 1 0 0 1 4 7.398a1 1 0 0 1 .707.293L6 8.985l3.293-3.294a1 1 0 0 1 1.415 0 1 1 0 0 1 0 1.415M20 17.398h-6a1 1 0 0 1-1-1 1 1 0 0 1 1-1h6a1 1 0 0 1 1 1 1 1 0 0 1-1 1m0-8h-6a1 1 0 0 1-1-1 1 1 0 0 1 1-1h6a1 1 0 0 1 1 1 1 1 0 0 1-1 1'/%3E%3C/svg%3E");height:25px}.trust-detail-wrap .trust-detail:nth-of-type(3) h3:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='25' fill='none'%3E%3Cpath fill='%23c5a063' d='M12 .398A12 12 0 0 0 .913 7.806a12 12 0 0 0-.683 6.933 12 12 0 0 0 9.428 9.428 12 12 0 0 0 12.319-5.103A12 12 0 0 0 24 12.398a12.013 12.013 0 0 0-12-12m9.042 7.385h-4.113a15.6 15.6 0 0 0-2.573-5.262c1.428.343 2.765.991 3.919 1.899a10.2 10.2 0 0 1 2.768 3.362h-.001zm1.112 4.615a10 10 0 0 1-.384 2.769h-4.443a18.2 18.2 0 0 0 0-5.538h4.443a10 10 0 0 1 .384 2.769M12 2.591a13.3 13.3 0 0 1 3 5.192H9a13.3 13.3 0 0 1 3-5.192M9 17.014h6a13.3 13.3 0 0 1-3 5.192 13.3 13.3 0 0 1-3-5.192m-.45-1.846a16.3 16.3 0 0 1 0-5.538h6.909a16.3 16.3 0 0 1 0 5.538zm5.81 7.108a15.6 15.6 0 0 0 2.573-5.262h4.115a10.2 10.2 0 0 1-2.77 3.363 10.2 10.2 0 0 1-3.922 1.898h.005z'/%3E%3C/svg%3E")}.trust-detail-wrap .trust-detail:nth-of-type(4) h3:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='25' fill='none'%3E%3Cpath fill='%23c5a063' d='M9 15.398v-6h6v6zM0 3.023v11.875a.5.5 0 0 0 .5.5H7V8.812L.854 2.666a.5.5 0 0 0-.547-.108.5.5 0 0 0-.307.465m23.5 6.375H17v6.586l6.146 6.146a.5.5 0 0 0 .547.108.5.5 0 0 0 .307-.465V9.898a.5.5 0 0 0-.5-.5M15 .898a.5.5 0 0 0-.5-.5H2.625a.5.5 0 0 0-.462.309.5.5 0 0 0 .109.545l6.142 6.146H15zm7.561 5.646-4.707-4.707a.5.5 0 0 0-.545-.109.5.5 0 0 0-.309.462v5.208h5.208a.5.5 0 0 0 .462-.309.5.5 0 0 0-.109-.545m-6.975 10.854H9v6.5a.5.5 0 0 0 .5.5h11.875a.5.5 0 0 0 .462-.309.5.5 0 0 0-.109-.545zm-14.147.854 4.707 4.708a.5.5 0 0 0 .545.108.5.5 0 0 0 .309-.462v-5.207H1.793a.5.5 0 0 0-.462.309.5.5 0 0 0 .109.545z'/%3E%3C/svg%3E")}.buyers-guide-scope{display:flex;flex-direction:column;gap:10px;width:100%}@media (min-width:768px){.firm-urls{position:absolute;right:20px;top:20px}.firms-navbar{flex-direction:row}}@media (min-width:1025px){.buyers-guide-container{display:grid;grid-template-columns:352px calc(100% - 372px);padding-bottom:50px}.table-of-contents{align-self:flex-start;height:calc(100vh - 40px);position:sticky;top:20px}.table-of-contents ul{color:var(--secondary);display:flex;flex-direction:column;gap:10px;height:100%;list-style:disc;overflow-y:auto;overscroll-behavior:contain;padding-left:17px;padding-right:10px}.table-of-contents ul a{color:var(--primary);font-weight:600}.table-of-contents ul a:hover,.table-of-contents ul li.active a{color:var(--secondary)}.table-of-contents ul::-webkit-scrollbar-track{background:#fff}.table-of-contents ul::-webkit-scrollbar-thumb{background-color:var(--border-color);border:0;border-radius:0;outline:1px solid transparent}.table-of-contents ul::-webkit-scrollbar{background-color:transparent;border:0;border-radius:0;width:3px}}.footer-frame{display:flex;flex-direction:column;gap:40px}.footer-frame h2{text-align:center}.buyers-guide{display:flex;flex-direction:column;gap:20px}.buyers-guide-answer{color:var(--gray)}.buyers-guide-answer p{color:var(--gray);margin:0!important;padding:0 0 15px!important;word-break:break-word}.buyers-guide-answer ul li,.faq-questions-description ul li,.related-service a{list-style:none!important;margin-bottom:10px;padding-left:20px;position:relative}.buyers-guide-answer ul li:before,.faq-questions-description ul li:before,.introduction-text ul li:before,.related-service a:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='10'%3E%3Cpath fill='%23c5a063' d='m.091 9.172 6.586-4.586L.091 0l2.404 4.586z'/%3E%3C/svg%3E") 0 1px no-repeat;content:"";height:14px;left:0;position:absolute;top:6px;width:10px}.buyers-guide-answer ul li:before{top:5px}.responsive-table{overflow-x:auto}.buyers-guide-answer a{color:var(--blue)}.buyers-guide-answer a:hover{color:var(--blue-hover)}.buyers-guide-answer h4{margin-bottom:10px}.directory table{background-color:transparent;border:1px solid #454d5f;border-collapse:collapse;border-spacing:0;margin:0 auto 20px;max-width:100%;width:fit-content!important;word-break:normal}.directory table p{content-visibility:visible!important}.directory table ul{padding:10px 0 0 20px}.buyers-guide-answer blockquote p,.directory table th p{padding-bottom:0!important}.directory table>tbody>tr>td,.directory table>tbody>tr>th,.directory table>tfoot>tr>td,.directory table>tfoot>tr>th,.directory table>thead>tr>td,.directory table>thead>tr>th{border:1px solid #454d5f;line-height:1.42857143;padding:12px 10px;vertical-align:top}.directory table>thead>tr>th{border-bottom:1px solid #454d5f;text-align:center;vertical-align:middle}.directory table th p{margin-bottom:0!important}.directory table>caption+thead>tr:first-child>td,.directory table>caption+thead>tr:first-child>th,.directory table>colgroup+thead>tr:first-child>td,.directory table>colgroup+thead>tr:first-child>th,.directory table>thead:first-child>tr:first-child>td,.directory table>thead:first-child>tr:first-child>th{border-top:0}.directory table>tbody+tbody{border-top:2px solid #454d5f}.directory table>thead>tr>td,.directory table>thead>tr>th{border-bottom-width:1px}.directory table>tbody>tr>th{border-bottom:1px solid #454d5f;text-align:left;vertical-align:top}details>summary{list-style-type:none}.faq-question{background:var(--white);border:1px solid var(--border-color);border-radius:16px;padding:30px;position:relative}.faq-questions-header{cursor:pointer;display:flex;justify-content:space-between;width:100%}h3.faq-questions-title{margin:0;padding-right:20px}.faq-chevron{height:16px;margin-top:8px;width:16px}.faq-questions-description{border-top:2px dashed var(--border-color);color:var(--gray);content-visibility:hidden;font-size:16px;margin-top:20px;padding-top:20px}.faq-answer{display:grid;gap:15px}.faq-chevron-lines{transform:translateY(24px);transition:transform .4s}.faq-expandable-details[open] .faq-chevron-lines{transform:translateY(-16px)}.faq-chevron-line{stroke:var(--secondary);stroke-width:16px;stroke-linecap:square;transform:rotate(42deg);transform-origin:50%;transition:transform .3s,stroke .3s}.faq-chevron-line.faq-chevron-line-right,.faq-expandable-details[open] .faq-chevron-line-left{transform:rotate(-42deg)}.faq-expandable-details[open] .faq-chevron-line-right{transform:rotate(42deg)}details[open] .faq-questions-description{content-visibility:visible}.faq-questions-group{display:grid;gap:10px;width:100%}.related-services-list{display:grid;gap:10px 20px;grid-template-columns:1fr 1fr}.related-services-list-container{background:var(--white);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:20px}.related-service{align-items:center;background:var(--white);display:flex;height:auto;padding:8px 15px}.related-service a{color:var(--primary);margin:0}.related-service a:focus,.related-service a:hover{color:var(--blue)}.insights-wrapper-header p{color:var(--gray)}.insights-wrapper-header{align-items:center;display:flex;flex-direction:column;gap:15px;text-align:center;width:100%}.latest-articles-list{display:grid;gap:30px;grid-template-columns:1fr 1fr 1fr}.latest-article-wrapper{align-content:flex-start;background:var(--white);border:1px solid var(--border-color);border-radius:10px;display:grid;gap:20px;padding:15px}a.article-banner{border:1px solid var(--border-color);border-radius:6px;display:flex;height:0;margin:0;overflow:hidden;padding-bottom:55.5%;position:relative;width:100%}a.article-banner img{height:100%!important;left:0;object-fit:cover;position:absolute;top:0;width:100%!important;z-index:1}.resource-tags span.tag{align-items:center;background:var(--gray);border-radius:var(--border-radius);color:var(--white);content-visibility:auto;display:flex;font-size:12px;height:22px;padding:0 8px;width:fit-content}h3.article-title{display:block;display:-webkit-box;margin-bottom:0;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.article-short-description{color:var(--gray)}.article-information .updated-on{font-size:14px}.insights-segment{display:grid;gap:40px;justify-items:center}.article-information{display:grid;gap:10px}@media (min-width:1025px){.firm-name-rating{display:grid;gap:5px;width:calc(100% - 76px)}}@media (max-width:1024px){h3{font-size:18px}#listTab ul li,.breadcrumb ul li{width:auto}.list-header{align-items:flex-start;flex-direction:column;gap:20px}.list-header h2{order:1}.firms-filter{align-items:center;display:flex;justify-content:space-between;order:0;width:100%}.show-filter{content-visibility:visible;display:block}.directory-list{width:100%}.firm-header-wrapper{display:inline-block}.firm-logo{float:left;margin-right:20px}.firm-wrapper h3{align-items:center;min-height:62px}.firm-rating{margin-top:10px}.firm-container{flex-direction:column;gap:0}aside#filter{background:var(--white);border:none;border-left:1px solid var(--border-color);border-radius:0;bottom:0;display:none;height:calc(var(--vh, 1vh)*100);position:fixed;right:0;top:0;width:360px;z-index:100}.firm-container.filterOpened:before{background-color:#0000001a;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.filter-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:0 0 15px}.filter-header a{font-size:12px}.back-filter{cursor:pointer;height:20px;position:relative;width:20px}.back-filter:after,.back-filter:before{border:2px solid var(--primary);border-bottom:0;border-left:0;content:"";height:7px;position:absolute;right:0;top:6px;-ms-transform:rotate(135deg);-webkit-transform:rotate(-135deg);transform:rotate(-135deg);width:7px}.back-filter:after{right:10px;top:6px;-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.filter-selection-header{display:none}.devices-supported ul li,.target-company-size ul li{width:fit-content}.fbg1,.fbg2,.fbg3,.fbg4,.fbg5,.fbg6{padding:40px 0 20px}.footer-frame{gap:20px}.buyers-guide-container{display:flex}.buyers-guide{width:100%}.table-of-contents{content-visibility:hidden;display:none}.latest-articles-list{gap:20px;grid-template-columns:1fr}}@media (min-width:768px) and (max-width:1024px){.latest-article-wrapper{gap:20px;grid-template-columns:304px auto}.article-information{align-content:center}}@media (max-width:899px){.banner-heading{font-size:28px}}@media (max-width:767px){.faq-chevron{margin-top:4px}.breadcrumb{padding-bottom:0}.pagination-wrapper{contain-intrinsic-size:auto 112px;content-visibility:auto}h2{font-size:22px}#listingCta,.buyers-guide-wrapper,aside#filter,footer,ul.firm-directory-list li.firm-wrapper:nth-child(n+2){content-visibility:auto}.filterOpened aside#filter,.firm-urls a{width:100%}.m-head-content-more .introduction-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;contain-intrinsic-size:auto 82px;content-visibility:auto;display:-webkit-box;overflow:hidden}.m-head-content-more .read-more-intro{display:flex;padding-top:5px}.banner-service-list{display:none}.banner-list-wrap{background:#00cc85;grid-template-columns:100%}.banner-heading{font-size:24px;width:100%}#listTab{display:none}.firm-header-wrapper{padding:15px 15px 20px;width:100%}.verified-tag{font-size:0;height:17px;padding:0;width:17px}.firm-content-services{display:flex;flex-direction:column;gap:20px;padding:0 15px}.firm-services{border-left:0;flex-direction:row;flex-wrap:wrap;padding:0}.firm-wrapper{overflow:hidden;padding:0}.related-services-list{gap:5px;grid-template-columns:1fr}.faq-question{padding:20px}.trust-detail-wrap{grid-template-columns:100%}.why-trust-goodfirms-wrapper .trust-overview h2{gap:10px}.insights-segment{gap:20px}}@media (max-width:480px){.banner-information{align-items:center;gap:20px;padding:20px;text-align:center}.banner-footer{flex-direction:column;width:100%}.banner-link{order:1;width:100%}.rating-star-container-base+.bar{display:none}.firm-rating,.rating-number{font-size:14px}.firm-header-wrapper{padding-bottom:15px}.firm-content-services{gap:15px}.latest-article-wrapper{contain-intrinsic-size:calc(100% - 40px) 270px;content-visibility:auto}.why-trust-goodfirms-wrapper{contain-intrinsic-size:calc(100% - 40px) 1070px;content-visibility:auto}.filter-head-sort-by{gap:5px}.show-filter{padding:0 10px}}@media (max-width:345px){.banner-link-wrap{gap:0;justify-content:space-between}}.firm-urls.full-firm-url a.list-blue-link{width:200px}@media (max-width:767px){.firm-urls.full-firm-url a.list-blue-link{width:100%}.related-service{padding:8px 0}}.verified-top-review{background:var(--background);border-radius:var(--border-radius);padding:15px}.service-firm-content-services .firm-content.content-custom{gap:10px;justify-content:flex-start}

/* ============================================================
 * :has(input:checked) companion to legacy .checked class
 * ----------------------------------------------------------
 * Legacy markup expects JS to toggle a .checked className on
 * each <label> when its inner <input> changes. The new app uses
 * React's controlled-input semantics (checked={...}), so the
 * label class is never set. These rules make the same paint
 * happen automatically whenever the inner input is checked,
 * via :has(). Supported in all browsers since 2022.
 * ============================================================ */
.filter-input ul li label:has(input:checked):before{background:var(--secondary) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='8' fill='none'%3E%3Cpath fill='%23fff' d='M2.414 3.379A1 1 0 1 0 1 4.793l2.828 2.829a1 1 0 0 0 1.415 0l4.95-4.95a1 1 0 0 0-1.415-1.414L4.536 5.5z'/%3E%3C/svg%3E") 50% 50% no-repeat;border-color:var(--secondary)}
.devices-supported ul li label:has(input:checked),.target-company-size ul li label:has(input:checked){background:var(--secondary);color:var(--white)}

/* ============================================================
 * Filter sidebar form layout fix
 * ----------------------------------------------------------
 * Legacy side#filter markup has the filter sections as DIRECT
 * children of the aside. Our React component wraps them in a <form>
 * for the GET-submit semantics. The form has no height, so the
 * .filter-input-elements { height: calc(100% - 72px) } rule resolves
 * 100% against the (zero-height) form instead of the aside, falling
 * back to content-height. Result: the inner list overflows the sticky
 * aside, so users only see the first ~3 filters and can't scroll
 * inside the sidebar.
 *
 * display: contents makes the form "transparent" for layout — its
 * three children (chip rail, .filter-input-elements, .filter-input-action)
 * become layout-children of side#filter directly. Form submission
 * still works because it's based on DOM hierarchy, not layout.
 * ============================================================ */
aside#filter > form {
    display: contents;
}

/* ============================================================
 * Mobile filter drawer — reveal aside#filter when open
 * ----------------------------------------------------------
 * At <=1024px the legacy CSS sets side#filter { display: none } so
 * the off-canvas drawer is hidden by default. Legacy JS then does
 * ${'$'}('#filter').show() (inline style) to reveal it on the Filter
 * button click.
 *
 * Our React handler only toggles .filterOpened on .firm-container
 * (no inline style). Without a corresponding CSS rule the aside stays
 * hidden, so tapping Filter on mobile did nothing visually.
 *
 * This rule mirrors the legacy ${'$'}('#filter').show() via the class
 * toggle: when the parent .firm-container has .filterOpened, the
 * aside becomes display:block. Specificity (0,3,2) beats the
 * side#filter { display: none } rule (0,1,1) so it wins regardless
 * of source order.
 * ============================================================ */
@media (max-width: 1024px) {
    .firm-container.filterOpened aside#filter {
        display: block;
    }
}