{"id":19,"date":"2026-08-06T21:20:38","date_gmt":"2026-08-06T16:20:38","guid":{"rendered":"https:\/\/lifetimedealhq.com\/?page_id=19"},"modified":"2026-08-07T01:01:20","modified_gmt":"2026-08-06T20:01:20","slug":"affiliate-disclosure","status":"publish","type":"page","link":"https:\/\/lifetimedealhq.com\/affiliate-disclosure\/","title":{"rendered":"Affiliate Disclosure"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Last updated: 6 August 2026<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The short version<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">LifetimeDealHQ earns affiliate commission when you buy a product through some of the links on this site. <strong>You pay exactly the same price you would pay going direct.<\/strong> Commission does not decide, change, or soften any verdict we publish, and no vendor can pay us for a review, a rating, or a place on a list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This disclosure is made in line with the US Federal Trade Commission&#8217;s <em>Guides Concerning the Use of Endorsements and Testimonials in Advertising<\/em> (16 CFR Part 255) and the FTC&#8217;s Endorsement Guides FAQ, and with UK and EU consumer protection rules on identifying commercial content.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What an affiliate link is<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An affiliate link is a normal link with a tracking identifier attached. If you click one and then buy something, the merchant&#8217;s system credits the sale to us and pays us a percentage of it. The merchant pays that commission out of its own margin. <strong>It is not added to your price<\/strong>, and using our link does not remove any discount, coupon, or refund right you would otherwise have.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On this site, outbound purchase links are routed through our own <code>\/go\/<\/code> addresses (for example <code>lifetimedealhq.site\/go\/example-tool<\/code>) before redirecting to the merchant. That is for click tracking and so we can update a destination in one place when a deal moves or ends. It is not concealment: every one of those links is marked <code>rel=\"nofollow sponsored\"<\/code>, and the disclosure appears in the page text next to the first such link, not only in the footer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where you will see disclosure<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A short disclosure line appears <strong>above the first affiliate link on every page that contains one<\/strong>, in the body text.<\/li>\n\n\n<li>The site footer links to this page from every page.<\/li>\n\n\n<li>Any review where we received free or discounted access, rather than paying, says so in the review itself.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If a page contains no affiliate links at all, we do not put a disclosure on it, because a disclosure that appears everywhere stops meaning anything.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Which programs we are in<\/h2>\n\n\n\nAs of 6 August 2026 we are not yet accepted into any affiliate program. Applications are pending. Until one is approved, the outbound links on this site earn us nothing and point straight at the marketplace listing. When a program is approved, this page will name it, name the network it runs through, and state the date it started \u2014 before any commission is earned, not after.\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Current status, stated honestly:<\/strong> our affiliate applications are pending. At the time of writing we have applied to the AppSumo affiliate program, which runs through the Impact network and have not yet been accepted. Until an application is approved, links on this site to that merchant are ordinary links and earn us nothing. We will update this page with the program name and acceptance date when that changes, rather than leaving it vague.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are <strong>not<\/strong> owned by, employed by, or operated in partnership with any of the merchants or software vendors we write about. We are not a reseller: we do not take your payment, issue your licence, or handle refunds or support.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What commission does not buy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To be specific, because this is where most disclosure pages go quiet:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>No vendor can pay for a verdict, score, or ranking position.<\/strong> There is no rate card. We do not sell sponsored reviews, paid placements, &#8220;featured&#8221; slots, or listing fees.<\/li>\n\n\n<li><strong>No vendor sees a review before it is published<\/strong>, and none has approval or veto over wording.<\/li>\n\n\n<li><strong>We publish Skip verdicts on products we are affiliated with.<\/strong> Two of the fifteen tools in our launch batch are rated Skip. We earn nothing from a Skip, and we publish it anyway. That is the test of whether a disclosure like this one is worth reading.<\/li>\n\n\n<li><strong>Commission rates do not affect ordering.<\/strong> Reviews and list positions are set by the method on our <a href=\"\/how-we-test\/\">how we test<\/a> page. We do not check what a product pays before deciding what to say about it, and we will not rank a worse tool above a better one because it pays more.<\/li>\n\n\n<li><strong>Free or discounted review access is not payment<\/strong>, but it is a relationship, so it is disclosed on the specific review where it applies.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If a vendor ever ends an affiliate relationship because of something we published, the review stays up unchanged and we add a note saying what happened.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prices, deals and accuracy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prices, tiers and deal availability change without notice, and lifetime deals end. Every figure we publish is checked against the merchant&#8217;s listing data and, where available, the vendor&#8217;s own pricing page, with the source named. Each page carries a <strong>Last verified<\/strong> date. Always confirm the current price and terms on the merchant&#8217;s own page before buying; that page, not ours, is what governs your purchase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our break-even calculations are estimates built on stated assumptions, set out in full on <a href=\"\/how-we-test\/\">how we test<\/a>. They are not financial advice and they are not a guarantee of value. A lifetime deal is a bet that the vendor stays in business; that risk is yours, and we discuss it openly in <a href=\"\/guides\/what-happens-when-a-lifetime-deal-shuts-down\/\">our guide to lifetime deal shutdowns<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other ways this site could earn, and whether it does<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Newsletter:<\/strong> we may include affiliate links in emails. Where we do, the email carries the same disclosure. We do not sell sponsorship slots in the newsletter. No vendor has ever paid us for a review, a score, a placement, or a position in a shortlist. If that ever changes, this page changes first and the affected pages carry a visible label.<\/li>\n\n\n<li><strong>Display advertising:<\/strong> none at present. If we add it, ads will be visually distinct from editorial content and this page will say so.<\/li>\n\n\n<li><strong>Paid content:<\/strong> none, and none planned. If we ever publish anything a third party paid for, it will be labeled as advertising in the headline and excluded from our review method entirely.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Questions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If anything here is unclear, or you want to know whether a specific link earns us commission, ask and we will tell you plainly: <a href=\"\/contact\/\">contact us<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How LifetimeDealHQ earns money, what an affiliate link is, why you pay nothing extra, and why commission does not influence any verdict.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"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":"WebPage","_thinkrank_additional_schemas":"","_thinkrank_canonical_url":"https:\/\/lifetimedealhq.com\/affiliate-disclosure\/","_thinkrank_og_title":"Affiliate Disclosure","_thinkrank_og_description":"How LifetimeDealHQ earns money, what an affiliate link is, why you pay nothing extra, and why commission does not influence any verdict.","_thinkrank_og_image":"","_thinkrank_twitter_title":"Affiliate Disclosure","_thinkrank_twitter_description":"How LifetimeDealHQ earns money, what an affiliate link is, why you pay nothing extra, and why commission does not influence any verdict.","_thinkrank_twitter_image":"","_thinkrank_imported_from":"","_thinkrank_focus_keywords":[],"_thinkrank_focus_keyword":"affiliate disclosure","_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-19","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\/19","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=19"}],"version-history":[{"count":2,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/19\/revisions"}],"predecessor-version":[{"id":130,"href":"https:\/\/lifetimedealhq.com\/?rest_route=\/wp\/v2\/pages\/19\/revisions\/130"}],"wp:attachment":[{"href":"https:\/\/lifetimedealhq.com\/?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}