{"id":24,"date":"2026-08-06T13:08:54","date_gmt":"2026-08-06T13:08:54","guid":{"rendered":"https:\/\/lifetimedealhq.com\/?page_id=24"},"modified":"2026-08-07T01:01:43","modified_gmt":"2026-08-06T20:01:43","slug":"how-to-evaluate-a-lifetime-deal","status":"publish","type":"page","link":"https:\/\/lifetimedealhq.com\/guides\/how-to-evaluate-a-lifetime-deal\/","title":{"rendered":"How to Evaluate a Lifetime Deal: The Break-Even Framework"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Every verdict on this site comes from four checks that take about ten minutes. Most people skip them because a $59 purchase does not feel like it warrants ten minutes of arithmetic, which is precisely why the LTD market works the way it does.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The four checks:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Calculate the break-even in months against the vendor&#8217;s <strong>real<\/strong> price<\/li>\n\n\n<li>Compare the LTD tier&#8217;s limits against the plan you are comparing it to<\/li>\n\n\n<li>Weight the rating by the number of reviews behind it<\/li>\n\n\n<li>Verify the vendor&#8217;s price on the vendor&#8217;s own site, not the marketplace listing<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Here is each one, with real worked examples from deals live on 6 August 2026.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Check 1: The break-even arithmetic<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The calculation is deliberately simple:<\/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>Break-even (months) = LTD price \u00f7 vendor&#8217;s real monthly price<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">That is how many months you must keep using the tool before the deal has paid for itself. Every month after is profit. Every month before is exposure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Worked example: Respona<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">$79 tier 1. Respona&#8217;s own published DIY pricing is Starter $198\/mo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$79 \u00f7 $198 = <strong>0.4 months<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Under two weeks. Even if the vendor folded in month three, you would be substantially ahead. This is the best break-even in our tracked set by a wide margin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Worked example: Screpy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">$59 tier 1. Screpy&#8217;s own pricing sells Pro at $6\/mo or <strong>$77\/year<\/strong>, Max at $15\/mo or $182\/year.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Against Pro: $59 \u00f7 ($77 \u00f7 12) = <strong>about 9 months<\/strong> Against Max: $59 \u00f7 ($182 \u00f7 12) = <strong>about 4 months<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Same $59, and the answer depends entirely on which plan you would otherwise have bought. Note also that AppSumo shows a regular price of <strong>$204<\/strong> for Screpy, which resembles neither figure. More on that in check 4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Worked example: BerqWP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">$39 tier 1. BerqWP publishes Solo at $15\/mo list but sold at <strong>$4\/mo as a &#8220;permanent early adopter&#8221; plan<\/strong>, plus a free tier for 1 site and 10 pages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Against $4\/mo: $39 \u00f7 $4 = <strong>about 10 months<\/strong> Against the free tier, if your site fits inside it: never.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ten months of exposure to a small vendor to save roughly $48 a year afterwards. That arithmetic is why we rate BerqWP a Skip for most buyers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Where the arithmetic does not apply<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>When the vendor does not sell subscriptions.<\/strong> WriterZen sells lifetime access directly at $135 \/ $270 \/ $405. There is no monthly price, so there is no break-even in months. The honest comparison is $79 on AppSumo against $135 direct \u2014 a $56 saving on a one-time purchase. AppSumo&#8217;s struck-through &#8220;$1,035&#8221; is not a real recurring price and dividing by it produces a meaningless number.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>When the vendor&#8217;s pricing is unverifiable.<\/strong> For Labrika, Backlink Monitor, WP 301 Redirects, SEO Generator, WPAutoBlog and WP Links, we could not verify vendor pricing \u2014 pages returned nothing, or in WPAutoBlog&#8217;s case a 404. When that happens the break-even is <strong>UNKNOWN<\/strong> and we say UNKNOWN rather than dividing by AppSumo&#8217;s struck-through figure. A calculation built on an unverified input is not a calculation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to read your answer<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Under 3 months<\/strong> \u2014 strong. Buy if the tool fits.<\/li>\n\n\n<li><strong>3 to 6 months<\/strong> \u2014 reasonable. Check the vendor health signals.<\/li>\n\n\n<li><strong>6 to 12 months<\/strong> \u2014 you are making a real bet on this company surviving. Only if the tool is clearly better than alternatives.<\/li>\n\n\n<li><strong>Over 12 months<\/strong> \u2014 the discount is not compensating you for the risk.<\/li>\n\n\n<li><strong>UNKNOWN<\/strong> \u2014 you are buying on tier structure and review evidence, nothing else. Be honest with yourself that that is what you are doing.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The framework for the survival side of that bet is in <a href=\"\/guides\/what-happens-when-a-lifetime-deal-shuts-down\/\">what happens when a lifetime deal shuts down<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Check 2: The tier-limit trap<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is where the arithmetic in check 1 quietly falls apart, and it is the most common way LTD listings mislead without saying anything untrue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The break-even calculation assumes the lifetime tier and the subscription plan are the same product. Very often they are not. The limits are printed on the listing \u2014 a long way down the page, well below the struck-through price.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ClickRank: 500 pages against 2,000<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ClickRank&#8217;s tier 1 is $89 for 1 site, 1 user, and a <strong>500-page crawl<\/strong>. ClickRank&#8217;s own Solo plan is $59\/mo at <strong>2,000 pages<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The naive break-even is about a month and a half. But you are buying a crawl allowance one quarter the size of the plan you are comparing against. If your site is under 500 pages, the gap is irrelevant and the deal is genuinely good. If your site is 1,200 pages, the tool cannot do the job and the break-even is a fiction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Higher tiers scale together: $178 for 2 sites and 1,000 pages, $267 for 5 sites and 2,500, $356 for 8 sites and 5,000.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SnowSEO: 500 credits against 3,000<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">SnowSEO&#8217;s tier 1 is $79 with <strong>500 AI credits per month<\/strong>, 1 seat, 1 brand, 50 tracked keywords, 250 keyword lookups, 5 articles a month, and ChatGPT monitoring only \u2014 Claude and Gemini start at tier 3. The vendor&#8217;s Starter plan is $39\/mo with <strong>3,000 credits<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Price break-even is about two months. Credit allowance is one sixth. And AppSumo reviewers already flag credit burn rate as a problem at normal allowances. This deal ends <strong>3 September 2026 at 23:59 CT<\/strong> per AppSumo&#8217;s own end date.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">BerqWP: the limit that is actually fine<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The trap is not universal. BerqWP&#8217;s nine plans have an <strong>identical feature set at every tier<\/strong> \u2014 only the site count changes, from 1 site at $39 up to unlimited at $351. No hidden capability gap. BerqWP&#8217;s problem is the 19% discount, not the tier structure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Backlink Monitor: the trap inside the ladder<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes the trap is between tiers rather than against a subscription. Backlink Monitor&#8217;s <strong>Plan 1 is 250 links and 5 domains; Plan 2 at $138 is 2,500 links and 20 domains.<\/strong> Twice the price, ten times the capacity. Plan 1 is not a cheaper version of Plan 2, it is a different and much smaller product. Most buyers should start at Plan 2 or not buy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to run this check<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open two tabs \u2014 AppSumo&#8217;s tier detail and the vendor&#8217;s plan comparison \u2014 and line up every numeric limit: sites, seats, pages, credits, keywords, articles, API access. Then ask whether the LTD tier does the job <strong>at the volume you will actually run<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This check also finds the deals where the tier structure is unusually generous, and those are where the real value is. Labrika includes <strong>unlimited websites at every tier<\/strong>. Screpy includes <strong>unlimited websites and unlimited team members at every tier<\/strong>. WPAutoBlog includes <strong>unlimited websites at every tier<\/strong> \u2014 only the article quota changes. Internal Linking Related Contents is <strong>unlimited sites at a single $49 tier<\/strong>. Those are structural advantages a subscription rarely gives you, and they are worth more than any discount percentage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Check 3: Review count matters more than star rating<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most buyers sort by rating. Rating without volume is close to meaningless, and the LTD market makes this worse because new deals launch with a handful of enthusiastic early reviews.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compare, all from AppSumo product-page JSON-LD on 6 August 2026:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead><tr><th>Tool<\/th><th>Rating<\/th><th>Reviews<\/th><th>What that tells you<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>Screpy<\/td><td>4.62\u2605<\/td><td>908<\/td><td>High confidence. This is what the product is like.<\/td><\/tr>\n<tr><td>ClickRank<\/td><td>4.55\u2605<\/td><td>481<\/td><td>High confidence.<\/td><\/tr>\n<tr><td>WP 301 Redirects<\/td><td>4.85\u2605<\/td><td>281<\/td><td>Strong average <strong>and<\/strong> strong sample \u2014 the best combination we track<\/td><\/tr>\n<tr><td>WriterZen<\/td><td>4.64\u2605<\/td><td>271<\/td><td>Confident<\/td><\/tr>\n<tr><td>Labrika<\/td><td>4.76\u2605<\/td><td>157<\/td><td>Reasonably confident<\/td><\/tr>\n<tr><td>BerqWP<\/td><td>4.05\u2605<\/td><td>95<\/td><td>Confident \u2014 and confidently below the category norm<\/td><\/tr>\n<tr><td>ZeroRank AI<\/td><td>4.97\u2605<\/td><td>37<\/td><td>Highest average in our set, smallest useful sample. Treat as provisional.<\/td><\/tr>\n<tr><td>Backlink Monitor<\/td><td>4.63\u2605<\/td><td>30<\/td><td>Provisional<\/td><\/tr>\n<tr><td>SnowSEO<\/td><td>4.69\u2605<\/td><td>26<\/td><td>Provisional<\/td><\/tr>\n<tr><td>Internal Linking Related Contents<\/td><td>4.84\u2605<\/td><td>25<\/td><td>Provisional<\/td><\/tr>\n<tr><td>Respona<\/td><td>5.00\u2605<\/td><td>11<\/td><td>A perfect score from eleven people is not a perfect product<\/td><\/tr>\n<tr><td>WP Links<\/td><td>4.00\u2605<\/td><td>5<\/td><td>Not an evidence base<\/td><\/tr>\n<tr><td>iGEO<\/td><td>4.00\u2605<\/td><td>2<\/td><td>Two opinions<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A 4.62\u2605 from 908 people is a stronger buying signal than a 5.00\u2605 from 11. The first is a measurement. The second is an anecdote with decimal places.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Rough thresholds we use<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Over 200 reviews: treat the average as reliable. 50 to 200: reliable enough, read the negatives. 20 to 50: provisional, weight the criticism heavily. Under 20: no meaningful signal \u2014 buy on the product, not the score.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is why we excluded <strong>iGEO<\/strong> (4.00\u2605, 2 reviews) from our roundups entirely, and why <strong>WP Links<\/strong> (4.00\u2605, 5 reviews) carries a Skip verdict partly on evidence grounds alone \u2014 the other reason being reported incompatibility with Rank Math.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is also why we refused to publish a rating for <strong>GrackerAI<\/strong> at all: AppSumo&#8217;s structured data says 1.80\u2605 from 5 reviews while the rendered page says &#8220;no reviews yet.&#8221; We could not resolve that, and publishing a 1.80\u2605 about someone&#8217;s business on the strength of a data inconsistency is not something we are willing to do.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Read the negatives, not the average<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The one-star and two-star reviews are where the specific, actionable information lives. Across the deals we track, the criticisms that changed our verdicts were: WP Links reported incompatible with Rank Math, MultiLipi raising site-speed concerns in the Q&amp;A, WP 301 Redirects reports of unintended redirects firing, and slow support at Backlink Monitor, BerqWP and SEO Generator.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None of that is visible in a star average.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Check 4: Verify the price on the vendor&#8217;s own site<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Never accept a marketplace&#8217;s struck-through number. It is a marketing figure, and in this category it is frequently unrecognisable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Screpy.<\/strong> AppSumo shows &#8220;$204 regular.&#8221; Screpy&#8217;s own pricing page sells Pro at $6\/mo or <strong>$77\/year<\/strong>. The struck-through number is roughly triple the vendor&#8217;s cheapest annual plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>WriterZen.<\/strong> AppSumo shows &#8220;$1,035.&#8221; WriterZen does not sell subscriptions at all \u2014 it sells lifetime access at $135 direct. The $1,035 is not a price anyone has ever paid on a recurring basis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>BerqWP.<\/strong> AppSumo shows $48 regular against $39. But the vendor sells Solo at <strong>$4\/mo early adopter<\/strong> and offers a free tier. The struck-through figure is technically the list price and practically nobody&#8217;s price.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to do it in two minutes<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Google <code>[tool name] pricing<\/code> and go to the vendor&#8217;s own domain<\/li>\n\n\n<li>If the page does not load, note that \u2014 a 404 on a pricing page is itself a signal. WPAutoBlog&#8217;s returned a 404 when we checked; Labrika&#8217;s and WP 301 Redirects&#8217; returned no figures<\/li>\n\n\n<li>Find the plan closest to the LTD tier&#8217;s actual limits, not the plan with the biggest number<\/li>\n\n\n<li>Check the annual price, often 20% to 40% below monthly<\/li>\n\n\n<li>Look for hidden cheap tiers \u2014 free plans, early-adopter pricing. This is where BerqWP&#8217;s case collapses<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Do not use LTD aggregator sites<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Every aggregator figure we have checked has been stale or wrong: one reported SnowSEO&#8217;s regular price as &#8220;$368\/month&#8221; when the vendor&#8217;s entry plan is $39\/mo, one carried outdated ZeroRank tiers, one listed deals as &#8220;Live&#8221; with no current AppSumo listing. AppSumo&#8217;s structured data and the vendor&#8217;s own pricing page are the only sources we cite.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Putting it together<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Two deals, both around $60 to $80, evaluated the same way:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Respona at $79.<\/strong> Break-even 0.4 months against a $198\/mo plan. Tier 1 is small \u2014 2 email accounts, 1,000 credits\/mo plus 5,000 bonus \u2014 but does the job at that volume. Rating 5.00\u2605 from only 11 reviews, so provisional. <strong>Verdict: Buy.<\/strong> The break-even is short enough that the small sample barely matters; you are ahead within a month either way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>BerqWP at $39.<\/strong> Break-even about 10 months against the vendor&#8217;s $4\/mo early-adopter price, and never against the free tier for a small site. Tier structure is honest. Rating 4.05\u2605 from 95 reviews \u2014 a reliable sample showing a below-average product. <strong>Verdict: Skip for most.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Same order of magnitude in price. Opposite conclusions. That is what the ten minutes buys you.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The one-page version<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Break-even = LTD price \u00f7 vendor&#8217;s real monthly price. Under 6 months is a reasonable bet<\/li>\n\n\n<li>Compare the tier&#8217;s <strong>limits<\/strong>, not just its price, against the plan you would otherwise buy<\/li>\n\n\n<li>Weight ratings by review count. Under 20 reviews is not evidence<\/li>\n\n\n<li>Read the negative reviews for specifics<\/li>\n\n\n<li>Check the vendor&#8217;s own pricing page. Look for free and early-adopter tiers<\/li>\n\n\n<li>Mark UNKNOWN rather than estimating<\/li>\n\n\n<li>Ask: if this vendor disappeared in 18 months, would I still be glad I bought it?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Applied deal by deal: <a href=\"\/best\/seo-tools-lifetime-deals\/\">Best SEO Tool Lifetime Deals (2026)<\/a> and <a href=\"\/best\/wordpress-plugin-lifetime-deals\/\">Best WordPress Plugin Lifetime Deals (2026)<\/a>. Our full method is on <a href=\"\/how-we-test\/\">how we test<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Last verified: 6 August 2026. All tier prices, limits, ratings and review counts from AppSumo product-page JSON-LD and rendered listings on that date; vendor pricing from vendors&#8217; own pricing pages where they rendered, marked UNKNOWN where they did not.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The ten-minute method behind every verdict here: break-even arithmetic, the tier-limit trap, and why review count beats star rating.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":17,"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":"Article","_thinkrank_additional_schemas":"","_thinkrank_canonical_url":"https:\/\/lifetimedealhq.com\/guides\/how-to-evaluate-a-lifetime-deal\/","_thinkrank_og_title":"How to Evaluate a Lifetime Deal: The Break-Even Framework","_thinkrank_og_description":"The ten-minute method behind every verdict here: break-even arithmetic, the tier-limit trap, and why review count beats star rating.","_thinkrank_og_image":"","_thinkrank_twitter_title":"How to Evaluate a Lifetime Deal: The Break-Even Framework","_thinkrank_twitter_description":"The ten-minute method behind every verdict here: break-even arithmetic, the tier-limit trap, and why review count beats star rating.","_thinkrank_twitter_image":"","_thinkrank_imported_from":"","_thinkrank_focus_keywords":[],"_thinkrank_focus_keyword":"how to evaluate a 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-24","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\/24","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=24"}],"version-history":[{"count":2,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/24\/revisions"}],"predecessor-version":[{"id":157,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/24\/revisions\/157"}],"up":[{"embeddable":true,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/17"}],"wp:attachment":[{"href":"https:\/\/lifetimedealhq.com\/?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}