(function(){try{var q=window.location.search;var m=q.match(/[?&]akp_notrack=([01])/);if(m){document.cookie='akp_notrack='+m[1]+';path=/;max-age='+(m[1]==='1'?15552000:0)+';SameSite=Lax';}var armed=/(^|; )akp_notrack=1(;|$)/.test(document.cookie)||(m&&m[1]==='1');if(armed&&!window.fbq){var n=function(){};n.queue=[];n.loaded=true;n.version='2.0';n.callMethod=function(){};window.fbq=n;window._fbq=n;}}catch(e){}})();
https://annakatherinepage.com/wp-content/plugins/burst-statistics/assets/js/timeme/timeme.min.js
var breeze_prefetch = {"local_url":"https://annakatherinepage.com","ignore_remote_prefetch":"1","ignore_list":["/?wc-api=wc_facebook_get_feed_data&secret=1760aef9e5a5d06e2a1f0f642c457ce5","/cart/","/checkout/","/my-account/","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
https://annakatherinepage.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
https://annakatherinepage.com/wp-includes/js/jquery/jquery.min.js
https://annakatherinepage.com/wp-includes/js/jquery/jquery-migrate.min.js
https://annakatherinepage.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js
var wc_add_to_cart_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https://annakatherinepage.com/checkout/","is_cart":"","cart_redirect_after_add":"no"};
//# sourceURL=wc-add-to-cart-js-extra
https://annakatherinepage.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js
https://annakatherinepage.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js
var woocommerce_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_password_show":"Show password","i18n_password_hide":"Hide password"};
//# sourceURL=woocommerce-js-extra
https://annakatherinepage.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js
window.__wc_fb_page_generated = 1793020250;
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
window.FacebookSignals = window.FacebookSignals || {
_held: false,
_releasing: false,
_pixelInitialized: false,
_pixelId: null,
_pixelUserInfo: {},
_pixelOptions: {},
_pendingPixelEvents: [],
_queue: [],
_config: {},
_attribution: {},
_seenEventIds: {},
_fbclid: (function() {
try {
var m = window.location.search.match(/[?&]fbclid=([^&]*)/);
return m ? decodeURIComponent(m[1]) : null;
} catch(e) { return null; }
})(),
init: function(config) {
config = config || {};
this._config = config;
this._attribution = config.attribution || {};
var cookieState = this._getCookie('wc_facebook_signals_state');
this._held = cookieState ? cookieState === 'held' : !!config.held;
this._fbclid = this._fbclid || null;
if (typeof fbq === 'function') {
fbq('consent', this._held ? 'revoke' : 'grant');
}
try {
var raw = window.sessionStorage.getItem('wc_facebook_signals_seen_event_ids');
this._seenEventIds = raw ? JSON.parse(raw) : {};
} catch (e) {
this._seenEventIds = this._seenEventIds || {};
}
},
initPixel: function(pixelId, userInfo, options) {
this._pixelId = pixelId;
this._pixelUserInfo = userInfo && typeof userInfo === 'object' && !Array.isArray(userInfo) ? userInfo : {};
this._pixelOptions = options || {};
if (!this._held) {
this._runPixelInit();
}
},
_runPixelInit: function() {
if (this._pixelInitialized || !this._pixelId || typeof fbq !== 'function') return;
fbq('init', this._pixelId, this._pixelUserInfo, this._pixelOptions);
this._pixelInitialized = true;
this._flushPendingPixelEvents();
},
_flushPendingPixelEvents: function() {
var pending = this._pendingPixelEvents;
this._pendingPixelEvents = [];
for (var i = 0; i < pending.length; i++) {
var ev = pending[i];
this._firePixelEvent(ev.name, ev.params, ev.method, ev.eventId);
}
},
_fireOrQueuePixelEvent: function(name, params, method, eventId) {
if (!this._pixelInitialized) {
this._pendingPixelEvents.push({
name: name, params: params || {}, method: method || 'track', eventId: eventId || null
});
return;
}
this._firePixelEvent(name, params || {}, method || 'track', eventId || null);
},
_firePixelEvent: function(name, params, method, eventId) {
method = method || 'track';
if (eventId) {
fbq(method, name, params || {}, { eventID: eventId });
} else {
fbq(method, name, params || {});
}
},
queueEvent: function(eventData) {
if (!eventData || !eventData.event_name) return;
var originalId = eventData.event_id || null;
if (originalId && this._seenEventIds[originalId]) return;
if (!this._held) {
this._fireOrQueuePixelEvent(eventData.event_name, eventData.custom_data || {}, eventData.method || 'track', originalId);
return;
}
eventData = this._cloneEventData(eventData);
eventData.event_id = this._generateEventId();
eventData.event_time = eventData.event_time || Math.floor(Date.now() / 1000);
this._queue.push(eventData);
var idToMark = originalId || eventData.event_id;
if (idToMark) {
this._seenEventIds[idToMark] = 1;
try {
window.sessionStorage.setItem(
'wc_facebook_signals_seen_event_ids',
JSON.stringify(this._seenEventIds)
);
} catch (e) {}
}
},
trackEvent: function(name, params, userData, method, eventId) {
method = method || 'track';
eventId = eventId || (params && params.eventID) || null;
if (this._held) {
this.queueEvent({
event_name: name,
custom_data: params || {},
event_id: eventId,
event_time: Math.floor(Date.now() / 1000),
method: method
});
} else {
this._fireOrQueuePixelEvent(name, params || {}, method, eventId);
}
},
release: function() {
var self = this;
if (!self._held || self._releasing || !self._config.ajaxUrl) {
return Promise.resolve({ success: true, data: { sent_count: 0 } });
}
self._releasing = true;
var attribution = self._collectAttribution();
var payload = JSON.stringify({
events: self._queue,
attribution: {
fbp: attribution.fbp || null,
fbc: attribution.fbc || null
},
fbclid: self._fbclid || null
});
var url = self._config.ajaxUrl +
(self._config.ajaxUrl.indexOf('?') === -1 ? '?' : '&') +
'action=' + encodeURIComponent(self._config.action);
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 300) {
try {
var resp = JSON.parse(xhr.responseText);
self._handleReleaseResponse(resp.data || {}, attribution);
resolve(resp);
} catch(e) { self._releasing = false; reject(e); }
} else {
self._releasing = false;
reject(new Error('Signal release AJAX failed: ' + xhr.status));
}
};
xhr.onerror = function() { self._releasing = false; reject(new Error('Network error')); };
xhr.send(payload);
});
},
_handleReleaseResponse: function(data, attribution) {
this._syncAttributionCookies(data || {}, attribution);
// Override cached user_info with fresh data from the release response.
if (data.user_info && typeof data.user_info === 'object' && !Array.isArray(data.user_info)) {
this._pixelUserInfo = data.user_info;
}
this._held = false;
this._releasing = false;
fbq('consent', 'grant');
this._runPixelInit();
var queue = this._queue;
for (var i = 0; i < queue.length; i++) {
var ev = queue[i];
this._fireOrQueuePixelEvent(ev.event_name, ev.custom_data || {}, ev.method || 'track', ev.event_id || null);
}
this._queue = [];
},
_collectAttribution: function() {
var clientParams = {};
if (typeof clientParamBuilder !== 'undefined') {
try {
clientParams = clientParamBuilder.processAndCollectParams(this._getAttributionUrl()) || {};
} catch (e) {}
}
var fbp = this._getCookie('_fbp') || clientParams._fbp || (typeof clientParamBuilder !== 'undefined' ? clientParamBuilder.getFbp() : null);
var fbc = this._getCookie('_fbc') || clientParams._fbc || (typeof clientParamBuilder !== 'undefined' ? clientParamBuilder.getFbc() : null);
if (!fbc && this._fbclid) {
fbc = 'fb.1.' + Date.now() + '.' + this._fbclid;
}
return { fbp: fbp || null, fbc: fbc || null };
},
_syncAttributionCookies: function(data, attribution) {
var fbp = data.fbp || (attribution && attribution.fbp) || null;
var fbc = data.fbc || (attribution && attribution.fbc) || null;
if (fbp) {
this._setAttributionCookie('_fbp', fbp, data.fbp_domain || null);
}
if (fbc) {
this._setAttributionCookie('_fbc', fbc, data.fbc_domain || null);
}
},
_setAttributionCookie: function(name, value, domain) {
if (!value) return;
var domainAttr = domain ? ';domain=' + domain : '';
document.cookie = name + '=' + encodeURIComponent(value) + ';path=/;max-age=7776000' + domainAttr + ';SameSite=Lax';
},
_getCookie: function(name) {
var match = document.cookie.match(new RegExp('(?:^|;\\s*)' + name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '=([^;]*)'));
if (!match) return null;
try { return decodeURIComponent(match[1]); } catch(e) { return null; }
},
_cloneEventData: function(eventData) {
var clone = {};
for (var key in eventData) {
if (Object.prototype.hasOwnProperty.call(eventData, key)) {
clone[key] = eventData[key];
}
}
return clone;
},
_generateEventId: function() {
if (window.crypto && typeof window.crypto.randomUUID === 'function') {
return window.crypto.randomUUID();
}
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0;
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
},
_getAttributionUrl: function() {
if (!this._fbclid) return window.location.href;
try {
var url = new URL(window.location.href);
if (!url.searchParams.get('fbclid')) {
url.searchParams.set('fbclid', this._fbclid);
}
return url.toString();
} catch (e) {
return window.location.href;
}
}
};
FacebookSignals.init({
held: false,
ajaxUrl: "https:\/\/annakatherinepage.com\/wp-admin\/admin-ajax.php",
action: 'facebook_release_signals',
pixelId: "5552345558112956",
attribution: {}
});
FacebookSignals.initPixel(
"5552345558112956",
{},
{"agent":"woocommerce_0-11.2.1-3.7.8"} );
document.addEventListener( 'DOMContentLoaded', function() {
document.body.insertAdjacentHTML( 'beforeend', '<div class=\"wc-facebook-pixel-event-placeholder\"></div>' );
}, false );
Skip to content
Tag: Walmart Deals
Heads up: this post contains affiliate links. If you buy through them I may earn a small commission at no extra cost to you. I only share deals I’d actually recommend. Prices and availability change fast during this sale, tap through for the live price.
By Anna Katherine Page · Published June 23, 2026 · Updated June 24, 2026
Quick answer: Walmart Deals (the summer event many shoppers call “Deals & More”) runs June 22–28, 2026 , with up to 50% off across home, patio & garden, toys, tech and more. The best finds split into two categories: kids & backyard play (inflatable water slides, trampolines, a sandbox, Tonies, magnetic tiles) and patio & home (patio umbrellas, a 5-piece dining set, chaise lounges, an Adirondack chair, the Ninja SLUSHi, and a Cuisinart cookware set). Below are my 19 top picks, who each one is best for, and where to grab them.
If you’re trying to figure out what’s actually worth buying during Walmart’s Deals sale , this is the short list. I went through the event and pulled the 19 items I’d buy myself, the ones with real markdowns, strong reviews, and genuine summer usefulness. Use the table to jump to a category, or shop my full lists here: Kids picks and Patio & Home picks .
What is the Walmart “Deals & More” sale?
Walmart Deals is Walmart’s big summer savings event for 2026, running June 22 through June 28 , with limited-time markdowns of up to 50% off across patio furniture, outdoor toys, kitchen, tech, and home. Deals are limited-time and sell out, so the popular outdoor and patio items tend to go first.
Best Walmart Deals finds at a glance
Product
Best for
Category
KTAXON 9-in-1 Inflatable Water Slide
Backyard water park
Kids
KTAXON 7-in-1 Inflatable Water Slide
Smaller-yard water play
Kids
Costway Inflatable Water Slide Park
Best-value splash
Kids
Bounce Pro 7 ft Trampoline
Older kids & bigger yards
Kids
GYMAX 6 ft Trampoline w/ enclosure
Toddlers & small yards
Kids
Arlopu 10-in-1 Slide & Climber
Toddlers (indoor/outdoor)
Kids
Little Tikes Cape Cottage Playhouse
Imaginative play
Kids
Sandbox
Little ones
Kids
Little Tikes Balance Rocking Horse
Babies & toddlers
Kids
Tonies Toy Story Toniebox
Screen-free audio
Kids
Magnetic Building Tiles
Educational indoor play
Kids
Summit Living 15 ft Double-Sided Umbrella
Covering a seating zone
Patio
Best Choice 10 ft Market Umbrella
Tables & smaller spaces
Patio
Summit Living 5-Piece Dining Set
Outdoor dining
Patio
SERWALL Chaise Lounge (Set of 2)
Poolside lounging
Patio
SERWALL Oversized Rocking Chair
Porch relaxing
Patio
WestinTrends Adirondack Chair
Budget patio seating ($79.98)
Patio
Ninja SLUSHi Frozen Drink Maker
Summer entertaining
Home
Cuisinart MultiClad Pro 12-Pc Cookware
Kitchen upgrade
Home
Best Walmart kids & backyard deals
These are the finds that get kids outside and off the screens this summer. Want the full list? See my best Walmart kids deals guide.
KTAXON 9-in-1 Water Slide
Dual slides, bounce area, and splash pool, the backyard water park of the sale.
Shop deal
KTAXON 7-in-1 Water Slide
Slide, splash pool, and surfboard with the blower included, big fun, smaller footprint.
Shop deal
Costway Water Slide Park
Splash pool + strong 750W blower that sets up fast. The best-value splash pick.
Shop deal
Bounce Pro 7 ft Trampoline
Right-sized for older kids and bigger yards. A summer-long activity that pays for itself.
Shop deal
GYMAX 6 ft Trampoline
Toddler-friendly with a swing and safety net. Perfect for smaller yards and younger kids.
Shop deal
Arlopu 10-in-1 Slide & Climber
Slide, climber, basketball hoop, tunnel and more, indoor or outdoor play for toddlers.
Shop deal
Little Tikes Cape Cottage Playhouse
The classic imaginative-play house. A backyard staple that holds up for years.
Shop deal
Sandbox
Simple, low-cost, endlessly entertaining for little ones. A summer must-have.
Shop deal
Little Tikes Balance Rocking Horse
A first ride-on for babies and toddlers, indoors or out. Sturdy and beginner-friendly.
Shop deal
Tonies Toy Story Toniebox
Screen-free audio kids control themselves. One of the most-gifted kids items, great on sale.
Shop deal
Magnetic Building Tiles
Open-ended STEM play that actually holds attention. A rainy-day and quiet-time winner.
Shop deal
Best Walmart patio & home deals
This is where the markdowns get serious. The full breakdown is in my best Walmart patio & home deals guide.
Summit Living 15 ft Double-Sided Umbrella
Covers a whole seating area with one base. The shade upgrade that makes a patio usable all summer.
Shop deal
Best Choice 10 ft Market Umbrella
Crank + tilt umbrella for dining tables and smaller spaces. A budget-friendly shade pick.
Shop deal
Summit Living 5-Piece Dining Set
Table plus four stackable chairs with an umbrella hole. An easy full outdoor-dining setup.
Shop deal
SERWALL Chaise Lounge (Set of 2)
Two adjustable poolside loungers with wheels and a cup holder. Resort vibes for the backyard.
Shop deal
SERWALL Oversized Rocking Chair
All-weather HDPE rocker with wide armrests. Built to live outside year-round.
Shop deal
WestinTrends Adirondack Chair
One of the standout markdowns, about $79.98 (was $239.99) . Weather-resistant and foldable.
Shop deal
Ninja SLUSHi Frozen Drink Maker
Frozen drinks, slushies and mocktails all summer. The fun entertaining buy of the sale.
Shop deal
Cuisinart MultiClad Pro 12-Pc Cookware
Triple-ply stainless, induction-ready. A genuine kitchen upgrade at a sale price.
Shop deal
Watch my Walmart Deals haul on TikTok
When does the Walmart Deals sale end?
Walmart Deals runs June 22 through June 28, 2026 . Individual deals end when stock runs out, so the most popular outdoor and patio items often sell out before the event closes. If something on this list is in stock at a good price, it’s worth grabbing rather than waiting.
Is Walmart+ worth it for this sale?
If you’re planning to buy more than one item, it can be, Walmart+ members typically get early access to Walmart’s sale events plus free shipping with no order minimum, which helps with the limited-stock outdoor pieces. For a single small purchase, the regular sale pricing is available to everyone.
Frequently asked questions
What are the best Walmart Deals finds for 2026?
The standout picks are an inflatable water slide (the KTAXON 9-in-1) and the Bounce Pro trampoline for kids, and the Summit Living 15 ft umbrella, 5-piece dining set, and the WestinTrends Adirondack chair (about $79.98) for the patio. The Ninja SLUSHi is the fun entertaining buy.
When is the Walmart Deals sale?
Walmart Deals runs June 22 through June 28, 2026, with up to 50% off across home, patio, toys, tech and more.
Are these Walmart deals available online and in store?
Most are available on Walmart.com, which is the easiest way to confirm the live price and stock. Tap any “Shop deal” link above to check current availability.
Do these deals sell out?
Yes. Outdoor and patio deals are limited-stock and tend to sell out fastest. If the price is right and it’s in stock, buy it rather than waiting.
Your cart
(items: 0)
Products in cart
Available on backorder
Previous price:
Discounted price:
Your shopping cart is empty
(function () {
var c = document.body.className;
c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
document.body.className = c;
})();
https://annakatherinepage.com/wp-includes/js/dist/hooks.min.js
https://annakatherinepage.com/wp-includes/js/dist/i18n.min.js
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
https://annakatherinepage.com/wp-includes/js/dist/private-apis.min.js
https://annakatherinepage.com/wp-includes/js/dist/url.min.js
https://annakatherinepage.com/wp-includes/js/dist/api-fetch.min.js
wp.apiFetch.use( wp.apiFetch.createRootURLMiddleware( "https://annakatherinepage.com/wp-json/" ) );
wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware( "772172f098" );
wp.apiFetch.use( wp.apiFetch.nonceMiddleware );
wp.apiFetch.use( wp.apiFetch.mediaUploadMiddleware );
wp.apiFetch.nonceEndpoint = "https://annakatherinepage.com/wp-admin/admin-ajax.php?action=rest-nonce";
//# sourceURL=wp-api-fetch-js-after
https://annakatherinepage.com/wp-content/uploads/burst/js/burst.min.js
var wc_facebook_signals_params = {"ajax_url":"https://annakatherinepage.com/wp-admin/admin-ajax.php","nonce":"df82fcd9ae","action":"wc_facebook_update_signals_state"};
//# sourceURL=wc-facebook-signals-js-extra
https://annakatherinepage.com/wp-content/plugins/facebook-for-woocommerce/assets/js/facebook-for-woocommerce-signals.js
https://annakatherinepage.com/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js
var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"base64":false,"ajaxurl":"https://annakatherinepage.com/wp-admin/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}};
//# sourceURL=wc-order-attribution-js-extra
https://annakatherinepage.com/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js
https://annakatherinepage.com/wp-content/plugins/facebook-for-woocommerce/assets/js/frontend/pixel-events.js
(function() {
var processParams = function() {
if (typeof clientParamBuilder !== "undefined" && !/(?:^|;\s*)wc_facebook_signals_state=held(?:;|$)/.test(document.cookie)) {
clientParamBuilder.processAndCollectAllParams(window.location.href);
}
};
if (typeof clientParamBuilder !== "undefined") {
processParams();
return;
}
var fallbackScript = document.createElement("script");
fallbackScript.src = "https:\/\/unpkg.com\/meta-capi-param-builder-clientjs@1.3.2\/dist\/clientParamBuilder.bundle.js";
fallbackScript.onload = processParams;
document.head.appendChild(fallbackScript);
}());
//# sourceURL=facebook-capi-param-builder-js-after
/* WooCommerce Facebook Integration Event Tracking */
fbq('set', 'agent', (function(){var a='woocommerce_0-11.2.1-3.7.8';if(window.__wc_fb_page_generated&&(Math.floor(Date.now()/1000)-window.__wc_fb_page_generated)>1800){a=a.replace(/(\d+\.\d+\.\d+)/,'$1_c');}return a;})(), '5552345558112956');
window.wcFacebookPixelFiredEvents = window.wcFacebookPixelFiredEvents || {};
if (!window.wcFacebookPixelFiredEvents["e08bd30f-2082-4e4e-87d1-2671044e3b33"]) {
window.wcFacebookPixelFiredEvents["e08bd30f-2082-4e4e-87d1-2671044e3b33"] = true;
var isStale = window.__wc_fb_page_generated && (Math.floor(Date.now()/1000) - window.__wc_fb_page_generated) > 1800;
if (window.FacebookSignals && typeof window.FacebookSignals.trackEvent === 'function') {
window.FacebookSignals.trackEvent('PageView', {
"source": "woocommerce_0",
"version": "11.2.1",
"pluginVersion": "3.7.8"
}, null, 'track', isStale ? null : "e08bd30f-2082-4e4e-87d1-2671044e3b33");
} else if (isStale) {
fbq('track', 'PageView', {
"source": "woocommerce_0",
"version": "11.2.1",
"pluginVersion": "3.7.8"
});
} else {
fbq('track', 'PageView', {
"source": "woocommerce_0",
"version": "11.2.1",
"pluginVersion": "3.7.8"
}, {
"eventID": "e08bd30f-2082-4e4e-87d1-2671044e3b33"
});
}
}
//# sourceURL=facebook-for-woocommerce-inline-js-after
(function(){
function rgb(c){var m=(c||"").match(/[0-9.]+/g);return m?m.map(Number):null;}
function lum(a){return (0.299*a[0]+0.587*a[1]+0.114*a[2])/255;}
function effbg(el){var n=el;while(n){var c=rgb(getComputedStyle(n).backgroundColor);if(c&&(c.length<4||c[3]>0.5))return c;n=n.parentElement;}return null;}
var sel="main h1,main h2,main h3,main h4,main p,main li,main span,#frc h1,#frc h2,#frc h3,#frc p,#frc span,#frc li";
document.querySelectorAll(sel).forEach(function(t){
var bg=effbg(t);
if(!bg) return;
if(lum(bg)<0.30){
var fc=rgb(getComputedStyle(t).color);
if(fc && lum(fc)<0.5){ t.style.setProperty("color","#f7f1e6","important"); }
}
});
})();