
:root{
  --bg:#f6f8fb;--card:#fff;--text:#101828;--muted:#667085;--line:#e4e7ec;
  --brand:#155eef;--brand2:#7c3aed;--soft:#eff4ff;--dark:#0b1220;
  --good:#067647;--warn:#b54708;--shadow:0 18px 48px rgba(16,24,40,.08);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}
a{color:inherit}
.container{width:min(1160px,calc(100% - 36px));margin:0 auto}
.topbar{position:sticky;top:0;z-index:10000;background:#f6f8fb;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid rgba(208,213,221,.95);box-shadow:0 8px 24px rgba(16,24,40,.06);isolation:isolate}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;letter-spacing:-.03em}
.logo img{height:46px;width:auto;max-width:260px;object-fit:contain}
.logo-fallback{width:38px;height:38px;border-radius:14px;background:linear-gradient(135deg,var(--brand),var(--brand2));box-shadow:0 12px 26px rgba(21,94,239,.22)}
.nav-links{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:14px;font-weight:700}
.nav-links a{text-decoration:none}.nav-links a:hover{color:var(--text)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:999px;border:1px solid transparent;text-decoration:none;font-weight:900;transition:.18s ease;white-space:nowrap}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;box-shadow:0 14px 28px rgba(21,94,239,.22)}
.btn-primary:hover{transform:translateY(-1px);filter:saturate(1.1)}
.btn-secondary{background:#fff;border-color:var(--line);color:var(--text)}
.btn-secondary:hover{border-color:#c7d7fe;transform:translateY(-1px)}
.hero{padding:76px 0 44px;background:radial-gradient(circle at top left,rgba(21,94,239,.15),transparent 34%),radial-gradient(circle at 82% 10%,rgba(124,58,237,.12),transparent 28%)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;background:var(--soft);color:#1849a9;border:1px solid #c7d7fe;border-radius:999px;font-size:13px;font-weight:900;margin-bottom:18px}
h1,h2,h3{line-height:1.1;letter-spacing:-.04em;margin:0}
h1{font-size:clamp(42px,5vw,70px);max-width:900px}
h2{font-size:clamp(30px,3.2vw,48px);margin-bottom:16px}
h3{font-size:22px;margin-bottom:10px}
.lead{margin:22px 0 0;font-size:20px;color:var(--muted);max-width:780px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.disclosure{margin-top:22px;padding:13px 15px;background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:16px;color:var(--muted);font-size:13px;max-width:780px}
.hero-card,.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px rgba(16,24,40,.045)}
.hero-card{padding:26px;border-radius:30px;box-shadow:var(--shadow)}
.score{display:grid;grid-template-columns:96px 1fr;gap:20px;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:22px}
.score-circle{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--brand) 0 84%,#e4e7ec 84% 100%);position:relative;font-size:29px;font-weight:950}
.score-circle:after{content:"";position:absolute;width:73px;height:73px;background:#fff;border-radius:50%}.score-circle span{position:relative;z-index:1}
section{padding:58px 0}.section-intro{max-width:820px;color:var(--muted);font-size:18px;margin:0 0 26px}
.eyebrow{color:var(--brand);font-weight:950;font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.card{padding:24px}.card p{color:var(--muted);margin:0}.card .meta{font-size:13px;color:var(--muted);font-weight:800}
.partner-card{display:flex;flex-direction:column;gap:14px;min-height:290px}
.partner-card .top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.score-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#ecfdf3;color:#067647;font-size:13px;font-weight:950}
.tag{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:13px;font-weight:800;margin:4px 4px 0 0}
.partner-actions{margin-top:auto;display:flex;gap:10px;flex-wrap:wrap}
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px rgba(16,24,40,.04)}
table{width:100%;border-collapse:collapse;min-width:850px}th,td{padding:17px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f9fafb;color:var(--text);font-size:14px}td{color:var(--muted)}td strong{color:var(--text)}tr:last-child td{border-bottom:0}
.check-list{padding:0;margin:0;list-style:none;display:grid;gap:11px}.check-list li{display:flex;gap:10px;color:var(--muted)}
.check-list li:before{content:"✓";flex:0 0 22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#dcfae6;color:#067647;font-size:13px;font-weight:950;margin-top:1px}
.warn-list li:before{content:"!";background:#fffaeb;color:#b54708}
.cta-band{background:var(--dark);color:#fff;border-radius:32px;padding:36px;display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center;box-shadow:var(--shadow)}
.cta-band p{color:rgba(255,255,255,.72);margin:12px 0 0;font-size:18px;max-width:760px}.cta-band .btn-secondary{background:#fff}
.faq{display:grid;gap:12px}details{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px}summary{cursor:pointer;font-weight:950;color:var(--text)}details p{color:var(--muted);margin:12px 0 0}
.footer{padding:40px 0;border-top:1px solid var(--line);color:var(--muted);font-size:14px}.footer-grid{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start}.footer-links{display:flex;flex-wrap:wrap;gap:14px}.footer-links a{color:var(--muted);text-decoration:none}.footer-links a:hover{color:var(--text)}
.notice-box{background:#fffaeb;border:1px solid #fedf89;color:#93370d;border-radius:18px;padding:16px;margin-top:18px;font-size:14px}
.breadcrumbs{font-size:14px;color:var(--muted);margin-bottom:16px}.breadcrumbs a{text-decoration:none;color:var(--brand);font-weight:800}
.page-hero{padding:48px 0;background:radial-gradient(circle at top left,rgba(21,94,239,.12),transparent 30%)}
.mini-title{font-size:clamp(36px,4vw,58px)}
@media(max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)}.hero-grid{grid-template-columns:1fr}.nav-links{display:none}}
@media(max-width:720px){.grid-4,.grid-3,.grid-2,.cta-band,.footer-grid,.score{grid-template-columns:1fr}.hero{padding-top:44px}.hero-actions .btn,.partner-actions .btn{width:100%}.logo img{max-width:210px;height:40px}.cta-band{padding:26px}}

/* v14 content layout */
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
.article-card{display:block}.article-card p{color:var(--muted);margin:0 0 15px}.article-card h2{margin-top:30px}.article-card h2:first-child{margin-top:0}.article-card h3{margin-top:22px}.article-card ul{margin:14px 0 20px}.article-card .check-list{margin:14px 0 22px}.side-card{position:sticky;top:96px}.side-card a{display:block;text-decoration:none;color:var(--brand);font-weight:900;margin:10px 0}.mini-card{background:#f9fafb;border:1px solid var(--line);border-radius:18px;padding:18px}.mini-card p{margin:0;color:var(--muted)}.compact-grid{margin:18px 0 22px}.article-card .grid-2{margin:18px 0 22px}
@media(max-width:980px){.article-layout{grid-template-columns:1fr}.side-card{position:static}}

/* v20.1b agency mobile/CWV patch */
.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:18px;top:18px;width:auto;height:auto;z-index:999;background:#fff;border:2px solid var(--brand);border-radius:12px;padding:10px 14px;box-shadow:var(--shadow)}
main > section:not(:first-child){content-visibility:auto;contain-intrinsic-size:auto 760px}
@media(max-width:720px){
  .container{width:min(100% - 28px,1160px)}
  .topbar{backdrop-filter:none;background:rgba(246,248,251,.98)}
  .nav{padding:10px 0}
  section{padding:42px 0}
  .page-hero{padding:36px 0}
  h1{font-size:clamp(34px,10vw,46px)}
  h2{font-size:clamp(26px,8vw,36px)}
  .lead,.section-intro{font-size:17px}
  .card{padding:20px}
  .hero{padding:38px 0 34px}
  .hero-card{padding:22px;border-radius:24px}
  .btn{padding:12px 15px}
  table{min-width:720px}
}

/* v25.3.88G Best ISP desktop decision-table rebuild
   Six decision fields replace nine narrow specification columns. The table fits
   normal desktop containers; tablet and mobile use cards generated from the
   same source cells. Affiliate URLs and tracking attributes are unchanged. */
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table{
  overflow-x:visible!important;
}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table .pbg-isp-col-provider{width:10%}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table .pbg-isp-col-fit{width:17%}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table .pbg-isp-col-product{width:22%}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table .pbg-isp-col-price{width:17%}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table .pbg-isp-col-limit{width:18%}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table .pbg-isp-col-action{width:16%}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table th,
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table td{
  padding:15px 12px!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  hyphens:none!important;
}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table td{
  font-size:14px;
  line-height:1.48;
}
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table th:last-child,
body.pbg-isp-page #compare-isp-providers .pbg-isp-decision-table td:last-child{
  min-width:0!important;
}
body.pbg-isp-page #compare-isp-providers .pbg-isp-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
}
body.pbg-isp-page #compare-isp-providers .pbg-isp-actions .btn,
body.pbg-isp-page #compare-isp-providers .pbg-isp-actions > a{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  text-align:center;
  white-space:normal!important;
}
@media(max-width:1120px){
  body.pbg-isp-page #compare-isp-providers .table-wrap.pbg-has-card-replacement{display:none!important}
  body.pbg-isp-page #compare-isp-providers .pbg-responsive-table-cards.pbg-card-replacement{display:grid!important;gap:16px;margin-top:22px}
}

/* v25.3.63 comprehensive desktop layout correction
   Keep anchor targets in normal document flow, align all content to the shared
   container, and move unavailable provider cards behind active options. */
body.pbg-seo-monitoring-page #quick-answer > .container,
body.pbg-seo-monitoring-page #serp-tracking-requirements > .container,
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers > .container{
  width:min(1160px,calc(100% - 36px));
  margin-left:auto;
  margin-right:auto;
  padding-left:0!important;
  padding-right:0!important;
  max-width:1160px!important;
}
body.pbg-seo-monitoring-page #quick-answer .table-wrap{
  margin-top:26px;
}
body.pbg-seo-monitoring-page #quick-answer > .container > p:has(.btn){
  margin:28px 0 24px;
}
body.pbg-seo-monitoring-page .pbg-status-only-card{
  margin-top:24px;
  min-height:0;
}
body.pbg-seo-monitoring-page .pbg-status-only-card p{
  margin-bottom:16px;
}
body.pbg-page-reviews #provider-reviews .grid-3 > article:has(h3:first-child:nth-last-child(n)){
  order:0;
}
body.pbg-page-reviews #provider-reviews .grid-3 > article:has(h3:first-child){
  min-width:0;
}
body.pbg-page-reviews #provider-reviews .grid-3 > article:has(h3:first-child:is(:where(*))){
  align-self:stretch;
}
body.pbg-page-reviews #provider-reviews .grid-3 > article:has(h3:first-child){
  overflow-wrap:anywhere;
}
body.pbg-page-reviews #provider-reviews .grid-3 > article:has(h3:first-child){
  order:0;
}
body.pbg-page-reviews #provider-reviews .grid-3 > article:has(h3:first-child){
  grid-column:auto;
}
body.pbg-page-reviews .status-only-providers{
  padding-top:0;
}
body.pbg-page-reviews .status-only-grid{
  align-items:stretch;
}
body.pbg-page-reviews .status-only-card{
  border-color:#fdb022;
  background:#fffcf5;
}
body.pbg-page-reviews .status-only-label{
  margin-bottom:12px;
  color:#b54708;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
}
body.pbg-page-reviews .provider-netnut,
body.pbg-page-reviews .provider-proxyjet{
  min-width:0;
}@media(max-width:720px){
  body.pbg-seo-monitoring-page #quick-answer > .container,
  body.pbg-seo-monitoring-page #serp-tracking-requirements > .container,
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers > .container{
    width:min(100% - 28px,1160px);
  }
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn,.btn-primary:hover,.btn-secondary:hover{transition:none;transform:none}
}


/* v20.1c speed-only patch: first render + mobile template tuning */
@media(max-width:720px){
  .hero,.page-hero{background:#f6f8fb!important;padding-top:26px!important;padding-bottom:24px!important}
  .hero-card,.card,.table-wrap,.cta-band{box-shadow:none!important}
  .btn-primary,.btn-secondary:hover,.btn-primary:hover{transform:none!important;filter:none!important;box-shadow:none!important}
  .logo img{height:38px!important;max-width:205px!important}
  .lead{font-size:16px!important;margin-top:14px!important}
  .hero-actions{margin-top:18px!important}
  .disclosure{margin-top:14px!important}
  .score{grid-template-columns:1fr!important;gap:12px!important}
  section{padding:38px 0!important}
  .page-hero + section,.hero + section{padding-top:32px!important}
}
@media(min-width:721px){
  .topbar{backdrop-filter:none!important;background:rgba(246,248,251,.96)!important}
}
main>section:nth-of-type(n+3){content-visibility:auto;contain-intrinsic-size:auto 720px}


/* v20.1d CLS-only patch: stable stylesheet load + reserve above-the-fold space */
@media(max-width:720px){
  .hero,.page-hero{min-height:0!important;}
  .hero-grid{gap:20px!important;}
  .hero-card{min-height:220px;}
  .page-hero .container,.hero .container{contain:layout paint;}
  .badge{min-height:34px;}
  .hero-actions{min-height:46px;}
  .partner-actions{min-height:42px;}
  .score-circle{width:84px!important;height:84px!important;}
  .score-circle:after{width:64px!important;height:64px!important;}
  .card{min-height:0;}
}
.btn,.btn-primary:hover,.btn-secondary:hover,.card,.hero-card{transition:none!important;}


/* v20.1e accessibility-only patch: contrast + heading visual sizing */
.hero-card .card-title{font-size:22px;line-height:1.1;letter-spacing:-.04em;margin:0 0 10px;font-weight:900}
.cta-band p{color:#f2f4f7!important}
.cta-band strong,.cta-band b,.cta-band h2,.cta-band h3{color:#fff!important}
.cta-band .btn-secondary{color:#0b1220!important;background:#fff!important}
td strong,th strong{color:#0b1220!important;font-weight:900}
.table-wrap td,.table-wrap th{color:#475467}
.table-wrap th{color:#101828}
.card .meta{color:#475467}
.check-list li{color:#475467}


/* v20.1f accessibility desktop patch: tap targets + stable heading/accessibility polish */
.btn{
  min-height:44px;
  min-width:44px;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  line-height:1.2!important;
  text-align:center;
}
.card > .btn,
.card > br + .btn,
.table-wrap td a,
table td a{
  min-height:44px;
  min-width:44px;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  padding:10px 12px!important;
  line-height:1.2!important;
  margin:4px 6px 4px 0;
}
.partner-actions,.hero-actions{
  gap:10px!important;
}
.card .btn + .btn,
td a + a{
  margin-left:8px;
}
@media(max-width:720px){
  .card > .btn,
  .card > br + .btn,
  .table-wrap td a,
  table td a{
    width:auto;
    min-height:46px;
    padding:12px 14px!important;
  }
}


/* v20.2 internal SEO strengthening: static content/link blocks only */
.seo-strength{padding:46px 0!important}
.seo-strength .card p{margin:0 0 10px;color:#475467}
.seo-strength .card ul{margin:12px 0 0;padding-left:18px;color:#475467}
.seo-strength .card li{margin:6px 0}
.seo-strength .mini-card{background:#fff}
.inline-link-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.inline-link-list a{display:inline-flex;min-height:44px;align-items:center;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;color:var(--brand);font-weight:900;line-height:1.2}
.inline-link-list a:hover{border-color:#c7d7fe;background:#eff4ff}
.decision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.decision-grid .mini-card{min-height:100%}
.next-step-note{margin-top:18px;padding:16px;border:1px solid #c7d7fe;border-radius:18px;background:#eff4ff;color:#1849a9;font-weight:800}
@media(max-width:980px){.decision-grid{grid-template-columns:1fr}}

/* v20.2c site-wide card button alignment: CSS-only layout polish */
.grid-2 > .partner-card,
.grid-3 > .partner-card,
.grid-4 > .partner-card{
  height:100%;
}
.partner-card{
  display:flex!important;
  flex-direction:column!important;
  min-height:100%;
}
.partner-card > p:not(.meta){
  flex:1 1 auto;
}
.partner-card .partner-actions{
  margin-top:auto!important;
  padding-top:16px;
  align-items:flex-end;
}
.partner-card .partner-actions .btn{
  min-height:46px;
}
@media(min-width:721px){
  .partner-card .partner-actions{
    min-height:58px;
  }
}
@media(max-width:720px){
  .partner-card .partner-actions{
    padding-top:14px;
  }
  .partner-card .partner-actions .btn{
    width:100%;
  }
}



/* v20.3a visual cleanup: equal cards and public-label polish */
.card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.card .btn,
.card .btn-secondary,
.card .btn-primary {
  margin-top: auto;
  align-self: flex-start;
}

.card .inline-link-list,
.card .button-row,
.card .cta-row,
.card .actions {
  margin-top: auto;
}

.grid-3,
.grid-4,
.provider-grid,
.review-grid,
.comparison-grid,
.cards-grid {
  align-items: stretch;
}

.grid-3 > .card,
.grid-4 > .card,
.provider-grid > .card,
.review-grid > .card,
.comparison-grid > .card,
.cards-grid > .card {
  height: 100%;
}

.eyebrow {
  text-transform: none;
  letter-spacing: 0.04em;
}


/* v20.3b home and commercial card alignment */
.v20-3-commercial-strengthening .grid-3,
.v20-3-commercial-strengthening .grid-4 {
  align-items: stretch;
}

.v20-3-commercial-strengthening .grid-3 > .card,
.v20-3-commercial-strengthening .grid-4 > .card {
  min-height: 300px;
}

.v20-3-commercial-strengthening .card h3 {
  min-height: 2.6em;
  display: flex;
  align-items: flex-start;
}

.v20-3-commercial-strengthening .card p {
  min-height: 5.8em;
}

#v20-3-home-commercial-paths .grid-4 > .card {
  min-height: 315px;
}

#v20-3-home-commercial-paths .card h3 {
  min-height: 2.6em;
}

#v20-3-home-commercial-paths .card p {
  min-height: 6.1em;
}

@media (max-width: 900px) {
  .v20-3-commercial-strengthening .grid-3 > .card,
  .v20-3-commercial-strengthening .grid-4 > .card,
  #v20-3-home-commercial-paths .grid-4 > .card {
    min-height: 0;
  }

  .v20-3-commercial-strengthening .card h3,
  .v20-3-commercial-strengthening .card p,
  #v20-3-home-commercial-paths .card h3,
  #v20-3-home-commercial-paths .card p {
    min-height: 0;
  }
}


/* v20.3c global card-grid alignment cleanup */
.grid-2,
.grid-3,
.grid-4,
.provider-grid,
.review-grid,
.comparison-grid,
.cards-grid,
.alternatives-grid,
.related-grid {
  align-items: stretch;
}

.grid-2 > .card,
.grid-3 > .card,
.grid-4 > .card,
.provider-grid > .card,
.review-grid > .card,
.comparison-grid > .card,
.cards-grid > .card,
.alternatives-grid > .card,
.related-grid > .card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.grid-2 > .card .btn,
.grid-3 > .card .btn,
.grid-4 > .card .btn,
.provider-grid > .card .btn,
.review-grid > .card .btn,
.comparison-grid > .card .btn,
.cards-grid > .card .btn,
.alternatives-grid > .card .btn,
.related-grid > .card .btn,
.grid-2 > .card .btn-primary,
.grid-3 > .card .btn-primary,
.grid-4 > .card .btn-primary,
.provider-grid > .card .btn-primary,
.review-grid > .card .btn-primary,
.comparison-grid > .card .btn-primary,
.cards-grid > .card .btn-primary,
.alternatives-grid > .card .btn-primary,
.related-grid > .card .btn-primary,
.grid-2 > .card .btn-secondary,
.grid-3 > .card .btn-secondary,
.grid-4 > .card .btn-secondary,
.provider-grid > .card .btn-secondary,
.review-grid > .card .btn-secondary,
.comparison-grid > .card .btn-secondary,
.cards-grid > .card .btn-secondary,
.alternatives-grid > .card .btn-secondary,
.related-grid > .card .btn-secondary {
  margin-top: auto;
  align-self: flex-start;
}

.card .button-row,
.card .cta-row,
.card .actions,
.card .inline-link-list {
  margin-top: auto;
}

/* Desktop-only card rhythm for commercial/related sections */
@media (min-width: 901px) {
  .seo-strength .grid-3 > .card,
  .seo-strength .grid-4 > .card,
  .v20-3-commercial-strengthening .grid-3 > .card,
  .v20-3-commercial-strengthening .grid-4 > .card {
    min-height: 300px;
  }

  .seo-strength .grid-3 > .card h3,
  .seo-strength .grid-4 > .card h3,
  .v20-3-commercial-strengthening .grid-3 > .card h3,
  .v20-3-commercial-strengthening .grid-4 > .card h3 {
    min-height: 2.7em;
    display: flex;
    align-items: flex-start;
  }

  .seo-strength .grid-3 > .card p,
  .seo-strength .grid-4 > .card p,
  .v20-3-commercial-strengthening .grid-3 > .card p,
  .v20-3-commercial-strengthening .grid-4 > .card p {
    min-height: 5.6em;
  }

  .seo-strength .grid-3 > .card .btn,
  .seo-strength .grid-4 > .card .btn,
  .seo-strength .grid-3 > .card .btn-primary,
  .seo-strength .grid-4 > .card .btn-primary,
  .seo-strength .grid-3 > .card .btn-secondary,
  .seo-strength .grid-4 > .card .btn-secondary {
    margin-top: auto;
  }
}

/* Keep mobile natural; avoid excessive empty space on small screens */
@media (max-width: 900px) {
  .seo-strength .grid-3 > .card,
  .seo-strength .grid-4 > .card,
  .v20-3-commercial-strengthening .grid-3 > .card,
  .v20-3-commercial-strengthening .grid-4 > .card {
    min-height: 0;
  }

  .seo-strength .grid-3 > .card h3,
  .seo-strength .grid-4 > .card h3,
  .seo-strength .grid-3 > .card p,
  .seo-strength .grid-4 > .card p,
  .v20-3-commercial-strengthening .grid-3 > .card h3,
  .v20-3-commercial-strengthening .grid-4 > .card h3,
  .v20-3-commercial-strengthening .grid-3 > .card p,
  .v20-3-commercial-strengthening .grid-4 > .card p {
    min-height: 0;
  }
}


/* v20.3d accessibility polish */
.logo,
.logo img,
.nav .btn,
.btn,
.partner-actions .btn,
.hero-actions .btn {
  min-height: 44px;
}

.logo {
  display: inline-flex;
  align-items: center;
  padding: 2px 0;
}

.partner-actions,
.hero-actions,
.inline-link-list,
.button-row,
.cta-row {
  gap: 12px;
}

@media (max-width: 720px) {
  .nav {
    gap: 12px;
  }
  .logo {
    min-height: 48px;
  }
  .btn,
  .partner-actions .btn,
  .hero-actions .btn {
    min-height: 48px;
  }
}

/* v20.3e1 homepage decision-card alignment: keep related guide cards equal on desktop */
.decision-grid{
  align-items: stretch;
}

.decision-grid > .mini-card{
  display: flex;
  flex-direction: column;
  height: 100%;
}

.decision-grid > .mini-card p{
  flex: 1 1 auto;
}

.decision-grid > .mini-card .inline-link-list{
  margin-top: auto;
  padding-top: 18px;
}

@media(max-width:980px){
  .decision-grid > .mini-card{
    min-height: 0;
  }

  .decision-grid > .mini-card .inline-link-list{
    margin-top: 16px;
    padding-top: 0;
  }
}


/* v20.3f template polish: consistent card height and safer mobile headings */
.grid-2 > .card,
.grid-3 > .card,
.grid-4 > .card{
  height:100%;
}

.grid-2 > .card,
.grid-3 > .card,
.grid-4 > .card,
.review-card,
.provider-card,
.mini-card{
  overflow-wrap:anywhere;
}

@media(max-width:720px){
  h2{font-size:clamp(26px,7vw,34px);}
  h3{font-size:20px;}
  .card p + p{margin-top:10px;}
}


/* v20.3f1 PageSpeed mobile tap-target polish
   Keep SEO/content unchanged; enlarge interactive targets and spacing. */
a.logo,
.logo {
  min-height: 56px !important;
  min-width: 56px !important;
  padding: 6px 8px !important;
  margin: -6px 0 !important;
}
.logo img {
  display: block;
  pointer-events: none;
}
.nav {
  min-height: 68px !important;
  gap: 20px !important;
}
.nav .btn,
a.btn,
.btn {
  min-height: 48px !important;
  min-width: 48px !important;
  padding: 13px 18px !important;
  line-height: 1.25 !important;
}
.partner-actions,
.hero-actions,
.inline-link-list,
.button-row,
.cta-row,
.actions {
  gap: 14px !important;
}
.card .btn,
.mini-card .btn,
.article-card .btn,
.seo-strength .btn,
.partner-actions .btn,
.hero-actions .btn,
.inline-link-list a {
  min-height: 48px !important;
  margin-top: 10px;
  margin-right: 10px;
  margin-bottom: 8px;
}
.inline-link-list a {
  padding: 12px 15px !important;
}
@media (max-width: 720px) {
  .nav {
    min-height: 72px !important;
    gap: 16px !important;
  }
  a.logo,
  .logo {
    min-height: 58px !important;
    min-width: 58px !important;
    padding: 8px 8px !important;
  }
  .nav .btn,
  a.btn,
  .btn,
  .card .btn,
  .mini-card .btn,
  .article-card .btn,
  .seo-strength .btn,
  .partner-actions .btn,
  .hero-actions .btn,
  .inline-link-list a {
    min-height: 50px !important;
    min-width: 50px !important;
    padding: 14px 16px !important;
  }
  .partner-actions,
  .hero-actions,
  .inline-link-list,
  .button-row,
  .cta-row,
  .actions {
    gap: 16px !important;
  }
}


/* v20.3f2 PageSpeed strict touch-target fix
   Stronger mobile spacing for related-card buttons and logo target. */
a.logo,
.logo {
  min-height: 64px !important;
  min-width: 64px !important;
  padding: 10px 12px !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
a.logo img,
.logo img {
  display: block !important;
  pointer-events: none !important;
}
.nav {
  min-height: 76px !important;
  gap: 24px !important;
}
.nav > .btn,
.nav .btn,
a.btn,
.btn,
.card .btn,
.mini-card .btn,
.article-card .btn,
.seo-strength .btn,
.partner-actions .btn,
.hero-actions .btn,
.inline-link-list a {
  min-height: 56px !important;
  min-width: 56px !important;
  padding: 15px 20px !important;
  line-height: 1.25 !important;
  touch-action: manipulation;
}
.grid-4 > .card .btn,
.grid-3 > .card .btn,
.grid-2 > .card .btn,
.related-grid > .card .btn,
.cards-grid > .card .btn,
.comparison-grid > .card .btn,
.provider-grid > .card .btn,
.review-grid > .card .btn,
.alternatives-grid > .card .btn {
  margin: 18px 0 0 !important;
  display: inline-flex !important;
}
.card br + .btn {
  margin-top: 18px !important;
}
.grid-4,
.grid-3,
.grid-2,
.related-grid,
.cards-grid,
.comparison-grid,
.provider-grid,
.review-grid,
.alternatives-grid,
.partner-actions,
.hero-actions,
.inline-link-list,
.button-row,
.cta-row,
.actions {
  gap: 22px !important;
}
@media (max-width: 720px) {
  .nav {
    min-height: 82px !important;
    gap: 18px !important;
  }
  a.logo,
  .logo {
    min-height: 64px !important;
    min-width: 64px !important;
    padding: 10px 10px !important;
  }
  .nav > .btn,
  .nav .btn,
  a.btn,
  .btn,
  .card .btn,
  .mini-card .btn,
  .article-card .btn,
  .seo-strength .btn,
  .partner-actions .btn,
  .hero-actions .btn,
  .inline-link-list a {
    min-height: 56px !important;
    min-width: 56px !important;
    padding: 15px 18px !important;
  }
  .grid-4 > .card .btn,
  .grid-3 > .card .btn,
  .grid-2 > .card .btn,
  .related-grid > .card .btn,
  .cards-grid > .card .btn,
  .comparison-grid > .card .btn,
  .provider-grid > .card .btn,
  .review-grid > .card .btn,
  .alternatives-grid > .card .btn {
    width: 100% !important;
    margin-top: 18px !important;
  }
  .grid-4 > .card,
  .grid-3 > .card,
  .grid-2 > .card,
  .related-grid > .card,
  .cards-grid > .card,
  .comparison-grid > .card,
  .provider-grid > .card,
  .review-grid > .card,
  .alternatives-grid > .card {
    padding: 22px 20px !important;
  }
}


/* v20.4.1 visual card consistency patch
   Visual/content polish only: no title/meta/canonical/robots/redirect changes. */

/* Keep guide shortcut cards compact instead of pushing buttons to the bottom. */
.decision-grid > .mini-card .inline-link-list{
  margin-top:14px!important;
  padding-top:0!important;
  align-content:flex-start!important;
}
.decision-grid > .mini-card p{
  margin:0 0 12px!important;
  color:#667085!important;
}

/* Remove excessive blank space from commercial/related cards while preserving equal row alignment. */
@media (min-width:901px){
  .seo-strength .grid-3 > .card,
  .seo-strength .grid-4 > .card,
  .v20-3-commercial-strengthening .grid-3 > .card,
  .v20-3-commercial-strengthening .grid-4 > .card{
    min-height:0!important;
  }
  .seo-strength .grid-3 > .card h3,
  .seo-strength .grid-4 > .card h3,
  .v20-3-commercial-strengthening .grid-3 > .card h3,
  .v20-3-commercial-strengthening .grid-4 > .card h3,
  .seo-strength .grid-3 > .card p,
  .seo-strength .grid-4 > .card p,
  .v20-3-commercial-strengthening .grid-3 > .card p,
  .v20-3-commercial-strengthening .grid-4 > .card p{
    min-height:0!important;
  }
}

/* Provider/review cards: consistent action row and equal button widths. */
.partner-card{
  min-height:0!important;
}
.partner-card .partner-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(140px,1fr));
  gap:14px!important;
  align-items:stretch!important;
  padding-top:18px!important;
}
.partner-card .partner-actions .btn{
  width:100%!important;
  margin:0!important;
  align-self:stretch!important;
}
@media(max-width:720px){
  .partner-card .partner-actions{
    grid-template-columns:1fr!important;
  }
}


/* v20.4.2 compact card rhythm + visible promo codes
   Visual-only patch: no title/meta/canonical/robots/redirect/sitemap changes. */

/* Non-provider guide cards should not push buttons or link chips to the very bottom.
   This keeps internal-link blocks visually compact while preserving touch-target sizing. */
body .grid-2 > .card:not(.partner-card) > .btn,
body .grid-3 > .card:not(.partner-card) > .btn,
body .grid-4 > .card:not(.partner-card) > .btn,
body .grid-2 > .card:not(.partner-card) > br + .btn,
body .grid-3 > .card:not(.partner-card) > br + .btn,
body .grid-4 > .card:not(.partner-card) > br + .btn,
body .related-grid > .card:not(.partner-card) > .btn,
body .cards-grid > .card:not(.partner-card) > .btn,
body .comparison-grid > .card:not(.partner-card) > .btn,
body .alternatives-grid > .card:not(.partner-card) > .btn,
body .card:not(.partner-card) > a.btn,
body .card:not(.partner-card) > br + a.btn{
  margin-top:18px!important;
  align-self:flex-start!important;
}

body .card:not(.partner-card) .inline-link-list,
body .card:not(.partner-card) .button-row,
body .card:not(.partner-card) .cta-row,
body .card:not(.partner-card) .actions{
  margin-top:18px!important;
  padding-top:0!important;
  align-content:flex-start!important;
}

body .card:not(.partner-card) > p{
  flex:0 0 auto!important;
}

/* Undo overly tall desktop cards in the new SEO/internal-priority sections. */
@media (min-width:901px){
  body .seo-strength .grid-2 > .card:not(.partner-card),
  body .seo-strength .grid-3 > .card:not(.partner-card),
  body .seo-strength .grid-4 > .card:not(.partner-card),
  body .seo-depth .grid-2 > .card:not(.partner-card),
  body .seo-depth .grid-3 > .card:not(.partner-card),
  body .seo-depth .grid-4 > .card:not(.partner-card),
  body .v20-1-related-links .grid-4 > .card:not(.partner-card),
  body .v20-4-related-links .grid-4 > .card:not(.partner-card),
  body .v20-4-home-internal-priority .grid-4 > .card:not(.partner-card),
  body #v20-3-home-commercial-paths .grid-4 > .card:not(.partner-card){
    min-height:0!important;
  }

  body .seo-strength .card:not(.partner-card) h3,
  body .seo-depth .card:not(.partner-card) h3,
  body .v20-1-related-links .card:not(.partner-card) h3,
  body .v20-4-related-links .card:not(.partner-card) h3,
  body .v20-4-home-internal-priority .card:not(.partner-card) h3,
  body #v20-3-home-commercial-paths .card:not(.partner-card) h3,
  body .seo-strength .card:not(.partner-card) p,
  body .seo-depth .card:not(.partner-card) p,
  body .v20-1-related-links .card:not(.partner-card) p,
  body .v20-4-related-links .card:not(.partner-card) p,
  body .v20-4-home-internal-priority .card:not(.partner-card) p,
  body #v20-3-home-commercial-paths .card:not(.partner-card) p{
    min-height:0!important;
  }
}

/* Keep decision shortcut chips near the description, not at the bottom of tall cards. */
body .decision-grid > .mini-card{
  min-height:0!important;
}
body .decision-grid > .mini-card p{
  flex:0 0 auto!important;
}
body .decision-grid > .mini-card .inline-link-list{
  margin-top:18px!important;
  padding-top:0!important;
}

/* More visible promo-code block for NodeMaven and future partner pages. */
.promo-code-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
.promo-code-box{
  border:1px solid #c7d7fe;
  background:#eff4ff;
  border-radius:18px;
  padding:16px;
}
.promo-code-box strong{
  display:block;
  color:#101828;
  font-size:22px;
  line-height:1.1;
  letter-spacing:-.02em;
  margin-bottom:6px;
}
.promo-code-box span{
  display:block;
  color:#475467;
  font-size:15px;
  line-height:1.45;
}
.promo-note{
  margin-top:14px!important;
  color:#667085!important;
}
@media(max-width:720px){
  .promo-code-grid{grid-template-columns:1fr;}
}


/* v20.4.3 balanced card action alignment
   Visual-only patch: align direct buttons in equal-height guide cards without changing SEO tags. */
@media (min-width:901px){
  body .grid-2 > .card:not(.partner-card) > a.btn,
  body .grid-3 > .card:not(.partner-card) > a.btn,
  body .grid-4 > .card:not(.partner-card) > a.btn,
  body .related-grid > .card:not(.partner-card) > a.btn,
  body .cards-grid > .card:not(.partner-card) > a.btn,
  body .comparison-grid > .card:not(.partner-card) > a.btn,
  body .alternatives-grid > .card:not(.partner-card) > a.btn,
  body .grid-2 > .card:not(.partner-card) > br + a.btn,
  body .grid-3 > .card:not(.partner-card) > br + a.btn,
  body .grid-4 > .card:not(.partner-card) > br + a.btn,
  body .related-grid > .card:not(.partner-card) > br + a.btn,
  body .cards-grid > .card:not(.partner-card) > br + a.btn,
  body .comparison-grid > .card:not(.partner-card) > br + a.btn,
  body .alternatives-grid > .card:not(.partner-card) > br + a.btn{
    margin-top:auto!important;
    align-self:flex-start!important;
  }

  /* Give the direct action row a small, consistent breathing space while keeping buttons on one baseline. */
  body .grid-2 > .card:not(.partner-card) > p:last-of-type,
  body .grid-3 > .card:not(.partner-card) > p:last-of-type,
  body .grid-4 > .card:not(.partner-card) > p:last-of-type,
  body .related-grid > .card:not(.partner-card) > p:last-of-type,
  body .cards-grid > .card:not(.partner-card) > p:last-of-type,
  body .comparison-grid > .card:not(.partner-card) > p:last-of-type,
  body .alternatives-grid > .card:not(.partner-card) > p:last-of-type{
    padding-bottom:18px!important;
  }
}


/* v20.4.4 final visual overflow + workflow chip alignment
   Visual-only patch: no SEO tag, sitemap, robots, redirect or affiliate URL changes. */

/* Prevent 4-column grids from becoming wider than the viewport when card contents contain long buttons. */
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
.grid-4 > .card,
.grid-3 > .card,
.grid-2 > .card,
.decision-grid > .mini-card,
.partner-card{
  min-width:0!important;
}
.card,
.mini-card,
.partner-card{
  overflow-wrap:break-word!important;
}

/* Provider cards in 4-column grids: allow two action buttons to fit without forcing horizontal overflow. */
.partner-card .partner-actions{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
}
.partner-card .partner-actions .btn{
  width:100%!important;
  min-width:0!important;
  padding-left:12px!important;
  padding-right:12px!important;
  white-space:normal!important;
  text-align:center!important;
}

/* On medium widths, provider cards stack action buttons instead of forcing the whole row off-screen. */
@media (max-width:1100px){
  .grid-4 .partner-card .partner-actions{
    grid-template-columns:1fr!important;
  }
}

/* Workflow decision cards: keep the chip/link groups on the same baseline in a row. */
@media (min-width:981px){
  .decision-grid > .mini-card{
    display:flex!important;
    flex-direction:column!important;
  }
  .decision-grid > .mini-card p{
    flex:1 1 auto!important;
  }
  .decision-grid > .mini-card .inline-link-list{
    margin-top:auto!important;
    padding-top:18px!important;
    align-content:flex-start!important;
  }
}

/* Mobile/tablet safety: keep grids stacked/2-column exactly as before and never create sideways scroll. */
@media(max-width:980px){
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .decision-grid > .mini-card .inline-link-list{
    margin-top:16px!important;
    padding-top:0!important;
  }
}
@media(max-width:720px){
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr!important;}
  .partner-card .partner-actions{grid-template-columns:1fr!important;}
}


/* v22.1 AI/entity and card action alignment polish */
.entity-note{background:#eff4ff;border:1px solid #c7d7fe;border-radius:18px;padding:16px;color:#1849a9;font-weight:800;margin-top:18px}
.entity-note p{margin:0;color:#1849a9}
.partner-actions{align-items:flex-end}
.partner-card .partner-actions .btn{flex:0 1 auto}
@media(min-width:721px){.partner-card .partner-actions{min-height:62px}}

/* v22.1.1 homepage related guide cards compact alignment
   Visual-only fix: keeps Related proxy guides chips close to the text instead of forcing them to the bottom of tall cards. */
body .seo-strength#v20-2-home-funnel .decision-grid > .mini-card,
body #v20-2-home-funnel .decision-grid > .mini-card{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  min-height:0!important;
}
body .seo-strength#v20-2-home-funnel .decision-grid > .mini-card p,
body #v20-2-home-funnel .decision-grid > .mini-card p{
  flex:0 0 auto!important;
  margin-bottom:14px!important;
}
body .seo-strength#v20-2-home-funnel .decision-grid > .mini-card .inline-link-list,
body #v20-2-home-funnel .decision-grid > .mini-card .inline-link-list{
  margin-top:14px!important;
  padding-top:0!important;
  align-content:flex-start!important;
}

/* v22.1.2 homepage related guide cards equal baseline fix
   Visual-only fix: keeps the three Related proxy guides cards equal and aligns chip rows on desktop. */
@media (min-width:981px){
  body #v20-2-home-funnel .decision-grid{
    align-items:stretch!important;
  }
  body #v20-2-home-funnel .decision-grid > .mini-card{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    height:100%!important;
    min-height:0!important;
  }
  body #v20-2-home-funnel .decision-grid > .mini-card p{
    flex:0 0 auto!important;
    min-height:112px!important;
    margin-bottom:0!important;
  }
  body #v20-2-home-funnel .decision-grid > .mini-card .inline-link-list{
    margin-top:18px!important;
    padding-top:0!important;
    align-content:flex-start!important;
  }
}

/* v22.1.3 homepage related guide first-chip baseline fix
   Visual-only fix: the middle card has shorter text, so reserve the same description height before the chip list on desktop. */
@media (min-width:981px){
  body #v20-2-home-funnel .decision-grid > .mini-card p{
    min-height:150px!important;
    margin-bottom:0!important;
  }
  body #v20-2-home-funnel .decision-grid > .mini-card .inline-link-list{
    margin-top:18px!important;
  }
}


/* v23 residential SEO + commercial UX strengthening */
:root{--muted:#475467;}
.lead,.section-intro,.card p,.footer,.footer-links a,.breadcrumbs,.disclosure{color:#475467;}
.v23-intent-nav{margin:18px 0 24px;padding:18px;border:1px solid #c7d7fe;background:#eff4ff;border-radius:22px;}
.v23-intent-nav h3{margin-bottom:12px;}
.v23-table-block{margin:24px 0 28px;}
.v23-table-block h3{font-size:26px;margin-bottom:10px;}
.v23-card-details{margin:8px 0 0!important;}
.v23-card-details li{font-size:14px;line-height:1.45;}
.partner-card .partner-actions .btn-primary{order:1;}
.partner-card .partner-actions .btn-secondary{order:2;}
.partner-card .partner-actions{align-items:stretch!important;}
.v23-what-need{padding-top:36px;padding-bottom:36px;}
#residential-pricing-signals{scroll-margin-top:90px;}
#residential-comparison,#pricing-signals-table,#provider-reviews,.v23-residential-depth article[id]{scroll-margin-top:90px;}
@media(max-width:720px){.v23-intent-nav{padding:16px}.v23-table-block h3{font-size:23px}.partner-card .partner-actions .btn{width:100%!important}}


/* v23.0.1 residential UX microfixes: sticky header anchors and tighter residential flow */
html{scroll-padding-top:120px;}
:target{scroll-margin-top:120px;}
#residential-comparison,#residential-pricing-signals,#pricing-signals-table,#residential-intent-shortcuts,#static-residential-proxies,#rotating-residential-proxies,#us-residential-proxies,#residential-socks5-proxies,#free-vs-paid-residential-proxies,#v23-residential-depth{scroll-margin-top:120px;}
#residential-comparison{padding-top:28px!important;}
#residential-comparison .section-intro{margin-bottom:18px!important;}
#residential-intent-shortcuts{margin-top:6px!important;}
@media(min-width:981px){
  #residential-comparison{padding-top:24px!important;}
  .page-hero + #residential-comparison{margin-top:-8px;}
}
@media(max-width:720px){
  html{scroll-padding-top:96px;}
  :target,#residential-comparison,#residential-pricing-signals,#pricing-signals-table,#residential-intent-shortcuts,#static-residential-proxies,#rotating-residential-proxies,#us-residential-proxies,#residential-socks5-proxies,#free-vs-paid-residential-proxies,#v23-residential-depth{scroll-margin-top:96px;}
  .page-hero .disclosure{padding-left:56px!important;}
}


/* v23.0.2 residential pricing mobile cards
   On mobile, use stacked provider cards so Visit provider is visible without horizontal scrolling. */
.pricing-mobile-cards{display:none;}
@media(max-width:720px){
  #pricing-signals-table .table-wrap{display:none!important;}
  .pricing-mobile-cards{display:grid!important;gap:16px;margin:22px 0 0;}
  .pricing-mobile-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 12px 30px rgba(15,23,42,.05);}
  .pricing-mobile-card h3{font-size:24px;margin:0 0 14px;}
  .pricing-mobile-card dl{display:grid;gap:10px;margin:0;}
  .pricing-mobile-card dt{font-size:13px;font-weight:900;color:#1849a9;line-height:1.3;}
  .pricing-mobile-card dd{margin:0 0 4px;color:#475467;line-height:1.45;}
  .pricing-mobile-actions{display:grid;gap:12px;margin-top:18px;}
  .pricing-mobile-actions .btn{width:100%!important;}
}


/* v23.0.3 CookieYes mobile revisit icon fix
   Keep CookieYes revisit button away from residential pricing provider card text/CTA on mobile. */
@media(max-width:720px){
  body.pbg-pricing-page .cky-btn-revisit-wrapper,
  body.pbg-pricing-page .cky-revisit-bottom-left,
  body.pbg-pricing-page .cky-revisit-bottom-right,
  body.pbg-pricing-page .cky-revisit-wrapper,
  body.pbg-pricing-page [class*="cky"][class*="revisit"]{
    left:auto!important;
    right:8px!important;
    bottom:8px!important;
    transform:scale(.72)!important;
    transform-origin:bottom right!important;
    opacity:.82!important;
    z-index:35!important;
  }
  body.pbg-pricing-page .cky-btn-revisit-wrapper button,
  body.pbg-pricing-page [class*="cky"][class*="revisit"] button{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
  }
  body.pbg-pricing-page .pricing-mobile-card{
    position:relative;
    z-index:1;
  }
  body.pbg-pricing-page .pricing-mobile-actions .btn{
    position:relative;
    z-index:2;
  }
}


/* v23.0.4 CookieYes mobile hard-safe fix for pricing cards
   The CookieYes revisit icon is fixed in the viewport and can overlap mobile card content.
   Keep trying to move/soften the icon, and add a safe left gutter to the pricing cards so
   provider text and Visit provider buttons remain readable/clickable even if CookieYes stays bottom-left. */
@media(max-width:720px){
  body.pbg-pricing-page .cky-btn-revisit,
  body.pbg-pricing-page .cky-btn-revisit-wrapper,
  body.pbg-pricing-page .cky-revisit-bottom-left,
  body.pbg-pricing-page .cky-revisit-bottom-right,
  body.pbg-pricing-page .cky-revisit-wrapper,
  body.pbg-pricing-page [id*="cky"],
  body.pbg-pricing-page [class*="cky"][class*="revisit"],
  body.pbg-pricing-page [data-cky-tag*="revisit"]{
    left:12px!important;
    right:auto!important;
    bottom:10px!important;
    max-width:42px!important;
    max-height:42px!important;
    transform:scale(.68)!important;
    transform-origin:bottom left!important;
    opacity:.72!important;
    z-index:20!important;
  }
  body.pbg-pricing-page .cky-btn-revisit button,
  body.pbg-pricing-page .cky-btn-revisit-wrapper button,
  body.pbg-pricing-page [data-cky-tag*="revisit"] button{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
  }
  body.pbg-pricing-page .pricing-mobile-card{
    padding-left:64px!important;
  }
  body.pbg-pricing-page .pricing-mobile-actions .btn{
    width:100%!important;
    min-height:48px;
  }
}
@media(max-width:390px){
  body.pbg-pricing-page .pricing-mobile-card{
    padding-left:58px!important;
    padding-right:16px!important;
  }
}


/* v23.0.5 scraping money-page microfix
   Close /best-proxies-for-scraping/ QA items: raw proxy providers first,
   safer anchor offsets, and mobile CookieYes safe gutter for scraping cards. */
#what-do-you-need,
#raw-proxy-providers-for-scraping,
#scraping-api-comparison,
#managed-scraping-apis,
#raw-proxies-vs-scraping-apis,
#scraping-provider-table{scroll-margin-top:120px;}
body.pbg-scraping-page .pbg-raw-scraping-providers{padding-top:32px;}
body.pbg-scraping-page .pbg-raw-scraping-providers .section-intro{max-width:860px;}
@media(max-width:720px){
  #what-do-you-need,
  #raw-proxy-providers-for-scraping,
  #scraping-api-comparison,
  #managed-scraping-apis,
  #raw-proxies-vs-scraping-apis,
  #scraping-provider-table{scroll-margin-top:96px;}
  body.pbg-scraping-page .pbg-raw-scraping-providers .partner-card,
  body.pbg-scraping-page #scraping-api-comparison .partner-card,
  body.pbg-scraping-page #managed-scraping-apis .partner-card,
  body.pbg-scraping-page #raw-proxies-vs-scraping-apis .card{padding-left:62px!important;}
  body.pbg-scraping-page .partner-actions .btn{position:relative;z-index:2;}
}
@media(max-width:390px){
  body.pbg-scraping-page .pbg-raw-scraping-providers .partner-card,
  body.pbg-scraping-page #scraping-api-comparison .partner-card,
  body.pbg-scraping-page #managed-scraping-apis .partner-card,
  body.pbg-scraping-page #raw-proxies-vs-scraping-apis .card{padding-left:56px!important;padding-right:16px!important;}
}


/* v23.0.7 SEO monitoring money-page microfix */
#seo-monitoring-need,
#seo-proxy-comparison,
#seo-monitoring-guides{scroll-margin-top:120px;}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .section-intro{max-width:900px;}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-card{display:flex;flex-direction:column;}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-card p{margin:0 0 10px;}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-actions{margin-top:auto;}
@media(max-width:720px){
  #seo-monitoring-need,#seo-proxy-comparison,#seo-monitoring-guides{scroll-margin-top:96px;}
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-card,
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-guides .card{padding-left:62px!important;}
}
@media(max-width:390px){
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-card,
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-guides .card{padding-left:56px!important;padding-right:16px!important;}
}

/* v23.0.6 Global CookieYes mobile safe-area fix
   Apply the revisit icon UX protection across the site, not one page at a time.
   Do not hide CookieYes, do not change consent/GTM/GA4 behavior. This is CSS only:
   - keep the CookieYes revisit icon small and low in the viewport on mobile;
   - add a safe left gutter to common mobile cards so text and Visit provider CTAs remain readable/clickable;
   - keep affiliate buttons above the floating icon when they appear near the bottom of the viewport. */
@media(max-width:720px){
  body .cky-btn-revisit,
  body .cky-btn-revisit-wrapper,
  body .cky-revisit-bottom-left,
  body .cky-revisit-bottom-right,
  body .cky-revisit-wrapper,
  body [class*="cky"][class*="revisit"],
  body [data-cky-tag*="revisit"]{
    left:10px!important;
    right:auto!important;
    bottom:8px!important;
    max-width:38px!important;
    max-height:38px!important;
    transform:scale(.62)!important;
    transform-origin:bottom left!important;
    opacity:.62!important;
    z-index:20!important;
  }
  body .cky-btn-revisit button,
  body .cky-btn-revisit-wrapper button,
  body [class*="cky"][class*="revisit"] button,
  body [data-cky-tag*="revisit"] button{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
  }
  body .partner-card,
  body .pricing-mobile-card,
  body .decision-grid > .mini-card,
  body .grid-3 > .card,
  body .grid-4 > .card,
  body .grid-2 > .card,
  body .inline-link-list + .card,
  body .disclosure{
    padding-left:62px!important;
  }
  body .partner-actions .btn,
  body .pricing-mobile-actions .btn,
  body .hero-actions .btn{
    position:relative;
    z-index:2;
  }
}
@media(max-width:390px){
  body .partner-card,
  body .pricing-mobile-card,
  body .decision-grid > .mini-card,
  body .grid-3 > .card,
  body .grid-4 > .card,
  body .grid-2 > .card,
  body .inline-link-list + .card,
  body .disclosure{
    padding-left:56px!important;
    padding-right:16px!important;
  }
}

/* v23.0.8 SEO monitoring anchor + floating-widget safe area fix */
html{scroll-padding-top:132px;}
body.pbg-seo-monitoring-page #seo-monitoring-need,
body.pbg-seo-monitoring-page #seo-proxy-comparison,
body.pbg-seo-monitoring-page #seo-monitoring-guides{scroll-margin-top:150px;}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers{padding-bottom:96px;}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .grid-3{padding-bottom:72px;}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-card{position:relative;}
@media(min-width:981px){
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .grid-3{padding-right:88px;}
}
@media(max-width:720px){
  html{scroll-padding-top:118px;}
  body.pbg-seo-monitoring-page #seo-monitoring-need,
  body.pbg-seo-monitoring-page #seo-proxy-comparison,
  body.pbg-seo-monitoring-page #seo-monitoring-guides{scroll-margin-top:132px;}
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers{padding-bottom:120px;}
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .grid-3{padding-bottom:92px;}
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-card{padding-bottom:34px!important;}
}


/* v23.0.9 SEO monitoring hard anchor + floating overlay safe fix
   Close remaining QA items for /best-proxies-for-seo-monitoring/:
   - make anchor targets fully visible below sticky header after CTA clicks;
   - keep fixed third-party/floating widgets away from provider cards/CTA zones by reserving a safe right/bottom gutter.
   CSS-only. GTM, CookieYes, Consent Mode and affiliate tracking are not changed. */
html{scroll-padding-top:180px!important;}
body.pbg-seo-monitoring-page #seo-monitoring-need,
body.pbg-seo-monitoring-page #seo-proxy-comparison,
body.pbg-seo-monitoring-page #seo-monitoring-guides{
  scroll-margin-top:190px!important;
}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers{
  padding-bottom:58px!important;
}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .grid-3{
  padding-bottom:0!important;
}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-card{
  position:relative!important;
  z-index:1;
}
body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-actions .btn{
  position:relative!important;
  z-index:3;
}
@media(min-width:981px){
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .container{
    padding-right:0!important;
    max-width:none;
  }
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .grid-3{
    padding-right:0!important;
  }
}
@media(max-width:720px){
  html{scroll-padding-top:176px!important;}
  body.pbg-seo-monitoring-page #seo-monitoring-need,
  body.pbg-seo-monitoring-page #seo-proxy-comparison,
  body.pbg-seo-monitoring-page #seo-monitoring-guides{
    scroll-margin-top:190px!important;
  }
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers{
    padding-bottom:38px!important;
  }
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .grid-3{
    padding-bottom:0!important;
  }
  body.pbg-seo-monitoring-page .pbg-seo-monitoring-providers .partner-card{
    padding-bottom:20px!important;
  }
}


/* v23.0.10 SEO monitoring true anchor offset fix
   The previous scroll-margin rules were not enough in responsive preview because the sticky header still overlapped the target section heading.
   This fix moves the actual anchor target above the visible heading using padding-top + negative margin, applied directly to target sections.
   CSS-only. Tracking, GTM, CookieYes, Consent Mode and affiliate links are unchanged. */
body.pbg-seo-monitoring-page #seo-monitoring-need,
body.pbg-seo-monitoring-page #seo-proxy-comparison,
body.pbg-seo-monitoring-page #seo-monitoring-guides{
  scroll-margin-top:220px!important;
  scroll-snap-margin-top:220px!important;
}
body.pbg-seo-monitoring-page #seo-proxy-comparison{
  padding-top:0!important;
  margin-top:0!important;
}
body.pbg-seo-monitoring-page #seo-monitoring-need{
  padding-top:0!important;
  margin-top:0!important;
}
body.pbg-seo-monitoring-page #seo-monitoring-guides{
  padding-top:0!important;
  margin-top:0!important;
}
@media(max-width:720px){
  html{scroll-padding-top:220px!important;}
  body.pbg-seo-monitoring-page #seo-monitoring-need,
  body.pbg-seo-monitoring-page #seo-proxy-comparison,
  body.pbg-seo-monitoring-page #seo-monitoring-guides{
    scroll-margin-top:230px!important;
    scroll-snap-margin-top:230px!important;
  }
  body.pbg-seo-monitoring-page #seo-proxy-comparison{
    padding-top:0!important;
    margin-top:0!important;
  }
  body.pbg-seo-monitoring-page #seo-monitoring-need{
    padding-top:0!important;
    margin-top:0!important;
  }
}


/* v23.0.11 ISP mobile comparison cards fix
   Close /best-isp-proxies/ QA item: mobile users must see Visit provider without horizontal scrolling.
   CSS-only plus mobile card markup. GTM, CookieYes, Consent Mode and affiliate tracking are unchanged. */
body.pbg-isp-page #compare-isp-providers{scroll-margin-top:160px;}
.isp-mobile-cards{display:none;}
@media(max-width:720px){
  body.pbg-isp-page #compare-isp-providers{scroll-margin-top:180px;}
  body.pbg-isp-page #compare-isp-providers .table-wrap{display:none!important;}
  body.pbg-isp-page .isp-mobile-cards{display:grid!important;gap:16px;margin:22px 0 0;}
  body.pbg-isp-page .isp-mobile-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px 20px 22px 62px;box-shadow:0 12px 30px rgba(15,23,42,.05);}
  body.pbg-isp-page .isp-mobile-card h3{font-size:24px;margin:0 0 14px;}
  body.pbg-isp-page .isp-mobile-card dl{display:grid;gap:10px;margin:0;}
  body.pbg-isp-page .isp-mobile-card dt{font-size:13px;font-weight:900;color:#1849a9;line-height:1.3;}
  body.pbg-isp-page .isp-mobile-card dd{margin:0 0 4px;color:#475467;line-height:1.45;}
  body.pbg-isp-page .isp-mobile-actions{display:grid;gap:12px;margin-top:18px;}
  body.pbg-isp-page .isp-mobile-actions .btn{width:100%!important;min-height:48px;position:relative;z-index:3;}
}
@media(max-width:390px){
  body.pbg-isp-page .isp-mobile-card{padding-left:56px!important;padding-right:16px!important;}
}


/* v23.0.12 Global money-page UX baseline fix
   CSS-only baseline for recurring QA issues across Priority 1 money pages.
   - contextual header CTA is handled in page HTML;
   - anchor targets get a safe offset below sticky header;
   - remaining wide comparison tables get mobile card fallbacks;
   - CookieYes/floating icons keep a safe area away from cards and CTAs.
   GTM, GA4, Consent Mode, tracking.js and affiliate URLs are unchanged. */
html{scroll-padding-top:220px!important;}
body.pbg-money-page [id]{scroll-margin-top:220px!important;scroll-snap-margin-top:220px!important;}
body.pbg-money-page section[id]{scroll-margin-top:220px!important;}
body.pbg-money-page .partner-actions .btn-primary{order:1;}
body.pbg-money-page .partner-actions .btn-secondary{order:2;}
body.pbg-money-page .partner-actions .btn{position:relative;z-index:3;}
.pbg-mobile-table-cards{display:none;}
@media(max-width:720px){
  html{scroll-padding-top:230px!important;}
  body.pbg-money-page [id],body.pbg-money-page section[id]{scroll-margin-top:230px!important;scroll-snap-margin-top:230px!important;}
  body.pbg-money-page .table-wrap[data-pbg-mobile-cards="true"]{display:none!important;}
  body.pbg-money-page .pbg-mobile-table-cards{display:grid!important;gap:16px;margin:22px 0 0;}
  body.pbg-money-page .pbg-mobile-table-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px 20px 22px 62px;box-shadow:0 12px 30px rgba(15,23,42,.05);}
  body.pbg-money-page .pbg-mobile-table-card h3{font-size:24px;margin:0 0 14px;}
  body.pbg-money-page .pbg-mobile-table-card dl{display:grid;gap:10px;margin:0;}
  body.pbg-money-page .pbg-mobile-table-card dt{font-size:13px;font-weight:900;color:#1849a9;line-height:1.3;}
  body.pbg-money-page .pbg-mobile-table-card dd{margin:0 0 4px;color:#475467;line-height:1.45;}
  body.pbg-money-page .pbg-mobile-table-actions{display:grid;gap:12px;margin-top:18px;}
  body.pbg-money-page .pbg-mobile-table-actions .btn{width:100%!important;min-height:48px;position:relative;z-index:3;}
  body.pbg-money-page .partner-card,body.pbg-money-page .card,body.pbg-money-page .disclosure{position:relative;}
}
@media(max-width:390px){
  body.pbg-money-page .pbg-mobile-table-card{padding-left:56px!important;padding-right:16px!important;}
}
@media(min-width:981px){
  body.pbg-money-page .partner-card{position:relative;}
  body.pbg-money-page section:has(.partner-card) .container{padding-bottom:72px;}
}


/* v23.0.15 static vs rotating provider card width fix
   Close /static-vs-rotating-proxies/ QA item: provider cards should not be too narrow on desktop.
   The provider comparison grid now uses 3 columns on desktop, 2 on tablet, 1 on mobile, keeping Visit provider and Read review readable.
   Tracking, GTM, CookieYes, Consent Mode and affiliate URLs are unchanged. */
body.pbg-page-static-vs-rotating-proxies .pbg-static-vs-provider-grid{
  grid-template-columns:repeat(3,minmax(260px,1fr))!important;
  align-items:stretch;
}
body.pbg-page-static-vs-rotating-proxies .pbg-static-vs-provider-grid .partner-actions{
  grid-template-columns:repeat(2,minmax(130px,1fr))!important;
}
body.pbg-page-static-vs-rotating-proxies .pbg-static-vs-provider-grid .partner-actions .btn{
  white-space:nowrap!important;
  min-width:130px!important;
}
@media(max-width:980px){
  body.pbg-page-static-vs-rotating-proxies .pbg-static-vs-provider-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:720px){
  body.pbg-page-static-vs-rotating-proxies .pbg-static-vs-provider-grid{
    grid-template-columns:1fr!important;
  }
  body.pbg-page-static-vs-rotating-proxies .pbg-static-vs-provider-grid .partner-actions{
    grid-template-columns:1fr!important;
  }
  body.pbg-page-static-vs-rotating-proxies .pbg-static-vs-provider-grid .partner-actions .btn{
    width:100%!important;
    min-width:0!important;
    white-space:normal!important;
  }
}


/* v23.0.19 global sticky header opacity and anchor-safe offset fix
   Fixes the mobile/scroll QA issue where page headings were visible through the sticky header.
   CSS-only: affiliate links, tracking.js, GTM/GA4, CookieYes, Consent Mode, sitemap.xml, robots.txt and llms.txt are unchanged. */
.topbar{
  position:sticky!important;
  top:0!important;
  z-index:10000!important;
  background:#f6f8fb!important;
  background-color:#f6f8fb!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-bottom:1px solid rgba(208,213,221,.98)!important;
  box-shadow:0 8px 24px rgba(16,24,40,.06)!important;
  isolation:isolate!important;
}
.topbar::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:#f6f8fb;
  pointer-events:none;
}
.topbar .container,.topbar .nav{position:relative;z-index:1;}
html{scroll-padding-top:120px!important;}
section[id], [id]{scroll-margin-top:120px;}
@media(max-width:720px){
  .topbar{background:#f6f8fb!important;background-color:#f6f8fb!important;}
  html{scroll-padding-top:116px!important;}
  section[id], [id]{scroll-margin-top:116px;}
}


/* v23.0.20 global sticky/fixed header overlap hardening
   Goal: section titles and card tops should not land under the header after internal jumps or normal section transitions.
   Also fixes /reviews/ use-case CTA target via page HTML.
   CSS-only for layout: affiliate links, GTM/GA4, CookieYes, Consent Mode, sitemap.xml, robots.txt and llms.txt are unchanged. */
:root{--pbg-header-safe-offset:132px;}
html{scroll-padding-top:var(--pbg-header-safe-offset)!important;}
.topbar{
  position:sticky!important;
  top:0!important;
  z-index:2147483000!important;
  background:#f6f8fb!important;
  background-color:#f6f8fb!important;
  background-image:none!important;
  opacity:1!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-bottom:1px solid rgba(208,213,221,1)!important;
  box-shadow:0 10px 28px rgba(16,24,40,.08)!important;
}
.topbar::before,.topbar::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  z-index:-1;
  pointer-events:none;
}
.topbar::before{top:0;bottom:0;background:#f6f8fb!important;}
.topbar::after{bottom:-1px;height:1px;background:#d0d5dd!important;}
body.pbg-money-page section[id],
body.pbg-money-page [id],
#provider-reviews,
#reviews-residential-hub,
#review-use-case-shortcuts{
  scroll-margin-top:var(--pbg-header-safe-offset)!important;
  scroll-snap-margin-top:var(--pbg-header-safe-offset)!important;
}
body.pbg-money-page main > section[id]:not(.page-hero):not(.hero),
body.pbg-page-reviews main > section[id]:not(.page-hero):not(.hero){
  padding-top:96px!important;
}
body.pbg-page-reviews #review-use-case-shortcuts{scroll-margin-top:150px!important;}
body.pbg-page-reviews .hero-actions a[href="#review-use-case-shortcuts"]{scroll-margin-top:150px!important;}
@media(max-width:720px){
  :root{--pbg-header-safe-offset:118px;}
  html{scroll-padding-top:var(--pbg-header-safe-offset)!important;}
  .topbar{background:#f6f8fb!important;background-color:#f6f8fb!important;box-shadow:0 8px 24px rgba(16,24,40,.08)!important;}
  body.pbg-money-page main > section[id]:not(.page-hero):not(.hero),
  body.pbg-page-reviews main > section[id]:not(.page-hero):not(.hero){
    padding-top:108px!important;
  }
  body.pbg-page-reviews #review-use-case-shortcuts{scroll-margin-top:136px!important;}
}

/* v23.0.21 review anchor offset polish
   Keeps /reviews/ CTA anchor behavior local and clean: the Compare by use case button lands on the use-case shortcut section without hiding the section title behind the sticky header.
   This is an anchor-offset CSS polish only. It does not change affiliate links, tracking, GTM/GA4, CookieYes/Consent Mode, sitemap.xml, robots.txt, llms.txt or provider cards. */
html{scroll-padding-top:120px!important;}
[id]{scroll-margin-top:120px!important;scroll-snap-margin-top:120px!important;}
body.pbg-page-reviews #review-use-case-shortcuts{scroll-margin-top:120px!important;scroll-snap-margin-top:120px!important;}
body.pbg-money-page main > section[id]:not(.page-hero):not(.hero),
body.pbg-page-reviews main > section[id]:not(.page-hero):not(.hero){padding-top:48px!important;}
@media(max-width:768px){
  html{scroll-padding-top:130px!important;}
  [id]{scroll-margin-top:130px!important;scroll-snap-margin-top:130px!important;}
  body.pbg-page-reviews #review-use-case-shortcuts{scroll-margin-top:130px!important;scroll-snap-margin-top:130px!important;}
  body.pbg-money-page main > section[id]:not(.page-hero):not(.hero),
  body.pbg-page-reviews main > section[id]:not(.page-hero):not(.hero){padding-top:48px!important;}
}


/* v24.0.1 accessibility contrast + heading-order microfix
   Scope: technical accessibility polish only.
   - Improve contrast for muted text, labels, badges and review-card/meta text across the site.
   - Keep CTA/button spacing readable on mobile.
   - Replace footer h4 headings in HTML with .footer-heading paragraphs to avoid heading-order skips.
   Does not change affiliate links, tracking.js, GTM/GA4, CookieYes/Consent Mode, sitemap.xml, robots.txt, llms.txt, H1s or content blocks. */
:root{--muted:#475467;}
.lead,
.section-intro,
.card p,
.card .meta,
.article-card p,
.mini-card p,
.hero-card p,
.disclosure,
.breadcrumbs,
td,
.table-wrap td,
.check-list li,
.footer,
footer p,
footer a,
.footer-grid p,
.footer-grid a,
.pricing-mobile-card dd,
.pbg-mobile-table-card dd,
.isp-mobile-card dd{color:#344054!important;}
.badge,
.eyebrow,
.breadcrumbs a,
.side-card a,
.inline-link-list a,
.pricing-mobile-card dt,
.pbg-mobile-table-card dt,
.isp-mobile-card dt{color:#1849a9!important;}
.tag{color:#344054!important;background:#f2f4f7!important;}
.score-pill{color:#05603a!important;background:#ecfdf3!important;}
.notice-box{color:#93370d!important;}
.cta-band p{color:#f2f4f7!important;}
.btn-secondary{color:#101828!important;background:#fff!important;}
.footer-heading{margin:0 0 12px;color:#101828;font-size:15px;font-weight:950;letter-spacing:-.01em;line-height:1.2;}
.footer-grid a{display:block;min-height:30px;line-height:1.4;text-decoration:none;}
@media(max-width:720px){
  .btn,
  .partner-actions .btn,
  .hero-actions .btn,
  .card .btn,
  .mini-card .btn,
  .article-card .btn{min-height:48px;}
  .partner-actions,
  .hero-actions{gap:12px;}
}

/* v24.0.2 global WCAG AA contrast hardening
   Scope: shared CSS contrast-only polish.
   - Improve contrast for small labels, muted card text, badges/pills, disclosure boxes and secondary link/button text.
   - Keep existing blue/purple brand look.
   - Do not change H1, titles, meta descriptions, page structure, internal links, affiliate links or tracking. */
:root{
  --muted:#344054;
  --muted-strong:#344054;
  --brand-readable:#1849a9;
}

/* Muted / helper copy that appeared in low-contrast audits. */
.lead,
.section-intro,
.card p,
.card .meta,
.article-card p,
.article-card li,
.mini-card p,
.mini-card li,
.hero-card p,
.hero-card li,
.disclosure,
.breadcrumbs,
.nav-links,
.nav-links a,
td,
.table-wrap td,
.check-list li,
.footer,
footer p,
footer a,
.footer-grid p,
.footer-grid a,
.decision-grid > .mini-card p,
.promo-note,
small,
.small,
.muted,
.note,
.meta,
.subtle,
.helper-text,
details p,
[style*="var(--muted)"]{
  color:#344054!important;
}

/* Small blue labels and link chips: keep brand style, use a darker AA-safe blue. */
.badge,
.eyebrow,
.breadcrumbs a,
.side-card a,
.inline-link-list a,
.next-step-note,
.entity-note,
.entity-note p,
.pricing-mobile-card dt,
.pbg-mobile-table-card dt,
.isp-mobile-card dt,
.card .eyebrow,
.article-card .eyebrow{
  color:#1849a9!important;
}

/* Pills, badges and disclosure-like blocks. */
.tag,
.badge,
.score-pill,
.notice-box,
.disclosure,
.entity-note,
.next-step-note,
.promo-code-box,
.pricing-mobile-card,
.pbg-mobile-table-card,
.isp-mobile-card{
  opacity:1!important;
}
.tag{
  color:#344054!important;
  background:#f2f4f7!important;
}
.score-pill{
  color:#05603a!important;
  background:#ecfdf3!important;
}
.notice-box{
  color:#93370d!important;
  background:#fffaeb!important;
}
.disclosure{
  color:#344054!important;
  background:#ffffff!important;
}

/* Secondary link/button text should never render as pale gray on white cards. */
.btn-secondary,
a.btn-secondary,
.card .btn-secondary,
.partner-actions .btn-secondary,
.hero-actions .btn-secondary{
  color:#101828!important;
  background:#ffffff!important;
  border-color:#98a2b3!important;
}

/* Dark CTA bands need light body copy and white headings. */
.cta-band,
.cta-band h2,
.cta-band h3,
.cta-band strong,
.cta-band b{
  color:#ffffff!important;
}
.cta-band p,
.cta-band li,
.cta-band .section-intro{
  color:#f2f4f7!important;
}

/* Provider/review card fine print and mobile-card definitions. */
.partner-card p,
.partner-card .meta,
.partner-card li,
.provider-card p,
.provider-card .meta,
.review-card p,
.review-card .meta,
.pricing-mobile-card dd,
.pbg-mobile-table-card dd,
.isp-mobile-card dd{
  color:#344054!important;
}

/* Footer keeps visual hierarchy without low-contrast gray. */
.footer-heading{
  color:#101828!important;
}
.footer-links a:hover,
footer a:hover{
  color:#101828!important;
}

/* v24.0.3 hard WCAG contrast patch for PageSpeed
   Scope: colors only. No H1/title/meta/content/links/tracking changes.
   Fixes remaining low-contrast reports for .eyebrow, h2 and h3 on light backgrounds. */
:root{
  --muted:#24324A;
  --brand-readable:#003B8F;
}
body main h2,
body main h3,
body section h2,
body section h3,
body .card h2,
body .card h3,
body .mini-card h2,
body .mini-card h3,
body .partner-card h2,
body .partner-card h3,
body .provider-card h2,
body .provider-card h3,
body .review-card h2,
body .review-card h3,
body .article-card h2,
body .article-card h3,
body .hero-card h2,
body .hero-card h3{
  color:#0B1220!important;
  opacity:1!important;
}
body .eyebrow,
body .section-eyebrow,
body .kicker,
body .badge,
body .card .eyebrow,
body .article-card .eyebrow,
body .mini-card .eyebrow{
  color:#003B8F!important;
  opacity:1!important;
  font-weight:900!important;
}
body .lead,
body .section-intro,
body .card p,
body .mini-card p,
body .article-card p,
body .article-card li,
body .partner-card p,
body .provider-card p,
body .review-card p,
body .disclosure,
body .muted,
body .meta,
body .subtle,
body .helper-text,
body td,
body .table-wrap td{
  color:#24324A!important;
  opacity:1!important;
}
body .tag,
body .pill,
body .chip{
  color:#24324A!important;
  background:#F2F4F7!important;
  opacity:1!important;
}
body .btn-secondary,
body a.btn-secondary,
body .card .btn-secondary,
body .partner-actions .btn-secondary,
body .hero-actions .btn-secondary{
  color:#0B1220!important;
  background:#FFFFFF!important;
  border-color:#98A2B3!important;
  opacity:1!important;
}
body .cta-band h2,
body .cta-band h3,
body .cta-band strong,
body .cta-band b,
body .dark-section h2,
body .dark-section h3,
body .cta-dark h2,
body .cta-dark h3{
  color:#FFFFFF!important;
}
body .cta-band p,
body .cta-band li,
body .cta-band .section-intro,
body .dark-section p,
body .dark-section li,
body .cta-dark p,
body .cta-dark li{
  color:#F8FAFC!important;
}

/* v24.0.4 final WCAG AA contrast override
   Scope: remaining PageSpeed contrast failures only (.eyebrow and .section-intro).
   Do not change H1/title/meta/content/links/tracking/structure. */
:root{
  --brand:#003A99;
  --muted:#24324A;
  --brand-readable:#002B6B;
}
html body .eyebrow,
html body div.eyebrow,
html body .section-eyebrow,
html body .kicker,
html body .card .eyebrow,
html body .mini-card .eyebrow,
html body .article-card .eyebrow,
html body .review-card .eyebrow,
html body .provider-card .eyebrow,
html body .hero-card .eyebrow{
  color:#002B6B!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
  font-weight:900!important;
}
html body .section-intro,
html body p.section-intro,
html body .hero p,
html body .lead,
html body .card p,
html body .mini-card p,
html body .article-card p,
html body .review-card p,
html body .provider-card p,
html body .partner-card p,
html body .disclosure,
html body .muted,
html body .subtle,
html body .helper-text{
  color:#24324A!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
}
html body main h2,
html body main h3,
html body section h2,
html body section h3,
html body .card h2,
html body .card h3,
html body .mini-card h2,
html body .mini-card h3,
html body .article-card h2,
html body .article-card h3,
html body .review-card h2,
html body .review-card h3,
html body .provider-card h2,
html body .provider-card h3{
  color:#0B1220!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
}
html body .cta-band .eyebrow,
html body .dark-section .eyebrow,
html body .cta-dark .eyebrow,
html body .gradient-section .eyebrow{
  color:#FFFFFF!important;
}
html body .cta-band h2,
html body .cta-band h3,
html body .dark-section h2,
html body .dark-section h3,
html body .cta-dark h2,
html body .cta-dark h3,
html body .gradient-section h2,
html body .gradient-section h3{
  color:#FFFFFF!important;
}

/* v24.0.5 mobile touch-target hardening
   Scope: responsive CSS only. Fixes PageSpeed mobile touch target spacing for reusable provider/tool cards, inline-link cards and footer links.
   Do not change H1, title, meta description, content, URLs, provider order, anchors, affiliate links or tracking. */
@media (max-width: 720px) {
  html body .partner-actions,
  html body .card .partner-actions,
  html body .provider-card .partner-actions,
  html body .review-card .partner-actions,
  html body .mini-card .partner-actions,
  html body .card .inline-link-list,
  html body .mini-card .inline-link-list,
  html body .article-card .inline-link-list,
  html body .decision-grid .inline-link-list,
  html body .button-row,
  html body .cta-row,
  html body .actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 16px !important;
    row-gap: 16px !important;
    column-gap: 16px !important;
    margin-top: 18px !important;
  }

  html body .partner-actions > a,
  html body .partner-actions > .btn,
  html body .card .partner-actions > a,
  html body .card .partner-actions > .btn,
  html body .inline-link-list > a,
  html body .button-row > a,
  html body .cta-row > a,
  html body .actions > a,
  html body .card .btn,
  html body .mini-card .btn,
  html body .article-card .btn,
  html body .review-card .btn,
  html body .provider-card .btn {
    width: 100% !important;
    min-width: 100% !important;
    min-height: 52px !important;
    padding: 15px 18px !important;
    margin: 0 !important;
    line-height: 1.25 !important;
    justify-content: center !important;
    text-align: center !important;
    touch-action: manipulation !important;
  }

  html body .hero-actions,
  html body .nav {
    gap: 16px !important;
  }

  html body .footer-links,
  html body footer .footer-links {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  html body .footer a,
  html body footer a,
  html body .footer-links a,
  html body .footer-grid a {
    display: flex !important;
    align-items: center !important;
    min-height: 48px !important;
    padding: 8px 0 !important;
    line-height: 1.3 !important;
  }
}

/* v24.0.6 hard mobile touch target patch
   Scope: responsive CSS only. No content, links, tracking, or page structure changes.
   Goal: satisfy PageSpeed mobile touch target spacing for card actions and inline link lists. */
@media (max-width: 900px) {
  html body main .partner-actions,
  html body main .card .partner-actions,
  html body main .partner-card .partner-actions,
  html body main .provider-card .partner-actions,
  html body main .review-card .partner-actions,
  html body main .mini-card .partner-actions,
  html body main .article-card .partner-actions,
  html body main .inline-link-list,
  html body main .card .inline-link-list,
  html body main .mini-card .inline-link-list,
  html body main .article-card .inline-link-list,
  html body main .decision-grid .inline-link-list,
  html body main .seo-strength .inline-link-list,
  html body main .button-row,
  html body main .cta-row,
  html body main .actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
    row-gap: 18px !important;
    column-gap: 0 !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    width: 100% !important;
    margin-top: 20px !important;
  }

  html body main .partner-actions > a,
  html body main .partner-actions > .btn,
  html body main .card .partner-actions > a,
  html body main .card .partner-actions > .btn,
  html body main .partner-card .partner-actions > a,
  html body main .partner-card .partner-actions > .btn,
  html body main .provider-card .partner-actions > a,
  html body main .provider-card .partner-actions > .btn,
  html body main .review-card .partner-actions > a,
  html body main .review-card .partner-actions > .btn,
  html body main .mini-card .partner-actions > a,
  html body main .mini-card .partner-actions > .btn,
  html body main .article-card .partner-actions > a,
  html body main .article-card .partner-actions > .btn,
  html body main .inline-link-list > a,
  html body main .card .inline-link-list > a,
  html body main .mini-card .inline-link-list > a,
  html body main .article-card .inline-link-list > a,
  html body main .decision-grid .inline-link-list > a,
  html body main .seo-strength .inline-link-list > a,
  html body main .button-row > a,
  html body main .cta-row > a,
  html body main .actions > a,
  html body main .card > a.btn,
  html body main .mini-card > a.btn,
  html body main .article-card > a.btn,
  html body main .review-card > a.btn,
  html body main .provider-card > a.btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 56px !important;
    padding: 16px 20px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    line-height: 1.25 !important;
    text-align: center !important;
    touch-action: manipulation !important;
  }

  html body main .card > a.btn + a.btn,
  html body main .mini-card > a.btn + a.btn,
  html body main .article-card > a.btn + a.btn,
  html body main .review-card > a.btn + a.btn,
  html body main .provider-card > a.btn + a.btn {
    margin-top: 18px !important;
  }

  html body main .inline-link-list > a + a,
  html body main .partner-actions > a + a,
  html body main .partner-actions > .btn + .btn {
    margin-top: 0 !important;
  }

  html body footer a,
  html body .footer a,
  html body .footer-links a,
  html body .footer-grid a,
  html body nav a {
    min-height: 48px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    box-sizing: border-box !important;
  }
}

/* v24.0.8 recovery merge marker: no structural changes; preserves v24.0.7 CSS. */

/* v25.0.1 datacenter provider-grid gap fix
   Visual-only fix: reduces the excessive desktop gap between the featured datacenter cards and the rest of the provider grid.
   No SEO tags, URLs, affiliate tracking, provider order, sitemap, robots, schema, GTM or GA4 changes. */
body.pbg-page-best-datacenter-proxies section.v20-category-update{
  padding-bottom:22px!important;
}
body.pbg-page-best-datacenter-proxies section.v20-category-update + section{
  padding-top:0!important;
}
body.pbg-page-best-datacenter-proxies section.v20-category-update,
body.pbg-page-best-datacenter-proxies section.v20-category-update + section{
  content-visibility:visible!important;
  contain-intrinsic-size:auto!important;
}

/* v25.0.3 homepage residential shortcut card alignment
   Visual-only, section-scoped fix: aligns description and chip rows in the
   Residential proxy comparison cards without changing text, URLs, tracking,
   provider order, sitemap, robots, schema, or mobile layout logic. */
@media (min-width: 981px){
  body #v23-residential-home-path .grid-3{
    align-items: stretch!important;
  }
  body #v23-residential-home-path .grid-3 > .card{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
  }
  body #v23-residential-home-path .grid-3 > .card h3{
    min-height: 1.35em!important;
    margin-bottom: 14px!important;
  }
  body #v23-residential-home-path .grid-3 > .card p{
    min-height: 96px!important;
    margin-bottom: 0!important;
  }
  body #v23-residential-home-path .grid-3 > .card .inline-link-list{
    margin-top: 18px!important;
    padding-top: 0!important;
    align-content:flex-start!important;
  }
}
@media (max-width: 980px){
  body #v23-residential-home-path .grid-3 > .card h3,
  body #v23-residential-home-path .grid-3 > .card p{
    min-height:0!important;
  }
}

/* v25.0.4 homepage scraping tools tag-row alignment
   Visual-only, section-scoped fix: keeps the ScraperAPI/Scrape.do/ScrapeOps tag chips
   on a consistent two-column wrapped layout so the middle Scrape.do row does not look
   compressed compared with the first and third cards. No text, URLs, affiliate links,
   tracking, sitemap, robots, schema, provider order or mobile structure changes. */
@media (min-width: 981px){
  body #scraping-tools .partner-card > div:has(> .tag){
    display:grid!important;
    grid-template-columns:max-content max-content!important;
    justify-content:start!important;
    align-content:start!important;
    align-items:start!important;
    gap:10px 10px!important;
    min-height:90px!important;
    margin-top:0!important;
  }
  body #scraping-tools .partner-card > div:has(> .tag) .tag{
    margin:0!important;
  }
}
@media (max-width: 980px){
  body #scraping-tools .partner-card > div:has(> .tag){
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
    min-height:0!important;
  }
  body #scraping-tools .partner-card > div:has(> .tag) .tag{
    margin:0!important;
  }
}

/* v25.0.5 homepage provider hub card rhythm fix
   Visual-only, section-scoped fix: aligns top label/meta areas, descriptions,
   tag-chip blocks and CTA rows inside the Provider reviews cards on the homepage.
   This keeps rows visually even when provider labels or tag counts wrap differently.
   No text, URLs, affiliate links, tracking, sitemap, robots, schema, provider order,
   title/meta/canonical or mobile layout changes. */
@media (min-width: 981px){
  body #providers .grid-3{
    align-items: stretch!important;
  }
  body #providers .partner-card{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
  }
  body #providers .partner-card .top{
    min-height:132px!important;
    align-items:flex-start!important;
  }
  body #providers .partner-card .top > div{
    min-width:0!important;
  }
  body #providers .partner-card .top .eyebrow{
    min-height:42px!important;
    display:flex!important;
    align-items:flex-start!important;
    margin-bottom:8px!important;
  }
  body #providers .partner-card .top h3{
    min-height:30px!important;
    margin-bottom:10px!important;
  }
  body #providers .partner-card .top .meta{
    min-height:44px!important;
    display:block!important;
  }
  body #providers .partner-card > p:not(.meta){
    flex:0 0 auto!important;
    min-height:128px!important;
    margin:0!important;
  }
  body #providers .partner-card > div:has(> .tag){
    display:flex!important;
    flex-wrap:wrap!important;
    align-content:flex-start!important;
    align-items:flex-start!important;
    gap:10px!important;
    min-height:92px!important;
    margin-top:0!important;
  }
  body #providers .partner-card > div:has(> .tag) .tag{
    margin:0!important;
  }
  body #providers .partner-card .partner-actions{
    margin-top:auto!important;
  }
}
@media (max-width: 980px){
  body #providers .partner-card .top,
  body #providers .partner-card .top .eyebrow,
  body #providers .partner-card .top h3,
  body #providers .partner-card .top .meta,
  body #providers .partner-card > p:not(.meta),
  body #providers .partner-card > div:has(> .tag){
    min-height:0!important;
  }
  body #providers .partner-card > div:has(> .tag){
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }
  body #providers .partner-card > div:has(> .tag) .tag{
    margin:0!important;
  }
}

/* v25.1.2 residential guide card chip alignment
   Scope: /best-residential-proxies/ residential depth cards only.
   Visual-only CSS fix for desktop rhythm. No content, URLs, tracking, affiliate links or SEO tags changed. */
@media (min-width: 901px) {
  body #v23-residential-depth .grid-3 > .card:not(.partner-card) {
    min-height: 340px !important;
  }

  body #v23-residential-depth .grid-3 > .card:not(.partner-card) h3 {
    min-height: 2.7em !important;
  }

  body #v23-residential-depth .grid-3 > .card:not(.partner-card) p {
    min-height: 8.4em !important;
    flex: 0 0 auto !important;
  }

  body #v23-residential-depth .grid-3 > .card:not(.partner-card) .inline-link-list {
    margin-top: auto !important;
    padding-top: 0 !important;
    align-content: flex-start !important;
  }
}

@media (max-width: 900px) {
  body #v23-residential-depth .grid-3 > .card:not(.partner-card) {
    min-height: 0 !important;
  }

  body #v23-residential-depth .grid-3 > .card:not(.partner-card) h3,
  body #v23-residential-depth .grid-3 > .card:not(.partner-card) p {
    min-height: 0 !important;
  }
}

/* v25.1.4 global comparison-card CTA alignment
   Visual-only CSS polish: centers single CTA buttons inside informational comparison cards
   and lets long button labels wrap safely within the card width.
   No content, URLs, affiliate links, provider order, tracking, sitemap, robots,
   schema, title/meta/H1/canonical changes. */
@media (min-width: 721px) {
  .seo-strength .grid-2 > .card:not(.partner-card) > .btn,
  .seo-strength .grid-3 > .card:not(.partner-card) > .btn,
  .seo-strength .grid-4 > .card:not(.partner-card) > .btn,
  .v20-3-commercial-strengthening .grid-2 > .card:not(.partner-card) > .btn,
  .v20-3-commercial-strengthening .grid-3 > .card:not(.partner-card) > .btn,
  .v20-3-commercial-strengthening .grid-4 > .card:not(.partner-card) > .btn,
  .v20-4-reviews-intent-hub .grid-4 > .card:not(.partner-card) > .btn,
  .v20-4-internal-priority .grid-4 > .card:not(.partner-card) > .btn,
  .v24-2-internal-link-reinforcement .grid-4 > .card:not(.partner-card) > .btn,
  #v20-3-home-commercial-paths .grid-4 > .card:not(.partner-card) > .btn,
  #v20-4-internal-priority .grid-4 > .card:not(.partner-card) > .btn {
    align-self: center !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
  }
}

@media (max-width: 720px) {
  .seo-strength .grid-2 > .card:not(.partner-card) > .btn,
  .seo-strength .grid-3 > .card:not(.partner-card) > .btn,
  .seo-strength .grid-4 > .card:not(.partner-card) > .btn,
  .v20-3-commercial-strengthening .grid-2 > .card:not(.partner-card) > .btn,
  .v20-3-commercial-strengthening .grid-3 > .card:not(.partner-card) > .btn,
  .v20-3-commercial-strengthening .grid-4 > .card:not(.partner-card) > .btn,
  .v20-4-reviews-intent-hub .grid-4 > .card:not(.partner-card) > .btn,
  .v20-4-internal-priority .grid-4 > .card:not(.partner-card) > .btn,
  .v24-2-internal-link-reinforcement .grid-4 > .card:not(.partner-card) > .btn,
  #v20-3-home-commercial-paths .grid-4 > .card:not(.partner-card) > .btn,
  #v20-4-internal-priority .grid-4 > .card:not(.partner-card) > .btn {
    align-self: stretch !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
  }
}

/* v25.1.5 homepage proxy guide card CTA alignment
   Visual-only CSS polish: centers single CTA buttons in the homepage
   New proxy buying guides block and keeps long labels wrapped safely.
   No content, URLs, affiliate links, tracking, SEO tags, sitemap or robots changes. */
@media (min-width: 721px) {
  .v25-1-home-proxy-guides .grid-4 > .card:not(.partner-card) > .btn {
    align-self: center !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
  }
}

@media (max-width: 720px) {
  .v25-1-home-proxy-guides .grid-4 > .card:not(.partner-card) > .btn {
    align-self: stretch !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
  }
}


/* v25.1.7 residential vs ISP intent link balance
   Visual-only layout polish for /best-residential-proxies/: moves the related links
   below the three-card intent row so the cards read evenly on desktop.
   No URLs, labels, affiliate links, tracking, sitemap, robots, schema, title/meta/H1/canonical changed. */
@media (min-width: 721px) {
  body #v25-1-residential-vs-isp-choice .intent-clarity-links {
    justify-content: center !important;
    margin-top: 20px !important;
  }
}

@media (max-width: 720px) {
  body #v25-1-residential-vs-isp-choice .intent-clarity-links {
    margin-top: 18px !important;
  }
}

/* v25.1.9 Residential intent card link baseline alignment
   Scoped visual-only fix for /best-residential-proxies/.
   Keeps the six contextual internal links inside their relevant cards,
   but pushes each card's link group to the same bottom baseline. */
#v25-1-residential-vs-isp-choice .grid-3 > .card{
  display:flex;
  flex-direction:column;
  height:100%;
}

#v25-1-residential-vs-isp-choice .grid-3 > .card .inline-link-list{
  margin-top:auto!important;
  padding-top:22px!important;
  align-content:flex-start!important;
}


/* v25.1.12 404 popular starting points CTA alignment
   Scoped visual-only fix for the 404 page: bottom-aligns and centers the
   CTA row inside each starting-point card, including when browser translation
   changes text length. No content, URLs, tracking, sitemap or robots changes. */
.notfound-starting-points .grid-3 > .card{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
}
.notfound-starting-points .grid-3 > .card .hero-actions{
  margin-top:auto!important;
  padding-top:28px!important;
  justify-content:center!important;
  align-items:center!important;
}
.notfound-starting-points .grid-3 > .card .hero-actions .btn{
  max-width:100%!important;
  white-space:normal!important;
  text-align:center!important;
}
@media(max-width:720px){
  .notfound-starting-points .grid-3 > .card .hero-actions{
    padding-top:18px!important;
  }
  .notfound-starting-points .grid-3 > .card .hero-actions .btn{
    width:100%!important;
  }
}

/* v25.3.29 New comparison pages table width fix
   Scope: only the new FAQ/comparison pages marked with body.pbg-comparison-page.
   Purpose: remove the empty sidebar column and stop desktop tables from clipping horizontally.
   No URLs, sitemap, robots, llms, affiliate links, tracking, provider order or copy are changed. */
body.pbg-comparison-page .article-layout{
  display:block!important;
}
body.pbg-comparison-page .article-card{
  max-width:100%!important;
}
body.pbg-comparison-page .table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:visible!important;
}
body.pbg-comparison-page .table-wrap table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
body.pbg-comparison-page .table-wrap th,
body.pbg-comparison-page .table-wrap td{
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
@media(max-width:720px){
  body.pbg-comparison-page .table-wrap{
    overflow-x:auto!important;
  }
  body.pbg-comparison-page .table-wrap table{
    min-width:640px!important;
    table-layout:auto!important;
  }
}


/* v25.3.35m responsive commercial header preview
   Approved scope: header navigation only. Desktop dropdowns open on hover/focus and click.
   Mobile uses a single click-controlled Menu; desktop and mobile navigation never display together. */
.nav{gap:16px}
.nav-desktop{display:flex!important;align-items:center;gap:13px;min-width:0}
.nav-desktop>a,.nav-dropdown-toggle{min-height:44px;display:inline-flex;align-items:center;color:var(--muted);font:inherit;font-weight:800;white-space:nowrap;text-decoration:none}
.nav-desktop>a:hover,.nav-desktop>a:focus-visible,.nav-dropdown-toggle:hover,.nav-dropdown-toggle:focus-visible,.nav-dropdown.is-open>.nav-dropdown-toggle,.nav-dropdown:focus-within>.nav-dropdown-toggle{color:var(--text)}
.nav-dropdown{position:relative;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important}
.nav-dropdown-toggle{gap:5px;padding:0;background:transparent;border:0;cursor:pointer}
.nav-dropdown-toggle:after{content:"▾";font-size:10px;transition:transform .16s ease}
.nav-dropdown.is-open>.nav-dropdown-toggle:after,.nav-dropdown:hover>.nav-dropdown-toggle:after,.nav-dropdown:focus-within>.nav-dropdown-toggle:after{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:10030;display:grid!important;min-width:270px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 48px rgba(16,24,40,.16);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(7px);transition:opacity .14s ease,transform .14s ease,visibility 0s linear .18s}
.nav-dropdown-menu:before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.nav-dropdown:hover>.nav-dropdown-menu,.nav-dropdown:focus-within>.nav-dropdown-menu,.nav-dropdown.is-open>.nav-dropdown-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
.nav-dropdown-menu a{display:flex;align-items:center;min-height:40px;padding:8px 10px;border-radius:10px;color:#344054!important;font-size:13px;font-weight:800;white-space:nowrap;text-decoration:none}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible{background:var(--soft);color:var(--brand)!important;outline:none}
.nav-best-proxies-menu{grid-template-columns:minmax(185px,.72fr) minmax(270px,1.08fr);gap:6px;min-width:485px}
.nav-group{display:grid;align-content:start}
.nav-group-title{display:block;padding:7px 10px 5px;color:var(--brand);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.nav-all-link{color:var(--brand)!important}
.nav-menu-divider{height:1px;margin:5px 8px;background:var(--line)}
.nav-compare-menu{left:auto;right:0}
.mobile-nav{display:none!important;position:relative;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important}
.mobile-nav>summary{list-style:none;cursor:pointer;min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);font-size:13px;font-weight:900}
.mobile-nav>summary::-webkit-details-marker{display:none}
.mobile-nav>summary:after{content:"☰";margin-left:7px;font-size:14px;color:var(--brand)}
.mobile-nav[open]>summary:after{content:"×";font-size:18px}
.mobile-nav-panel{position:fixed;left:14px;right:14px;top:76px;z-index:10040;width:auto;max-height:calc(100vh - 90px);overflow:auto;padding:12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 48px rgba(16,24,40,.20)}
.mobile-nav-panel>a,.mobile-nav-panel details>a,.mobile-nav-panel .mobile-nav-group>a{display:flex;align-items:center;min-height:44px;padding:9px 11px;border-radius:10px;color:#344054;font-size:14px;font-weight:800;text-decoration:none}
.mobile-nav-panel>a:hover,.mobile-nav-panel details>a:hover,.mobile-nav-panel .mobile-nav-group>a:hover{background:var(--soft);color:var(--brand)}
.mobile-nav-panel>details{margin:0 0 6px;padding:0 0 6px;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important}
.mobile-nav-panel details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:9px 11px;color:var(--text);font-size:14px;font-weight:900}
.mobile-nav-panel details>summary::-webkit-details-marker{display:none}
.mobile-nav-panel details>summary:after{content:"+";font-size:18px;color:var(--brand)}
.mobile-nav-panel details[open]>summary:after{content:"−"}
.mobile-nav-group{display:grid}
.mobile-nav-group>span{padding:8px 11px 2px;color:var(--brand);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.mobile-nav-all-link{color:var(--brand)!important}
.mobile-nav-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0 10px;padding-top:8px;border-top:1px solid var(--line)}
.mobile-nav-secondary a{display:flex;align-items:center;justify-content:center;min-height:40px;padding:7px;border-radius:10px;color:var(--muted);font-size:12px;font-weight:800;text-decoration:none}
.mobile-nav-cta{width:100%;margin-top:4px}
.mobile-nav-panel>a.mobile-nav-cta{justify-content:center;color:#fff!important}
.mobile-nav-panel>a.mobile-nav-cta:hover,
.mobile-nav-panel>a.mobile-nav-cta:focus-visible{color:#fff!important;background:linear-gradient(135deg,var(--brand),var(--brand2));outline:3px solid rgba(21,94,239,.28);outline-offset:2px}
@media(max-width:1240px) and (min-width:1121px){
  .nav{gap:11px}
  .nav-desktop{gap:9px;font-size:12px}
  .nav-cta-desktop{padding-left:13px!important;padding-right:13px!important;font-size:12px}
  .logo img{max-width:220px}
}
@media(max-width:1120px){
  .nav-desktop{display:none!important}
  .nav-cta-desktop{display:none!important}
  .mobile-nav{display:block!important;margin-left:auto}
  .nav{justify-content:space-between;flex-wrap:nowrap}
}
@media(max-width:720px){
  .nav{gap:10px;padding-top:10px;padding-bottom:10px}
  .logo img{height:34px!important;max-width:145px!important}
  .mobile-nav>summary{min-height:40px;padding:8px 11px;font-size:12px}
  .mobile-nav-panel{top:64px}
}


/* v25.3.35n commercial footer information architecture
   Scope: footer layout and internal navigation only.
   Existing metadata, URLs, CTA targets, affiliate destinations and tracking remain unchanged. */
.footer{padding:48px 0 40px;}
.footer-brand{max-width:820px;margin:0 0 30px;}
.footer-brand strong{display:inline-block;margin-bottom:10px;color:#101828;font-size:18px;line-height:1.25;}
.footer-brand p{margin:0 0 8px;line-height:1.65;}
.footer-contact{margin-bottom:0!important;}
.footer-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px 30px;align-items:start;}
.footer-column{min-width:0;}
.footer-column .footer-heading{margin:0 0 12px;color:#101828!important;font-size:15px;font-weight:950;letter-spacing:-.01em;line-height:1.25;}
.footer-column a{display:block;min-height:30px;padding:3px 0;color:#344054!important;line-height:1.45;text-decoration:none;overflow-wrap:anywhere;}
.footer-column a:hover,.footer-column a:focus-visible{color:#1849a9!important;text-decoration:underline;text-underline-offset:3px;}
@media(max-width:1080px){.footer-nav{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:720px){.footer{padding:40px 0 34px}.footer-brand{margin-bottom:24px}.footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 22px;}}
@media(max-width:460px){.footer-nav{grid-template-columns:1fr;gap:22px}.footer-column a{min-height:34px;}}


/* v25.3.35o optical footer spacing correction
   Confirmed issue: equal-width desktop grid tracks created visibly uneven gaps
   between the actual text blocks. Scope: wide-screen footer column distribution only. */
@media(min-width:1181px){
  .footer-nav{
    grid-template-columns:repeat(5,max-content);
    justify-content:space-between;
    column-gap:18px;
  }
}


/* v25.3.39 methodology submenu under active How We Review */
.nav-review-dropdown{display:inline-flex;align-items:center;gap:0}
.nav-review-link{min-height:44px;display:inline-flex;align-items:center;color:var(--muted);font:inherit;font-weight:800;white-space:nowrap;text-decoration:none}
.nav-review-link:hover,.nav-review-link:focus-visible,.nav-review-dropdown:focus-within>.nav-review-link,.nav-review-dropdown:hover>.nav-review-link{color:var(--text)}
.nav-review-toggle{min-width:22px;padding:0 0 0 5px}
.nav-review-dropdown.is-open>.nav-review-toggle:after,.nav-review-dropdown:hover>.nav-review-toggle:after,.nav-review-dropdown:focus-within>.nav-review-toggle:after{transform:rotate(180deg)}
.nav-methodology-menu{min-width:190px}
.mobile-review-dropdown .mobile-nav-all-link{color:var(--muted)!important}

/* v25.3.65 sitewide status-only placement */
.status-only-card{border-color:#fdb022!important;background:#fffcf5!important}
.status-only-row{background:#fffcf5}
.status-only-row td:first-child strong{color:#b54708!important}

/* v25.3.79 review-page anchor stability */
body.pbg-review-page main > section{content-visibility:visible!important;contain-intrinsic-size:none!important}

/* v25.3.88C table responsiveness hotfix
   Visual table behavior is independent from affiliate tracking.
   A table is hidden only after a verified card replacement exists. */
.table-wrap.pbg-table-simple,
.table-wrap.pbg-table-medium,
.table-wrap.pbg-table-wide{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}
body .table-wrap.pbg-table-simple table{
  width:100%!important;
  min-width:0!important;
  table-layout:auto!important;
}
body .table-wrap.pbg-table-medium table{
  width:100%!important;
  min-width:680px!important;
  table-layout:auto!important;
}
body .table-wrap.pbg-table-wide table{
  width:100%!important;
  min-width:1040px!important;
  table-layout:auto!important;
}
.table-wrap.pbg-table-wide th:last-child,
.table-wrap.pbg-table-wide td:last-child{
  min-width:144px!important;
  white-space:normal!important;
}
.table-wrap.pbg-table-wide td:last-child .btn,
.table-wrap.pbg-table-wide td:last-child a{
  max-width:100%!important;
  white-space:normal!important;
}
.pbg-table-scroll-hint{
  display:none;
  margin:0 0 8px;
  padding:9px 12px;
  border:1px solid #c7d7fe;
  border-radius:12px;
  background:#eff4ff;
  color:#1849a9!important;
  font-size:13px;
  font-weight:800;
}
.pbg-table-scroll-hint.pbg-is-visible{display:block}
.pbg-responsive-table-cards{display:none}
.pbg-responsive-table-card{
  margin:0 0 16px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
}
.pbg-responsive-table-card:last-child{margin-bottom:0}
.pbg-responsive-table-card dl{margin:0}
.pbg-responsive-table-card-row{
  display:grid;
  grid-template-columns:minmax(110px,38%) minmax(0,1fr);
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.pbg-responsive-table-card-row:last-child{border-bottom:0}
.pbg-responsive-table-card dt{font-weight:900;color:#101828}
.pbg-responsive-table-card dd{min-width:0;margin:0;color:#24324a;overflow-wrap:anywhere}
.pbg-responsive-table-card dd .btn,
.pbg-responsive-table-card dd a[data-affiliate-link="true"]{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:2px 0!important;
  white-space:normal!important;
}
@media(max-width:980px){
  .table-wrap.pbg-has-card-replacement{display:none!important}
  .pbg-responsive-table-cards.pbg-card-replacement,
  .pricing-mobile-cards.pbg-card-replacement,
  .isp-mobile-cards.pbg-card-replacement,
  .pbg-mobile-table-cards.pbg-card-replacement{display:grid!important;gap:16px;margin-top:22px}
}
@media(max-width:720px){
  /* No-JS safety: undo older rules that hid marked tables without cards. */
  body.pbg-money-page .table-wrap[data-pbg-mobile-cards="true"]:not(.pbg-has-card-replacement){display:block!important}
  .pbg-responsive-table-card{padding:16px}
  .pbg-responsive-table-card-row{grid-template-columns:1fr;gap:4px}
}

/* v25.3.88N final-column plain-text link top alignment
   Scope: direct non-button links in the final cell of responsive tables only.
   Preserve existing touch-target height and horizontal spacing while aligning
   the first text line with adjacent cells. Buttons and nested action blocks are excluded. */
.table-wrap td:last-child > a:not(.btn){
  padding-top:0!important;
  margin-top:0!important;
  line-height:inherit!important;
  align-items:flex-start!important;
  vertical-align:top!important;
}
