{"id":38,"date":"2026-08-06T21:21:52","date_gmt":"2026-08-06T16:21:52","guid":{"rendered":"https:\/\/lifetimedealhq.com\/?page_id=38"},"modified":"2026-08-07T01:00:27","modified_gmt":"2026-08-06T20:00:27","slug":"screpy-lifetime-deal","status":"publish","type":"page","link":"https:\/\/lifetimedealhq.com\/reviews\/screpy-lifetime-deal\/","title":{"rendered":"Screpy Lifetime Deal Review (2026): Worth $59?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Screpy&#8217;s $59 lifetime deal gives unlimited websites and unlimited team members, which is genuinely generous. The problem is the comparison: AppSumo shows a &#8220;$204 regular&#8221; price, while Screpy&#8217;s own pricing page sells Pro for $77 a year. Break-even against that is about nine months.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote ldhq-verdict is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Verdict: Consider \u2014 6.5\/10<\/strong><\/p>\n\n\n<p class=\"wp-block-paragraph\">Good tool, real utility, unusually unrestricted tier 1 \u2014 but the headline discount is inflated against the vendor&#8217;s actual published pricing, and the honest break-even is much longer than the listing implies.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><strong>Best for:<\/strong> freelancers and small agencies watching a lot of sites at once, where unlimited websites at $59 beats paying per-site anywhere else.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><strong>Skip if:<\/strong> you have one site, you need PDF reports for clients, or you would happily pay $6.42 a month for Pro and keep the flexibility to walk away.<\/p>\n\n\n<p class=\"wp-block-paragraph\">How we arrive at verdicts: <a href=\"\/how-we-test\/\">our testing and rating method<\/a>.<\/p>\n<\/blockquote>\n\n\n\n<div class=\"wp-block-group ldhq-cta\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n\n<p class=\"ldhq-cta-meta wp-block-paragraph\"><strong>$59<\/strong> at Tier 1 on AppSumo, and refundable for 60 days.<\/p>\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/appsumo.com\/products\/screpy\/\" target=\"_blank\" rel=\"nofollow sponsored noopener\">View the Screpy deal on AppSumo<\/a><\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Affiliate link. If you buy through it we may earn a commission at no extra cost to you, and it never changes a verdict &mdash; two of our fifteen reviews are Skips. <a href=\"\/affiliate-disclosure\/\">Full disclosure<\/a>.<\/p>\n\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Affiliate disclosure: we may earn a commission if you buy through links on this page, at no extra cost to you. We publish Skip verdicts on deals we are paid to promote \u2014 see our <a href=\"\/affiliate-disclosure\/\">affiliate disclosure<\/a>.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">At a glance<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr><td>Deal price (tier 1)<\/td><td>$59<\/td><\/tr>\n<tr><td>Tiers<\/td><td>$59 \/ $118 \/ $177<\/td><\/tr>\n<tr><td>AppSumo rating<\/td><td>4.62\u2605 from 908 reviews (AppSumo product-page structured data)<\/td><\/tr>\n<tr><td>Deal status<\/td><td>Live as of 6 August 2026, no published end date<\/td><\/tr>\n<tr><td>Vendor pricing<\/td><td>Pro $6\/mo or $77\/yr; Max $15\/mo or $182\/yr; Ultra $30\/mo or $355\/yr (screpy.com\/pricing)<\/td><\/tr>\n<tr><td>Category<\/td><td>Technical and performance site audit<\/td><\/tr>\n<tr><td>Last verified<\/td><td>6 August 2026<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">908 reviews is the second-largest evidence base in this batch, and 4.62\u2605 across that many buyers is a reliable signal rather than a launch-week glow. There is also an <strong>AppSumo Plus\u2013exclusive variant<\/strong> of this deal priced at $89 \/ $178 \/ $267 according to AppSumo&#8217;s structured data \u2014 higher than the public tiers. If you are a Plus member, check which listing you are actually looking at before you buy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large ldhq-shot\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1280\" height=\"495\" src=\"https:\/\/lifetimedealhq.com\/wp-content\/uploads\/2026\/08\/screpy-lifetime-deal-appsumo-listing.jpg\" alt=\"AppSumo product page for Screpy showing the $59 Tier 1 lifetime deal price and 908 reviews, captured 6 August 2026\" class=\"wp-image-100\" srcset=\"https:\/\/lifetimedealhq.com\/wp-content\/uploads\/2026\/08\/screpy-lifetime-deal-appsumo-listing.jpg 1280w, https:\/\/lifetimedealhq.com\/wp-content\/uploads\/2026\/08\/screpy-lifetime-deal-appsumo-listing-300x116.jpg 300w, https:\/\/lifetimedealhq.com\/wp-content\/uploads\/2026\/08\/screpy-lifetime-deal-appsumo-listing-1024x396.jpg 1024w, https:\/\/lifetimedealhq.com\/wp-content\/uploads\/2026\/08\/screpy-lifetime-deal-appsumo-listing-768x297.jpg 768w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/><figcaption class=\"wp-element-caption\">Screpy on AppSumo, captured 6 August 2026: $59 at Tier 1, 908 reviews.<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The break-even maths<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here is where this deal gets interesting, and where most reviews of it are simply wrong.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What AppSumo shows.<\/strong> A struck-through regular price of $204.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What the vendor publishes.<\/strong> Screpy&#8217;s own pricing page lists three plans: Pro at $6\/mo or $77\/yr, Max at $15\/mo or $182\/yr, and Ultra at $30\/mo or $355\/yr.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$204 is not any of those numbers. It is roughly 2.6 times the annual price of the entry plan, and it sits between Max and Ultra without matching either. We cannot tell you how AppSumo arrived at it. What we can tell you is that if you are calculating your break-even from the struck-through figure, you are calculating it from a number the vendor does not charge anyone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The arithmetic against real prices:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Against Pro at $77\/yr ($6.42\/mo):<\/em> $59 \u00f7 $6.42 = <strong>9.2 months<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Against Pro at $6\/mo:<\/em> $59 \u00f7 $6 = <strong>9.8 months<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Against Max at $182\/yr ($15.17\/mo):<\/em> $59 \u00f7 $15.17 = <strong>3.9 months<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Against Ultra at $355\/yr ($29.58\/mo):<\/em> $59 \u00f7 $29.58 = <strong>2.0 months<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The assumptions:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Which row applies to you depends entirely on which plan you would genuinely have bought. Most solo users and small agencies would be on Pro, which puts the honest answer at about nine months, not the two months you would get by dividing $59 into a fictional $204.<\/li>\n\n\n<li>We are comparing price only. We could not verify how the AppSumo tiers&#8217; credit allowances map onto the vendor&#8217;s plan limits, because Screpy&#8217;s pricing page describes its plans by feature rather than by the same credit unit AppSumo meters. Where a mapping cannot be verified we do not invent one.<\/li>\n\n\n<li>The usual lifetime-deal caveat: nine months is only a break-even if the product is still running in nine months.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Nine months is not a bad break-even. It is a perfectly ordinary one. But the difference between &#8220;pays for itself in two months&#8221; and &#8220;pays for itself in nine&#8221; is exactly the difference between a listing&#8217;s marketing and the vendor&#8217;s cash register, and it is the reason we run this calculation on every review. The framework is written up in <a href=\"\/guides\/how-to-evaluate-a-lifetime-deal\/\">how to evaluate a lifetime deal<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What it actually does<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Screpy is a Lighthouse-based auditor with monitoring bolted on. It runs Google Lighthouse against your pages and turns the output into a task list \u2014 performance, accessibility, best practices, SEO \u2014 then keeps checking. On top of that it does uptime monitoring and rank tracking, so it covers three jobs that would otherwise be three tools.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Lighthouse foundation is worth understanding, because it sets expectations in both directions. Lighthouse is a real, respected, free-to-run auditor from Google; a tool built on it is not inventing its own scoring. But it also means Screpy&#8217;s core analysis is something you could obtain yourself from PageSpeed Insights for nothing. What you are paying for is scheduling, history, multi-site aggregation and alerting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The uptime monitoring and rank tracking are secondary features rather than reasons to buy. If rank tracking is the job you need done, a dedicated tracker will serve you better.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Tier breakdown<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead><tr><th>Tier<\/th><th>Price<\/th><th>Websites<\/th><th>Team members<\/th><th>Monthly credits<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>1<\/td><td>$59<\/td><td>Unlimited<\/td><td>Unlimited<\/td><td>8,000<\/td><\/tr>\n<tr><td>2<\/td><td>$118<\/td><td>Unlimited<\/td><td>Unlimited<\/td><td>16,000<\/td><\/tr>\n<tr><td>3<\/td><td>$177<\/td><td>Unlimited<\/td><td>Unlimited<\/td><td>24,000<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Tier data from AppSumo&#8217;s rendered product page, verified 6 August 2026.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is an unusually honest tier structure and it deserves saying so. Most lifetime deals ration the thing you actually need \u2014 sites, seats \u2014 and give away the thing that costs the vendor least. Screpy does the opposite. Every tier is unlimited websites and unlimited team members. The only variable across the whole ladder is credits.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Which tier to buy: tier 1.<\/strong> Buy $59, use it, and only move up if you hit the 8,000-credit ceiling. Because sites and seats are already unlimited at the bottom, there is nothing tiers 2 and 3 unlock except headroom \u2014 and headroom is the one thing you can measure after a month of real use rather than guess at before you buy. The scaling is exactly linear ($59 per 8,000 credits), so waiting costs you nothing in unit price.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The one situation where buying up front makes sense: you already know you are auditing dozens of sites on a schedule and you can see the credit maths will not work. In that case tier 2 or 3 saves you a second purchase decision.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Who should skip this<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>You have one website.<\/strong> Screpy&#8217;s entire advantage over its own subscription is unlimited sites. If you have one site, that advantage is worth nothing to you, and you are paying $59 to avoid $6.42 a month \u2014 a nine-month break-even for a product you cannot cancel if it stops improving. Pay the $6.42. Keep the option to leave.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>You need PDF reports for clients.<\/strong> This is the single most-requested missing feature in Screpy&#8217;s AppSumo reviews, and it comes up repeatedly. If your workflow is &#8220;run audit, export branded PDF, email to client,&#8221; the tool does not currently close that loop, and buying on the hope that it will is buying a roadmap rather than a product.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>You want a full SEO suite.<\/strong> Screpy audits and monitors. It does not do serious keyword research or content optimization. <a href=\"\/reviews\/labrika-lifetime-deal\/\">Labrika<\/a> goes deeper on ranking-factor diagnosis; <a href=\"\/reviews\/clickrank-lifetime-deal\/\">ClickRank<\/a> actually applies on-page fixes. Screpy tells you the Lighthouse story and watches for changes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>You are comfortable running Lighthouse yourself.<\/strong> If you audit one or two sites occasionally, PageSpeed Insights is free and gives you the same underlying data. The purchase only makes sense when repetition and scale make the manual version tedious.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>You are buying because of the &#8220;$204 regular&#8221; price.<\/strong> Do not. That number does not appear anywhere on the vendor&#8217;s pricing page. If it was the reason the deal looked good, the deal is worse than you thought.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Known problems<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Drawn from AppSumo&#8217;s own review and Q&amp;A text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Occasional bugs.<\/strong> Reported consistently enough across 908 reviews to be a real characteristic rather than isolated bad luck. Nothing in the review body describes them as data-destroying; the pattern is closer to rough edges in a fast-moving product.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>No PDF reporting.<\/strong> The most persistent request in the reviews, raised repeatedly over time. For agency users this is not a minor gap \u2014 it sits directly in the client-delivery workflow. Treat it as absent unless you can confirm otherwise on the current version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What the rating tells you.<\/strong> 4.62\u2605 across 908 reviews is a strong, well-evidenced score. It is the kind of number you get from a product that does what it says and irritates a minority of users in a specific, repeatable way. Here that way is fairly clearly the reporting gap.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What we could not verify.<\/strong> How Screpy&#8217;s credit unit maps to the vendor&#8217;s plan tiers. The vendor&#8217;s pricing page and the AppSumo listing describe capacity in different terms, and we are not going to guess at a conversion in order to produce a tidier comparison table.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Alternatives<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"\/reviews\/labrika-lifetime-deal\/\">Labrika<\/a> \u2014 $68 lifetime.<\/strong> The closer competitor. Also unlimited websites at every tier, but it goes further than Lighthouse: over 200 prioritised ranking factors with page-level fixes, plus rank tracking and an AI writer. Rated 4.76\u2605 across 157 reviews \u2014 a better score on a smaller sample. If you want depth of SEO diagnosis rather than performance monitoring, Labrika is the stronger $68.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"\/reviews\/clickrank-lifetime-deal\/\">ClickRank<\/a> \u2014 $89 lifetime.<\/strong> Different job entirely. Screpy tells you what is wrong; ClickRank changes it. Worth pairing rather than choosing between, if budget allows \u2014 but note ClickRank tier 1 is a single site with a 500-page crawl.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The non-LTD option: Google&#8217;s own stack.<\/strong> PageSpeed Insights runs the same Lighthouse audit Screpy is built on, for free. Search Console reports Core Web Vitals from real user data, which is better than lab data for the question that actually matters. Add a free uptime monitor and you have replicated most of tier 1 for nothing, minus the aggregation and the history. For one site, that is a genuinely competitive answer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compare across the category in our <a href=\"\/best\/seo-tools-lifetime-deals\/\">best SEO tool lifetime deals<\/a> roundup.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is Screpy&#8217;s lifetime deal still available?<\/strong> Yes. Live on AppSumo as of 6 August 2026 with no end date published in the listing&#8217;s availability data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is the &#8220;$204 regular price&#8221; real?<\/strong> It does not match anything on screpy.com\/pricing, which lists Pro at $77\/yr, Max at $182\/yr and Ultra at $355\/yr. We cannot verify where $204 comes from and would not base a purchase on it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How many sites can I add on the $59 tier?<\/strong> Unlimited, according to AppSumo&#8217;s listing. All three tiers are unlimited websites and unlimited team members; only the monthly credit allowance changes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How long until it pays for itself?<\/strong> About 9.2 months against Pro at $77\/yr, 3.9 months against Max, and 2.0 months against Ultra. Which figure applies depends on the plan you would genuinely have bought.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does Screpy export PDF reports?<\/strong> Not according to its AppSumo reviewers, who request the feature repeatedly. If client-ready PDFs are essential, verify with the vendor before buying.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What is the AppSumo Plus version?<\/strong> AppSumo&#8217;s structured data shows a Plus-exclusive variant at $89 \/ $178 \/ $267 \u2014 higher than the public tiers. Check which listing you are on.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Last verified:<\/strong> 6 August 2026. Prices, tiers, rating and deal status re-checked against AppSumo&#8217;s product page and screpy.com\/pricing on that date.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Reviewed by  \u2014 see <a href=\"\/how-we-test\/\">how we test<\/a> and our <a href=\"\/editorial-policy\/\">editorial policy<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>AppSumo says Screpy is normally $204. The vendor sells Pro for $77\/yr. We do the real break-even maths, tier by tier, and say who should skip it.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":14,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","_kad_blocks_custom_css":"\/* ==========================================================================\n   Lifetime Deal HQ \u2014 design system\n   Single-file theme layer for Kadence. No external requests, no build step.\n\n   Design intent: this is a publication people consult before spending money.\n   It should feel closer to a trade journal than to a deal blog. That means\n   restraint: one accent colour, a serif for headings, generous measure,\n   hairline rules instead of shadows, and semantic colour used sparingly and\n   only where it carries meaning.\n   ========================================================================== *\/\n\n\/* --------------------------------------------------------------------------\n   1. COLOUR\n   Kadence maps its palette roughly as: 1\u20133 accent, 4\u20136 text (dark\u2192light),\n   7\u20138 borders and tinted backgrounds, 9 page background. Overriding these\n   restyles the header, nav, footer, buttons and links in one move, so the\n   theme chrome and the article body stay in the same system.\n\n   Accent is a deep desaturated navy rather than a bright blue: it reads as\n   institutional rather than promotional, and it stays legible at small sizes.\n\n   Semantic verdict colours are deliberately low-chroma. Skip is a muted\n   oxblood, not a warning red \u2014 a Skip verdict is a considered editorial\n   judgment, and it should look as deliberate as a Buy. All three are AA or\n   better on white at body size (measured ratios in comments below).\n   -------------------------------------------------------------------------- *\/\n\n:root{\n  \/* Kadence global palette overrides *\/\n  --global-palette1:#17395a;   \/* accent \u2014 deep navy *\/\n  --global-palette2:#22507c;   \/* accent hover *\/\n  --global-palette3:#12283d;   \/* accent deep \/ wordmark *\/\n  --global-palette4:#14181d;   \/* headings *\/\n  --global-palette5:#2b3138;   \/* body text *\/\n  --global-palette6:#5b636e;   \/* muted text *\/\n  --global-palette7:#e3e6ea;   \/* hairline borders *\/\n  --global-palette8:#f5f6f8;   \/* tinted surface *\/\n  --global-palette9:#ffffff;   \/* page background *\/\n\n  \/* Semantic \u2014 verdicts *\/\n  --ldhq-buy:#12674a;          \/* 5.9:1 on white *\/\n  --ldhq-buy-bg:#e9f3ee;\n  --ldhq-buy-line:#bcd9cb;\n  --ldhq-consider:#7a5209;     \/* 6.1:1 on white *\/\n  --ldhq-consider-bg:#faf2e2;\n  --ldhq-consider-line:#e3d3ae;\n  --ldhq-skip:#8a3b3b;         \/* 6.5:1 on white \u2014 oxblood, not alarm red *\/\n  --ldhq-skip-bg:#f7eeee;\n  --ldhq-skip-line:#e0c8c8;\n\n  \/* Neutrals, aliased for the custom components *\/\n  --ldhq-accent:var(--global-palette1);\n  --ldhq-ink:var(--global-palette4);\n  --ldhq-body:var(--global-palette5);\n  --ldhq-muted:var(--global-palette6);\n  --ldhq-line:var(--global-palette7);\n  --ldhq-surface:var(--global-palette8);\n  --ldhq-paper:#ffffff;\n\n  \/* Elevation \u2014 one step only, and it is nearly invisible on purpose *\/\n  --ldhq-raise:0 1px 2px rgba(20,24,29,.05), 0 1px 1px rgba(20,24,29,.04);\n\n  \/* Radius \u2014 small and consistent. Nothing is a pill. *\/\n  --ldhq-r:6px;\n  --ldhq-r-lg:10px;\n\n  \/* Layout *\/\n  --global-content-width:1160px;\n  --global-content-narrow-width:748px;\n  --ldhq-measure:68ch;\n\n  \/* Typography: system stacks only, so no third-party font requests.\n     Serif headings + sans body is the editorial signal here. *\/\n  --global-heading-font-family:ui-serif,Georgia,Cambria,\"Times New Roman\",Times,serif;\n  --global-body-font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;\n  --ldhq-mono:ui-monospace,SFMono-Regular,\"SF Mono\",Menlo,Consolas,monospace;\n\n  \/* Modular scale, 1.25, base 17px *\/\n  --global-font-size-small:.8235rem;\n  --global-font-size-medium:1rem;\n  --global-font-size-large:1.375rem;\n  --global-font-size-larger:1.75rem;\n  --global-font-size-xxlarge:2.5rem;\n}\n\nhtml{ font-size:17px; -webkit-text-size-adjust:100%; }\n@media (max-width:600px){ html{ font-size:16px; } }\n\nbody{\n  font-family:var(--global-body-font-family);\n  color:var(--ldhq-body);\n  background:var(--ldhq-paper);\n  -webkit-font-smoothing:antialiased;\n  text-rendering:optimizeLegibility;\n}\n\n\/* --------------------------------------------------------------------------\n   2. HEADER + NAVIGATION\n   -------------------------------------------------------------------------- *\/\n\n.site-header{\n  background:var(--ldhq-paper);\n  border-bottom:1px solid var(--ldhq-line);\n}\n.site-header-wrap{ padding-block:.35rem; }\n\n\/* Wordmark \u2014 serif, tight, with the \"HQ\" held back so it reads as a masthead *\/\n.site-branding .site-title,\n.site-branding a.brand{\n  font-family:var(--global-heading-font-family);\n  font-weight:700;\n  font-size:1.4rem;\n  letter-spacing:-.02em;\n  color:var(--global-palette3);\n  text-decoration:none;\n}\n.site-branding .site-title:hover{ color:var(--global-palette1); }\n.site-branding .site-description{\n  font-size:.78rem;\n  color:var(--ldhq-muted);\n  letter-spacing:.005em;\n}\n\n.header-navigation .menu > li > a,\n.primary-menu-container .menu > li > a{\n  font-size:.855rem;\n  font-weight:550;\n  letter-spacing:.015em;\n  color:var(--global-palette5);\n  padding-inline:.85rem;\n}\n.header-navigation .menu > li > a:hover,\n.header-navigation .menu > li.current-menu-item > a{\n  color:var(--global-palette1);\n}\n\/* Current page gets a rule, not a colour-only cue *\/\n.header-navigation .menu > li.current-menu-item > a{\n  box-shadow:inset 0 -2px 0 0 var(--global-palette1);\n}\n\n@media (min-width:1025px){\n  .site-header{ position:sticky; top:0; z-index:60; }\n  .admin-bar .site-header{ top:32px; }\n}\n\n\/* --------------------------------------------------------------------------\n   3. LONG-FORM ARTICLE\n   Measure, rhythm and link treatment for 2,000\u20134,000 word reviews.\n   -------------------------------------------------------------------------- *\/\n\n.entry-content{\n  font-size:1.0625rem;\n  line-height:1.7;\n  color:var(--ldhq-body);\n}\n.entry-content > p,\n.entry-content > ul,\n.entry-content > ol,\n.entry-content > h2,\n.entry-content > h3,\n.entry-content > h4,\n.entry-content > blockquote{ max-width:var(--ldhq-measure); }\n\n.entry-content p{ margin:0 0 1.3em; }\n.entry-content > *:first-child{ margin-top:0; }\n\n.entry-content h1,\n.entry-content h2,\n.entry-content h3,\n.entry-content h4,\n.entry-title{\n  font-family:var(--global-heading-font-family);\n  color:var(--ldhq-ink);\n  letter-spacing:-.015em;\n  text-wrap:balance;\n}\n.entry-title{ font-size:clamp(1.95rem,4vw,2.7rem); line-height:1.18; font-weight:700; margin-bottom:.5em; }\n.entry-content h2{\n  font-size:1.6rem; line-height:1.28; font-weight:700;\n  margin:2.7em 0 .55em; padding-top:1.4rem; border-top:1px solid var(--ldhq-line);\n}\n.entry-content h3{ font-size:1.24rem; line-height:1.35; font-weight:700; margin:2.1em 0 .45em; }\n.entry-content h4{ font-size:1.06rem; line-height:1.4; font-weight:700; margin:1.8em 0 .4em; }\n.entry-content h2 + p, .entry-content h3 + p, .entry-content h4 + p{ margin-top:0; }\n\/* A heading immediately after the verdict box shouldn't get a second rule *\/\n.ldhq-verdict + h2, .ldhq-cta + h2{ border-top:0; padding-top:0; }\n\n.entry-content a{\n  color:var(--global-palette1);\n  text-decoration:underline;\n  text-decoration-thickness:1px;\n  text-underline-offset:.16em;\n  text-decoration-color:rgba(23,57,90,.35);\n}\n.entry-content a:hover{ text-decoration-color:currentColor; }\n\n.entry-content ul, .entry-content ol{ margin:0 0 1.3em; padding-left:1.35em; }\n.entry-content li{ margin-bottom:.5em; padding-left:.15em; }\n.entry-content li::marker{ color:var(--ldhq-muted); }\n\n.entry-content strong{ color:var(--ldhq-ink); font-weight:650; }\n.entry-content code{\n  font-family:var(--ldhq-mono); font-size:.9em;\n  background:var(--ldhq-surface); border:1px solid var(--ldhq-line);\n  border-radius:4px; padding:.1em .35em;\n}\n.entry-content hr,\n.entry-content .wp-block-separator{\n  border:0; border-top:1px solid var(--ldhq-line);\n  margin:2.6rem 0; max-width:var(--ldhq-measure); opacity:1;\n}\n\n\/* --------------------------------------------------------------------------\n   4. VERDICT BOX \u2014 the signature component\n   -------------------------------------------------------------------------- *\/\n\n.entry-content .ldhq-verdict{\n  max-width:var(--ldhq-measure);\n  margin:0 0 2.2rem;\n  padding:1.35rem 1.5rem;\n  background:var(--ldhq-surface);\n  border:1px solid var(--ldhq-line);\n  border-left:3px solid var(--global-palette1);\n  border-radius:var(--ldhq-r-lg);\n  font-style:normal;\n  quotes:none;\n}\n.entry-content .ldhq-verdict::before,\n.entry-content .ldhq-verdict::after{ content:none; }\n.entry-content .ldhq-verdict p{ margin-bottom:.8em; font-size:1rem; }\n.entry-content .ldhq-verdict p:last-child{ margin-bottom:0; }\n.entry-content .ldhq-verdict p:first-child{\n  font-family:var(--global-heading-font-family);\n  font-size:1.3rem; line-height:1.3; font-weight:700;\n  color:var(--ldhq-ink); margin-bottom:.55em; letter-spacing:-.01em;\n}\n.entry-content .ldhq-verdict p:first-child strong{ font-weight:700; }\n\/* trailing \"how we reach a verdict\" line *\/\n.entry-content .ldhq-verdict p:last-child{ font-size:.895rem; color:var(--ldhq-muted); }\n\n\/* --------------------------------------------------------------------------\n   5. VERDICT BADGES\n   Colour is never the only signal \u2014 each badge carries its own word.\n   -------------------------------------------------------------------------- *\/\n\n.ldhq-badge{\n  display:inline-block; padding:.16em .6em;\n  border-radius:4px; border:1px solid transparent;\n  font-size:.78rem; font-weight:700; letter-spacing:.025em;\n  text-transform:uppercase; white-space:nowrap; line-height:1.5;\n}\n.ldhq-buy{ color:var(--ldhq-buy); background:var(--ldhq-buy-bg); border-color:var(--ldhq-buy-line); }\n.ldhq-consider{ color:var(--ldhq-consider); background:var(--ldhq-consider-bg); border-color:var(--ldhq-consider-line); }\n.ldhq-skip{ color:var(--ldhq-skip); background:var(--ldhq-skip-bg); border-color:var(--ldhq-skip-line); }\n\n\/* --------------------------------------------------------------------------\n   6. TABLES \u2014 spec tables, tier tables, and the 15-row verdict table\n   Must never break the layout on a 360px phone.\n   -------------------------------------------------------------------------- *\/\n\n.entry-content .wp-block-table{\n  margin:1.9rem 0 2.2rem;\n  max-width:100%;\n  overflow-x:auto;\n  -webkit-overflow-scrolling:touch;\n  border:1px solid var(--ldhq-line);\n  border-radius:var(--ldhq-r-lg);\n}\n.entry-content .wp-block-table table{\n  width:100%; border-collapse:collapse; font-size:.965rem; margin:0;\n  border:0;\n}\n.entry-content .wp-block-table th{\n  background:var(--ldhq-surface);\n  text-align:left; font-weight:650; color:var(--ldhq-ink);\n  font-size:.83rem; letter-spacing:.03em; text-transform:uppercase;\n  padding:.72rem .95rem; border-bottom:1px solid var(--ldhq-line);\n  white-space:nowrap;\n}\n.entry-content .wp-block-table td{\n  padding:.72rem .95rem; border-bottom:1px solid var(--ldhq-line);\n  vertical-align:top; line-height:1.55;\n}\n.entry-content .wp-block-table tr:last-child td{ border-bottom:0; }\n.entry-content .wp-block-table tbody tr:hover{ background:#fafbfc; }\n\n\/* Two-column \"At a glance\" spec tables read better with a label column *\/\n.entry-content .wp-block-table td:first-child{ color:var(--ldhq-ink); font-weight:600; }\n.entry-content .wp-block-table thead ~ tbody td:first-child{ font-weight:400; color:inherit; }\n\n\/* Homepage verdict table: keep all four columns readable, scroll if needed *\/\n.ldhq-verdict-table table{ min-width:520px; }\n.ldhq-verdict-table td:nth-child(2),\n.ldhq-verdict-table td:nth-child(4),\n.ldhq-verdict-table th:nth-child(2),\n.ldhq-verdict-table th:nth-child(4){ white-space:nowrap; }\n.ldhq-verdict-table td:first-child{ font-weight:600; }\n.ldhq-verdict-table td:first-child a{ text-decoration:none; }\n.ldhq-verdict-table td:first-child a:hover{ text-decoration:underline; }\n\n@media (max-width:600px){\n  .entry-content .wp-block-table table{ font-size:.9rem; }\n  .entry-content .wp-block-table th,\n  .entry-content .wp-block-table td{ padding:.6rem .7rem; }\n  \/* a subtle cue that the table scrolls *\/\n  .entry-content .wp-block-table{\n    background:\n      linear-gradient(to right,var(--ldhq-paper) 30%,rgba(255,255,255,0)),\n      linear-gradient(to left,var(--ldhq-paper) 30%,rgba(255,255,255,0)) 100% 0;\n    background-repeat:no-repeat; background-size:28px 100%; background-attachment:local,local;\n  }\n}\n\n\/* --------------------------------------------------------------------------\n   7. SCREENSHOT FIGURE\n   These are our own dated captures \u2014 the caption is evidence, so it is\n   styled as a credit line rather than decoration.\n   -------------------------------------------------------------------------- *\/\n\n.entry-content .wp-block-image{ margin:2rem 0 2.3rem; }\n.entry-content .wp-block-image img{\n  border:1px solid var(--ldhq-line);\n  border-radius:var(--ldhq-r-lg);\n  display:block; height:auto; max-width:100%;\n}\n.entry-content .wp-block-image figcaption,\n.entry-content .wp-element-caption{\n  margin-top:.6rem; padding-left:.9rem;\n  border-left:2px solid var(--ldhq-line);\n  font-size:.865rem; line-height:1.55; color:var(--ldhq-muted); text-align:left;\n}\n\n\/* --------------------------------------------------------------------------\n   8. CTA CARD\n   Present, but never louder than the verdict above it.\n   -------------------------------------------------------------------------- *\/\n\n.ldhq-cta{\n  max-width:var(--ldhq-measure);\n  margin:2.1rem 0 2.4rem;\n  padding:1.25rem 1.4rem;\n  background:var(--ldhq-paper);\n  border:1px solid var(--ldhq-line);\n  border-radius:var(--ldhq-r-lg);\n  box-shadow:var(--ldhq-raise);\n}\n.ldhq-cta .ldhq-cta-meta{\n  margin:0 0 .8rem; font-size:.98rem; color:var(--ldhq-ink);\n}\n.ldhq-cta .wp-block-buttons{ margin:0 0 .75rem; }\n.ldhq-cta p:last-child{ margin:0; font-size:.86rem; line-height:1.55; color:var(--ldhq-muted); }\n\n\/* Skip CTA is quieter \u2014 we are not asking anyone to buy *\/\n.ldhq-cta.is-skip{ background:var(--ldhq-surface); box-shadow:none; }\n\n\/* --------------------------------------------------------------------------\n   9. BUTTONS\n   -------------------------------------------------------------------------- *\/\n\n.entry-content .wp-block-button__link,\n.wp-element-button{\n  background:var(--global-palette1);\n  border:1px solid var(--global-palette1);\n  color:#fff;\n  border-radius:var(--ldhq-r);\n  font-size:.99rem; font-weight:600; letter-spacing:.005em;\n  padding:.72em 1.35em;\n  text-decoration:none;\n  transition:background-color .15s ease, border-color .15s ease;\n}\n.entry-content .wp-block-button__link:hover,\n.wp-element-button:hover{ background:var(--global-palette2); border-color:var(--global-palette2); color:#fff; }\n\n.entry-content .is-style-outline .wp-block-button__link{\n  background:transparent; color:var(--global-palette1); border:1px solid var(--ldhq-line);\n}\n.entry-content .is-style-outline .wp-block-button__link:hover{\n  background:var(--ldhq-surface); border-color:var(--global-palette1); color:var(--global-palette1);\n}\n.ldhq-cta.is-skip .wp-block-button__link{\n  background:transparent; color:var(--global-palette5);\n  border:1px solid var(--ldhq-line); font-weight:600;\n}\n.ldhq-cta.is-skip .wp-block-button__link:hover{\n  background:var(--ldhq-paper); border-color:var(--global-palette6); color:var(--ldhq-ink);\n}\n\n\/* --------------------------------------------------------------------------\n   10. HOMEPAGE\n   -------------------------------------------------------------------------- *\/\n\n.ldhq-hero{\n  padding:2.6rem 0 2.2rem;\n  margin-bottom:2.4rem;\n  border-bottom:1px solid var(--ldhq-line);\n}\n.ldhq-hero h1{\n  font-size:clamp(2rem,4.6vw,3.05rem);\n  line-height:1.13; letter-spacing:-.028em; font-weight:700;\n  margin:0 0 .45em; max-width:26ch; color:var(--ldhq-ink);\n}\n.ldhq-hero p{\n  font-size:1.16rem; line-height:1.62; color:var(--global-palette6);\n  max-width:60ch; margin-bottom:1.7em;\n}\n.ldhq-hero .wp-block-buttons{ gap:.7rem; }\n\n\/* Card grids \u2014 \"how this is different\" and \"start here\" *\/\n.entry-content .wp-block-columns{ gap:1.4rem; margin:1.6rem 0 2.6rem; }\n.entry-content .wp-block-column{\n  background:var(--ldhq-paper);\n  border:1px solid var(--ldhq-line);\n  border-radius:var(--ldhq-r-lg);\n  padding:1.3rem 1.4rem;\n}\n.entry-content .wp-block-column > *:first-child{ margin-top:0; }\n.entry-content .wp-block-column h3{\n  margin:0 0 .5rem; font-size:1.09rem; line-height:1.35; border-top:0; padding-top:0;\n}\n.entry-content .wp-block-column h3 a{ text-decoration:none; }\n.entry-content .wp-block-column h3 a:hover{ text-decoration:underline; }\n.entry-content .wp-block-column p{ margin:0; font-size:.965rem; color:var(--global-palette6); }\n@media (max-width:781px){\n  .entry-content .wp-block-columns{ gap:1rem; }\n}\n\n\/* Disclosure strip *\/\n.ldhq-disclose{\n  margin:3rem 0 0;\n  padding:1.05rem 1.25rem;\n  background:var(--ldhq-surface);\n  border:1px solid var(--ldhq-line);\n  border-radius:var(--ldhq-r);\n}\n.ldhq-disclose p{ margin:0; font-size:.885rem; line-height:1.6; color:var(--ldhq-muted); max-width:none; }\n\n\/* --------------------------------------------------------------------------\n   11. SECTION ARCHIVE LISTINGS (\/reviews\/, \/best\/, \/guides\/)\n   -------------------------------------------------------------------------- *\/\n\n.wp-block-query .wp-block-post-template{ margin:1.6rem 0 0; padding:0; list-style:none; }\n.wp-block-query .wp-block-post-template > li{\n  border-top:1px solid var(--ldhq-line);\n  padding:1.35rem 0;\n  margin:0;\n}\n.wp-block-query .wp-block-post-title{\n  font-family:var(--global-heading-font-family);\n  font-size:1.2rem; line-height:1.35; font-weight:700; margin:0 0 .35rem;\n}\n.wp-block-query .wp-block-post-title a{ color:var(--ldhq-ink); text-decoration:none; }\n.wp-block-query .wp-block-post-title a:hover{ color:var(--global-palette1); text-decoration:underline; }\n.wp-block-query .wp-block-post-excerpt{\n  margin:0; font-size:.975rem; line-height:1.6; color:var(--global-palette6); max-width:var(--ldhq-measure);\n}\n.wp-block-query .wp-block-post-excerpt__more-text{ display:none; }\n\n\/* --------------------------------------------------------------------------\n   12. FOOTER\n   -------------------------------------------------------------------------- *\/\n\n.site-footer{\n  border-top:1px solid var(--ldhq-line);\n  background:var(--ldhq-surface);\n  margin-top:4rem;\n}\n.site-footer,\n.site-footer p,\n.site-footer li{ font-size:.9rem; color:var(--ldhq-muted); line-height:1.65; }\n.site-footer a{ color:var(--global-palette5); text-decoration:none; }\n.site-footer a:hover{ color:var(--global-palette1); text-decoration:underline; }\n.site-footer .widget-title,\n.site-footer h2, .site-footer h3{\n  font-family:var(--global-body-font-family);\n  font-size:.79rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;\n  color:var(--ldhq-ink); margin-bottom:.7rem;\n}\n.site-footer .menu{ list-style:none; margin:0; padding:0; }\n.site-footer .menu li{ margin-bottom:.35rem; }\n\n\/* --------------------------------------------------------------------------\n   13. ACCESSIBILITY\n   -------------------------------------------------------------------------- *\/\n\na:focus-visible,\nbutton:focus-visible,\ninput:focus-visible,\ntextarea:focus-visible,\nselect:focus-visible,\n[tabindex]:focus-visible{\n  outline:2px solid var(--global-palette1);\n  outline-offset:2px;\n  border-radius:2px;\n}\n\/* Never remove focus without replacing it *\/\na:focus:not(:focus-visible){ outline:none; }\n\n\/* Tap targets on small screens *\/\n@media (max-width:781px){\n  .header-navigation .menu > li > a,\n  .site-footer .menu li a{ display:block; padding-block:.6rem; min-height:44px; line-height:1.6; }\n  .entry-content .wp-block-button__link{ min-height:44px; display:inline-flex; align-items:center; }\n}\n\n\/* Skip link *\/\n.skip-link:focus{\n  background:var(--global-palette1); color:#fff;\n  padding:.7rem 1.1rem; border-radius:0 0 var(--ldhq-r) 0; z-index:1000;\n}\n\n@media (prefers-reduced-motion:reduce){\n  *,*::before,*::after{\n    animation-duration:.001ms !important; animation-iteration-count:1 !important;\n    transition-duration:.001ms !important; scroll-behavior:auto !important;\n  }\n}\n\n\/* --------------------------------------------------------------------------\n   14. MOBILE REFINEMENTS (down to 360px)\n   -------------------------------------------------------------------------- *\/\n\n@media (max-width:600px){\n  .ldhq-hero{ padding:1.9rem 0 1.6rem; margin-bottom:1.8rem; }\n  .ldhq-hero h1{ max-width:none; }\n  .ldhq-hero p{ font-size:1.06rem; }\n  .entry-content .ldhq-verdict{ padding:1.1rem 1.15rem; border-radius:var(--ldhq-r); }\n  .entry-content .ldhq-verdict p:first-child{ font-size:1.16rem; }\n  .ldhq-cta{ padding:1.05rem 1.1rem; border-radius:var(--ldhq-r); }\n  .entry-content .wp-block-column{ padding:1.05rem 1.15rem; }\n  .entry-content h2{ font-size:1.42rem; margin-top:2.2em; }\n  .entry-content h3{ font-size:1.15rem; }\n  .entry-content .wp-block-image figcaption{ font-size:.83rem; }\n}\n\n\/* --------------------------------------------------------------------------\n   15. PRINT\n   Reviews get printed and emailed around. Make that version useful:\n   drop the chrome, keep the evidence, expose link targets.\n   -------------------------------------------------------------------------- *\/\n\n@media print{\n  .site-header, .site-footer, .ldhq-cta, .header-navigation,\n  #wpadminbar, .skip-link{ display:none !important; }\n  body{ font-size:11pt; color:#000; background:#fff; }\n  .entry-content{ font-size:11pt; line-height:1.5; }\n  .entry-content > *{ max-width:none; }\n  .entry-content h2{ border-top:1px solid #999; page-break-after:avoid; }\n  .entry-content h3, .entry-content h4{ page-break-after:avoid; }\n  .entry-content .ldhq-verdict{\n    background:#fff; border:1px solid #000; border-left-width:3px; page-break-inside:avoid;\n  }\n  .entry-content .wp-block-table{ page-break-inside:avoid; border:1px solid #000; }\n  .entry-content .wp-block-table th{ background:#eee !important; -webkit-print-color-adjust:exact; }\n  .entry-content .wp-block-image{ page-break-inside:avoid; }\n  .entry-content a{ color:#000; text-decoration:underline; }\n  .entry-content a[href^=\"http\"]::after{\n    content:\" (\" attr(href) \")\"; font-size:9pt; color:#444; word-break:break-all;\n  }\n  .ldhq-badge{ border:1px solid #000; color:#000 !important; background:#fff !important; }\n}\n\n\/* --------------------------------------------------------------------------\n   16. PAGE TITLE HERO (Kadence .entry-hero)\n   Kadence renders the page H1 in a hero band above the content. On the\n   homepage that duplicates the wordmark AND creates a second H1, so it is\n   removed there \u2014 the hero block in the content supplies the H1. Everywhere\n   else it IS the article headline, so it is restyled as a masthead: white,\n   left-aligned, hairline rule, no grey slab.\n   -------------------------------------------------------------------------- *\/\n\n.home .entry-hero.page-hero-section{ display:none; }\n\n.entry-hero.page-hero-section{\n  background-color:var(--ldhq-paper) !important;\n  border-bottom:1px solid var(--ldhq-line);\n  padding:0;\n}\n.entry-hero .hero-section-overlay{ display:none; }\n.entry-hero .entry-hero-container-inner{\n  background:transparent !important;\n  min-height:0 !important;\n}\n.entry-hero .hero-container{ padding-block:2.5rem 1.9rem; }\n.entry-hero .entry-header{ text-align:left !important; }\n.entry-hero .entry-title{\n  font-family:var(--global-heading-font-family);\n  font-size:clamp(1.85rem,3.8vw,2.65rem);\n  line-height:1.16;\n  letter-spacing:-.025em;\n  font-weight:700;\n  color:var(--ldhq-ink);\n  margin:0;\n  max-width:24ch;\n  text-wrap:balance;\n}\n.entry-hero .kadence-breadcrumbs{\n  font-size:.83rem; color:var(--ldhq-muted); margin-bottom:.75rem;\n}\n.entry-hero .kadence-breadcrumbs a{ color:var(--ldhq-muted); text-decoration:none; }\n.entry-hero .kadence-breadcrumbs a:hover{ color:var(--global-palette1); text-decoration:underline; }\n\n\/* Content sits closer to its headline than Kadence's default *\/\n.content-area{ padding-top:2.2rem; }\n.home .content-area{ padding-top:0; }\n\n@media (max-width:600px){\n  .entry-hero .hero-container{ padding-block:1.7rem 1.3rem; }\n  .entry-hero .entry-title{ max-width:none; }\n  .content-area{ padding-top:1.5rem; }\n}\n\n\/* --------------------------------------------------------------------------\n   17. RULE COLLISIONS\n   The hero already ends in a rule, h2 opens with one, and a block separator\n   can sit between them. Three hairlines in a row reads as a mistake, so\n   adjacent rules collapse to one.\n   -------------------------------------------------------------------------- *\/\n\n.ldhq-hero + .wp-block-separator,\n.ldhq-hero + hr{ display:none; }\n\n.entry-content .wp-block-separator + h2,\n.entry-content hr + h2{ border-top:0; padding-top:0; margin-top:.6em; }\n\n.entry-content > h2:first-child{ border-top:0; padding-top:0; margin-top:0; }\n\n\/* Separator matches the reading measure so it lines up with the text above it *\/\n.entry-content .wp-block-separator{ width:100%; }\n\n\/* Kadence centres the hero header from a couple of levels up; override both *\/\n.entry-hero-container-inner,\n.entry-hero .hero-container,\n.entry-hero .entry-header,\n.entry-hero .entry-header .entry-title,\n.entry-hero .kadence-breadcrumbs{ text-align:left !important; }\n.entry-hero .entry-header{ margin-inline:0 !important; max-width:none !important; }\n\n.content-area{ padding-top:1.6rem; }\n@media (max-width:600px){ .content-area{ padding-top:1.2rem; } }\n\n\n\/* ==========================================================================\n   19. RICHER SURFACES\n   ========================================================================== *\/\n\n\/* Cards lift very slightly on hover \u2014 enough to read as interactive,\n   not enough to look like a marketing page. *\/\n.entry-content .wp-block-column{\n  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;\n}\n.entry-content .wp-block-column:hover{\n  border-color:#cfd6de;\n  box-shadow:var(--ldhq-raise);\n  transform:translateY(-1px);\n}\n\/* A hairline accent along the top of each card *\/\n.entry-content .wp-block-columns .wp-block-column{\n  background-image:linear-gradient(to right,var(--global-palette1),var(--global-palette1));\n  background-repeat:no-repeat;\n  background-size:38px 2px;\n  background-position:1.4rem 0;\n}\n\n\/* Stat band \u2014 three numbers that carry the site's whole promise *\/\n.ldhq-stats{\n  display:flex; flex-wrap:wrap; gap:0;\n  margin:2.4rem 0 2.8rem;\n  border:1px solid var(--ldhq-line);\n  border-radius:var(--ldhq-r-lg);\n  background:var(--ldhq-surface);\n  overflow:hidden;\n}\n.ldhq-stats > .wp-block-column,\n.ldhq-stats .wp-block-column{\n  flex:1 1 0; min-width:160px;\n  background:transparent !important; border:0 !important; border-radius:0 !important;\n  background-image:none !important;\n  padding:1.35rem 1.5rem;\n  border-right:1px solid var(--ldhq-line) !important;\n}\n.ldhq-stats .wp-block-column:last-child{ border-right:0 !important; }\n.ldhq-stats .wp-block-column:hover{ transform:none; box-shadow:none; border-color:var(--ldhq-line); }\n.ldhq-stats h3{\n  font-family:var(--global-heading-font-family);\n  font-size:2.05rem !important; line-height:1.05; font-weight:700;\n  color:var(--global-palette1); margin:0 0 .2rem !important; letter-spacing:-.02em;\n}\n.ldhq-stats p{ font-size:.9rem !important; line-height:1.5; color:var(--ldhq-muted) !important; }\n@media (max-width:600px){\n  .ldhq-stats{ flex-direction:column; }\n  .ldhq-stats .wp-block-column{ border-right:0 !important; border-bottom:1px solid var(--ldhq-line) !important; }\n  .ldhq-stats .wp-block-column:last-child{ border-bottom:0 !important; }\n  .ldhq-stats h3{ font-size:1.75rem !important; }\n}\n\n\/* Pull quote \/ callout for guides *\/\n.ldhq-note{\n  margin:2rem 0; padding:1.15rem 1.35rem;\n  border:1px solid var(--ldhq-line); border-left:3px solid var(--global-palette6);\n  border-radius:var(--ldhq-r); background:var(--ldhq-paper);\n}\n.ldhq-note p{ margin:0; font-size:.99rem; color:var(--ldhq-body); }\n\n\/* Section index listings get a numbered rail *\/\n.wp-block-query .wp-block-post-template{ counter-reset:ldhq; }\n.wp-block-query .wp-block-post-template > li{ counter-increment:ldhq; position:relative; padding-left:2.6rem; }\n.wp-block-query .wp-block-post-template > li::before{\n  content:counter(ldhq,decimal-leading-zero);\n  position:absolute; left:0; top:1.5rem;\n  font-family:var(--ldhq-mono); font-size:.78rem; letter-spacing:.04em;\n  color:var(--ldhq-muted);\n}\n@media (max-width:600px){\n  .wp-block-query .wp-block-post-template > li{ padding-left:2.1rem; }\n}\n\n\/* Screenshot figures get a soft mat so they read as evidence exhibits *\/\n.entry-content .wp-block-image{\n  background:var(--ldhq-surface);\n  border-radius:var(--ldhq-r-lg);\n  padding:.75rem;\n}\n.entry-content .wp-block-image img{ border-radius:6px; }\n.entry-content .wp-block-image figcaption{ margin:.75rem .25rem .15rem; }\n\n\/* CTA gains a left accent so it reads as an action, not a note *\/\n.ldhq-cta{ border-left:3px solid var(--global-palette1); }\n.ldhq-cta.is-skip{ border-left-color:var(--global-palette6); }\n\n\/* --------------------------------------------------------------------------\n   20. HERO CONTAINER ALIGNMENT\n   Kadence renders the page-title hero in a narrower centred container than\n   the article body, which made headlines sit indented relative to the\n   wordmark and the text below. Align both to the same measure.\n   -------------------------------------------------------------------------- *\/\n\n.entry-hero .hero-container{\n  max-width:var(--global-content-width) !important;\n  width:100% !important;\n  margin-inline:auto !important;\n  padding-inline:var(--global-content-edge-padding,1.5rem) !important;\n}\n.entry-hero .entry-header{ width:100%; }\n.entry-hero .entry-title{ max-width:30ch; }\n\n\/* Banner artwork needs the hero tall enough to show it *\/\n.entry-hero.page-hero-section{ min-height:0; }\n@media (min-width:821px){\n  .entry-hero .hero-container{ min-height:190px; display:flex; flex-direction:column; justify-content:center; }\n}\n\n\/* Headline must sit on the same left edge as the body text below it *\/\n.entry-hero .entry-header,\n.entry-hero .entry-header > *{ padding-inline:0 !important; margin-inline:0 !important; }\n.entry-hero .kadence-breadcrumbs{ padding-inline:0 !important; }\n\n\/* ==========================================================================\n   18. HERO IMAGE \u2014 one graphic, used everywhere\n   A single hand-drawn SVG (about 2KB, inlined, no HTTP request) carries the\n   site's whole argument: bars of unequal height measured against a dashed\n   break-even threshold. Using one image on every hero rather than a\n   different picture per section is what makes the site feel like one\n   publication instead of a collection of landing pages.\n   ========================================================================== *\/\n\n.home .ldhq-hero,\n.entry-hero.page-hero-section{\n  background-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%20520%22%20width%3D%221200%22%20height%3D%22520%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22fade%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%220%22%3E%3Cstop%20offset%3D%220.30%22%20stop-color%3D%22%23000000%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%220.62%22%20stop-color%3D%22%23ffffff%22%20stop-opacity%3D%221%22%2F%3E%3C%2FlinearGradient%3E%3Cmask%20id%3D%22m%22%3E%3Crect%20width%3D%221200%22%20height%3D%22520%22%20fill%3D%22url(%23fade)%22%2F%3E%3C%2Fmask%3E%3C%2Fdefs%3E%3Cg%20mask%3D%22url(%23m)%22%3E%3Cg%20stroke%3D%22%2317395a%22%20stroke-opacity%3D%220.10%22%20stroke-width%3D%221%22%3E%3Cpath%20d%3D%22M0%20130H1200M0%20260H1200M0%20390H1200%22%2F%3E%3Cpath%20d%3D%22M760%200V520M880%200V520M1000%200V520M1120%200V520%22%2F%3E%3C%2Fg%3E%3Cg%3E%3Crect%20x%3D%22720%22%20y%3D%22300%22%20width%3D%2256%22%20height%3D%22130%22%20fill%3D%22%2317395a%22%20opacity%3D%220.12%22%2F%3E%3Crect%20x%3D%22800%22%20y%3D%22240%22%20width%3D%2256%22%20height%3D%22190%22%20fill%3D%22%2317395a%22%20opacity%3D%220.18%22%2F%3E%3Crect%20x%3D%22880%22%20y%3D%22170%22%20width%3D%2256%22%20height%3D%22260%22%20fill%3D%22%2317395a%22%20opacity%3D%220.26%22%2F%3E%3Crect%20x%3D%22960%22%20y%3D%22270%22%20width%3D%2256%22%20height%3D%22160%22%20fill%3D%22%2312674a%22%20opacity%3D%220.30%22%2F%3E%3Crect%20x%3D%221040%22%20y%3D%22330%22%20width%3D%2256%22%20height%3D%22100%22%20fill%3D%22%238a3b3b%22%20opacity%3D%220.26%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M700%20430H1130%22%20stroke%3D%22%2317395a%22%20stroke-opacity%3D%220.30%22%20stroke-width%3D%221.5%22%2F%3E%3Cpath%20d%3D%22M700%20262H1130%22%20stroke%3D%22%2317395a%22%20stroke-opacity%3D%220.38%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%225%205%22%2F%3E%3Ccircle%20cx%3D%221130%22%20cy%3D%22262%22%20r%3D%223.5%22%20fill%3D%22%2317395a%22%20fill-opacity%3D%220.5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\") !important;\n  background-repeat:no-repeat !important;\n  background-position:right center !important;\n}\n\n\/* Homepage: the image gets room to breathe *\/\n.home .ldhq-hero{\n  position:relative;\n  padding:3.4rem 0 2.8rem;\n  border-bottom:1px solid var(--ldhq-line);\n  background-size:auto 100% !important;\n}\n.home .ldhq-hero > *{ position:relative; z-index:1; }\n\n\/* Every other page: same image, quieter, sitting behind the headline *\/\n.entry-hero.page-hero-section{\n  background-size:auto 150% !important;\n  background-position:right -30px center !important;\n}\n\n@media (max-width:1100px){\n  .home .ldhq-hero{ background-size:auto 80% !important; background-position:right -70px center !important; }\n  .entry-hero.page-hero-section{ background-size:auto 120% !important; }\n}\n@media (max-width:820px){\n  .home .ldhq-hero,\n  .entry-hero.page-hero-section{ background-image:none !important; }\n  .home .ldhq-hero{ padding:2.1rem 0 1.7rem; }\n}\n\n\n\/* --------------------------------------------------------------------------\n   21. LOGO\n   The wordmark is now an image, so the text styling in section 2 no longer\n   applies. Constrain it and keep the header compact.\n   -------------------------------------------------------------------------- *\/\n\n.site-branding .custom-logo-link img,\n.site-branding img.custom-logo{\n  max-height:52px; width:auto; height:auto; display:block;\n}\n@media (max-width:781px){\n  .site-branding .custom-logo-link img,\n  .site-branding img.custom-logo{ max-height:40px; }\n}\n.site-branding{ padding-block:.35rem; }\n\/* If both logo and site title render, hide the duplicate text title *\/\n.site-branding .custom-logo-link + .site-title-wrap .site-title{ display:none; }\n\n\/* Hero image sits further right on inner pages so it never crowds the headline *\/\n.entry-hero.page-hero-section{\n  background-size:auto 118% !important;\n  background-position:right -80px center !important;\n}\n@media (max-width:1240px){\n  .entry-hero.page-hero-section{ background-size:auto 105% !important; background-position:right -140px center !important; }\n}\n\n\/* The logo carries the name, so the text title beside it is a duplicate *\/\n.site-branding .site-title,\n.site-branding .site-title-wrap .site-title{ display:none !important; }\n.site-branding .custom-logo-link{ display:block; }\n\n\/* Final hero image placement: the whole graphic sits inside the band, with\n   the break-even dot visible at its right edge rather than cropped off. *\/\n.entry-hero.page-hero-section{\n  background-size:auto 96% !important;\n  background-position:right 1.5rem center !important;\n}\n@media (max-width:1240px){\n  .entry-hero.page-hero-section{ background-size:auto 86% !important; background-position:right -20px center !important; }\n}\n.home .ldhq-hero{ background-position:right 0 center !important; }\n\n\n\/* ==========================================================================\n   22. HERO \u2014 alignment, density, and page identity\n   Three problems this fixes:\n   (a) Kadence renders .entry-header as a centred flex container, which\n       overrode every text-align rule and pushed short titles to the middle.\n   (b) The band was 275px tall for a 52px headline \u2014 mostly dead space.\n   (c) Every page looked identical above the fold. Each page type now\n       announces itself with an eyebrow label, so a reader landing from\n       search immediately knows what kind of page they are on.\n   ========================================================================== *\/\n\n.entry-hero .entry-header{\n  display:block !important;\n  align-items:flex-start !important;\n  justify-content:flex-start !important;\n  text-align:left !important;\n}\n\n@media (min-width:821px){\n  .entry-hero .hero-container{ min-height:0 !important; display:block !important; }\n  .entry-hero .hero-container{ padding-block:2.1rem 1.9rem !important; }\n}\n@media (max-width:820px){\n  .entry-hero .hero-container{ padding-block:1.5rem 1.3rem !important; }\n}\n.entry-hero .entry-title{ max-width:22ch; }\n\n\/* ---- Eyebrow labels ---- *\/\n.entry-hero .entry-title::before{\n  display:block;\n  font-family:var(--global-body-font-family);\n  font-size:.72rem;\n  font-weight:700;\n  letter-spacing:.14em;\n  text-transform:uppercase;\n  color:var(--global-palette1);\n  margin-bottom:.55rem;\n}\n.page-id-32 .entry-hero .entry-title::before,\n.page-id-33 .entry-hero .entry-title::before,\n.page-id-38 .entry-hero .entry-title::before,\n.page-id-35 .entry-hero .entry-title::before,\n.page-id-40 .entry-hero .entry-title::before,\n.page-id-45 .entry-hero .entry-title::before,\n.page-id-44 .entry-hero .entry-title::before,\n.page-id-37 .entry-hero .entry-title::before,\n.page-id-31 .entry-hero .entry-title::before,\n.page-id-36 .entry-hero .entry-title::before,\n.page-id-41 .entry-hero .entry-title::before,\n.page-id-34 .entry-hero .entry-title::before,\n.page-id-39 .entry-hero .entry-title::before,\n.page-id-43 .entry-hero .entry-title::before,\n.page-id-42 .entry-hero .entry-title::before{ content:\"Review\"; }\n.page-id-30 .entry-hero .entry-title::before,\n.page-id-29 .entry-hero .entry-title::before{ content:\"Shortlist\"; }\n.page-id-28 .entry-hero .entry-title::before,\n.page-id-27 .entry-hero .entry-title::before,\n.page-id-26 .entry-hero .entry-title::before{ content:\"Comparison\"; }\n.page-id-25 .entry-hero .entry-title::before,\n.page-id-24 .entry-hero .entry-title::before{ content:\"Guide\"; }\n.page-id-14 .entry-hero .entry-title::before,\n.page-id-15 .entry-hero .entry-title::before,\n.page-id-16 .entry-hero .entry-title::before,\n.page-id-17 .entry-hero .entry-title::before{ content:\"Index\"; }\n.page-id-21 .entry-hero .entry-title::before,\n.page-id-20 .entry-hero .entry-title::before,\n.page-id-18 .entry-hero .entry-title::before,\n.page-id-22 .entry-hero .entry-title::before,\n.page-id-19 .entry-hero .entry-title::before,\n.page-id-3 .entry-hero .entry-title::before{ content:\"About this site\"; color:var(--ldhq-muted); }\n\n\/* ==========================================================================\n   23. SECTION INDEX PAGES\n   These were a thin numbered list on a mostly empty page. They are now a\n   card grid \u2014 the same treatment as the homepage cards, so the site reads\n   as one system.\n   ========================================================================== *\/\n\n.page-id-14 .wp-block-query .wp-block-post-template,\n.page-id-15 .wp-block-query .wp-block-post-template,\n.page-id-16 .wp-block-query .wp-block-post-template,\n.page-id-17 .wp-block-query .wp-block-post-template{\n  display:grid !important;\n  grid-template-columns:repeat(2,minmax(0,1fr));\n  gap:1.1rem;\n  margin:1.8rem 0 0 !important;\n  padding:0;\n  list-style:none;\n  counter-reset:ldhq;\n}\n.page-id-14 .wp-block-query .wp-block-post-template > li,\n.page-id-15 .wp-block-query .wp-block-post-template > li,\n.page-id-16 .wp-block-query .wp-block-post-template > li,\n.page-id-17 .wp-block-query .wp-block-post-template > li{\n  counter-increment:ldhq;\n  position:relative;\n  border:1px solid var(--ldhq-line) !important;\n  border-top:1px solid var(--ldhq-line) !important;\n  border-radius:var(--ldhq-r-lg);\n  background:var(--ldhq-paper);\n  padding:1.25rem 1.35rem 1.3rem !important;\n  margin:0 !important;\n  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;\n  background-image:linear-gradient(to right,var(--global-palette1),var(--global-palette1));\n  background-repeat:no-repeat;\n  background-size:34px 2px;\n  background-position:1.35rem 0;\n}\n.page-id-14 .wp-block-query .wp-block-post-template > li:hover,\n.page-id-15 .wp-block-query .wp-block-post-template > li:hover,\n.page-id-16 .wp-block-query .wp-block-post-template > li:hover,\n.page-id-17 .wp-block-query .wp-block-post-template > li:hover{\n  border-color:#cfd6de !important;\n  box-shadow:var(--ldhq-raise);\n  transform:translateY(-1px);\n}\n.page-id-14 .wp-block-query .wp-block-post-template > li::before,\n.page-id-15 .wp-block-query .wp-block-post-template > li::before,\n.page-id-16 .wp-block-query .wp-block-post-template > li::before,\n.page-id-17 .wp-block-query .wp-block-post-template > li::before{\n  content:counter(ldhq,decimal-leading-zero);\n  position:static;\n  display:block;\n  font-family:var(--ldhq-mono);\n  font-size:.72rem;\n  letter-spacing:.08em;\n  color:var(--ldhq-muted);\n  margin-bottom:.5rem;\n}\n.page-id-14 .wp-block-query .wp-block-post-title,\n.page-id-15 .wp-block-query .wp-block-post-title,\n.page-id-16 .wp-block-query .wp-block-post-title,\n.page-id-17 .wp-block-query .wp-block-post-title{\n  font-size:1.1rem !important;\n  line-height:1.32;\n  margin:0 0 .4rem !important;\n}\n.page-id-14 .wp-block-query .wp-block-post-excerpt,\n.page-id-15 .wp-block-query .wp-block-post-excerpt,\n.page-id-16 .wp-block-query .wp-block-post-excerpt,\n.page-id-17 .wp-block-query .wp-block-post-excerpt{\n  font-size:.94rem !important;\n  line-height:1.55;\n  margin:0 !important;\n}\n@media (max-width:900px){\n.page-id-14 .wp-block-query .wp-block-post-template,\n.page-id-15 .wp-block-query .wp-block-post-template,\n.page-id-16 .wp-block-query .wp-block-post-template,\n.page-id-17 .wp-block-query .wp-block-post-template{ grid-template-columns:1fr; }\n}\n\n\/* Index pages: intro paragraph reads as a standfirst, not body copy *\/\n.page-id-14 .entry-content > p:first-of-type,\n.page-id-15 .entry-content > p:first-of-type,\n.page-id-16 .entry-content > p:first-of-type,\n.page-id-17 .entry-content > p:first-of-type{\n  font-size:1.14rem;\n  line-height:1.6;\n  color:var(--global-palette6);\n  max-width:62ch;\n  margin-bottom:.4rem;\n}\n\n\/* --------------------------------------------------------------------------\n   24. VERTICAL DENSITY\n   Two Kadence defaults were producing a lot of dead space above the fold:\n   a 200px min-height on the hero header, and an 85px margin on the content\n   area. Measured, not guessed.\n   -------------------------------------------------------------------------- *\/\n\n.entry-hero .entry-header{ min-height:0 !important; }\n.entry-hero .hero-container{ padding-block:2.2rem 2rem !important; }\n\n.content-area{ margin-top:2.4rem !important; margin-bottom:3.4rem !important; padding-top:0 !important; }\n.home .content-area{ margin-top:0 !important; }\n.entry-content-wrap{ padding-block:0 !important; }\n\n@media (max-width:820px){\n  .entry-hero .hero-container{ padding-block:1.6rem 1.4rem !important; }\n  .content-area{ margin-top:1.6rem !important; margin-bottom:2.4rem !important; }\n}\n\n\/* Index pages: the standfirst sits right under the rule, then the grid *\/\n.wp-block-query{ margin-top:1.4rem; }\n\n\n\/* ==========================================================================\n   25. HERO VARIANTS \u2014 a different treatment per page type\n   Colour here is information, not decoration. A review's hero is tinted by\n   its verdict, so a reader arriving from search sees the answer before they\n   read a word: green for Buy, amber for Consider, oxblood for Skip. The two\n   shortlists get an inverted navy hero because they are the destination\n   pages the whole site points at. Guides, comparisons, indexes and the\n   about-pages each get their own tint so no two page types look alike.\n   ========================================================================== *\/\n\n\/* ---- Base: every hero keeps a top accent rule in its own colour ---- *\/\n.entry-hero.page-hero-section{ position:relative; }\n.entry-hero.page-hero-section::before{\n  content:\"\"; position:absolute; inset:0 0 auto 0; height:3px;\n  background:var(--global-palette1);\n}\n\n\/* ---- REVIEWS: tinted by verdict ---- *\/\n.page-id-41.page .entry-hero.page-hero-section,\n.page-id-37.page .entry-hero.page-hero-section,\n.page-id-44.page .entry-hero.page-hero-section,\n.page-id-35.page .entry-hero.page-hero-section,\n.page-id-36.page .entry-hero.page-hero-section,\n.page-id-34.page .entry-hero.page-hero-section{\n  background-color:#eef6f1 !important;\n  border-bottom-color:var(--ldhq-buy-line);\n}\n.page-id-41.page .entry-hero.page-hero-section::before,\n.page-id-37.page .entry-hero.page-hero-section::before,\n.page-id-44.page .entry-hero.page-hero-section::before,\n.page-id-35.page .entry-hero.page-hero-section::before,\n.page-id-36.page .entry-hero.page-hero-section::before,\n.page-id-34.page .entry-hero.page-hero-section::before{ background:var(--ldhq-buy); }\n.page-id-41.page .entry-hero .entry-title::before,\n.page-id-37.page .entry-hero .entry-title::before,\n.page-id-44.page .entry-hero .entry-title::before,\n.page-id-35.page .entry-hero .entry-title::before,\n.page-id-36.page .entry-hero .entry-title::before,\n.page-id-34.page .entry-hero .entry-title::before{ content:\"Verdict: Buy\"; color:var(--ldhq-buy); }\n\n.page-id-45.page .entry-hero.page-hero-section,\n.page-id-33.page .entry-hero.page-hero-section,\n.page-id-38.page .entry-hero.page-hero-section,\n.page-id-31.page .entry-hero.page-hero-section,\n.page-id-43.page .entry-hero.page-hero-section,\n.page-id-40.page .entry-hero.page-hero-section,\n.page-id-39.page .entry-hero.page-hero-section{\n  background-color:#fdf7ec !important;\n  border-bottom-color:var(--ldhq-consider-line);\n}\n.page-id-45.page .entry-hero.page-hero-section::before,\n.page-id-33.page .entry-hero.page-hero-section::before,\n.page-id-38.page .entry-hero.page-hero-section::before,\n.page-id-31.page .entry-hero.page-hero-section::before,\n.page-id-43.page .entry-hero.page-hero-section::before,\n.page-id-40.page .entry-hero.page-hero-section::before,\n.page-id-39.page .entry-hero.page-hero-section::before{ background:var(--ldhq-consider); }\n.page-id-45.page .entry-hero .entry-title::before,\n.page-id-33.page .entry-hero .entry-title::before,\n.page-id-38.page .entry-hero .entry-title::before,\n.page-id-31.page .entry-hero .entry-title::before,\n.page-id-43.page .entry-hero .entry-title::before,\n.page-id-40.page .entry-hero .entry-title::before,\n.page-id-39.page .entry-hero .entry-title::before{ content:\"Verdict: Consider\"; color:var(--ldhq-consider); }\n\n.page-id-32.page .entry-hero.page-hero-section,\n.page-id-42.page .entry-hero.page-hero-section{\n  background-color:#faf1f1 !important;\n  border-bottom-color:var(--ldhq-skip-line);\n}\n.page-id-32.page .entry-hero.page-hero-section::before,\n.page-id-42.page .entry-hero.page-hero-section::before{ background:var(--ldhq-skip); }\n.page-id-32.page .entry-hero .entry-title::before,\n.page-id-42.page .entry-hero .entry-title::before{ content:\"Verdict: Skip\"; color:var(--ldhq-skip); }\n\n\/* ---- SHORTLISTS: inverted navy, the boldest surface on the site ---- *\/\n.page-id-29.page .entry-hero.page-hero-section,\n.page-id-30.page .entry-hero.page-hero-section{\n  background-color:#12283d !important;\n  background-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%20520%22%20width%3D%221200%22%20height%3D%22520%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22fade%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%220%22%3E%3Cstop%20offset%3D%220.30%22%20stop-color%3D%22%23000000%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%220.62%22%20stop-color%3D%22%23ffffff%22%20stop-opacity%3D%221%22%2F%3E%3C%2FlinearGradient%3E%3Cmask%20id%3D%22m%22%3E%3Crect%20width%3D%221200%22%20height%3D%22520%22%20fill%3D%22url(%23fade)%22%2F%3E%3C%2Fmask%3E%3C%2Fdefs%3E%3Cg%20mask%3D%22url(%23m)%22%3E%3Cg%20stroke%3D%22%23ffffff%22%20stroke-opacity%3D%220.14%22%20stroke-width%3D%221%22%3E%3Cpath%20d%3D%22M0%20130H1200M0%20260H1200M0%20390H1200%22%2F%3E%3Cpath%20d%3D%22M760%200V520M880%200V520M1000%200V520M1120%200V520%22%2F%3E%3C%2Fg%3E%3Cg%3E%3Crect%20x%3D%22720%22%20y%3D%22300%22%20width%3D%2256%22%20height%3D%22130%22%20fill%3D%22%23ffffff%22%20opacity%3D%220.18%22%2F%3E%3Crect%20x%3D%22800%22%20y%3D%22240%22%20width%3D%2256%22%20height%3D%22190%22%20fill%3D%22%23ffffff%22%20opacity%3D%220.28%22%2F%3E%3Crect%20x%3D%22880%22%20y%3D%22170%22%20width%3D%2256%22%20height%3D%22260%22%20fill%3D%22%23ffffff%22%20opacity%3D%220.45%22%2F%3E%3Crect%20x%3D%22960%22%20y%3D%22270%22%20width%3D%2256%22%20height%3D%22160%22%20fill%3D%22%236fcfa6%22%20opacity%3D%220.62%22%2F%3E%3Crect%20x%3D%221040%22%20y%3D%22330%22%20width%3D%2256%22%20height%3D%22100%22%20fill%3D%22%23e0a3a3%22%20opacity%3D%220.55%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M700%20430H1130%22%20stroke%3D%22%23ffffff%22%20stroke-opacity%3D%220.42%22%20stroke-width%3D%221.5%22%2F%3E%3Cpath%20d%3D%22M700%20262H1130%22%20stroke%3D%22%23ffffff%22%20stroke-opacity%3D%220.52%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%225%205%22%2F%3E%3Ccircle%20cx%3D%221130%22%20cy%3D%22262%22%20r%3D%223.5%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.75%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\") !important;\n  border-bottom-color:#12283d;\n}\n.page-id-29.page .entry-hero.page-hero-section::before,\n.page-id-30.page .entry-hero.page-hero-section::before{ background:#6fcfa6; }\n.page-id-29.page .entry-hero .entry-title,\n.page-id-30.page .entry-hero .entry-title{ color:#ffffff; }\n.page-id-29.page .entry-hero .entry-title::before,\n.page-id-30.page .entry-hero .entry-title::before{ content:\"Shortlist\"; color:#8fd9b6; }\n\n\/* ---- COMPARISONS: cool slate ---- *\/\n.page-id-28.page .entry-hero.page-hero-section,\n.page-id-27.page .entry-hero.page-hero-section,\n.page-id-26.page .entry-hero.page-hero-section{\n  background-color:#eef2f7 !important;\n  border-bottom-color:#cfd9e6;\n}\n.page-id-28.page .entry-hero.page-hero-section::before,\n.page-id-27.page .entry-hero.page-hero-section::before,\n.page-id-26.page .entry-hero.page-hero-section::before{ background:#3a6ea5; }\n.page-id-28.page .entry-hero .entry-title::before,\n.page-id-27.page .entry-hero .entry-title::before,\n.page-id-26.page .entry-hero .entry-title::before{ content:\"Comparison\"; color:#2f5c8a; }\n\n\/* ---- GUIDES: warm sand ---- *\/\n.page-id-24.page .entry-hero.page-hero-section,\n.page-id-25.page .entry-hero.page-hero-section{\n  background-color:#f8f4ec !important;\n  border-bottom-color:#e6dcc9;\n}\n.page-id-24.page .entry-hero.page-hero-section::before,\n.page-id-25.page .entry-hero.page-hero-section::before{ background:#a07a34; }\n.page-id-24.page .entry-hero .entry-title::before,\n.page-id-25.page .entry-hero .entry-title::before{ content:\"Guide\"; color:#7d5d20; }\n\n\/* ---- INDEXES: pale navy wash ---- *\/\n.page-id-14.page .entry-hero.page-hero-section,\n.page-id-15.page .entry-hero.page-hero-section,\n.page-id-16.page .entry-hero.page-hero-section,\n.page-id-17.page .entry-hero.page-hero-section{\n  background-color:#f1f4f8 !important;\n  border-bottom-color:#d8e0ea;\n}\n.page-id-14.page .entry-hero.page-hero-section::before,\n.page-id-15.page .entry-hero.page-hero-section::before,\n.page-id-16.page .entry-hero.page-hero-section::before,\n.page-id-17.page .entry-hero.page-hero-section::before{ background:var(--global-palette1); }\n.page-id-14.page .entry-hero .entry-title::before,\n.page-id-15.page .entry-hero .entry-title::before,\n.page-id-16.page .entry-hero .entry-title::before,\n.page-id-17.page .entry-hero .entry-title::before{ content:\"Index\"; color:var(--global-palette1); }\n\n\/* ---- ABOUT-THIS-SITE pages: deliberately the quietest ---- *\/\n.page-id-18.page .entry-hero.page-hero-section,\n.page-id-22.page .entry-hero.page-hero-section,\n.page-id-21.page .entry-hero.page-hero-section,\n.page-id-19.page .entry-hero.page-hero-section,\n.page-id-3.page .entry-hero.page-hero-section,\n.page-id-20.page .entry-hero.page-hero-section{\n  background-color:var(--ldhq-paper) !important;\n  background-image:none !important;\n  border-bottom-color:var(--ldhq-line);\n}\n.page-id-18.page .entry-hero.page-hero-section::before,\n.page-id-22.page .entry-hero.page-hero-section::before,\n.page-id-21.page .entry-hero.page-hero-section::before,\n.page-id-19.page .entry-hero.page-hero-section::before,\n.page-id-3.page .entry-hero.page-hero-section::before,\n.page-id-20.page .entry-hero.page-hero-section::before{ background:var(--global-palette6); }\n.page-id-18.page .entry-hero .entry-title::before,\n.page-id-22.page .entry-hero .entry-title::before,\n.page-id-21.page .entry-hero .entry-title::before,\n.page-id-19.page .entry-hero .entry-title::before,\n.page-id-3.page .entry-hero .entry-title::before,\n.page-id-20.page .entry-hero .entry-title::before{ content:\"About this site\"; color:var(--ldhq-muted); }\n\n\/* --------------------------------------------------------------------------\n   26. FOOTER SOCIAL ROW\n   The social links share the footer menu with the policy pages, so they are\n   set apart with a rule and a lighter weight rather than a separate widget.\n   -------------------------------------------------------------------------- *\/\n\n.site-footer .menu li.ldhq-social{ display:inline-block; margin-right:1.1rem; }\n.site-footer .menu li.ldhq-social a{ font-size:.85rem; color:var(--ldhq-muted); }\n.site-footer .menu li.ldhq-social a:hover{ color:var(--global-palette1); }\n.site-footer .menu li.ldhq-social:first-of-type{\n  display:block; margin-top:1rem; padding-top:.9rem;\n  border-top:1px solid var(--ldhq-line);\n}\n.site-footer .menu li.ldhq-social:first-of-type{ display:inline-block; }\n.site-footer .menu{ position:relative; }\n\n\/* \"Elsewhere\" link row on About and Contact *\/\n.entry-content h2 + p a[rel~=\"me\"]{ white-space:nowrap; }\n","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_thinkrank_schema_form_data":"","_thinkrank_selected_schema_type":"Review","_thinkrank_additional_schemas":"","_thinkrank_canonical_url":"https:\/\/lifetimedealhq.com\/reviews\/screpy-lifetime-deal\/","_thinkrank_og_title":"Screpy Lifetime Deal Review (2026): Worth $59?","_thinkrank_og_description":"AppSumo says Screpy is normally $204. The vendor sells Pro for $77\/yr. We do the real break-even maths, tier by tier, and say who should skip it.","_thinkrank_og_image":"","_thinkrank_twitter_title":"Screpy Lifetime Deal Review (2026): Worth $59?","_thinkrank_twitter_description":"AppSumo says Screpy is normally $204. The vendor sells Pro for $77\/yr. We do the real break-even maths, tier by tier, and say who should skip it.","_thinkrank_twitter_image":"","_thinkrank_imported_from":"","_thinkrank_focus_keywords":[],"_thinkrank_focus_keyword":"screpy lifetime deal","_thinkrank_robots_meta_enabled":0,"_thinkrank_robots_meta":"","_thinkrank_advanced_robots_meta":"","_thinkrank_primary_category":0,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-38","page","type-page","status-publish","hentry"],"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"Zeshan Majeed","author_link":"https:\/\/lifetimedealhq.com\/author\/zeshan-raza128gmail-com\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/38","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lifetimedealhq.com\/?rest_route=%2Fwp%2Fv2%2Fcomments&post=38"}],"version-history":[{"count":5,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/38\/revisions"}],"predecessor-version":[{"id":182,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/38\/revisions\/182"}],"up":[{"embeddable":true,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/14"}],"wp:attachment":[{"href":"https:\/\/lifetimedealhq.com\/?rest_route=%2Fwp%2Fv2%2Fmedia&parent=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}