Files
nexus/sreweekly/articles/131/07-rolling-the-heroku-redis-fleet.html
2026-09-12 17:23:01 +08:00

1164 lines
337 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="google-site-verification" content="V8eEvIkb6RQqJca9Wf-o9baurAQMe54VKxd06IeaFeg"/>
<meta name="slack-app-id" content="A1QME020P">
<link rel="profile" href="https://gmpg.org/xfn/11">
<meta name="theme-color" content="#5A1BA9" />
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<!-- Google Tag Manager for WordPress by gtm4wp.com -->
<script data-cfasync="false" data-pagespeed-no-defer>
var gtm4wp_datalayer_name = "dataLayer";
var dataLayer = dataLayer || [];
</script>
<!-- End Google Tag Manager for WordPress by gtm4wp.com --><link rel="preload" as="image" href="https://www.heroku.com/wp-content/uploads/2025/03/hero-art.svg">
<!-- This site is optimized with the Yoast SEO Premium plugin v27.7 (Yoast SEO v28.3) - https://yoast.com/product/yoast-seo-premium-wordpress/ -->
<title>How Heroku Patches Redis at Scale | Heroku</title>
<meta name="description" content="How the Heroku Data infrastructure team manages large fleet operations, such as this one required by a recent Redis remote code execution vulnerability." />
<link rel="canonical" href="https://www.heroku.com/blog/rolling-redis-fleet/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Rolling the Heroku Redis Fleet" />
<meta property="og:description" content="How the Heroku Data infrastructure team manages large fleet operations, such as this one required by a recent Redis remote code execution vulnerability." />
<meta property="og:url" content="https://www.heroku.com/blog/rolling-redis-fleet/" />
<meta property="og:site_name" content="Heroku" />
<meta property="article:published_time" content="2018-06-27T20:27:00+00:00" />
<meta property="article:modified_time" content="2026-07-15T18:20:45+00:00" />
<meta property="og:image" content="https://www.heroku.com/wp-content/uploads/2025/03/1530045203-Rolling-The-Heroku-Redis-Fleet-Blog-Post.jpg" />
<meta name="author" content="Camille Baldock" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content="@heroku" />
<meta name="twitter:site" content="@heroku" />
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="Camille Baldock" />
<meta name="twitter:label2" content="Est. reading time" />
<meta name="twitter:data2" content="5 minutes" />
<!-- / Yoast SEO Premium plugin. -->
<link rel='dns-prefetch' href='//cdn.parsely.com' />
<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
<link rel='dns-prefetch' href='//www.google.com' />
<link rel="alternate" type="application/rss+xml" title="Heroku &raquo; Feed" href="https://www.heroku.com/feed/" />
<link rel="preconnect" href="https://www0.assets.heroku.com">
<link rel="preconnect" href="https://p1.parsely.com">
<link rel="preconnect" href="https://www.herokucdn.com">
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id="co-authors-plus-coauthors-style-inline-css">
.wp-block-co-authors-plus-coauthors.is-layout-flow [class*=wp-block-co-authors-plus]{display:inline}
/*# sourceURL=https://www.heroku.com/wp-content/plugins/co-authors-plus/build/blocks/block-coauthors/style-index.css */
</style>
<style id="co-authors-plus-avatar-style-inline-css">
.wp-block-co-authors-plus-avatar :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-avatar :where(img){vertical-align:middle}.wp-block-co-authors-plus-avatar:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-avatar.aligncenter{display:table;margin-inline:auto}
/*# sourceURL=https://www.heroku.com/wp-content/plugins/co-authors-plus/build/blocks/block-coauthor-avatar/style-index.css */
</style>
<style id="co-authors-plus-image-style-inline-css">
.wp-block-co-authors-plus-image{margin-bottom:0}.wp-block-co-authors-plus-image :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-image :where(img){vertical-align:middle}.wp-block-co-authors-plus-image:is(.alignfull,.alignwide) :where(img){width:100%}.wp-block-co-authors-plus-image:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-image.aligncenter{display:table;margin-inline:auto}
/*# sourceURL=https://www.heroku.com/wp-content/plugins/co-authors-plus/build/blocks/block-coauthor-image/style-index.css */
</style>
<style id="safe-svg-svg-icon-style-inline-css">
.safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{fill:currentColor;height:100%;max-height:100%;max-width:100%;width:100%}
/*# sourceURL=https://www.heroku.com/wp-content/plugins/safe-svg/dist/safe-svg-block-frontend.css */
</style>
<style id="wp-parsely-recommendations-style-inline-css">
.parsely-recommendations-list-title{font-size:1.2em}.parsely-recommendations-list{list-style:none;padding:unset}.parsely-recommendations-cardbody{overflow:hidden;padding:.8em;text-overflow:ellipsis;white-space:nowrap}.parsely-recommendations-cardmedia{padding:.8em .8em 0}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/wp-parsely-3.24/build/blocks/recommendations/style-edit.css */
</style>
<style id="jetpack-search-active-filters-style-inline-css">
.wp-block-jetpack-search-active-filters{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.wp-block-jetpack-search-active-filters[hidden]{display:none}.wp-block-jetpack-search-active-filters .jetpack-search-active-filters__heading{color:inherit;font-size:.8rem;font-weight:600;opacity:.8}.wp-block-jetpack-search-active-filters .jetpack-search-active-filters__pills{display:flex;flex-wrap:wrap;gap:.25rem;list-style:none;margin:0;padding:0}.wp-block-jetpack-search-active-filters .jetpack-search-active-filters__pill{align-items:center;background:#0000;border:1px solid;border-radius:12px;color:inherit;cursor:pointer;display:inline-flex;font:inherit;font-size:.8rem;gap:.25rem;letter-spacing:normal;line-height:1.2;padding:.2rem .6rem;text-transform:none;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}@supports(border-color:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-active-filters .jetpack-search-active-filters__pill{background:color-mix(in sRGB,currentColor 14%,#0000);border-color:color-mix(in sRGB,currentColor 38%,#0000)}}.wp-block-jetpack-search-active-filters :is(.jetpack-search-active-filters__pill:focus-visible,.jetpack-search-active-filters__pill:hover){background:#0000;border-color:currentColor}@supports(background:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-active-filters :is(.jetpack-search-active-filters__pill:focus-visible,.jetpack-search-active-filters__pill:hover){background:color-mix(in sRGB,currentColor 24%,#0000);border-color:color-mix(in sRGB,currentColor 52%,#0000)}}.wp-block-jetpack-search-active-filters .jetpack-search-active-filters__pill:focus-visible{box-shadow:0 0 0 2px currentColor;outline:none}@supports(box-shadow:0 0 0 2px color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-active-filters .jetpack-search-active-filters__pill:focus-visible{box-shadow:0 0 0 2px color-mix(in sRGB,currentColor 28%,#0000)}}.wp-block-jetpack-search-active-filters .jetpack-search-active-filters__pill-remove{font-weight:700;line-height:1}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/active-filters.css */
</style>
<style id="jetpack-search-ai-answer-style-inline-css">
.wp-block-jetpack-search-ai-answer{border-inline-start:3px solid color-mix(in sRGB,currentColor 30%,#0000);margin-block:0 var(--wp--preset--spacing--40,1.5rem);padding-block:var(--wp--preset--spacing--30,.75rem);padding-inline-start:var(--wp--preset--spacing--30,1rem)}.wp-block-jetpack-search-ai-answer[hidden]{display:none}.jp-search-answers-panel__heading{font-size:.75em;font-weight:600;letter-spacing:.06em;margin:0 0 .5em;opacity:.7;text-transform:uppercase}.jp-search-answers-panel__loading,.jp-search-answers-panel__loading-hint{align-items:center;color:inherit;display:flex;font-size:.75em;gap:.5em;margin:.5em 0 0;opacity:.7}.jp-search-answers-panel__loading-hint[hidden],.jp-search-answers-panel__loading[hidden]{display:none}.jp-search-answers-panel__loading-hint{font-style:italic}.jp-search-answers-panel__error{margin:0}.jp-search-answers-panel__error-message{margin:0 0 .25em}.jp-search-answers-panel__error-detail{font-size:.875em;margin:0;opacity:.7}.jp-search-answers-panel__content{margin:0}.jp-search-answers-panel__text{font-size:.875em;line-height:1.6}.jp-search-answers-panel__text :is(h2,h3,h4){font-size:1em;font-weight:700;margin:.8em 0 .3em}.jp-search-answers-panel__text p{margin:0 0 .6em}.jp-search-answers-panel__text ul{list-style:disc;margin:0 0 .6em 1.2em;padding:0}.jp-search-answers-panel__text li{margin-bottom:.2em}.jp-search-answers-panel__text strong{font-weight:700}.jp-search-answers-panel__text em{font-style:italic}.jp-search-answers-panel__toggle{align-items:center;background:none;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;font-size:.75em;gap:.4em;margin-top:.5em;padding:0;text-decoration:underline}.jp-search-answers-panel__toggle[hidden]{display:none}.jp-search-answers-panel__toggle:hover{opacity:.7}.jp-search-answers-panel__toggle-icon{border-bottom:1.5px solid;border-right:1.5px solid;display:inline-block;height:.4em;transform:rotate(45deg);width:.4em}.jp-search-answers-panel__citations{display:flex;flex-wrap:wrap;font-size:.75em;gap:.5em 1em;list-style:none;margin:.75em 0 0;padding:0}.jp-search-answers-panel__citations[hidden]{display:none}.jp-search-answers-panel__citations li{margin:0}.jp-search-answers-panel__citations a{align-items:center;display:inline-flex;gap:.25em}.jp-search-answers-panel__citation-icon{flex-shrink:0}@keyframes jp-search-animated-ellipsis-bounce{0%,80%,to{opacity:.2}40%{opacity:1}}.jp-search-animated-ellipsis{display:inline-flex;gap:2px}.jp-search-animated-ellipsis span{animation:jp-search-animated-ellipsis-bounce 1.4s infinite both;background:currentColor;border-radius:50%;display:inline-block;height:3px;width:3px}.jp-search-animated-ellipsis span:nth-child(2){animation-delay:.16s}.jp-search-animated-ellipsis span:nth-child(3){animation-delay:.32s}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/ai-answer.css */
</style>
<style id="jetpack-search-clear-filters-style-inline-css">
.jetpack-search-clear-filters[hidden]{display:none}.jetpack-search-clear-filters__button{cursor:pointer}.jetpack-search-clear-filters.is-style-compact .jetpack-search-clear-filters__button{font-size:.8125rem;line-height:1.5;min-width:0;padding:.25em .75em;width:auto}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/clear-filters.css */
</style>
<style id="jetpack-search-filter-checkbox-style-inline-css">
.wp-block-jetpack-search-filter-checkbox[hidden]{display:none}@keyframes jetpack-search-skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.wp-block-jetpack-search-filter-checkbox .jetpack-search-skeleton{animation:jetpack-search-skeleton-shimmer 1.5s linear infinite;background:color-mix(in sRGB,currentColor 8%,#0000) linear-gradient(90deg,#0000,color-mix(in sRGB,currentColor 6%,#0000) 50%,#0000) repeat;background-size:200% 100%;border-radius:4px;display:block}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-search-filter-checkbox .jetpack-search-skeleton{animation:none}}.wp-block-jetpack-search-filter-checkbox .jetpack-search-skeleton--filter-row{height:1rem;width:80%}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__list--skeleton{list-style:none;margin:0;padding:0}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__list--skeleton[hidden]{display:none}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__item--skeleton{padding:.25rem 0}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__title{color:inherit;font-size:.85rem;font-weight:700;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__list{list-style:none;margin:0;padding:0}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__item{padding:.25rem 0}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__item label{align-items:center;cursor:pointer;display:flex;gap:.5rem}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__label{flex:1}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__count{background:color-mix(in sRGB,currentColor 12%,#0000);border-radius:10px;color:inherit;font-size:.8rem;padding:0 .4rem}.wp-block-jetpack-search-filter-checkbox .jetpack-search-filter__count[hidden]{display:none}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__list{display:flex;flex-wrap:wrap;gap:.5rem}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item{padding:0}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item label{align-items:center;border:1px solid;border-radius:9999px;cursor:pointer;display:inline-flex;gap:.35rem;padding:.35rem .7rem;position:relative;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}@supports(border-color:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item label{border-color:color-mix(in sRGB,currentColor 24%,#0000)}}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item label:hover{background:#0000;border-color:currentColor}@supports(background:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item label:hover{background:color-mix(in sRGB,currentColor 8%,#0000);border-color:color-mix(in sRGB,currentColor 32%,#0000)}}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item label:focus-within{box-shadow:0 0 0 2px currentColor}@supports(box-shadow:0 0 0 2px color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item label:focus-within{box-shadow:0 0 0 2px color-mix(in sRGB,currentColor 28%,#0000)}}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item label:has(input:checked){background:#0000;border-color:currentColor}@supports(background:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item label:has(input:checked){background:color-mix(in sRGB,currentColor 14%,#0000);border-color:color-mix(in sRGB,currentColor 38%,#0000)}}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__item input[type=checkbox]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__label{flex:0 1 auto}.wp-block-jetpack-search-filter-checkbox[data-display-style=chips] .jetpack-search-filter__count{font-size:.72rem;line-height:1.2;padding:.1rem .4rem}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/filter-checkbox.css */
</style>
<style id="jetpack-search-filter-date-style-inline-css">
.wp-block-jetpack-search-filter-date[hidden]{display:none}@keyframes jetpack-search-skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.wp-block-jetpack-search-filter-date .jetpack-search-skeleton{animation:jetpack-search-skeleton-shimmer 1.5s linear infinite;background:color-mix(in sRGB,currentColor 8%,#0000) linear-gradient(90deg,#0000,color-mix(in sRGB,currentColor 6%,#0000) 50%,#0000) repeat;background-size:200% 100%;border-radius:4px;display:block}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-search-filter-date .jetpack-search-skeleton{animation:none}}.wp-block-jetpack-search-filter-date .jetpack-search-skeleton--filter-row{height:1rem;width:80%}.wp-block-jetpack-search-filter-date .jetpack-search-filter__list--skeleton{list-style:none;margin:0;padding:0}.wp-block-jetpack-search-filter-date .jetpack-search-filter__list--skeleton[hidden]{display:none}.wp-block-jetpack-search-filter-date .jetpack-search-filter__item--skeleton{padding:.25rem 0}.wp-block-jetpack-search-filter-date .jetpack-search-filter__title{color:inherit;font-size:.85rem;font-weight:700;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.wp-block-jetpack-search-filter-date .jetpack-search-filter__list{list-style:none;margin:0;padding:0}.wp-block-jetpack-search-filter-date .jetpack-search-filter__item{padding:.25rem 0}.wp-block-jetpack-search-filter-date .jetpack-search-filter__item label{align-items:center;cursor:pointer;display:flex;gap:.5rem}.wp-block-jetpack-search-filter-date .jetpack-search-filter__label{flex:1}.wp-block-jetpack-search-filter-date .jetpack-search-filter__count{background:color-mix(in sRGB,currentColor 12%,#0000);border-radius:10px;color:inherit;font-size:.8rem;padding:0 .4rem}.wp-block-jetpack-search-filter-date .jetpack-search-filter__count[hidden]{display:none}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__list{display:flex;flex-wrap:wrap;gap:.5rem}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item{padding:0}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item label{align-items:center;border:1px solid;border-radius:9999px;cursor:pointer;display:inline-flex;gap:.35rem;padding:.35rem .7rem;position:relative;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}@supports(border-color:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item label{border-color:color-mix(in sRGB,currentColor 24%,#0000)}}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item label:hover{background:#0000;border-color:currentColor}@supports(background:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item label:hover{background:color-mix(in sRGB,currentColor 8%,#0000);border-color:color-mix(in sRGB,currentColor 32%,#0000)}}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item label:focus-within{box-shadow:0 0 0 2px currentColor}@supports(box-shadow:0 0 0 2px color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item label:focus-within{box-shadow:0 0 0 2px color-mix(in sRGB,currentColor 28%,#0000)}}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item label:has(input:checked){background:#0000;border-color:currentColor}@supports(background:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item label:has(input:checked){background:color-mix(in sRGB,currentColor 14%,#0000);border-color:color-mix(in sRGB,currentColor 38%,#0000)}}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__item input[type=checkbox]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__label{flex:0 1 auto}.wp-block-jetpack-search-filter-date[data-display-style=chips] .jetpack-search-filter__count{font-size:.72rem;line-height:1.2;padding:.1rem .4rem}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/filter-date.css */
</style>
<style id="jetpack-search-filters-style-inline-css">
.jetpack-search-filters{display:flex;flex-direction:column;gap:var(--wp--style--block-gap,1rem)}.jetpack-search-filters__editor-canvas{border:1px dashed color-mix(in srgb,currentcolor 40%,#0000);border-radius:2px;padding:.5rem}.jetpack-search-filters__editor-label{display:block;font-size:.6875rem;font-weight:600;letter-spacing:.04em;margin-bottom:.5rem;opacity:.6;text-transform:uppercase}.jetpack-search-filters__empty{font-size:.875rem;line-height:1.5;margin:0;opacity:.6}.jetpack-search-filters__empty[hidden]{display:none}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/filters.css */
</style>
<style id="jetpack-search-filters-popover-style-inline-css">
.jetpack-search-filters-popover{display:inline-block;position:relative}.jetpack-search-filters-popover__trigger{align-items:center;background:#0000;border:1px solid color-mix(in srgb,currentcolor 20%,#0000);border-radius:4px;color:inherit;cursor:pointer;display:inline-flex;gap:4px;height:2rem;justify-content:center;padding:0;position:relative;width:2rem}.jetpack-search-filters-popover__trigger:hover:not(:disabled),.jetpack-search-filters-popover__trigger[aria-expanded=true]{background:color-mix(in sRGB,currentColor 6%,#0000)}.jetpack-search-filters-popover__trigger:disabled{cursor:not-allowed;opacity:.4}.jetpack-search-filters-popover__badge{background:color-mix(in sRGB,currentColor 85%,#0000);border-radius:8px;box-sizing:border-box;font-size:11px;height:16px;inset-block-start:0;inset-inline-end:0;line-height:16px;min-width:16px;padding:0 4px;position:absolute;text-align:center;transform:translate(50%,-50%)}.jetpack-search-filters-popover__badge[hidden]{display:none}:dir(rtl) .jetpack-search-filters-popover__badge{transform:translate(-50%,-50%)}.jetpack-search-filters-popover__badge-count{color:var(--jp-search-page-surface,var(--wp--preset--color--background,#fff))}.jetpack-search-filters-popover .jetpack-search-filters-popover__panel{background-color:var(--jp-search-page-surface,var(--wp--preset--color--base,var(--wp--preset--color--background,#fff)));border:1px solid color-mix(in srgb,currentcolor 15%,#0000);border-radius:4px;box-shadow:0 4px 16px color-mix(in sRGB,currentColor 12%,#0000);color:var(--jp-search-page-ink,var(--wp--preset--color--contrast,var(--wp--preset--color--foreground,inherit)));display:none;flex-direction:column;font-size:1rem;gap:1rem;inset-block-start:calc(100% + 4px);inset-inline-end:0;max-width:min(360px,90vw);min-width:260px;padding:12px;position:absolute;z-index:20}.jetpack-search-filters-popover.is-popover-open .jetpack-search-filters-popover__panel{display:flex}.jetpack-search-filters-popover.is-editor-preview.is-popover-open .jetpack-search-filters-popover__panel{background:#0000;border:none;border-radius:0;box-shadow:none;color:inherit;display:flex;max-width:none;min-width:0;padding:0;position:static;z-index:auto}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/filters-popover.css */
</style>
<style id="jetpack-search-powered-by-style-inline-css">
.wp-block-jetpack-search-powered-by{margin-block:var(--wp--style--block-gap,1.5em);text-align:center}.jetpack-search-powered-by__link{align-items:center;color:inherit;display:inline-flex;font-size:var(--wp--preset--font-size--small,.7em);gap:.5em;line-height:1;text-decoration:none}.jetpack-search-powered-by__logo{display:inline-flex;flex:0 0 auto;height:1em;width:1em}.jetpack-search-powered-by__logo svg{display:block;height:100%;width:100%}.jetpack-search-powered-by__text{font-weight:500}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/powered-by.css */
</style>
<style id="jetpack-search-results-count-style-inline-css">
.wp-block-jetpack-search-results-count{color:inherit;font-size:.85rem;margin:0;opacity:.7}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/results-count.css */
</style>
<style id="jetpack-search-results-list-style-inline-css">
@keyframes jetpack-search-skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.wp-block-jetpack-search-results-list .jetpack-search-skeleton{animation:jetpack-search-skeleton-shimmer 1.5s linear infinite;background:color-mix(in sRGB,currentColor 8%,#0000) linear-gradient(90deg,#0000,color-mix(in sRGB,currentColor 6%,#0000) 50%,#0000) repeat;background-size:200% 100%;border-radius:4px;display:block}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-search-results-list .jetpack-search-skeleton{animation:none}}.wp-block-jetpack-search-results-list .jetpack-search-skeleton--title{height:1.5rem;width:65%}.wp-block-jetpack-search-results-list .jetpack-search-skeleton--path{height:.8125rem;margin-top:.5rem;width:40%}.wp-block-jetpack-search-results-list .jetpack-search-skeleton--meta{height:.9rem;margin-top:1rem;width:25%}.wp-block-jetpack-search-results-list .jetpack-search-skeleton--image{aspect-ratio:16/10;flex:0 0 auto;max-width:30%;width:200px}.wp-block-jetpack-search-results-list .jetpack-search-results__item--skeleton[hidden]{display:none}.wp-block-jetpack-search-results-list .jetpack-search-results__list{list-style:none;margin:0;padding:0}.wp-block-jetpack-search-results-list :is(.jetpack-search-results__error,.jetpack-search-results__no-results){align-items:center;display:flex;flex-direction:column;gap:.25rem;justify-content:center;margin:0;min-height:12rem;opacity:.6;padding:2rem 1rem;text-align:center}.wp-block-jetpack-search-results-list :is(.jetpack-search-results__error[hidden],.jetpack-search-results__no-results[hidden]){display:none}.wp-block-jetpack-search-results-list :is(.jetpack-search-results__error,.jetpack-search-results__no-results) p{font-size:.875rem;line-height:1.5;margin:0;max-width:36ch}.wp-block-jetpack-search-results-list :is(.jetpack-search-results__error,.jetpack-search-results__no-results) p[hidden]{display:none}.wp-block-jetpack-search-results-list .jetpack-search-results__item{align-items:flex-start;display:flex;gap:1.5rem;padding:1.5rem 0}.wp-block-jetpack-search-results-list .jetpack-search-results__copy{flex:1 1 auto;min-width:0}.wp-block-jetpack-search-results-list .jetpack-search-results__title{font-size:1.5rem;font-weight:700;line-height:1.25;margin:0 0 .25rem}.wp-block-jetpack-search-results-list .jetpack-search-results__title-link{color:inherit;text-decoration:none}.wp-block-jetpack-search-results-list :is(.jetpack-search-results__title-link:focus-visible,.jetpack-search-results__title-link:hover){text-decoration:underline}.wp-block-jetpack-search-results-list .jetpack-search-results__title-link span[hidden]{display:none}.wp-block-jetpack-search-results-list .jetpack-search-results__highlight{background:var(--jetpack-search-highlight-background,color-mix(in sRGB,currentColor 18%,#0000));font-weight:700}.wp-block-jetpack-search-results-list .jetpack-search-results__path{color:inherit;font-size:.8125rem;line-height:1.4;margin-top:.25rem;opacity:.6}.wp-block-jetpack-search-results-list .jetpack-search-results__path[hidden]{display:none}.wp-block-jetpack-search-results-list .jetpack-search-results__content{color:inherit;display:-webkit-box;font-size:1rem;line-height:1.55;margin-top:.4rem;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.wp-block-jetpack-search-results-list .jetpack-search-results__content[hidden]{display:none}.wp-block-jetpack-search-results-list .jetpack-search-results__meta{align-items:baseline;color:inherit;display:flex;flex-wrap:wrap;font-size:.9rem;gap:.5rem;margin-top:1rem;opacity:.6}.wp-block-jetpack-search-results-list :is(.jetpack-search-results__author,.jetpack-search-results__date){color:inherit}.wp-block-jetpack-search-results-list .jetpack-search-results__meta-separator[hidden],.wp-block-jetpack-search-results-list :is(.jetpack-search-results__author[hidden],.jetpack-search-results__date[hidden]){display:none}.wp-block-jetpack-search-results-list .jetpack-search-results__image-link{aspect-ratio:16/10;background-color:color-mix(in sRGB,currentColor 8%,#0000);border-radius:4px;display:block;flex:0 0 auto;max-width:30%;overflow:hidden;width:200px}.wp-block-jetpack-search-results-list .jetpack-search-results__image-link[hidden]{display:none}.wp-block-jetpack-search-results-list .jetpack-search-results__image{aspect-ratio:16/10;display:block;height:100%;object-fit:cover;width:100%}.jetpack-search-results--compact .jetpack-search-results__list{display:flex;flex-direction:column;gap:.25rem;list-style:none;margin:0;padding:0}.jetpack-search-results--compact .jetpack-search-results__item{border-color:currentcolor color-mix(in sRGB,currentColor 15%,#0000) color-mix(in sRGB,currentColor 15%,#0000);border-top:1px solid color-mix(in srgb,currentcolor 15%,#0000);padding:.5rem 0}.jetpack-search-results--compact .jetpack-search-results__item:first-child{border-top:none}.jetpack-search-results--compact .jetpack-search-results__copy{align-items:baseline;display:flex;flex-wrap:wrap;gap:.25rem .75rem}.jetpack-search-results--compact .jetpack-search-results__title{font-size:1rem;font-weight:500;margin:0}.jetpack-search-results--compact .jetpack-search-results__meta{font-size:.875em;gap:.75rem;margin-top:0;opacity:.75}.jetpack-search-results--product .jetpack-search-results__list{display:grid;gap:1.5rem;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:0;padding:0}@media(min-width:600px){.jetpack-search-results--product .jetpack-search-results__list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:960px){.jetpack-search-results--product .jetpack-search-results__list{grid-template-columns:repeat(4,minmax(0,1fr))}}.jetpack-search-results--product .jetpack-search-results__item{align-items:stretch;display:flex;flex-direction:column;gap:.5rem;padding:0}.jetpack-search-results--product .jetpack-search-results__product-image-link{aspect-ratio:1/1;background-color:color-mix(in sRGB,currentColor 8%,#0000);border-radius:4px;display:block;overflow:hidden;text-decoration:none}.jetpack-search-results--product :is(.jetpack-search-results__product-image,.jetpack-search-results__product-image-placeholder){background-position:50%;background-repeat:no-repeat;background-size:cover;block-size:100%;display:block;inline-size:100%}.jetpack-search-results--product :is(.jetpack-search-results__product-image-placeholder[hidden],.jetpack-search-results__product-image[hidden]){display:none}.jetpack-search-results--product .jetpack-search-results__product-image-placeholder{background-color:currentColor;mask-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><rect x=%273%27 y=%273%27 width=%2718%27 height=%2718%27 rx=%272%27/><circle cx=%278.5%27 cy=%278.5%27 r=%271.5%27/><path d=%27m21 15-5-5L5 21%27/></svg>");-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><rect x=%273%27 y=%273%27 width=%2718%27 height=%2718%27 rx=%272%27/><circle cx=%278.5%27 cy=%278.5%27 r=%271.5%27/><path d=%27m21 15-5-5L5 21%27/></svg>");mask-position:center;-webkit-mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-size:40%;-webkit-mask-size:40%;opacity:.3}.jetpack-search-results--product .jetpack-search-results__copy{display:flex;flex-direction:column;gap:.25rem}.jetpack-search-results--product .jetpack-search-skeleton--product-image{aspect-ratio:1/1;width:100%}.jetpack-search-results--product .jetpack-search-skeleton--title{height:1.4rem;width:95%}.jetpack-search-results--product .jetpack-search-skeleton--title-secondary{height:1.4rem;width:60%}.jetpack-search-results--product .jetpack-search-results__title{font-size:1.05rem;font-weight:600;line-height:1.3;margin:0}.jetpack-search-results--product .jetpack-search-results__price{display:flex;flex-wrap:wrap;font-size:1rem;gap:.5rem}.jetpack-search-results--product .jetpack-search-results__price[hidden]{display:none}.jetpack-search-results--product .jetpack-search-results__price .jetpack-search-results__price-regular{opacity:.6;text-decoration:line-through}.jetpack-search-results--product .jetpack-search-results__price .jetpack-search-results__price-regular[hidden]{display:none}.jetpack-search-results--product .jetpack-search-results__price .jetpack-search-results__price-sale{font-weight:700;text-decoration:none}.jetpack-search-results--product .jetpack-search-results__price .jetpack-search-results__price-sale[hidden]{display:none}.jetpack-search-results--product .jetpack-search-results__price .jetpack-search-results__price-current{font-weight:600}.jetpack-search-results--product .jetpack-search-results__price .jetpack-search-results__price-current[hidden]{display:none}.jetpack-search-results--product .jetpack-search-results__rating{align-items:center;display:flex;font-size:.875rem;gap:.5rem}.jetpack-search-results--product .jetpack-search-results__rating[hidden]{display:none}.jetpack-search-results--product .jetpack-search-results__rating-stars{block-size:1em;color:color-mix(in sRGB,currentColor 25%,#0000);display:inline-block;font-size:1em;inline-size:5em;line-height:1;position:relative}.jetpack-search-results--product .jetpack-search-results__rating-stars:before{content:"★★★★★";inset:0;letter-spacing:0;position:absolute}.jetpack-search-results--product .jetpack-search-results__rating-fill{color:var(--jetpack-search-rating-color,#f7b500);inset-block:0;inset-inline-start:0;overflow:hidden;position:absolute;white-space:nowrap}.jetpack-search-results--product .jetpack-search-results__rating-fill:before{content:"★★★★★"}.jetpack-search-results--product .jetpack-search-results__rating-count{opacity:.7}.jetpack-search-results--product .jetpack-search-results__match-hint{font-size:.8rem;opacity:.75}.jetpack-search-results--product .jetpack-search-results__match-hint[hidden]{display:none}.jetpack-search-results--product .jetpack-search-results__match-hint mark{background:none;color:inherit}.jetpack-search-results--product .jetpack-search-results__match-hint span[hidden]{display:none}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/results-list.css */
</style>
<style id="jetpack-search-results-load-more-style-inline-css">
.wp-block-jetpack-search-results-load-more{padding-block:var(--wp--style--block-gap,1rem);text-align:center}.wp-block-jetpack-search-results-load-more[hidden]{display:none}.wp-block-jetpack-search-results-load-more .jetpack-search-load-more__button{cursor:pointer}.wp-block-jetpack-search-results-load-more .jetpack-search-load-more__button[hidden]{display:none}.wp-block-jetpack-search-results-load-more .jetpack-search-load-more__button:disabled{cursor:not-allowed;opacity:.5}.wp-block-jetpack-search-results-load-more.is-style-compact .jetpack-search-load-more__button{font-size:.8125rem;line-height:1.5;min-width:0;padding:.25em .75em;width:auto}.wp-block-jetpack-search-results-load-more .jetpack-search-load-more__spinner{color:inherit;display:block;margin-block:var(--wp--style--block-gap,.5rem);margin-inline:auto;opacity:.7}.wp-block-jetpack-search-results-load-more .jetpack-search-load-more__spinner[hidden]{display:none}.wp-block-jetpack-search-results-load-more .jetpack-search-load-more__sentinel{display:block;height:1px;width:100%}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/results-load-more.css */
</style>
<style id="jetpack-search-results-sort-style-inline-css">
.wp-block-jetpack-search-results-sort{align-items:center;display:flex;gap:.5rem;margin-inline-start:auto}.wp-block-jetpack-search-results-sort label{color:inherit;font-size:.9rem;opacity:.8}.wp-block-jetpack-search-results-sort select{appearance:auto;border:1px solid color-mix(in srgb,currentcolor 20%,#0000);border-radius:4px;cursor:pointer;padding:.2rem .5rem}.wp-block-jetpack-search-results-sort select,.wp-block-jetpack-search-results-sort select option{background-color:var(--jp-search-page-surface,var(--wp--preset--color--base,var(--wp--preset--color--background,#fff)));color:var(--jp-search-page-ink,var(--wp--preset--color--contrast,var(--wp--preset--color--foreground,inherit)))}.wp-block-jetpack-search-results-sort .jetpack-search-results-sort__radio-group{align-items:center;border:0;display:flex;flex-wrap:wrap;margin:0;padding:0}.wp-block-jetpack-search-results-sort .jetpack-search-results-sort__radio-group legend{border:0;clip-path:inset(50%);height:1px;margin:0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-search-results-sort .jetpack-search-results-sort__radio-item{align-items:center;display:flex;font-size:.9rem;position:relative}.wp-block-jetpack-search-results-sort .jetpack-search-results-sort__radio-item input[type=radio]{appearance:none;border:0;clip-path:inset(50%);height:1px;margin:0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-search-results-sort .jetpack-search-results-sort__radio-item label{cursor:pointer}.wp-block-jetpack-search-results-sort .jetpack-search-results-sort__radio-item input[type=radio]:checked+label{font-weight:600;opacity:1}.wp-block-jetpack-search-results-sort .jetpack-search-results-sort__radio-item input[type=radio]:focus-visible+label{outline:2px solid currentColor;outline-offset:2px}.wp-block-jetpack-search-results-sort .jetpack-search-results-sort__radio-item:not(:last-child):after{content:"•"/"";margin-block:0;margin-inline:.5rem;opacity:.5}.jetpack-search-results-sort--popover{display:inline-block;position:relative}.jetpack-search-results-sort--popover .jetpack-search-results-sort__trigger{align-items:center;background:#0000;border:1px solid color-mix(in srgb,currentcolor 20%,#0000);border-radius:4px;color:inherit;cursor:pointer;display:inline-flex;height:2rem;justify-content:center;padding:0;width:2rem}.jetpack-search-results-sort--popover .jetpack-search-results-sort__trigger:hover:not(:disabled),.jetpack-search-results-sort--popover .jetpack-search-results-sort__trigger[aria-expanded=true]{background:color-mix(in sRGB,currentColor 6%,#0000)}.jetpack-search-results-sort--popover .jetpack-search-results-sort__trigger:disabled{cursor:not-allowed;opacity:.4}.jetpack-search-results-sort--popover .jetpack-search-results-sort__menu{background-color:var(--jp-search-page-surface,var(--wp--preset--color--base,var(--wp--preset--color--background,#fff)));border:1px solid color-mix(in srgb,currentcolor 15%,#0000);border-radius:4px;box-shadow:0 4px 16px color-mix(in sRGB,currentColor 12%,#0000);color:var(--jp-search-page-ink,var(--wp--preset--color--contrast,var(--wp--preset--color--foreground,inherit)));display:flex;flex-direction:column;font-size:1rem;inset-block-start:calc(100% + 4px);inset-inline-end:0;min-width:160px;padding:4px;position:absolute;z-index:20}.jetpack-search-results-sort--popover .jetpack-search-results-sort__menu[hidden]{display:none}.jetpack-search-results-sort--popover .jetpack-search-results-sort__menu-item{appearance:none;background:#0000;border:none;border-radius:2px;color:inherit;cursor:pointer;font:inherit;padding:6px 8px;text-align:start}.jetpack-search-results-sort--popover :is(.jetpack-search-results-sort__menu-item:focus-visible,.jetpack-search-results-sort__menu-item:hover){background:color-mix(in sRGB,currentColor 8%,#0000)}.jetpack-search-results-sort--popover .jetpack-search-results-sort__menu-item[aria-checked=true]:before{content:"✓";margin-inline-end:6px}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/results-sort.css */
</style>
<style id="jetpack-search-search-input-style-inline-css">
.jetpack-search-compact-toolbar>.wp-block-jetpack-search-search-input{flex:1 1 0;min-width:0}.wp-block-jetpack-search-search-input .jetpack-search-input__inside-wrapper{align-items:center;border-bottom:1px solid #0000;display:flex;gap:.5rem;padding:.5rem 0;position:relative}@supports(border-color:color-mix(in sRGB,black 50%,white)){.wp-block-jetpack-search-search-input .jetpack-search-input__inside-wrapper{border-bottom-color:color-mix(in sRGB,currentColor 15%,#0000)}}.wp-block-jetpack-search-search-input .jetpack-search-input__icon{fill:currentColor;flex:0 0 auto;height:1.5rem;opacity:.6;width:1.5rem}.wp-block-jetpack-search-search-input .jetpack-search-input__field{background:#0000;border:0;color:inherit;flex:1 1 auto;font-size:1.25rem;line-height:1.4;min-width:0;padding:0}.wp-block-jetpack-search-search-input .jetpack-search-input__field::-webkit-search-cancel-button,.wp-block-jetpack-search-search-input .jetpack-search-input__field::-webkit-search-decoration{appearance:none}.wp-block-jetpack-search-search-input .jetpack-search-input__field::placeholder{color:inherit;opacity:.5}.wp-block-jetpack-search-search-input .jetpack-search-input__field:focus{outline:none}.wp-block-jetpack-search-search-input .jetpack-search-input__clear{background:none;border:0;color:inherit;cursor:pointer;flex:0 0 auto;font-size:1rem;line-height:1;opacity:.6;padding:.25rem .5rem}.wp-block-jetpack-search-search-input .jetpack-search-input__clear[hidden]{display:none}.wp-block-jetpack-search-search-input :is(.jetpack-search-input__clear:focus-visible,.jetpack-search-input__clear:hover){opacity:1}.wp-block-jetpack-search-search-input .jetpack-search-input__suggestions{background-color:var(--jp-search-page-surface,var(--wp--preset--color--base,var(--wp--preset--color--background,#fff)));border:1px solid color-mix(in srgb,currentcolor 15%,#0000);border-radius:4px;box-shadow:0 4px 16px color-mix(in sRGB,currentColor 12%,#0000);color:var(--jp-search-page-ink,var(--wp--preset--color--contrast,var(--wp--preset--color--foreground,inherit)));font-size:1rem;left:0;list-style:none;margin:0;max-height:60vh;overflow-y:auto;overscroll-behavior:contain;padding:4px 0;position:absolute;right:0;top:calc(100% + 4px);z-index:20}.wp-block-jetpack-search-search-input .jetpack-search-input__suggestions[hidden]{display:none}@media(max-width:480px){.wp-block-jetpack-search-search-input .jetpack-search-input__suggestions{max-height:50vh}}.wp-block-jetpack-search-search-input .jetpack-search-input__suggestions-label{color:color-mix(in sRGB,currentColor 55%,#0000);font-size:.75rem;font-weight:600;letter-spacing:.06em;padding:8px 12px 4px;text-transform:uppercase}.wp-block-jetpack-search-search-input .jetpack-search-input__suggestions-option{border-radius:2px;color:inherit;cursor:pointer;font:inherit;line-height:1.4;padding:8px 12px}@media(max-width:480px){.wp-block-jetpack-search-search-input .jetpack-search-input__suggestions-option{padding:12px}}.wp-block-jetpack-search-search-input .jetpack-search-input__suggestions-option:hover{background:color-mix(in sRGB,currentColor 8%,#0000)}.wp-block-jetpack-search-search-input .jetpack-search-input__suggestions-option.is-active{background:color-mix(in sRGB,currentColor 14%,#0000)}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/search-input.css */
</style>
<style id="jetpack-search-search-results-style-inline-css">
.jetpack-search-search-results{display:flex;flex-direction:column;gap:var(--wp--style--block-gap,1.5rem)}
/*# sourceURL=https://www.heroku.com/wp-content/mu-plugins/jetpack-16.1/jetpack_vendor/automattic/jetpack-search/build/search-blocks/search-results.css */
</style>
<link rel='stylesheet' id='all-css-42' href='https://www.heroku.com/_static/??-eJyljtEKgzAMRX9oXRiM6svYt9Q2aiFtShMZ/v3KRBTGnvaYcDjnwqsYz1kxKxRappgF2ithiM6MTAErOBFUAS8CIUoht5rJEWFdIbkpxzF6U7gs5dqQC5yMOmNCgRmJ2CC1IytXEF0Jv+A9f3Cn8Fg/VLimmH9luA5Rt+WHo6LwUj1umradF/1TMjjBXfFMj1vXd9bau+3fLQJ90g==' type='text/css' media='all' />
<style id="elementor-frontend-inline-css">
.elementor-kit-6{--e-global-color-primary:#5A1BA9;--e-global-color-secondary:#333D47;--e-global-color-text:#333D47;--e-global-color-accent:#0490DC;--e-global-color-d947ae6:#FFFFFF;--e-global-color-41f33e2:#F9F9FB;--e-global-color-35983d5:#EEF1F6;--e-global-color-d488854:#D7BFF2;--e-global-color-697d8ed:#5A1BA9;--e-global-color-b11b5a5:#EAE9F1;--e-global-color-6afeba7:#300B60;--e-global-color-c427ccf:#5A1BA9;--e-global-typography-primary-font-family:"BentonSans";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"BentonSans";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"BentonSans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"BentonSans";--e-global-typography-accent-font-weight:500;color:var( --e-global-color-text );font-family:"BentonSans", Arial, Helvetica, sans-serif;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1500px;}.e-con{--container-max-width:1500px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:30px;}.elementor-element{--widgets-spacing:30px 30px;--widgets-spacing-row:30px;--widgets-spacing-column:30px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start Custom Fonts CSS */@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-book-4e191d7217a753da16ff44f89fdbf2b73d01cd150e824c152ba08a61e8db07ec.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-book-048416fe9c54f2f3523a23f30c6bedd1a961aa6e0c9ad169b7fd429811bf9dce.woff') format('woff');
}
@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-medium-707aee2a59a7364edde03afc7a5c1dab53cda95864b5a283795369fcf2c30787-1.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-medium-5cd12715add2d4b76e8eac14da142662e5204b7b60ecbb6ffa78a1ca24546019-1.woff') format('woff');
}
@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/03/bentonsans-regular.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/03/bentonsans-regular.woff') format('woff');
}
/* End Custom Fonts CSS */
.e-heading-base a, .e-paragraph-base a { all: unset; cursor: pointer; }form[data-element_type="e-form"].form-state-success [data-element_type="e-form-success-message"],form[data-element_type="e-form"].form-state-error [data-element_type="e-form-error-message"]{ display: block; }
.e-form-textarea-base:not([data-resizable]) { resize: none; } .e-form-submit-button-base { cursor: pointer; box-sizing: border-box; }
.elementor .e-div-block-base{min-width:30px;padding:10px;display:block;}.elementor .e-flexbox-base{padding:10px;display:flex;flex-direction:row;}.elementor .e-grid-base{column-gap:20px;padding:10px;display:grid;row-gap:20px;grid-template-columns:repeat(3, 1fr);grid-template-rows:repeat(2, 1fr);}.elementor .e-tabs-base{padding-block-start:0px;display:flex;flex-direction:column;gap:30px;}.elementor .e-tabs-menu-base{display:flex;justify-content:center;}.elementor .e-tab-base{width:160px;color:#0C0D0E;cursor:pointer;padding:8px;border-width:2px;border-color:#E0E0E0;border-style:solid;background-color:#FFFFFF;display:block;}.elementor .e-tab-base.e--selected{border-color:#0C0D0E;outline-width:0px;}.elementor .e-tab-base:focus{border-color:#0C0D0E;outline-width:0px;}.elementor .e-tab-base:hover,.elementor .e-tab-base:focus-visible{background-color:#E0E0E0;}.elementor .e-tabs-content-area-base{display:block;}.elementor .e-tab-content-base{min-width:30px;padding:10px;display:block;}.elementor .e-form-base{padding:20px;display:flex;flex-direction:row;gap:10px;flex-wrap:wrap;align-content:start;align-items:flex-start;}.elementor .e-form-base .e-form-checkbox-row{padding:0px;gap:8px;align-items:center;}.elementor .e-form-success-message-base{font-size:12px;color:#2F532E;text-align:center;padding:12px;background-color:#D4E9D6;display:none;}.elementor .e-form-error-message-base{font-size:12px;color:#870000;text-align:center;padding:12px;background-color:#ffdede;display:none;}.elementor .e-collection-loop-base{display:block;}.elementor .e-collection-loop-layout-base{display:grid;gap:20px;grid-template-columns:repeat(3, 1fr);grid-auto-rows:1fr;}.elementor .e-pagination-base{padding-block-start:8px;padding-block-end:8px;padding-inline-start:8px;padding-inline-end:8px;margin-block-start:8px;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start;align-items:center;}.elementor .e-pagination-prev-base{font-size:14px;color:#1F2937;text-align:center;text-decoration:none;padding-block-start:8px;padding-block-end:8px;padding-inline-start:12px;padding-inline-end:12px;border-radius:4px;border-width:1px;border-color:#E5E7EB;border-style:solid;display:inline-flex;gap:8px;align-items:center;}.elementor .e-pagination-next-base{font-size:14px;color:#1F2937;text-align:center;text-decoration:none;padding-block-start:8px;padding-block-end:8px;padding-inline-start:12px;padding-inline-end:12px;border-radius:4px;border-width:1px;border-color:#E5E7EB;border-style:solid;display:inline-flex;gap:8px;align-items:center;}.elementor .e-heroku-icon-base{width:50px;height:50px;display:inline-block;}.elementor .e-heroku-wysiwyg-base{margin:0px;}.elementor .e-heading-base{margin:0px;}.elementor .e-heading-link-base{all:unset;cursor:pointer;}.elementor .e-image-link-base{width:fit-content;all:unset;cursor:pointer;display:inherit;}.elementor .e-image-base{display:block;}.elementor .e-paragraph-base{margin:0px;}.elementor .e-paragraph-link-base{all:unset;cursor:pointer;}.elementor .e-svg-base{width:65px;height:65px;display:inline-block;}.elementor .e-button-base{text-align:center;padding-block-start:12px;padding-block-end:12px;padding-inline-start:24px;padding-inline-end:24px;border-radius:2px;border-width:0px;background-color:#375EFB;display:inline-block;}.elementor .e-youtube-base{overflow:hidden;aspect-ratio:16/9;}.elementor .e-divider-base{height:1px;border-width:0px;border-color:transparent;border-style:none;background-color:#000;}.elementor .e-self-hosted-video-base{max-width:100vw;aspect-ratio:16/9;display:inline-block;}.elementor .e-form-input-base{height:36px;font-size:12px;color:#0c0d0e;border-radius:0px;border-color:#D6D5D5;}.elementor .e-form-input-base:focus{border-color:#706F6F;outline-style:none;}.elementor .e-form-input-base::placeholder{color:#9DA5AE;}.elementor .e-form-label-base{font-size:14px;color:#0c0d0e;}.elementor .e-form-textarea-base{font-size:12px;border-radius:0px;border-color:#D6D5D5;}.elementor .e-form-textarea-base:focus{border-color:#706F6F;outline-style:none;}.elementor .e-form-textarea-base::placeholder{color:#9DA5AE;}.elementor .e-form-submit-button-base{color:#fff;padding-block-start:10px;padding-block-end:10px;padding-inline-start:28px;padding-inline-end:30px;border-radius:0px;border-width:0px;background-color:#000;display:flex;justify-content:center;align-items:center;}.elementor .e-form-submit-button-base:hover,.elementor .e-form-submit-button-base:focus-visible{background-color:#323232;}.elementor .e-form-checkbox-base{width:1.15em;height:1.15em;color:#ffffff;border-radius:0px;border-width:1px;border-color:#D6D5D5;border-style:solid;background-color:transparent;transition:background-color 200ms;display:grid;justify-items:center;align-items:center;appearance:none;}.elementor .e-form-checkbox-base:focus{border-color:#706F6F;outline-style:none;}.elementor .e-form-checkbox-base:checked{background-color:#69727D;}.elementor .e-form-checkbox-base::before{width:65%;height:65%;background-color:currentColor;opacity:0%;transform-origin:0% 100% 0px;transition:opacity 200ms;content:"";clip-path:polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);}.elementor .e-form-checkbox-base:checked::before{opacity:100%;}.elementor .e-form-radio-button-base{width:1.15em;height:1.15em;color:#ffffff;border-radius:50%;border-width:1px;border-color:#D6D5D5;border-style:solid;background-color:transparent;display:grid;justify-items:center;align-items:center;appearance:none;}.elementor .e-form-radio-button-base:focus{border-color:#706F6F;outline-style:none;}.elementor .e-form-radio-button-base:checked{background-color:transparent;}.elementor .e-form-radio-button-base::before{width:65%;height:65%;border-radius:50%;background-color:#706F6F;opacity:0%;transition:opacity 200ms;content:"";}.elementor .e-form-radio-button-base:checked::before{opacity:100%;}.elementor .e-form-date-picker-base{width:100%;height:36px;font-size:12px;color:#0c0d0e;border-radius:0px;border-width:1px;border-color:#D6D5D5;border-style:solid;}.elementor .e-form-date-picker-base:focus{border-color:#706F6F;outline-style:none;}.elementor .e-form-time-picker-base{width:100%;height:36px;font-size:12px;color:#0c0d0e;border-radius:0px;border-width:1px;border-color:#D6D5D5;border-style:solid;}.elementor .e-form-time-picker-base:focus{border-color:#706F6F;outline-style:none;}.elementor .e-form-select-base{font-size:12px;border-width:1px;border-color:#D6D5D5;border-style:solid;background-color:transparent;}.elementor .e-form-select-base:focus{border-color:#706F6F;outline-style:none;}.elementor .e-form-file-upload-base{height:36px;font-size:12px;color:#0c0d0e;border-radius:0px;border-color:#D6D5D5;}.elementor .e-form-file-upload-base:focus{border-color:#706F6F;outline-style:none;}@media(max-width:767px){@media(max-width:767px){.elementor .e-grid-base{grid-template-columns:repeat(1, 1fr);}}}
.elementor-11843 .elementor-element.elementor-element-42085f8d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-11843 .elementor-element.elementor-element-9da61cb{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;}.elementor-11843 .elementor-element.elementor-element-5d80e2e3{--display:flex;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-11843 .elementor-element.elementor-element-d89808f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-11843 .elementor-element.elementor-element-6dd1e13e{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;}.elementor-11843 .elementor-element.elementor-element-21dbd5ff{--display:flex;--justify-content:center;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-11843 .elementor-element.elementor-element-59d5d120{text-align:start;}.elementor-11843 .elementor-element.elementor-element-99cc162{--display:flex;--justify-content:center;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-11843 .elementor-element.elementor-element-5d80e2e3{--width:60%;}.elementor-11843 .elementor-element.elementor-element-d89808f{--width:40%;}.elementor-11843 .elementor-element.elementor-element-6dd1e13e{--content-width:1500px;}.elementor-11843 .elementor-element.elementor-element-21dbd5ff{--width:20%;}.elementor-11843 .elementor-element.elementor-element-99cc162{--width:79.665%;}}@media(max-width:1024px) and (min-width:768px){.elementor-11843 .elementor-element.elementor-element-d89808f{--width:100%;}.elementor-11843 .elementor-element.elementor-element-21dbd5ff{--width:50%;}.elementor-11843 .elementor-element.elementor-element-99cc162{--width:50%;}}@media(max-width:1024px){.elementor-11843 .elementor-element.elementor-element-d89808f{--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}}@media(max-width:767px){.elementor-11843 .elementor-element.elementor-element-21dbd5ff{--width:60%;--justify-content:center;}.elementor-11843 .elementor-element.elementor-element-99cc162{--width:40%;}}
.elementor-14 .elementor-element.elementor-element-4ab36929{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-14 .elementor-element.elementor-element-5242ecfe{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;}.elementor-14 .elementor-element.elementor-element-12479e49{--display:flex;}.elementor-14 .elementor-element.elementor-element-57b6ee5d{--display:flex;}.elementor-14 .elementor-element.elementor-element-2b0ed67{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-00ba0d9{--display:flex;}.elementor-14 .elementor-element.elementor-element-1d2fabd9{--display:flex;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-96a9910.elementor-social-icon i{color:var( --e-global-color-697d8ed );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-96a9910.elementor-social-icon svg{fill:var( --e-global-color-697d8ed );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-525a1a8.elementor-social-icon i{color:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-525a1a8.elementor-social-icon svg{fill:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-cf7fdae.elementor-social-icon i{color:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-cf7fdae.elementor-social-icon svg{fill:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-79745e7.elementor-social-icon i{color:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-79745e7.elementor-social-icon svg{fill:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-428cd3e.elementor-social-icon i{color:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-repeater-item-428cd3e.elementor-social-icon svg{fill:var( --e-global-color-primary );}.elementor-14 .elementor-element.elementor-element-2609a195{--grid-template-columns:repeat(0, auto);text-align:right;}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-social-icon{background-color:#66666600;}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-social-icon:hover i{color:var( --e-global-color-accent );}.elementor-14 .elementor-element.elementor-element-2609a195 .elementor-social-icon:hover svg{fill:var( --e-global-color-accent );}.elementor-14 .elementor-element.elementor-element-79de5a00{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;}.elementor-14 .elementor-element.elementor-element-da83b70{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;}.elementor-14 .elementor-element.elementor-element-da83b70.e-con{--align-self:center;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-14 .elementor-element.elementor-element-277b6566{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-start;}.elementor-14 .elementor-element.elementor-element-277b6566.e-con{--align-self:center;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-sub-item{font-family:var( --e-global-typography-accent-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-14 .elementor-element.elementor-element-1614a8b8{width:auto;max-width:auto;}.elementor-14 .elementor-element.elementor-element-1614a8b8 .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-secondary );fill:var( --e-global-color-secondary );padding-left:11px;padding-right:11px;padding-top:0px;padding-bottom:0px;}.elementor-14 .elementor-element.elementor-element-3f52f268{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-14 .elementor-element.elementor-element-12479e49{--width:20%;}.elementor-14 .elementor-element.elementor-element-57b6ee5d{--width:20%;}.elementor-14 .elementor-element.elementor-element-2b0ed67{--width:20%;}.elementor-14 .elementor-element.elementor-element-00ba0d9{--width:20%;}.elementor-14 .elementor-element.elementor-element-1d2fabd9{--width:20%;}.elementor-14 .elementor-element.elementor-element-79de5a00{--content-width:1500px;}.elementor-14 .elementor-element.elementor-element-da83b70{--width:33%;}.elementor-14 .elementor-element.elementor-element-277b6566{--width:66%;}}@media(max-width:1024px) and (min-width:768px){.elementor-14 .elementor-element.elementor-element-12479e49{--width:45%;}.elementor-14 .elementor-element.elementor-element-57b6ee5d{--width:45%;}.elementor-14 .elementor-element.elementor-element-2b0ed67{--width:45%;}.elementor-14 .elementor-element.elementor-element-00ba0d9{--width:45%;}.elementor-14 .elementor-element.elementor-element-1d2fabd9{--width:100%;}.elementor-14 .elementor-element.elementor-element-da83b70{--width:100%;}.elementor-14 .elementor-element.elementor-element-277b6566{--width:100%;}}@media(max-width:1024px){.elementor-14 .elementor-element.elementor-element-5242ecfe{--flex-wrap:wrap;}.elementor-14 .elementor-element.elementor-element-1d2fabd9{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-14 .elementor-element.elementor-element-2609a195{text-align:center;}.elementor-14 .elementor-element.elementor-element-79de5a00{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-14 .elementor-element.elementor-element-da83b70{--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;}.elementor-14 .elementor-element.elementor-element-aa5f8d0.elementor-element{--align-self:center;}.elementor-14 .elementor-element.elementor-element-277b6566{--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;}.elementor-14 .elementor-element.elementor-element-3f52f268{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;}}@media(max-width:767px){.elementor-14 .elementor-element.elementor-element-12479e49{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-14 .elementor-element.elementor-element-57b6ee5d{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-14 .elementor-element.elementor-element-2b0ed67{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-14 .elementor-element.elementor-element-00ba0d9{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-14 .elementor-element.elementor-element-1d2fabd9{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-14 .elementor-element.elementor-element-2609a195.elementor-element{--align-self:center;}.elementor-14 .elementor-element.elementor-element-aa5f8d0.elementor-element{--align-self:center;}.elementor-14 .elementor-element.elementor-element-3f52f268{--flex-wrap:nowrap;}.elementor-14 .elementor-element.elementor-element-f8ea2fb{text-align:center;}}
.elementor-4755 .elementor-element.elementor-element-1e61495{--display:flex;}.elementor-4755 .elementor-element.elementor-element-dec033b{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;}.elementor-4755 .elementor-element.elementor-element-5887513{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-4755 .elementor-element.elementor-element-5faab08{--display:flex;}.elementor-widget-breadcrumbs{font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-4755 .elementor-element.elementor-element-0afd821{--display:flex;}.elementor-4755 .elementor-element.elementor-element-0afd821:not(.elementor-motion-effects-element-type-background), .elementor-4755 .elementor-element.elementor-element-0afd821 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-d947ae6 );}.elementor-4755 .elementor-element.elementor-element-59aa92a{--display:flex;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-4755 .elementor-element.elementor-element-fffbe35{text-align:center;}.elementor-4755 .elementor-element.elementor-element-63f38b8{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-4755 .elementor-element.elementor-element-63f38b8.e-con{--align-self:center;}.elementor-4755 .elementor-element.elementor-element-046ed73.elementor-element{--align-self:center;}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-4755 .elementor-element.elementor-element-352af6e .elementor-icon-list-icon{width:14px;}.elementor-4755 .elementor-element.elementor-element-352af6e .elementor-icon-list-icon i{font-size:14px;}.elementor-4755 .elementor-element.elementor-element-352af6e .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-4755 .elementor-element.elementor-element-352af6e .elementor-icon-list-text, .elementor-4755 .elementor-element.elementor-element-352af6e .elementor-icon-list-text a{color:var( --e-global-color-text );}.elementor-4755 .elementor-element.elementor-element-734264a{--display:flex;}.elementor-widget-theme-post-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-4755 .elementor-element.elementor-element-123205a .elementor-icon-list-icon{width:14px;}.elementor-4755 .elementor-element.elementor-element-123205a .elementor-icon-list-icon i{font-size:14px;}.elementor-4755 .elementor-element.elementor-element-123205a .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-4755 .elementor-element.elementor-element-f2963be{--display:flex;}.elementor-4755 .elementor-element.elementor-element-f2963be:not(.elementor-motion-effects-element-type-background), .elementor-4755 .elementor-element.elementor-element-f2963be > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-41f33e2 );}.elementor-4755 .elementor-element.elementor-element-01d8ac7{--display:flex;}.elementor-4755 .elementor-element.elementor-element-3227818{--alignment:center;--grid-side-margin:15px;--grid-column-gap:15px;--grid-row-gap:10px;--grid-bottom-margin:10px;}.elementor-4755 .elementor-element.elementor-element-3227818 .elementor-share-btn{height:27px;}.elementor-4755 .elementor-element.elementor-element-3227818 .elementor-share-btn__title{font-family:"BentonSans", Arial, Helvetica, sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;}.elementor-widget-divider{--divider-color:var( --e-global-color-secondary );}.elementor-widget-divider .elementor-divider__text{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-divider.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon{color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-secondary );}.elementor-4755 .elementor-element.elementor-element-1b08945{--divider-border-style:solid;--divider-color:#000;--divider-border-width:1px;}.elementor-4755 .elementor-element.elementor-element-1b08945 .elementor-divider-separator{width:100%;}.elementor-4755 .elementor-element.elementor-element-1b08945 .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-4755 .elementor-element.elementor-element-74e48cb{text-align:center;}.elementor-widget-posts .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-post__title, .elementor-widget-posts .elementor-post__title a{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-posts .elementor-post__meta-data{font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-posts .elementor-post__excerpt p{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-posts .elementor-post__read-more{color:var( --e-global-color-accent );}.elementor-widget-posts a.elementor-post__read-more{font-family:var( --e-global-typography-accent-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-post__card .elementor-post__badge{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-posts .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-4755 .elementor-element.elementor-element-da9d136{--grid-row-gap:35px;--grid-column-gap:30px;}.elementor-4755 .elementor-element.elementor-element-bf46c3e{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:stretch;}.elementor-4755 .elementor-element.elementor-element-bf46c3e:not(.elementor-motion-effects-element-type-background), .elementor-4755 .elementor-element.elementor-element-bf46c3e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(180deg, var( --e-global-color-6afeba7 ) 5%, var( --e-global-color-c427ccf ) 95%);}.elementor-4755 .elementor-element.elementor-element-36e77f2{--display:flex;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-4755 .elementor-element.elementor-element-355ff82{text-align:center;}.elementor-4755 .elementor-element.elementor-element-6317b9c{--display:flex;}.elementor-4755 .elementor-element.elementor-element-99d3626{text-align:center;}@media(min-width:768px){.elementor-4755 .elementor-element.elementor-element-5887513{--width:100%;}.elementor-4755 .elementor-element.elementor-element-59aa92a{--content-width:900px;}.elementor-4755 .elementor-element.elementor-element-01d8ac7{--content-width:900px;}.elementor-4755 .elementor-element.elementor-element-bf46c3e{--content-width:1100px;}}@media(max-width:1024px){ .elementor-4755 .elementor-element.elementor-element-3227818{--grid-side-margin:15px;--grid-column-gap:15px;--grid-row-gap:10px;--grid-bottom-margin:10px;}}@media(max-width:767px){ .elementor-4755 .elementor-element.elementor-element-3227818{--grid-side-margin:15px;--grid-column-gap:15px;--grid-row-gap:10px;--grid-bottom-margin:10px;}}/* Start Custom Fonts CSS */@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-book-4e191d7217a753da16ff44f89fdbf2b73d01cd150e824c152ba08a61e8db07ec.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-book-048416fe9c54f2f3523a23f30c6bedd1a961aa6e0c9ad169b7fd429811bf9dce.woff') format('woff');
}
@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-medium-707aee2a59a7364edde03afc7a5c1dab53cda95864b5a283795369fcf2c30787-1.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-medium-5cd12715add2d4b76e8eac14da142662e5204b7b60ecbb6ffa78a1ca24546019-1.woff') format('woff');
}
@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/03/bentonsans-regular.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/03/bentonsans-regular.woff') format('woff');
}
/* End Custom Fonts CSS */
/*# sourceURL=elementor-frontend-inline-css */
</style>
<link rel='stylesheet' id='prismjs-style-css' href='https://cdnjs.cloudflare.com/ajax/libs/prism/1.30.0/themes/prism-okaidia.min.css?ver=1.30.0' media='all' />
<link rel='stylesheet' id='all-css-44' href='https://www.heroku.com/_static/??-eJylktFugzAMRX9orjVpgr5M+5YEXLCWxFFs4Pcbtqov7SYKb7bkcxTfGJcMnSSjZGgjRVIcKQQBCrVJJgWdKplip4qFanmq1Ru+xI3keipwETEqD3wO08BJ8Sm6cD+QAUc30Cly2k4H9qgLZyo4n39cv91rlpWrQz0bS3KhTsBezW2VNQxOw25epWMXgCujB3dxOQeChfw32zYV5CJP3pTcDHVgOiTxpSbTlSn6jXv94cmi9WDSRXZHvGYLgfVYKDq6QuAns10/dbP0PHO/9dz+SeT+gq/4+d6e26ZpPpr2CktYhak=' type='text/css' media='all' />
<style id="elementor-pro-custom-fonts-inline-css">
@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-book-4e191d7217a753da16ff44f89fdbf2b73d01cd150e824c152ba08a61e8db07ec.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-book-048416fe9c54f2f3523a23f30c6bedd1a961aa6e0c9ad169b7fd429811bf9dce.woff') format('woff');
}
@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-medium-707aee2a59a7364edde03afc7a5c1dab53cda95864b5a283795369fcf2c30787-1.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/01/bentonsans-medium-5cd12715add2d4b76e8eac14da142662e5204b7b60ecbb6ffa78a1ca24546019-1.woff') format('woff');
}
@font-face {
font-family: 'BentonSans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('https://www.heroku.com/wp-content/uploads/2025/03/bentonsans-regular.woff2') format('woff2'),
url('https://www.heroku.com/wp-content/uploads/2025/03/bentonsans-regular.woff') format('woff');
}
/*# sourceURL=elementor-pro-custom-fonts-inline-css */
</style>
<link rel='stylesheet' id='all-css-46' href='https://www.heroku.com/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/css/view/general.min.css?m=1781799491g' type='text/css' media='all' />
<script id="jquery-core-js" src="https://www.heroku.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
<script id="jquery-migrate-js" src="https://www.heroku.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
<!-- Stream WordPress user activity plugin v4.3.0 -->
<style>img#wpstats{display:none}</style>
<!-- Google Tag Manager for WordPress by gtm4wp.com -->
<!-- GTM Container placement set to manual -->
<script data-cfasync="false" data-pagespeed-no-defer>
var dataLayer_content = {"pagePostType":"post","pagePostType2":"single-post","pageCategory":["engineering"],"pageAttributes":["heroku-key-value-store","performance-optimization","redis","security-incidents"],"pagePostAuthor":"Camille Baldock"};
dataLayer.push( dataLayer_content );
</script>
<script data-cfasync="false" data-pagespeed-no-defer>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-JD26');
</script>
<!-- End Google Tag Manager for WordPress by gtm4wp.com --><script type="application/ld+json" class="wp-parsely-metadata">{"@context":"https:\/\/schema.org","@type":"NewsArticle","headline":"Rolling the Heroku Redis Fleet","url":"https:\/\/www.heroku.com\/blog\/rolling-redis-fleet\/","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/www.heroku.com\/blog\/rolling-redis-fleet\/"},"thumbnailUrl":"","image":{"@type":"ImageObject","url":""},"articleSection":"Engineering","author":[{"@type":"Person","name":"Camille Baldock"}],"creator":["Camille Baldock"],"publisher":{"@type":"Organization","name":"Heroku","logo":"https:\/\/www.heroku.com\/wp-content\/uploads\/2025\/01\/Heroku-Logo-KO-RGB.png"},"keywords":["heroku key-value store","performance optimization","redis","security incidents"],"dateCreated":"2018-06-27T20:27:00Z","datePublished":"2018-06-27T20:27:00Z","dateModified":"2026-07-15T18:20:45Z"}</script><style>
.content-callout-wrapper {background:#EAF5FE; border-radius: 12px; padding:2rem;margin:0 0 1.5rem 0;}
.content-callout-wrapper > p:last-child {margin-bottom:0;}
body.orbit .content-callout-wrapper h2,body.orbit .content-callout-wrapper h3,body.orbit .content-callout-wrapper h4 {color:#181818;}
body.orbit .mega-container-blog--mm .elementor-loop-container .e-loop-item.post .container-blog--mm .elementor-heading-title {
margin-bottom:10px;
}
body.orbit .mega-container-blog--mm .elementor-loop-container .e-loop-item.post .container-blog--mm .elementor-heading-title a {
font-size:1.2rem;
margin-bottom:0;
}
body.orbit .mega-container-blog--mm .elementor-loop-container .e-loop-item.post .container-blog--mm .elementor-post-info li .elementor-post-info__item--type-custom a {
color:inherit;
}
body.orbit .mega-container-blog--mm .elementor-loop-container .e-loop-item.post .container-blog--mm .elementor-widget-theme-post-excerpt p{
font-size:0.9rem;
line-height:1.5;
}
</style>
<style>
.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
background-image: none !important;
}
@media screen and (max-height: 1024px) {
.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
background-image: none !important;
}
}
@media screen and (max-height: 640px) {
.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
background-image: none !important;
}
}
</style>
<style>
.algolia-search-highlight {
background-color: #fffbcc;
border-radius: 2px;
font-style: normal;
}
</style>
<style media="screen">
html {
margin-top: 0 !important;
}
#wpadminbar {
position: relative;
}
@media screen and ( max-width: 991px ) {
html {
margin-top: 0 !important;
}
#wpadminbar {
display: none;
}
}
</style>
<link rel="icon" href="https://www.heroku.com/wp-content/uploads/2025/01/apple-touch-icon-180x180-1.png?w=32" sizes="32x32" />
<link rel="icon" href="https://www.heroku.com/wp-content/uploads/2025/01/apple-touch-icon-180x180-1.png?w=180" sizes="192x192" />
<link rel="apple-touch-icon" href="https://www.heroku.com/wp-content/uploads/2025/01/apple-touch-icon-180x180-1.png?w=180" />
<meta name="msapplication-TileImage" content="https://www.heroku.com/wp-content/uploads/2025/01/apple-touch-icon-180x180-1.png?w=180" />
<style class="megamenu-css">@charset "UTF-8";/** THIS FILE IS AUTOMATICALLY GENERATED - DO NOT MAKE MANUAL EDITS! **//** Custom CSS should be added to Mega Menu > Menu Themes > Custom Styling **/.mega-menu-last-modified-1784818127 { content: 'Thursday 23rd July 2026 14:48:47 UTC'; }#mega-menu-wrap-menu-1, #mega-menu-wrap-menu-1 #mega-menu-menu-1, #mega-menu-wrap-menu-1 #mega-menu-menu-1 ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-row, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-column, #mega-menu-wrap-menu-1 #mega-menu-menu-1 a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-indicator, #mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge, #mega-menu-wrap-menu-1 button.mega-close, #mega-menu-wrap-menu-1 button.mega-toggle-standard {transition: none;box-shadow: none;background: none;border: 0;bottom: auto;box-sizing: border-box;clip: auto;color: black;display: block;float: none;font-family: inherit;font-size: inherit;height: auto;left: auto;line-height: 1.7;list-style-type: none;margin: 0;min-height: auto;max-height: none;min-width: auto;max-width: none;opacity: 1;outline: none;overflow: visible;padding: 0;position: relative;pointer-events: auto;right: auto;text-align: left;text-decoration: none;text-indent: 0;text-transform: none;transform: none;top: auto;vertical-align: baseline;visibility: inherit;width: auto;word-wrap: break-word;white-space: normal;-webkit-tap-highlight-color: transparent;}#mega-menu-wrap-menu-1:before, #mega-menu-wrap-menu-1:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1 ul.mega-sub-menu:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 ul.mega-sub-menu:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-row:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-row:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-column:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-column:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1 a.mega-menu-link:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 a.mega-menu-link:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-indicator:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-indicator:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge:after, #mega-menu-wrap-menu-1 button.mega-close:before, #mega-menu-wrap-menu-1 button.mega-close:after, #mega-menu-wrap-menu-1 button.mega-toggle-standard:before, #mega-menu-wrap-menu-1 button.mega-toggle-standard:after {display: none;}#mega-menu-wrap-menu-1 {border-radius: 0px;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 {background-color: rgba(255, 255, 255, 0);}}#mega-menu-wrap-menu-1.mega-keyboard-navigation .mega-menu-toggle:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation .mega-toggle-block:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation .mega-toggle-block a:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation .mega-toggle-block button:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation .mega-toggle-block .mega-search input[type=text]:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation .mega-toggle-block button.mega-toggle-animated:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation #mega-menu-menu-1 a:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation #mega-menu-menu-1 span:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation #mega-menu-menu-1 input:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation #mega-menu-menu-1 li.mega-menu-item .mega-menu-link:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation #mega-menu-menu-1 form.mega-search-open:has(input[type=text]:focus), #mega-menu-wrap-menu-1.mega-keyboard-navigation #mega-menu-menu-1 + button.mega-close:focus, #mega-menu-wrap-menu-1.mega-keyboard-navigation #mega-menu-menu-1 .mega-mobile-back > button:focus {outline-style: solid;outline-width: 3px;outline-color: #109cde;outline-offset: -3px;}#mega-menu-wrap-menu-1.mega-keyboard-navigation .mega-toggle-block button.mega-toggle-animated:focus {outline-offset: 2px;}#mega-menu-wrap-menu-1.mega-keyboard-navigation > li.mega-menu-item > a.mega-menu-link:focus {background-color: rgba(255, 255, 255, 0);color: rgba(255, 255, 255, 0.7);font-weight: inherit;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1.mega-keyboard-navigation > li.mega-menu-item > a.mega-menu-link:focus {color: #333;background-color: white;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 {text-align: right;padding: 0px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-description-group {vertical-align: middle;display: inline-block;transition: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-description-group .mega-menu-title, #mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-description-group .mega-menu-description {transition: none;line-height: 1.5;display: block;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-description-group .mega-menu-description {font-style: italic;font-size: 0.8em;text-transform: none;font-weight: normal;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 a.mega-menu-link {cursor: pointer;display: inline;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: flex;align-items: center;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link:before {flex: 0 0 auto;align-self: flex-start;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-tabbed.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: block;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-icon-top > a.mega-menu-link {display: table-cell;vertical-align: middle;line-height: initial;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-icon-top > a.mega-menu-link:before {display: block;margin: 0 0 6px 0;text-align: center;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-icon-top > a.mega-menu-link > span.mega-title-below {display: inline-block;transition: none;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-icon-top > a.mega-menu-link {display: block;line-height: 60px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-icon-top > a.mega-menu-link:before {display: inline-block;margin: 0 6px 0 0;text-align: left;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-icon-right > a.mega-menu-link:before {float: right;margin: 0 0 0 6px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-animating > ul.mega-sub-menu {pointer-events: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-disable-link > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu li.mega-disable-link > a.mega-menu-link {cursor: inherit;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children.mega-disable-link > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu > li.mega-menu-item-has-children.mega-disable-link > a.mega-menu-link {cursor: pointer;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 p {margin-bottom: 10px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 input, #mega-menu-wrap-menu-1 #mega-menu-menu-1 img {max-width: 100%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > ul.mega-sub-menu {display: block;visibility: hidden;opacity: 1;pointer-events: auto;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > ul.mega-sub-menu {display: none;visibility: visible;opacity: 1;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu.mega-menu-item.mega-toggle-on ul.mega-sub-menu {display: block;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu.mega-menu-item.mega-toggle-on li.mega-hide-sub-menu-on-mobile > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-hide-sub-menu-on-mobile > ul.mega-sub-menu {display: none;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade"] li.mega-menu-item > ul.mega-sub-menu {opacity: 0;transition: opacity 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {opacity: 1;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"] li.mega-menu-item.mega-menu-megamenu > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"] li.mega-menu-item.mega-menu-flyout ul.mega-sub-menu {opacity: 0;transform: translate(0, 10px);transition: opacity 200ms ease-in, transform 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {opacity: 1;transform: translate(0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"] li.mega-menu-item.mega-menu-megamenu > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"] li.mega-menu-item.mega-menu-flyout ul.mega-sub-menu {transform: translate(0, 10px);transition: transform 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {transform: translate(0, 0);}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-collapse-children > ul.mega-sub-menu {display: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-collapse-children.mega-toggle-on > ul.mega-sub-menu {display: block;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu {visibility: visible;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu ul.mega-sub-menu {visibility: inherit;opacity: 1;display: block;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-1-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 100%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-2-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 50%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-3-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 33.3333333333%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-4-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 25%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-5-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 20%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-6-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 16.6666666667%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item a[class^="dashicons"]:before {font-family: dashicons;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item a.mega-menu-link:before {display: inline-block;font: inherit;font-family: dashicons;position: static;margin: 0 6px 0 0px;vertical-align: top;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;color: inherit;background: transparent;height: auto;width: auto;top: auto;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item a.mega-material-symbol:before {content: attr(data-ms-icon);font-family: var(--wp--preset--font-family--material-symbols);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-hide-text a.mega-menu-link:before {margin: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-hide-text li.mega-menu-item a.mega-menu-link:before {margin: 0 6px 0 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-align-bottom-left.mega-toggle-on > a.mega-menu-link {border-radius: 0px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-align-bottom-right > ul.mega-sub-menu {right: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-align-bottom-right.mega-toggle-on > a.mega-menu-link {border-radius: 0px;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu.mega-menu-item {position: static;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item {margin: 0 0px 0 0;display: inline-block;height: auto;vertical-align: middle;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-item-align-right {float: right;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-item-align-right {margin: 0 0 0 0px;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-item-align-float-left {float: left;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item > a.mega-menu-link:focus {background-color: rgba(255, 255, 255, 0);color: rgba(255, 255, 255, 0.7);font-weight: inherit;text-decoration: none;border-color: #fff;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {background-color: rgba(255, 255, 255, 0);color: rgba(255, 255, 255, 0.7);font-weight: inherit;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {color: #333;background-color: white;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {background-color: rgba(255, 255, 255, 0);color: rgba(255, 255, 255, 0.7);font-weight: inherit;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {color: #333;background-color: white;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item > a.mega-menu-link {line-height: 40px;height: 40px;padding: 0px 12px;vertical-align: baseline;width: auto;display: block;color: white;text-transform: none;text-decoration: none;text-align: left;background-color: rgba(0, 0, 0, 0);border: 0;border-radius: 0px;font-family: inherit;font-size: 20px;font-weight: inherit;outline: none;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-multi-line > a.mega-menu-link {line-height: inherit;display: table-cell;vertical-align: middle;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-multi-line > a.mega-menu-link br {display: none;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item {display: list-item;margin: 0;clear: both;border: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item.mega-item-align-right {float: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item > a.mega-menu-link {border: 0;margin: 0;line-height: 60px;height: 60px;padding: 0 10px;background: transparent;text-align: left;color: black;font-size: 14px;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row {width: 100%;float: left;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column {float: left;min-height: 1px;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column {width: calc(var(--span) / var(--columns) * 100%);}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column {width: 100%;clear: both;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column > ul.mega-sub-menu > li.mega-menu-item {padding: 15px;width: 100%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu {z-index: 999;border-radius: 0px;background: linear-gradient(to bottom, white, #f7f6f8);border: 0;padding: 0px;position: absolute;width: 100%;max-width: none;left: 0;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu {float: left;position: static;width: 100%;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard {width: calc(var(--span) / var(--columns) * 100%);}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu .mega-description-group .mega-menu-description {margin: 5px 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu {clear: both;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {margin-left: 10px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu {margin-left: 10px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item {color: black;font-family: inherit;font-size: inherit;display: block;float: left;clear: none;padding: 15px;vertical-align: top;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard.mega-menu-clear, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-menu-clear {clear: left;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard h4.mega-block-title, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title {color: black;font-family: inherit;font-size: inherit;text-transform: none;text-decoration: none;font-weight: inherit;text-align: left;margin: 0px 0px 0px 0px;padding: 0px 0px 5px 0px;vertical-align: top;display: block;visibility: inherit;border: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard h4.mega-block-title:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {color: black;/* Mega Menu > Menu Themes > Mega Menus > Second Level Menu Items */font-family: inherit;font-size: 16px;text-transform: none;text-decoration: none;font-weight: bold;text-align: left;margin: 0px 0px 0px 0px;padding: 0px;vertical-align: top;display: block;border: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:focus, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {color: #ee643f;/* Mega Menu > Menu Themes > Mega Menus > Second Level Menu Items (Hover) */font-weight: bold;text-decoration: none;background-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:hover > span.mega-title-below, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:focus > span.mega-title-below, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover > span.mega-title-below, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus > span.mega-title-below {text-decoration: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link {color: black;/* Mega Menu > Menu Themes > Mega Menus > Third Level Menu Items */font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: 300;text-align: left;margin: 0px 0px 0px 0px;padding: 0px;vertical-align: top;display: block;border: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: flex;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item > a.mega-menu-link:focus, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:focus {color: #ee643f;/* Mega Menu > Menu Themes > Mega Menus > Third Level Menu Items (Hover) */font-weight: 300;text-decoration: none;background-color: rgba(0, 0, 0, 0);}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu {border: 0;padding: 10px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item {width: 100%;clear: both;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {color: black;font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: 300;margin: 0;border: 0;padding: 0px;vertical-align: top;display: block;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {color: #ee643f;font-weight: 300;text-decoration: none;background-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu {z-index: 999;position: absolute;width: 250px;max-width: none;padding: 0px;border: 0;background-color: #f1f1f1;border-radius: 0px;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu {float: left;position: static;width: 100%;padding: 0;border: 0;border-radius: 0;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item {clear: both;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link {display: block;background-color: #f1f1f1;color: #666;font-family: inherit;font-size: 14px;font-weight: normal;padding: 0px 10px;line-height: 35px;text-decoration: none;text-transform: none;vertical-align: baseline;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:first-child > a.mega-menu-link {border-top-left-radius: 0px;border-top-right-radius: 0px;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:first-child > a.mega-menu-link {border-top-left-radius: 0;border-top-right-radius: 0;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:last-child > a.mega-menu-link {border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:last-child > a.mega-menu-link {border-bottom-right-radius: 0;border-bottom-left-radius: 0;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:focus {background-color: #dddddd;font-weight: normal;text-decoration: none;color: #666;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {position: absolute;left: 100%;top: 0;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu a.mega-menu-link {padding-left: 20px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu a.mega-menu-link {padding-left: 30px;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {display: inline-block;height: 100%;font-size: inherit;line-height: inherit;margin: 0 0 0 6px;color: inherit;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {display: inline-block;vertical-align: top;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;content: "";font-family: dashicons;font-weight: normal;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: right;margin-left: auto;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children.mega-collapse-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after {content: "";}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: right;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after {content: "";}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children.mega-hide-sub-menu-on-mobile > a.mega-menu-link > span.mega-indicator {display: none;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-megamenu:not(.mega-menu-tabbed) li.mega-menu-item-has-children:not(.mega-collapse-children) > a.mega-menu-link > span.mega-indicator, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item-has-children.mega-hide-arrow > a.mega-menu-link > span.mega-indicator {display: none;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-flyout li.mega-menu-item a.mega-menu-link > span.mega-indicator:after {content: "";}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link {text-align: right;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link > span.mega-indicator {float: left;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link > span.mega-indicator:after {content: "";margin: 0 6px 0 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link:before {float: right;margin: 0 0 0 6px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-flyout.mega-align-bottom-right ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {left: -100%;top: 0;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-hide-on-mobile, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-hide-on-mobile, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-hide-on-mobile {display: none;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-hide-on-desktop, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-hide-on-desktop, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-hide-on-desktop {display: none;}}#mega-menu-wrap-menu-1 .mega-menu-toggle {display: none;}#mega-menu-wrap-menu-1 .mega-menu-toggle ~ button.mega-close {display: none;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 .mega-menu-toggle {z-index: 1;background-color: rgba(255, 255, 255, 0);line-height: 40px;height: 40px;text-align: left;user-select: none;outline: none;white-space: nowrap;display: flex;}#mega-menu-wrap-menu-1 .mega-menu-toggle img {max-width: 100%;padding: 0;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-left, #mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-center, #mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-right {display: flex;flex: 1;gap: 6px;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block {display: flex;height: 100%;outline: 0;align-self: center;flex-shrink: 0;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-left {justify-content: flex-start;padding-left: 6px;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-center {justify-content: center;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-right {justify-content: flex-end;padding-right: 6px;}#mega-menu-wrap-menu-1 .mega-menu-toggle + #mega-menu-menu-1 {flex-direction: column;flex-wrap: nowrap;background-color: white;padding: 20px 20px 20px 10px;display: none;position: absolute;width: 100%;z-index: 9999999;}#mega-menu-wrap-menu-1 .mega-menu-toggle.mega-menu-open + #mega-menu-menu-1 {display: flex;visibility: visible;}}#mega-menu-wrap-menu-1 span.mega-menu-badge {position: relative;}.elementor-sticky__spacer #mega-menu-wrap-menu-1 #mega-menu-menu-1, .elementor-sticky__spacer #mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-sub-menu {visibility: inherit !important;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 {/*! * Hamburgers * @description Tasty CSS-animated hamburgers * @author Jonathan Suh @jonsuh * @site https://jonsuh.com/hamburgers * @link https://github.com/jonsuh/hamburgers */}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated {padding: 0;display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;cursor: pointer;transition-property: opacity, filter;transition-duration: 0.15s;transition-timing-function: linear;font: inherit;color: inherit;text-transform: none;background-color: transparent;border: 0;margin: 0;overflow: visible;transform: scale(0.8);align-self: center;outline: 0;background: none;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-box {width: 40px;height: 24px;display: inline-block;position: relative;outline: 0;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner {display: block;top: 50%;margin-top: -2px;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner, #mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::before, #mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::after {width: 40px;height: 4px;background-color: #ddd;border-radius: 4px;position: absolute;transition-property: transform;transition-duration: 0.15s;transition-timing-function: ease;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::before, #mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::after {content: "";display: block;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::before {top: -10px;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::after {bottom: -10px;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner {top: 2px;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner::before {top: 10px;transition-property: transform, opacity;transition-timing-function: ease;transition-duration: 0.15s;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner::after {top: 20px;}#mega-menu-wrap-menu-1 .mega-menu-toggle.mega-menu-open .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner {transform: translate3d(0, 10px, 0) rotate(45deg);}#mega-menu-wrap-menu-1 .mega-menu-toggle.mega-menu-open .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner::before {transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);opacity: 0;}#mega-menu-wrap-menu-1 .mega-menu-toggle.mega-menu-open .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner::after {transform: translate3d(0, -20px, 0) rotate(-90deg);}#mega-menu-wrap-menu-1.mega-sticky {position: fixed;top: 0;left: 0;right: 0;z-index: 99998;opacity: 1;max-width: 100%;width: 100%;margin: 0 auto;background: transparent;}#mega-menu-wrap-menu-1.mega-sticky #mega-menu-menu-1 {background-color: rgba(255, 255, 255, 0);}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1.mega-sticky #mega-menu-menu-1 {background-color: white;}}#mega-menu-wrap-menu-1.mega-stuck {transition: transform 0.25s ease-in-out;}#mega-menu-wrap-menu-1.mega-stuck.mega-hide {transform: translateY(-100%);}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1.mega-sticky #mega-menu-menu-1:not([data-effect-mobile^="slide_"]) {max-height: calc(100vh - 40px);overflow: auto;}body.admin-bar #mega-menu-wrap-menu-1.mega-sticky #mega-menu-menu-1:not([data-effect-mobile^="slide_"]) {max-height: calc(100vh - 40px - 42px);}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-show-when-sticky {display: none;}#mega-menu-wrap-menu-1.mega-sticky #mega-menu-menu-1 li.mega-menu-item.mega-hide-when-sticky {display: none;}#mega-menu-wrap-menu-1.mega-sticky #mega-menu-menu-1 li.mega-menu-item.mega-show-when-sticky {display: inline-block;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1.mega-sticky #mega-menu-menu-1 li.mega-menu-item.mega-show-when-sticky.mega-hide-on-mobile {display: none;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-sub-menu li#mega-menu-item-119.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 20px;background-position-x: center;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-119.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 50px;background-position-x: center;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-119 > a.mega-menu-link:before {content: "";background-image: url("//www.heroku.com/wp-content/uploads/2025/04/platform-50x50.png");background-size: 50px 50px;background-repeat: no-repeat;width: 50px;height: 50px;line-height: 50px;vertical-align: middle;}@media (-webkit-min-device-pixel-ratio: 2) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-119 > a.mega-menu-link:before {background-image: url("//www.heroku.com/wp-content/uploads/2025/04/platform-100x100.png");}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-119 > a.mega-menu-link:before {background-size: 20px 20px;width: 20px;height: 20px;line-height: 20px;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-sub-menu li#mega-menu-item-13876.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 20px;background-position-x: center;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-13876.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 50px;background-position-x: center;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-13876 > a.mega-menu-link:before {content: "";background-image: url("//www.heroku.com/wp-content/uploads/2025/05/ai-50x50.png");background-size: 50px 50px;background-repeat: no-repeat;width: 50px;height: 50px;line-height: 50px;vertical-align: middle;}@media (-webkit-min-device-pixel-ratio: 2) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-13876 > a.mega-menu-link:before {background-image: url("//www.heroku.com/wp-content/uploads/2025/05/ai-100x100.png");}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-13876 > a.mega-menu-link:before {background-size: 20px 20px;width: 20px;height: 20px;line-height: 20px;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-sub-menu li#mega-menu-item-132.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 20px;background-position-x: center;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-132.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 50px;background-position-x: center;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-132 > a.mega-menu-link:before {content: "";background-image: url("//www.heroku.com/wp-content/uploads/2025/04/data-50x50.png");background-size: 50px 50px;background-repeat: no-repeat;width: 50px;height: 50px;line-height: 50px;vertical-align: top;}@media (-webkit-min-device-pixel-ratio: 2) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-132 > a.mega-menu-link:before {background-image: url("//www.heroku.com/wp-content/uploads/2025/04/data-100x100.png");}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-132 > a.mega-menu-link:before {background-size: 20px 20px;width: 20px;height: 20px;line-height: 20px;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-sub-menu li#mega-menu-item-136.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 20px;background-position-x: center;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-136.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 50px;background-position-x: center;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-136 > a.mega-menu-link:before {content: "";background-image: url("//www.heroku.com/wp-content/uploads/2025/04/enterprise-50x50.png");background-size: 50px 50px;background-repeat: no-repeat;width: 50px;height: 50px;line-height: 50px;vertical-align: top;}@media (-webkit-min-device-pixel-ratio: 2) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-136 > a.mega-menu-link:before {background-image: url("//www.heroku.com/wp-content/uploads/2025/04/enterprise-100x100.png");}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-136 > a.mega-menu-link:before {background-size: 20px 20px;width: 20px;height: 20px;line-height: 20px;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-sub-menu li#mega-menu-item-2160.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 20px;background-position-x: center;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-2160.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 50px;background-position-x: center;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-2160 > a.mega-menu-link:before {content: "";background-image: url("//www.heroku.com/wp-content/uploads/2025/04/icon-support-50x50.png");background-size: 50px 50px;background-repeat: no-repeat;width: 50px;height: 50px;line-height: 50px;vertical-align: middle;}@media (-webkit-min-device-pixel-ratio: 2) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-2160 > a.mega-menu-link:before {background-image: url("//www.heroku.com/wp-content/uploads/2025/04/icon-support-100x100.png");}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-2160 > a.mega-menu-link:before {background-size: 20px 20px;width: 20px;height: 20px;line-height: 20px;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 .mega-sub-menu li#mega-menu-item-146.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 20px;background-position-x: center;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-146.mega-icon-top > a.mega-menu-link:before {width: 100%;min-width: 50px;background-position-x: center;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-146 > a.mega-menu-link:before {content: "";background-image: url("//www.heroku.com/wp-content/uploads/2025/04/addons-50x50.png");background-size: 50px 50px;background-repeat: no-repeat;width: 50px;height: 50px;line-height: 50px;vertical-align: middle;}@media (-webkit-min-device-pixel-ratio: 2) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-146 > a.mega-menu-link:before {background-image: url("//www.heroku.com/wp-content/uploads/2025/04/addons-100x100.png");}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li#mega-menu-item-146 > a.mega-menu-link:before {background-size: 20px 20px;width: 20px;height: 20px;line-height: 20px;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item a[class^="genericon"]:before {font-family: genericons;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical {flex-direction: column;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical > li.mega-menu-item {display: list-item;margin: 0;clear: both;width: 100%;margin: 0 0 0px 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical > li.mega-menu-item > a.mega-menu-link {height: auto;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical > li.mega-menu-item.mega-icon-top > a.mega-menu-link {display: list-item;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical > li.mega-menu-item.mega-hide-on-mobile {display: none;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical > li.mega-menu-item.mega-hide-on-desktop {display: none;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical > li.mega-menu-megamenu > ul.mega-sub-menu {width: 600px;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical > li.mega-menu-megamenu.mega-menu-item, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical > li.mega-menu-flyout.mega-menu-item {position: relative;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-right.mega-menu-item-has-children li.mega-menu-item a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-right.mega-menu-flyout li.mega-menu-item-has-children li.mega-menu-item a.mega-menu-link {text-align: left;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-right.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-right.mega-menu-flyout li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: right;margin-left: auto;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-right.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-right.mega-menu-flyout li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {content: "";margin: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-left.mega-menu-item-has-children > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-left.mega-menu-flyout li.mega-menu-item-has-children > a.mega-menu-link {text-align: right;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-left.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-left.mega-menu-flyout li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: left;margin-left: auto;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-left.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-left.mega-menu-flyout li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {content: "";margin: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-left.mega-menu-item-has-children.mega-icon-left > a.mega-menu-link:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-align-bottom-left.mega-menu-flyout li.mega-menu-item-has-children.mega-icon-left > a.mega-menu-link:before {float: right;margin: 0 0 0 6px;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-megamenu.mega-align-bottom-right > ul.mega-sub-menu {top: 0;left: 100%;right: auto;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-right ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-right ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {top: 0;left: 100%;right: auto;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-right.mega-icon-left > a.mega-menu-link:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item.mega-icon-left > a.mega-menu-link:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-right ul.mega-sub-menu li.mega-menu-item.mega-icon-left > a.mega-menu-link:before {float: left;margin: 0 6px 0 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-megamenu.mega-align-bottom-left > ul.mega-sub-menu {top: 0;left: auto;right: 100%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-left > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-left li.mega-menu-item > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-vertical li.mega-menu-flyout.mega-align-bottom-left li.mega-menu-item ul.mega-sub-menu li.mega-menu-item > ul.mega-sub-menu {top: 0;left: auto;right: 100%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion {flex-direction: column;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-item {display: list-item;margin: 0;clear: both;width: 100%;margin: 0 0 0px 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-item > a.mega-menu-link {height: auto;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-item.mega-icon-top > a.mega-menu-link {display: list-item;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-item.mega-hide-on-mobile {display: none;}}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-item.mega-hide-on-desktop {display: none;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-megamenu > ul.mega-sub-menu {position: static;width: 100% !important;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-flyout > ul.mega-sub-menu {position: static;width: 100% !important;padding: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-flyout > ul.mega-sub-menu li.mega-menu-item.mega-current-menu-item > a.mega-menu-link {background-color: #dddddd;font-weight: normal;text-decoration: none;color: #666;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-flyout > ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {position: static;left: 0;width: 100%;border: 0;box-shadow: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-flyout > ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu a.mega-menu-link {padding-left: 20px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-flyout > ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu a.mega-menu-link {padding-left: 30px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion > li.mega-menu-flyout > ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu a.mega-menu-link {padding-left: 40px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion li.mega-menu-item > ul.mega-sub-menu {display: none;visibility: visible;opacity: 1;}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {display: block;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: right;margin-left: auto;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion li.mega-menu-item li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {content: "";}#mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after, #mega-menu-wrap-menu-1 #mega-menu-menu-1.mega-menu-accordion li.mega-menu-item li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after {content: "";}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-bp-profile-nav img.avatar, #mega-menu-wrap-menu-1 #mega-menu-menu-1 img.mmm_gravatar {vertical-align: middle;position: relative;top: -1px;display: inline-block;max-height: 100%;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-bp-profile-nav img.avatar, #mega-menu-wrap-menu-1 #mega-menu-menu-1 img.mmm_gravatar {max-height: 90%;width: auto;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 img.avatar {vertical-align: middle;position: relative;top: -1px;}#mega-menu-wrap-menu-1 > li.mega-menu-item.mega-current-menu-item > a.mega-menu-logo, #mega-menu-wrap-menu-1 > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-logo {background: inherit;}#mega-menu-wrap-menu-1 li.mega-menu-item img.mega-menu-logo {display: inline;vertical-align: middle;max-height: none;}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 li.mega-menu-item img.mega-menu-logo {max-height: 90%;width: auto;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect-mobile^="slide_"] li.mega-menu-item a.mega-menu-link.mega-menu-logo {padding-top: 10px;padding-bottom: 10px;text-align: center;justify-content: center;height: auto;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu {padding: 0;flex-direction: column;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition) > ul.mega-sub-menu {opacity: 1;transition: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition) > ul.mega-sub-menu > li {opacity: 0;transition: opacity 200ms ease-in;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition).mega-toggle-on > ul.mega-sub-menu > li {opacity: 1;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition) > ul.mega-sub-menu {opacity: 1;transform: translate(0, 0);transition: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition) > ul.mega-sub-menu > li {opacity: 0;transform: translate(0, 10px);transition: opacity 200ms ease-in, transform 200ms ease-in;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="fade_up"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition).mega-toggle-on > ul.mega-sub-menu > li {opacity: 1;transform: translate(0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition) > ul.mega-sub-menu {transform: translate(0, 0);transition: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition) > ul.mega-sub-menu > li {transform: translate(0, 10px);transition: transform 200ms ease-in;}#mega-menu-wrap-menu-1 #mega-menu-menu-1[data-effect="slide_up"] li.mega-menu-item.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item:not(.mega-disable-transition).mega-toggle-on > ul.mega-sub-menu > li {transform: translate(0, 0);}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item {width: 100%;padding: 0;position: static;/* Tab Content *//* Tab Content Widget */}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {display: flex;width: 20%;background-color: #f1f1f1;color: #666;font-family: inherit;font-size: 14px;font-weight: normal;padding: 0px 10px 0px 10px;min-height: 35px;height: fit-content;align-items: center;text-decoration: none;text-transform: none;margin: 0;border: 0;cursor: pointer;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-toggle-on > a.mega-menu-link, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {background-color: #dddddd;font-weight: normal;text-decoration: none;color: #666;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-menu-item-has-children > a.mega-menu-link > .mega-indicator {margin-left: auto;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-menu-item-has-children > a.mega-menu-link > .mega-indicator:after {content: "";}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu {width: 80%;float: left;clear: none;position: absolute;top: 0;left: 20%;visibility: hidden;border-left: 1px solid #ccc;padding: 0px 0px 0px 0px;min-height: 100%;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu .mega-menu-item-has-children > a.mega-menu-link:after {display: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu {visibility: visible;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item {float: left;padding: 15px 15px 15px 15px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item.mega-menu-clear {clear: left;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {margin-left: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {margin-left: 10px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item {/* Second level menu item *//* Second level menu item hover *//* Third level menu item *//* Third level menu item hover */}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {color: black;font-family: inherit;font-size: 16px;text-transform: none;text-decoration: none;font-weight: bold;margin: 0px 0px 0px 0px;padding: 0px 0px 0px 0px;vertical-align: top;display: block;border-top: 0px solid rgba(0, 0, 0, 0);border-left: 0px solid rgba(0, 0, 0, 0);border-right: 0px solid rgba(0, 0, 0, 0);border-bottom: 0px solid rgba(0, 0, 0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {color: #ee643f;font-weight: bold;text-decoration: none;background-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover > span.mega-title-below, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus > span.mega-title-below {text-decoration: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link {color: black;font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: 300;margin: 0px 0px 0px 0px;padding: 0px 0px 0px 0px;vertical-align: top;display: block;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:focus {color: #ee643f;font-weight: 300;text-decoration: none;background-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item {/* Second level menu item hover */}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {color: black;font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: 300;margin: 0;padding: 0px 0px 0px 0px;vertical-align: top;display: block;border-top: 0;border-left: 0;border-right: 0;border-bottom: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {color: #ee643f;font-weight: 300;text-decoration: none;background-color: rgba(0, 0, 0, 0);}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu.mega-menu-tabbed ul.mega-sub-menu ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu.mega-menu-tabbed ul.mega-sub-menu ul.mega-sub-menu li.mega-collapse-children > ul.mega-sub-menu {display: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu.mega-menu-tabbed ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu.mega-menu-tabbed.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu.mega-menu-tabbed li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu.mega-menu-tabbed li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu ul.mega-sub-menu, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-menu-megamenu.mega-menu-tabbed ul.mega-sub-menu ul.mega-sub-menu li.mega-collapse-children.mega-toggle-on > ul.mega-sub-menu {display: block;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu {padding: 0;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item {width: 100%;clear: both;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item {width: 100%;padding: 0;position: static;/* Tab Content */}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {width: 100%;float: left;background-color: #f1f1f1;color: #666;font-family: inherit;font-size: 14px;font-weight: normal;padding: 0px 10px 0px 10px;line-height: 35px;text-decoration: none;text-transform: none;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {content: "";}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after {content: "";}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu {width: 100%;position: relative;top: 0;left: auto;border-left: 0;padding: 10px;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {margin-left: 0;}}/** Use FA6 for icons **/#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.far:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fa-regular:before {font: var(--fa-font-regular);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fas:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fa-solid:before {font: var(--fa-font-solid);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fal:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fa-light:before {font: var(--fa-font-light);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fa-sharp.fa-regular:before {font: var(--fa-font-sharp-regular);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fa-sharp.fa-solid:before {font: var(--fa-font-sharp-solid);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fa-sharp.fa-light:before {font: var(--fa-font-sharp-light);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fa-kit:before {font-family: "Font Awesome Kit";}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6.fab:before {font: var(--fa-font-brands);}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item > a.fa6:before {vertical-align: unset;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-icon-left > a.fas.fa6:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-icon-left > a.fab.fa6:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-icon-left > a.far.fa6:before, #mega-menu-wrap-menu-1 #mega-menu-menu-1 li.mega-menu-item.mega-icon-left > a.fal.fa6:before {width: 1.25em;text-align: center;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge {border-radius: 2px;display: inline-flex;line-height: normal;padding: 1px 4px 1px 4px;top: -7px;margin: 0 0 0 6px;text-align: center;}@media only screen and (min-width: 1025px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge.mega-hide-on-desktop {display: none;}}@media only screen and (max-width: 1024px) {#mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge.mega-hide-on-mobile {display: none;}}#mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge.mega-menu-badge-style-one {background-color: #D32F2F;color: #fff;font-weight: normal;font-size: 10px;text-transform: none;text-decoration: none;font-family: inherit;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge.mega-menu-badge-style-two {background-color: #00796B;color: #fff;font-weight: normal;font-size: 10px;text-transform: none;text-decoration: none;font-family: inherit;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge.mega-menu-badge-style-three {background-color: #FFC107;color: #fff;font-weight: normal;font-size: 10px;text-transform: none;text-decoration: none;font-family: inherit;}#mega-menu-wrap-menu-1 #mega-menu-menu-1 span.mega-menu-badge.mega-menu-badge-style-four {background-color: #303F9F;color: #fff;font-weight: normal;font-size: 10px;text-transform: none;text-decoration: none;font-family: inherit;}#mega-menu-wrap-menu-1 .mega-menu-toggle {/** Menu Toggle - Custom Blocks **//** Logo Blocks **//** Icon Toggle Blocks **//** Search Toggle Blocks **/}/** Push menu onto new line **/#mega-menu-wrap-menu-1 {clear: both;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-left {flex: 0 0 25%;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-center {flex: 0 0 50%;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-center .mega-toggle-block {justify-content: center;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-right {flex: 0 0 25%;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-blocks-right .mega-toggle-block {justify-content: flex-end;}#mega-menu-wrap-menu-1 .mega-menu-toggle .mega-toggle-block {flex-shrink: 1;width: 100%;}.wp-block {}</style>
</head>
<body class="wp-singular post-template-default single single-post postid-9854 single-format-standard wp-custom-logo wp-embed-responsive wp-theme-hello-elementor wp-child-theme-orbitmedia-elementor mega-menu-menu-1 orbit hello-elementor-default elementor-default elementor-kit-6 elementor-page-4755">
<!-- GTM Container placement set to manual -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-JD26" height="0" width="0" style="display:none;visibility:hidden" aria-hidden="true"></iframe></noscript>
<!-- End Google Tag Manager (noscript) --> <div id="mega-menu-overlay"></div>
<!-- GTM Container placement set to manual -->
<!-- Google Tag Manager (noscript) --><div id="overlay-description" class="sr-only">
Search overlay panel for performing site-wide searches
</div>
<div id="oms-search--overlay" aria-hidden="true" aria-describedby="overlay-description" role="dialog" tabindex="-1">
<div id="oms-search--overlay__toggle-layer"></div>
<div class="container-fluid">
<div class="row flex-wrap flex-column">
<div id="oms-search--overlay__form">
<form role="search" method="get" class="oms-search--form form-inline" action="https://www.heroku.com/search/">
<div class="oms-search--form-group">
<label class="oms-search--form--label" for="s">Search For:</label>
<input class="oms-search--form--input default search" type="text" value="" name="s" id="s" autocomplete="off">
<button class="btn oms-search--form--button" type="submit" aria-label="Submit Search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="22" height="22" fill="currentColor" aria-hidden="true"><path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
</button>
</div>
</form> </div>
</div>
</div>
<div id="oms-search--overlay__close">
<button class="oms-close-search" id="oms-close-search" aria-label="Close Search Form Overlay" tabindex="-1">Close</button>
</div>
</div>
<header data-elementor-type="header" data-elementor-id="11843" class="elementor elementor-11843 elementor-location-header" data-elementor-post-type="elementor_library">
<div class="elementor-element elementor-element-42085f8d e-con-full e-flex e-con e-parent" data-id="42085f8d" data-element_type="container" data-e-type="container" id="oms-header">
<div class="elementor-element elementor-element-9da61cb e-flex e-con-boxed e-con e-child" data-id="9da61cb" data-element_type="container" data-e-type="container" id="secondary-nav" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
<div class="e-con-inner">
<div class="elementor-element elementor-element-5d80e2e3 e-con-full column column--oms-nav-cta elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child" data-id="5d80e2e3" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-2af72024 elementor-widget elementor-widget-text-editor" data-id="2af72024" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<p>Build Your Next Big Thing on Heroku. <a href="https://signup.heroku.com/"><strong>Sign Up Now!</strong></a></p> </div>
</div>
<div class="elementor-element elementor-element-d89808f e-con-full column column--oms-nav e-flex e-con e-child" data-id="d89808f" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-c8e7069 search-button--wrap elementor-widget elementor-widget-html" data-id="c8e7069" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<button class="search-button d-inline-block d-lg-none">
<i class="fa fa-search"></i> Search
<span class="sr-only">Open Search Popup</span>
</button> </div>
<div class="elementor-element elementor-element-421724e elementor-widget elementor-widget-shortcode" data-id="421724e" data-element_type="widget" data-e-type="widget" data-widget_type="shortcode.default">
<div class="elementor-shortcode"> <div id="login-menu-wrap">
<div class="logged-in-content" style="display: none;">
<button id="login-trigger" aria-expanded="false" aria-controls="login-menu-nav" aria-label="Account menu">
<span class="sr-only">Account menu</span>
<img src="https://www.heroku.com/wp-content/themes/orbitmedia-elementor/resources/images/login-icon.webp" alt=""/>
</button>
<nav id="login-menu-nav" aria-labelledby="login-trigger">
<ul id="login-menu">
<li>
<img width="150" height="150" src="https://www.heroku.com/wp-content/uploads/2025/06/dashboard.png?w=150&amp;h=150&amp;crop=1" class="login-menu-icon" alt="Dashboard icon" decoding="async" srcset="https://www.heroku.com/wp-content/uploads/2025/06/dashboard.png 150w, https://www.heroku.com/wp-content/uploads/2025/06/dashboard.png?resize=45,45 45w, https://www.heroku.com/wp-content/uploads/2025/06/dashboard.png?resize=75,75 75w" sizes="(max-width: 150px) 100vw, 150px" /> <a href="https://dashboard.heroku.com">Dashboard</a>
</li>
<li>
<img width="150" height="150" src="https://www.heroku.com/wp-content/uploads/2025/06/databases.png?w=150&amp;h=150&amp;crop=1" class="login-menu-icon" alt="Databases icon" decoding="async" srcset="https://www.heroku.com/wp-content/uploads/2025/06/databases.png 150w, https://www.heroku.com/wp-content/uploads/2025/06/databases.png?resize=45,45 45w, https://www.heroku.com/wp-content/uploads/2025/06/databases.png?resize=75,75 75w" sizes="(max-width: 150px) 100vw, 150px" /> <a href="https://data.heroku.com">Databases</a>
</li>
<li>
<img width="150" height="150" src="https://www.heroku.com/wp-content/uploads/2025/06/dataclips.png?w=150&amp;h=150&amp;crop=1" class="login-menu-icon" alt="Dataclips icon" decoding="async" srcset="https://www.heroku.com/wp-content/uploads/2025/06/dataclips.png 150w, https://www.heroku.com/wp-content/uploads/2025/06/dataclips.png?resize=45,45 45w, https://www.heroku.com/wp-content/uploads/2025/06/dataclips.png?resize=75,75 75w" sizes="(max-width: 150px) 100vw, 150px" /> <a href="https://dataclips.heroku.com">Dataclips</a>
</li>
<li>
<img loading="lazy" width="150" height="150" src="https://www.heroku.com/wp-content/uploads/2025/06/elements.png?w=150&amp;h=150&amp;crop=1" class="login-menu-icon" alt="Elements icon" decoding="async" srcset="https://www.heroku.com/wp-content/uploads/2025/06/elements.png 150w, https://www.heroku.com/wp-content/uploads/2025/06/elements.png?resize=45,45 45w, https://www.heroku.com/wp-content/uploads/2025/06/elements.png?resize=75,75 75w" sizes="(max-width: 150px) 100vw, 150px" /> <a href="https://elements.heroku.com/">Elements</a>
</li>
<li>
<img loading="lazy" width="150" height="150" src="https://www.heroku.com/wp-content/uploads/2025/06/docs.png?w=150&amp;h=150&amp;crop=1" class="login-menu-icon" alt="Documentation icon" decoding="async" srcset="https://www.heroku.com/wp-content/uploads/2025/06/docs.png 150w, https://www.heroku.com/wp-content/uploads/2025/06/docs.png?resize=45,45 45w, https://www.heroku.com/wp-content/uploads/2025/06/docs.png?resize=75,75 75w" sizes="(max-width: 150px) 100vw, 150px" /> <a href="https://devcenter.heroku.com/">Documentation</a>
</li>
<li>
<img loading="lazy" width="150" height="150" src="https://www.heroku.com/wp-content/uploads/2025/06/support.png?w=150&amp;h=150&amp;crop=1" class="login-menu-icon" alt="Support icon" decoding="async" srcset="https://www.heroku.com/wp-content/uploads/2025/06/support.png 150w, https://www.heroku.com/wp-content/uploads/2025/06/support.png?resize=45,45 45w, https://www.heroku.com/wp-content/uploads/2025/06/support.png?resize=75,75 75w" sizes="(max-width: 150px) 100vw, 150px" /> <a href="https://help.heroku.com">Support</a>
</li>
</ul>
</nav>
<a id="logged-in-dashboard" class="button-logged-out login-button" href="https://dashboard.heroku.com/" role="button">
Dashboard
</a>
</div>
<div class="logged-out-content">
<a id="logged-out-login" class="button-logged-out" href="https://id.heroku.com/login" role="button">
Login </a>
<a id="logged-out-signup" class="button-logged-out login-button" href="https://signup.heroku.com/" role="button">
Sign Up </a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="elementor-element elementor-element-6dd1e13e e-flex e-con-boxed e-con e-child" data-id="6dd1e13e" data-element_type="container" data-e-type="container" id="primary-nav" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
<div class="e-con-inner">
<div class="elementor-element elementor-element-21dbd5ff e-con-full column column--oms-logo e-flex e-con e-child" data-id="21dbd5ff" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-59d5d120 elementor-widget elementor-widget-image" data-id="59d5d120" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<a href="https://www.heroku.com">
<img loading="lazy" loading="lazy" width="300" height="84" src="https://www.heroku.com/wp-content/uploads/2025/03/Heroku-Logo-KO-RGB-300.webp" class="attachment-full size-full wp-image-12832" alt="Heroku - from Salesforce" srcset="https://www.heroku.com/wp-content/uploads/2025/03/Heroku-Logo-KO-RGB-300.webp 300w, https://www.heroku.com/wp-content/uploads/2025/03/Heroku-Logo-KO-RGB-300.webp?resize=45,13 45w, https://www.heroku.com/wp-content/uploads/2025/03/Heroku-Logo-KO-RGB-300.webp?resize=75,21 75w" sizes="(max-width: 300px) 100vw, 300px" /> </a>
</div>
</div>
<div class="elementor-element elementor-element-99cc162 e-con-full column column--oms-nav e-flex e-con e-child" data-id="99cc162" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-49f07e4a elementor-widget elementor-widget-wp-widget-maxmegamenu" data-id="49f07e4a" data-element_type="widget" data-e-type="widget" data-widget_type="wp-widget-maxmegamenu.default">
<div class="elementor-widget-container">
<nav id="mega-menu-wrap-menu-1" class="mega-menu-wrap"><div class="mega-menu-toggle"><div class="mega-toggle-blocks-left"></div><div class="mega-toggle-blocks-center"></div><div class="mega-toggle-blocks-right"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-0' id='mega-toggle-block-0'><button aria-controls="mega-menu-menu-1" aria-expanded="false" aria-haspopup="true" aria-label="Toggle Menu" class="mega-toggle-animated mega-toggle-animated-slider" type="button">
<span class="mega-toggle-animated-box">
<span class="mega-toggle-animated-inner"></span>
</span>
</button></div></div></div><ul id="mega-menu-menu-1" class="mega-menu max-mega-menu mega-menu-horizontal mega-no-js" data-event="hover_intent" data-effect="fade_up" data-effect-speed="200" data-effect-mobile="disabled" data-effect-speed-mobile="0" data-panel-width="body" data-panel-inner-width="#primary-nav &gt; .e-con-inner" data-mobile-force-width="body" data-second-click="go" data-document-click="collapse" data-vertical-behaviour="standard" data-breakpoint="1024" data-unbind="false" data-mobile-state="collapse_all" data-mobile-direction="vertical" data-overlay-desktop="false" data-overlay-mobile="false"><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-menu-megamenu mega-menu-grid mega-align-bottom-left mega-menu-item-118" id="mega-menu-item-118"><a class="mega-menu-link" href="https://www.heroku.com/products/" aria-expanded="false" aria-controls="mega-sub-menu-118">Products<span class="mega-indicator" tabindex="0" role="button" aria-label="Toggle Submenu"></span></a>
<ul class="mega-sub-menu" role='presentation' id='mega-sub-menu-118'>
<li class="mega-menu-row" id="mega-menu-118-0">
<ul class="mega-sub-menu" style='--columns:12' role='presentation'>
<li class="mega-menu-column mega-menu-columns-3-of-12 mega-hide-on-mobile" style="--columns:12; --span:3" id="mega-menu-118-0-0">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-widget widget_black_studio_tinymce mega-menu-item-black-studio-tinymce-2" id="mega-menu-item-black-studio-tinymce-2"><div class="textwidget"><p><a href="/products/">Products</a></p>
<p>Discover Heroku’s PaaS (Platform as a Service), designed for effortless app deployment and scaling. Explore our cloud application platform features, reliable managed data services, and a robust ecosystem to power your modern applications.</p>
</div></li> </ul>
</li><li class="mega-menu-column mega-menu-columns-6-of-12" style="--columns:12; --span:6" id="mega-menu-118-0-1">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-icon mega-icon-left mega-has-description mega-menu-item-119" id="mega-menu-item-119"><a class="mega-custom-icon mega-menu-link" href="https://www.heroku.com/platform/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Heroku Platform</span><span class="mega-menu-description">Deploy, manage, and scale apps on Heroku, a PaaS based on a managed container system.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-icon mega-icon-left mega-has-description mega-menu-item-13876" id="mega-menu-item-13876"><a class="mega-custom-icon mega-menu-link" href="https://www.heroku.com/ai/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Heroku AI</span><span class="mega-menu-description">Build intelligent applications with managed inference and agents, MCP, and more.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-icon mega-icon-left mega-has-description mega-menu-item-132" id="mega-menu-item-132"><a class="mega-custom-icon mega-menu-link" href="https://www.heroku.com/managed-data-services/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Heroku Data Services</span><span class="mega-menu-description">Simplify your data management with Heroku’s fully managed cloud databases and data services.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-icon mega-icon-left mega-has-description mega-menu-item-136" id="mega-menu-item-136"><a class="mega-custom-icon mega-menu-link" href="https://www.heroku.com/enterprise/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Heroku Enterprise</span><span class="mega-menu-description">The Heroku experience developers love, with the enterprise features large companies need.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-icon mega-icon-left mega-has-description mega-menu-item-2160" id="mega-menu-item-2160"><a class="mega-custom-icon mega-menu-link" href="https://www.heroku.com/support/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Heroku Success</span><span class="mega-menu-description">Explore Heroku’s support options from Standard to Signature, with resources for developers and partners.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-has-icon mega-icon-left mega-has-description mega-menu-item-146" id="mega-menu-item-146"><a class="mega-custom-icon mega-menu-link" href="https://elements.heroku.com/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Heroku Elements Marketplace</span><span class="mega-menu-description">Accelerate your app development with our ecosystem of add-ons, integrations, and buildpacks.</span></span></a></li> </ul>
</li><li class="mega-menu-column mega-container-blog--mm mega-menu-columns-3-of-12 mega-hide-on-mobile container-blog--mm" style="--columns:12; --span:3" id="mega-menu-118-0-2">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-widget widget_elementor-library mega-menu-item-elementor-library-4" id="mega-menu-item-elementor-library-4"><style id="elementor-post-17822">.elementor-17822 .elementor-element.elementor-element-3da06e1{--display:flex;--gap:10px 10px;--row-gap:10px;--column-gap:10px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-17822 .elementor-element.elementor-element-7173832{--grid-columns:1;}@media(max-width:1024px){.elementor-17822 .elementor-element.elementor-element-7173832{--grid-columns:2;}}@media(max-width:767px){.elementor-17822 .elementor-element.elementor-element-7173832{--grid-columns:1;}}</style> <div data-elementor-type="container" data-elementor-id="17822" class="elementor elementor-17822" data-elementor-post-type="elementor_library">
<div class="elementor-element elementor-element-3da06e1 e-flex e-con-boxed e-con e-parent" data-id="3da06e1" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-d88b7ff h6 elementor-widget elementor-widget-heading" data-id="d88b7ff" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-heading-title elementor-size-default">Latest News from the Heroku Blog</div> </div>
<div class="elementor-element elementor-element-7173832 elementor-grid-1 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid" data-id="7173832" data-element_type="widget" data-e-type="widget" data-settings="{&quot;template_id&quot;:&quot;17823&quot;,&quot;columns&quot;:1,&quot;_skin&quot;:&quot;post&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\&quot;loop-item\&quot;]&quot;,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="loop-grid.post">
<div class="elementor-widget-container">
<div class="elementor-loop-container elementor-grid" role="list">
<style id="loop-17823">.elementor-17823 .elementor-element.elementor-element-a19e369{--display:flex;--gap:0px 00px;--row-gap:0px;--column-gap:00px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-17823 .elementor-element.elementor-element-7461154 .elementor-icon-list-icon{width:14px;}.elementor-17823 .elementor-element.elementor-element-7461154 .elementor-icon-list-icon i{font-size:14px;}.elementor-17823 .elementor-element.elementor-element-7461154 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-widget-theme-post-excerpt{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}</style><style id="elementor-post-17823">.elementor-17823 .elementor-element.elementor-element-a19e369{--display:flex;--gap:0px 00px;--row-gap:0px;--column-gap:00px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-17823 .elementor-element.elementor-element-7461154 .elementor-icon-list-icon{width:14px;}.elementor-17823 .elementor-element.elementor-element-7461154 .elementor-icon-list-icon i{font-size:14px;}.elementor-17823 .elementor-element.elementor-element-7461154 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-widget-theme-post-excerpt{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}</style> <div data-elementor-type="loop-item" data-elementor-id="17823" class="elementor elementor-17823 e-loop-item e-loop-item-20401 post-20401 post type-post status-publish format-standard hentry category-ecosystem tag-cli tag-developer-tools" data-elementor-post-type="elementor_library" data-custom-edit-handle="1">
<div class="elementor-element elementor-element-a19e369 container-blog--mm e-flex e-con-boxed e-con e-parent" data-id="a19e369" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-7142532 elementor-widget elementor-widget-heading" data-id="7142532" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<h3 class="elementor-heading-title elementor-size-default"><a href="https://www.heroku.com/blog/6-lesser-known-heroku-cli-commands/">6 Lesser-Known Heroku CLI Commands You Probably Aren’t Using</a></h3> </div>
<div class="elementor-element elementor-element-7461154 elementor-widget elementor-widget-post-info" data-id="7461154" data-element_type="widget" data-e-type="widget" data-widget_type="post-info.default">
<ul class="elementor-inline-items elementor-icon-list-items elementor-post-info">
<li class="elementor-icon-list-item elementor-repeater-item-cd0cb8c elementor-inline-item">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
Last Updated: August 25, 2026 </span>
</li>
<li class="elementor-icon-list-item elementor-repeater-item-c76d95f elementor-inline-item">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
<a href="https://www.heroku.com/blog/author/smith-andy/" title="Posts by Andy Smith" rel="author">Andy Smith</a> </span>
</li>
</ul>
</div>
<div class="elementor-element elementor-element-f5932be elementor-widget elementor-widget-theme-post-excerpt" data-id="f5932be" data-element_type="widget" data-e-type="widget" data-widget_type="theme-post-excerpt.default">
Improving developer experience in the command line relies on minimizing context switches. While most engineers use the Heroku CLI strictly for basic tasks like pushing code, it contains a powerful suite of command line tools built to optimize your workflow. If you want to keep your focus locked on writing code, these six Heroku CLI commands will instantly upgrade your daily productivity. </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</li> </ul>
</li> </ul>
</li></ul>
</li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-menu-megamenu mega-menu-grid mega-align-bottom-left mega-menu-item-170" id="mega-menu-item-170"><a class="mega-menu-link" href="https://www.heroku.com/developers/" aria-expanded="false" aria-controls="mega-sub-menu-170">Developers<span class="mega-indicator" tabindex="0" role="button" aria-label="Toggle Submenu"></span></a>
<ul class="mega-sub-menu" role='presentation' id='mega-sub-menu-170'>
<li class="mega-menu-row" id="mega-menu-170-0">
<ul class="mega-sub-menu" style='--columns:12' role='presentation'>
<li class="mega-menu-column mega-menu-columns-3-of-12 mega-hide-on-mobile" style="--columns:12; --span:3" id="mega-menu-170-0-0">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-widget widget_black_studio_tinymce mega-menu-item-black-studio-tinymce-9" id="mega-menu-item-black-studio-tinymce-9"><div class="textwidget"><p><a href="/developers/">Developers</a></p>
<p>With Heroku's flexible app platform, you can focus on building apps, not infrastructure. Benefit from a meticulously designed developer experience, a polyglot platform supporting your favorite languages, and innovative PaaS features to enhance your development workflow.</p>
</div></li> </ul>
</li><li class="mega-menu-column mega-menu-columns-6-of-12" style="--columns:12; --span:6" id="mega-menu-170-0-1">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-has-description mega-menu-item-13380" id="mega-menu-item-13380"><a class="mega-menu-link" href="https://devcenter.heroku.com/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Dev Center</span><span class="mega-menu-description">Dive into our comprehensive documentation and guides. Learn about building, deploying, managing, and scaling your apps.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-menu-item-184" id="mega-menu-item-184"><a class="mega-menu-link" href="https://www.heroku.com/languages/">Languages<span class="mega-indicator" tabindex="0" role="button" aria-label="Toggle Submenu"></span></a>
<ul class="mega-sub-menu" id='mega-sub-menu-184'>
<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-189" id="mega-menu-item-189"><a class="mega-menu-link" href="https://www.heroku.com/python/">Python</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-14018" id="mega-menu-item-14018"><a class="mega-menu-link" href="https://www.heroku.com/dotnet/">.NET</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-187" id="mega-menu-item-187"><a class="mega-menu-link" href="https://www.heroku.com/java/">Java</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-185" id="mega-menu-item-185"><a class="mega-menu-link" href="https://www.heroku.com/nodejs/">Node.js</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-190" id="mega-menu-item-190"><a class="mega-menu-link" href="https://www.heroku.com/go/">Go</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-188" id="mega-menu-item-188"><a class="mega-menu-link" href="https://www.heroku.com/php/">PHP</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-186" id="mega-menu-item-186"><a class="mega-menu-link" href="https://www.heroku.com/ruby/">Ruby</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-13426" id="mega-menu-item-13426"><a class="mega-menu-link" href="/java?lang=scala">Scala</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-13427" id="mega-menu-item-13427"><a class="mega-menu-link" href="/java?lang=clojure">Clojure</a></li> </ul>
</li> </ul>
</li><li class="mega-menu-column mega-container-blog--mm mega-menu-columns-3-of-12 mega-hide-on-mobile container-blog--mm" style="--columns:12; --span:3" id="mega-menu-170-0-2">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-widget widget_elementor-library mega-menu-item-elementor-library-5" id="mega-menu-item-elementor-library-5"> <div data-elementor-type="container" data-elementor-id="17822" class="elementor elementor-17822" data-elementor-post-type="elementor_library">
<div class="elementor-element elementor-element-3da06e1 e-flex e-con-boxed e-con e-parent" data-id="3da06e1" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-d88b7ff h6 elementor-widget elementor-widget-heading" data-id="d88b7ff" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-heading-title elementor-size-default">Latest News from the Heroku Blog</div> </div>
<div class="elementor-element elementor-element-7173832 elementor-grid-1 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid" data-id="7173832" data-element_type="widget" data-e-type="widget" data-settings="{&quot;template_id&quot;:&quot;17823&quot;,&quot;columns&quot;:1,&quot;_skin&quot;:&quot;post&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\&quot;loop-item\&quot;]&quot;,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="loop-grid.post">
<div class="elementor-widget-container">
<div class="elementor-loop-container elementor-grid" role="list">
<div data-elementor-type="loop-item" data-elementor-id="17823" class="elementor elementor-17823 e-loop-item e-loop-item-20401 post-20401 post type-post status-publish format-standard hentry category-ecosystem tag-cli tag-developer-tools" data-elementor-post-type="elementor_library" data-custom-edit-handle="1">
<div class="elementor-element elementor-element-a19e369 container-blog--mm e-flex e-con-boxed e-con e-parent" data-id="a19e369" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-7142532 elementor-widget elementor-widget-heading" data-id="7142532" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<h3 class="elementor-heading-title elementor-size-default"><a href="https://www.heroku.com/blog/6-lesser-known-heroku-cli-commands/">6 Lesser-Known Heroku CLI Commands You Probably Aren’t Using</a></h3> </div>
<div class="elementor-element elementor-element-7461154 elementor-widget elementor-widget-post-info" data-id="7461154" data-element_type="widget" data-e-type="widget" data-widget_type="post-info.default">
<ul class="elementor-inline-items elementor-icon-list-items elementor-post-info">
<li class="elementor-icon-list-item elementor-repeater-item-cd0cb8c elementor-inline-item">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
Last Updated: August 25, 2026 </span>
</li>
<li class="elementor-icon-list-item elementor-repeater-item-c76d95f elementor-inline-item">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
<a href="https://www.heroku.com/blog/author/smith-andy/" title="Posts by Andy Smith" rel="author">Andy Smith</a> </span>
</li>
</ul>
</div>
<div class="elementor-element elementor-element-f5932be elementor-widget elementor-widget-theme-post-excerpt" data-id="f5932be" data-element_type="widget" data-e-type="widget" data-widget_type="theme-post-excerpt.default">
Improving developer experience in the command line relies on minimizing context switches. While most engineers use the Heroku CLI strictly for basic tasks like pushing code, it contains a powerful suite of command line tools built to optimize your workflow. If you want to keep your focus locked on writing code, these six Heroku CLI commands will instantly upgrade your daily productivity. </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</li> </ul>
</li> </ul>
</li></ul>
</li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-menu-megamenu mega-menu-grid mega-align-bottom-left mega-menu-item-2169" id="mega-menu-item-2169"><a class="mega-menu-link" href="https://www.heroku.com/customers/" aria-expanded="false" aria-controls="mega-sub-menu-2169">Customers<span class="mega-indicator" tabindex="0" role="button" aria-label="Toggle Submenu"></span></a>
<ul class="mega-sub-menu" role='presentation' id='mega-sub-menu-2169'>
<li class="mega-menu-row" id="mega-menu-2169-0">
<ul class="mega-sub-menu" style='--columns:12' role='presentation'>
<li class="mega-menu-column mega-menu-columns-3-of-12 mega-hide-on-mobile" style="--columns:12; --span:3" id="mega-menu-2169-0-0">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-widget widget_black_studio_tinymce mega-menu-item-black-studio-tinymce-11" id="mega-menu-item-black-studio-tinymce-11"><div class="textwidget"><p><a href="/customers/">Customers</a></p>
<p>Discover how companies in diverse industries like Healthcare, Entertainment, Automotive, Retail, FinTech, and more achieve growth and foster innovation with our powerful cloud application platform. Learn how they leverage Heroku’s cloud application platform for cutting-edge solutions.</p>
</div></li> </ul>
</li><li class="mega-menu-column mega-menu-columns-6-of-12" style="--columns:12; --span:6" id="mega-menu-2169-0-1">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-description mega-menu-item-2319" id="mega-menu-item-2319"><a class="mega-menu-link" href="https://www.heroku.com/case-studies/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Customer Stories</span><span class="mega-menu-description">Heroku in action: See how organizations of all sizes and industries are succeeding with Heroku.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-description mega-menu-item-2170" id="mega-menu-item-2170"><a class="mega-menu-link" href="https://www.heroku.com/community-stories/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Community Stories</span><span class="mega-menu-description">Explore real-world experiences and perspectives on Heroku from developers and communities online.</span></span></a></li> </ul>
</li><li class="mega-menu-column mega-menu-columns-3-of-12 mega-hide-on-mobile" style="--columns:12; --span:3" id="mega-menu-2169-0-2">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-widget widget_elementor-library mega-menu-item-elementor-library-2" id="mega-menu-item-elementor-library-2"><style id="elementor-post-17829">.elementor-17829 .elementor-element.elementor-element-820ec39{--display:flex;}.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-17829 .elementor-element.elementor-element-e72d034{--grid-columns:1;}@media(max-width:1024px){.elementor-17829 .elementor-element.elementor-element-e72d034{--grid-columns:2;}}@media(max-width:767px){.elementor-17829 .elementor-element.elementor-element-e72d034{--grid-columns:1;}}</style> <div data-elementor-type="container" data-elementor-id="17829" class="elementor elementor-17829" data-elementor-post-type="elementor_library">
<div class="elementor-element elementor-element-820ec39 e-flex e-con-boxed e-con e-parent" data-id="820ec39" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-e72d034 elementor-grid-1 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid" data-id="e72d034" data-element_type="widget" data-e-type="widget" data-settings="{&quot;template_id&quot;:&quot;17818&quot;,&quot;columns&quot;:1,&quot;_skin&quot;:&quot;post&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\&quot;loop-item\&quot;]&quot;,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="loop-grid.post">
<div class="elementor-widget-container">
<div class="elementor-loop-container elementor-grid" role="list">
<style id="loop-17818">.elementor-17818 .elementor-element.elementor-element-2ca19be{--display:flex;--gap:20px 30px;--row-gap:20px;--column-gap:30px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-17818 .elementor-element.elementor-element-f16bd2a .elementor-heading-title{font-family:"BentonSans", Arial, Helvetica, sans-serif;font-weight:600;text-decoration:underline;}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-17818 .elementor-element.elementor-element-3afe404{margin:-1rem 0rem calc(var(--kit-widget-spacing, 0px) + 0rem) 0rem;}.elementor-17818 .elementor-element.elementor-element-3afe404 .elementor-icon-list-icon{width:14px;}.elementor-17818 .elementor-element.elementor-element-3afe404 .elementor-icon-list-icon i{font-size:14px;}.elementor-17818 .elementor-element.elementor-element-3afe404 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-17818 .elementor-element.elementor-element-3afe404 .elementor-icon-list-item{font-family:"BentonSans", Arial, Helvetica, sans-serif;font-size:0.875rem;font-weight:400;}</style><style id="elementor-post-17818">.elementor-17818 .elementor-element.elementor-element-2ca19be{--display:flex;--gap:20px 30px;--row-gap:20px;--column-gap:30px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-17818 .elementor-element.elementor-element-f16bd2a .elementor-heading-title{font-family:"BentonSans", Arial, Helvetica, sans-serif;font-weight:600;text-decoration:underline;}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Arial, Helvetica, sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-17818 .elementor-element.elementor-element-3afe404{margin:-1rem 0rem calc(var(--kit-widget-spacing, 0px) + 0rem) 0rem;}.elementor-17818 .elementor-element.elementor-element-3afe404 .elementor-icon-list-icon{width:14px;}.elementor-17818 .elementor-element.elementor-element-3afe404 .elementor-icon-list-icon i{font-size:14px;}.elementor-17818 .elementor-element.elementor-element-3afe404 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-17818 .elementor-element.elementor-element-3afe404 .elementor-icon-list-item{font-family:"BentonSans", Arial, Helvetica, sans-serif;font-size:0.875rem;font-weight:400;}</style> <div data-elementor-type="loop-item" data-elementor-id="17818" class="elementor elementor-17818 e-loop-item e-loop-item-19435 post-19435 heroku_customers type-heroku_customers status-publish hentry customer_category-customer-stories heroku-sticky" data-elementor-post-type="elementor_library" data-custom-edit-handle="1">
<a class="elementor-element elementor-element-2ca19be loop-item loop-item--customers-mm e-flex e-con-boxed e-con e-parent" data-id="2ca19be" data-element_type="container" data-e-type="container" href="https://www.heroku.com/customers/tao-drive/">
<div class="e-con-inner">
<div class="elementor-element elementor-element-6212c45 customers--logo elementor-widget elementor-widget-shortcode" data-id="6212c45" data-element_type="widget" data-e-type="widget" data-widget_type="shortcode.default">
<div class="elementor-shortcode"><img src="https://www.heroku.com/wp-content/uploads/2026/04/taodrive-logo-th.png" alt="TAO Drive" /></div>
</div>
<div class="elementor-element elementor-element-f16bd2a customers--name elementor-widget elementor-widget-heading" data-id="f16bd2a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<h3 class="elementor-heading-title elementor-size-default">TAO Drive: Breaking E-Commerce Barriers with a Secure Salesforce Integration via Heroku AppLink</h3> </div>
<div class="elementor-element elementor-element-3afe404 elementor-widget elementor-widget-post-info" data-id="3afe404" data-element_type="widget" data-e-type="widget" data-widget_type="post-info.default">
<ul class="elementor-inline-items elementor-icon-list-items elementor-post-info">
<li class="elementor-icon-list-item elementor-repeater-item-71c40de elementor-inline-item">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
Learn how TAO Drive leverages Heroku AppLink for secure Salesforce integration, Git-based workflows, and scalable Node.js e-commerce solutions. </span>
</li>
</ul>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</li> </ul>
</li> </ul>
</li></ul>
</li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-156" id="mega-menu-item-156"><a class="mega-menu-link" href="https://www.heroku.com/pricing/">Pricing</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-menu-megamenu mega-menu-grid mega-align-bottom-left mega-has-icon mega-icon-left mega-disable-link mega-menu-item-160" id="mega-menu-item-160"><a class="mega-custom-icon mega-menu-link" tabindex="0" aria-expanded="false" aria-controls="mega-sub-menu-160" role="button">Resources<span class="mega-indicator" tabindex="0" role="button" aria-label="Toggle Submenu"></span></a>
<ul class="mega-sub-menu" role='presentation' id='mega-sub-menu-160'>
<li class="mega-menu-row" id="mega-menu-160-0">
<ul class="mega-sub-menu" style='--columns:12' role='presentation'>
<li class="mega-menu-column mega-menu-columns-3-of-12 mega-hide-on-mobile" style="--columns:12; --span:3" id="mega-menu-160-0-0">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-widget widget_black_studio_tinymce mega-menu-item-black-studio-tinymce-13" id="mega-menu-item-black-studio-tinymce-13"><p class="mm-menu--widget-title">Resources</p><div class="textwidget"><p>Learn more about Heroku's PaaS and stay up to date on all Heroku announcements. Gain insights from our team through insightful content and discover how to leverage our platform effectively.</p>
</div></li> </ul>
</li><li class="mega-menu-column mega-menu-columns-6-of-12" style="--columns:12; --span:6" id="mega-menu-160-0-1">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-has-description mega-menu-item-2171" id="mega-menu-item-2171"><a class="mega-menu-link" href="https://www.heroku.com/blog/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Blog</span><span class="mega-menu-description">Stay up-to-date on Heroku news, important product releases, and valuable insights from the Heroku team.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-description mega-menu-item-161" id="mega-menu-item-161"><a class="mega-menu-link" href="https://www.heroku.com/what/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">What is Heroku?</span><span class="mega-menu-description">Learn how Heroku’s cloud application platform simplifies app development, deployment, and scaling.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-description mega-menu-item-167" id="mega-menu-item-167"><a class="mega-menu-link" href="https://www.heroku.com/events/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Events</span><span class="mega-menu-description">Find Heroku at an event near you! Explore our calendar of tech conferences and meetups.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-description mega-menu-item-2176" id="mega-menu-item-2176"><a class="mega-menu-link" href="https://www.heroku.com/partnering/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Partners</span><span class="mega-menu-description">For Consultants, ISVs, and technical solution providers looking to grow their business with pro-code solutions.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-has-description mega-menu-item-168" id="mega-menu-item-168"><a class="mega-menu-link" href="https://www.heroku.com/compliance/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Compliance Center</span><span class="mega-menu-description">Heroku is a platform you can trust. Explore our compliance certifications and security measures.</span></span></a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-has-description mega-menu-item-13399" id="mega-menu-item-13399"><a class="mega-menu-link" href="https://help.heroku.com/"><span class="mega-description-group" data-nosnippet><span class="mega-menu-title">Help Center</span><span class="mega-menu-description">Find answers to your questions in the Help Center. Browse FAQs, articles, and get support.</span></span></a></li> </ul>
</li><li class="mega-menu-column mega-container-blog--mm mega-menu-columns-3-of-12 mega-hide-on-mobile container-blog--mm" style="--columns:12; --span:3" id="mega-menu-160-0-2">
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-widget widget_elementor-library mega-menu-item-elementor-library-3" id="mega-menu-item-elementor-library-3"> <div data-elementor-type="container" data-elementor-id="17822" class="elementor elementor-17822" data-elementor-post-type="elementor_library">
<div class="elementor-element elementor-element-3da06e1 e-flex e-con-boxed e-con e-parent" data-id="3da06e1" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-d88b7ff h6 elementor-widget elementor-widget-heading" data-id="d88b7ff" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-heading-title elementor-size-default">Latest News from the Heroku Blog</div> </div>
<div class="elementor-element elementor-element-7173832 elementor-grid-1 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid" data-id="7173832" data-element_type="widget" data-e-type="widget" data-settings="{&quot;template_id&quot;:&quot;17823&quot;,&quot;columns&quot;:1,&quot;_skin&quot;:&quot;post&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\&quot;loop-item\&quot;]&quot;,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="loop-grid.post">
<div class="elementor-widget-container">
<div class="elementor-loop-container elementor-grid" role="list">
<div data-elementor-type="loop-item" data-elementor-id="17823" class="elementor elementor-17823 e-loop-item e-loop-item-20401 post-20401 post type-post status-publish format-standard hentry category-ecosystem tag-cli tag-developer-tools" data-elementor-post-type="elementor_library" data-custom-edit-handle="1">
<div class="elementor-element elementor-element-a19e369 container-blog--mm e-flex e-con-boxed e-con e-parent" data-id="a19e369" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-7142532 elementor-widget elementor-widget-heading" data-id="7142532" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<h3 class="elementor-heading-title elementor-size-default"><a href="https://www.heroku.com/blog/6-lesser-known-heroku-cli-commands/">6 Lesser-Known Heroku CLI Commands You Probably Aren’t Using</a></h3> </div>
<div class="elementor-element elementor-element-7461154 elementor-widget elementor-widget-post-info" data-id="7461154" data-element_type="widget" data-e-type="widget" data-widget_type="post-info.default">
<ul class="elementor-inline-items elementor-icon-list-items elementor-post-info">
<li class="elementor-icon-list-item elementor-repeater-item-cd0cb8c elementor-inline-item">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
Last Updated: August 25, 2026 </span>
</li>
<li class="elementor-icon-list-item elementor-repeater-item-c76d95f elementor-inline-item">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
<a href="https://www.heroku.com/blog/author/smith-andy/" title="Posts by Andy Smith" rel="author">Andy Smith</a> </span>
</li>
</ul>
</div>
<div class="elementor-element elementor-element-f5932be elementor-widget elementor-widget-theme-post-excerpt" data-id="f5932be" data-element_type="widget" data-e-type="widget" data-widget_type="theme-post-excerpt.default">
Improving developer experience in the command line relies on minimizing context switches. While most engineers use the Heroku CLI strictly for basic tasks like pushing code, it contains a powerful suite of command line tools built to optimize your workflow. If you want to keep your focus locked on writing code, these six Heroku CLI commands will instantly upgrade your daily productivity. </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</li> </ul>
</li> </ul>
</li></ul>
</li></ul></nav> </div>
</div>
</div>
</div>
</div>
</div>
</header>
<main data-elementor-type="single-post" data-elementor-id="4755" class="elementor elementor-4755 elementor-location-single post-9854 post type-post status-publish format-standard hentry category-engineering tag-heroku-key-value-store tag-performance-optimization tag-redis tag-security-incidents" data-elementor-post-type="elementor_library">
<section class="elementor-element elementor-element-1e61495 blog--nav oms--horizontal-nav e-flex e-con-boxed e-con e-parent" data-id="1e61495" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<nav class="elementor-element elementor-element-dec033b e-con-full blog--nav-container e-flex e-con e-child" data-id="dec033b" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-5887513 e-con-full e-flex e-con e-child" data-id="5887513" data-element_type="container" data-e-type="container">
</div>
</nav>
</div>
</section>
<section class="elementor-element elementor-element-5faab08 oms--breadcrumbs e-flex e-con-boxed e-con e-parent" data-id="5faab08" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-04ba9c7 elementor-widget elementor-widget-breadcrumbs" data-id="04ba9c7" data-element_type="widget" data-e-type="widget" data-widget_type="breadcrumbs.default">
<nav id="breadcrumbs"><span><span><a href="https://www.heroku.com/blog/">Blog</a></span> / <span><a href="https://www.heroku.com/blog/category/engineering/">Engineering</a></span> / <span class="breadcrumb_last" aria-current="page"><strong>Rolling the Heroku Redis Fleet</strong></span></span></nav> </div>
</div>
</section>
<section class="elementor-element elementor-element-0afd821 pageblock pageblock--post-content e-flex e-con-boxed e-con e-parent" data-id="0afd821" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
<div class="e-con-inner">
<div class="elementor-element elementor-element-59aa92a e-flex e-con-boxed e-con e-child" data-id="59aa92a" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-fffbe35 elementor-widget elementor-widget-heading" data-id="fffbe35" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<h1 class="elementor-heading-title elementor-size-default">Rolling the Heroku Redis Fleet</h1> </div>
<div class="elementor-element elementor-element-63f38b8 e-con-full post--meta e-flex e-con e-child" data-id="63f38b8" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-046ed73 elementor-widget elementor-widget-shortcode" data-id="046ed73" data-element_type="widget" data-e-type="widget" data-widget_type="shortcode.default">
<div class="elementor-shortcode"><div class="post-coauthors-wrapper"><div class="post-authors-gravatars"><div class="post-author-gravatar"><a href="https://www.heroku.com/blog/author/camille-baldock/"><img alt='Camille Baldock' src='https://secure.gravatar.com/avatar/ed603f7fca0ca8df835b9ce3191a8dc13bd8a3051a0b68b66dd1523874006f7a?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/ed603f7fca0ca8df835b9ce3191a8dc13bd8a3051a0b68b66dd1523874006f7a?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' decoding='async'/></a></div></div><div class="post-coauthors">Posted By <a href="https://www.heroku.com/blog/author/camille-baldock/">Camille Baldock</a></div></div></div>
</div>
<div class="elementor-element elementor-element-352af6e elementor-align-center elementor-widget elementor-widget-post-info" data-id="352af6e" data-element_type="widget" data-e-type="widget" data-widget_type="post-info.default">
<ul class="elementor-inline-items elementor-icon-list-items elementor-post-info">
<li class="elementor-icon-list-item elementor-repeater-item-5e77593 elementor-inline-item">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
Last Updated: June 27, 2018 </span>
</li>
</ul>
</div>
</div>
<div class="elementor-element elementor-element-734264a e-con-full e-flex e-con e-child" data-id="734264a" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-f5128c8 elementor-widget elementor-widget-theme-post-content" data-id="f5128c8" data-element_type="widget" data-e-type="widget" data-widget_type="theme-post-content.default">
<p>Over the past few weeks, <a href="https://www.heroku.com/blog/redis-vulnerability/">Heroku proactively updated our entire Redis fleet</a> with a version of Redis not vulnerable to <a href="https://antirez.com/news/119">CVE-2018-11218</a>. This was an embargoed vulnerability, so we did this work without notifying our customers about the underlying cause. As always, our goal was to update all Heroku Redis instances well before the embargo expired.</p>
<p><img decoding="async" src="https://www.heroku.com/wp-content/uploads/2025/03/1530045203-Rolling-The-Heroku-Redis-Fleet-Blog-Post.jpg" alt="Rolling The Heroku Redis Fleet - Blog Post"></p>
<p>As a Data Infrastructure Engineer at Heroku, I wanted to share how we manage large fleet operations such as this one. The most important aspect of our job is keeping customers safe from security vulnerabilities, while also minimizing disruption and downtime. Those two objectives are often at odds with each other, so we work hard to reduce the impact of these kinds of updates. </p>
<p>When patching a security vulnerability or doing any fleet-wide operations, there are three main concepts we care about: designing infrastructure components to be immutable, having and following a well-defined operations process, and being aware of and mitigating employee fatigue or burnout. </p>
<p>I’ll talk more about each of these in detail, but it&#39;s important to first understand how high-availability works with Heroku Redis. </p>
<h2 class='anchored'>
<a name='heroku-redis-and-high-availability' href='#heroku-redis-and-high-availability'>Heroku Redis and High Availability</a><br />
</h2>
<p>All paid Heroku Redis plans have a High Availability (HA) feature. When the primary Redis instance fails, it is automatically replaced with a replica, called a standby. Standbys update asynchronously. This means that any developer using a paid Heroku Redis plan gets HA Redis without having to do any setup or ongoing operations.</p>
<h2 class='anchored'>
<a name='how-does-heroku-patch-a-security-vulnerability' href='#how-does-heroku-patch-a-security-vulnerability'>How does Heroku Patch a Security Vulnerability?</a><br />
</h2>
<h3 class='anchored'>
<a name='immutable-infrastructure-helps-us-scale' href='#immutable-infrastructure-helps-us-scale'>Immutable Infrastructure Helps Us Scale</a><br />
</h3>
<p>The Heroku Data infrastructure team uses the principle of immutable infrastructure. In a traditional mutable server infrastructure, engineers and administrators can SSH into servers and change configurations or upgrade packages manually. These servers are “mutable” because they can change once created.</p>
<p>With immutable infrastructure, servers are never modified after they&#39;re deployed. If we need to change something, we build new servers from a common image and deploy them as replacements.</p>
<p>While mutable infrastructure may work well for smaller fleets, it is not a viable option for us. Heroku manages millions of databases. At that scale, it is not feasible to manage customizations on specific servers unless they are fully-automated through our control planes. Additionally, if we find a change that would benefit one customer, we want to make sure all our customers get the benefit of that change.</p>
<h3 class='anchored'>
<a name='a-well-defined-operations-process-minimizes-errors' href='#a-well-defined-operations-process-minimizes-errors'>A Well-Defined Operations Process Minimizes Errors</a><br />
</h3>
<p>It is important to have a well-defined and clear understanding of our automation code when performing operations on many servers at once. One small error could impact thousands of customers, and leave their application with more downtime than necessary.</p>
<p>Here&#39;s how we perform a fleet-wide Redis patch: </p>
<ol>
<li>We create a new server image that includes all the changes we need to roll out (security patches, OS upgrades, configuration updates, etc.). We test this image, review the results, and then flag it for release.</li>
<li>We replace all High Availability standbys with new ones that use the updated image. </li>
<li>Once all standbys are patched:
<ol>
<li>We schedule maintenance for all our customers on paid databases plans; these maintenances are scheduled in their next maintenance window, with a warning of at least three business days. Customers can wait for the scheduled maintenance or run the maintenance ahead of the scheduled time if desired. </li>
<li>Ensure the standby is in sync with the primary. This ensures that we do not lose data due to faulty replication. We watch for the correct functioning of a High Availability standby at all times during its lifetime. We page an operator in the rare event of a replication failure that goes unresolved for too long.</li>
<li>Break the replication link. This means the standby is no longer following the primary, and is now capable of accepting writes.</li>
<li>Push a release. As an addon provider, Heroku Redis updates the config vars on your application to point at the new primary. </li>
<li>De-provision the old primary and create a new standby. </li>
</ol>
</li>
</ol>
<p>Customers receive an email first to notify them about the upcoming maintenance and then another to notify them of completion. Once all HA Redis instances are updated, we gradually replace all our hobby plan databases to be running on the updated image.</p>
<h3 class='anchored'>
<a name='a-focus-on-employee-health-helps-us-respond-when-needed-most' href='#a-focus-on-employee-health-helps-us-respond-when-needed-most'>A Focus on Employee Health Helps Us Respond When Needed Most</a><br />
</h3>
<p>Fleet rolls generally result in more pages for the on-call operator to triage. This is due to the increased likelihood of hitting edge cases we have never seen before and therefore never automated. We work hard at fixing these issues before they cause issues, it&#39;s also important to keep an eye on the health of the on-call operator for when they do.</p>
<p>We have a few mechanisms to help reduce fatigue and burnout on our team:</p>
<ul>
<li>Our fleet roll code only schedules replacement operations during the current on-call operator&#39;s business hours. This limits burnout by reducing the risk of the fleet roll waking them up at night. </li>
<li>Our control plane software automatically manages all fleet rolls. We determine a safe concurrency level to prevent too much activity from happening all at once. </li>
</ul>
<h2 class='anchored'>
<a name='outcome' href='#outcome'>Outcome</a><br />
</h2>
<p>In the end, we successfully completed a fleet roll for all Heroku Redis customers within five weeks of the vulnerability notification. We beat the public announcement by a week too. </p>
<p>We invest heavily in our people and process to make these kinds of updates both possible and predictable. In fact, we follow a similar process for the rest of Heroku Data infrastructure, including Heroku Postgres and Apache Kafka on Heroku. It&#39;s all part of our commitment to provide you with the best possible service. </p>
<p>If we do our job well, you won&#39;t notice any of this effort, but we take pride in that too. </p>
</div>
<div class="elementor-element elementor-element-123205a elementor-widget elementor-widget-post-info" data-id="123205a" data-element_type="widget" data-e-type="widget" data-widget_type="post-info.default">
<ul class="elementor-icon-list-items elementor-post-info">
<li class="elementor-icon-list-item elementor-repeater-item-3c1e006" itemprop="datePublished">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-date">
<span class="elementor-post-info__item-prefix">Originally Published: </span>
<time>June 27, 2018</time> </span>
</li>
<li class="elementor-icon-list-item elementor-repeater-item-cde6d07">
<span class="elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom">
<a href="https://www.heroku.com/blog/tag/heroku-key-value-store/" rel="tag">Heroku Key-Value Store</a><a href="https://www.heroku.com/blog/tag/performance-optimization/" rel="tag">Performance Optimization</a><a href="https://www.heroku.com/blog/tag/redis/" rel="tag">Redis</a><a href="https://www.heroku.com/blog/tag/security-incidents/" rel="tag">Security Incidents</a> </span>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-element elementor-element-f2963be pageblock pageblock--related-posts e-flex e-con-boxed e-con e-parent" data-id="f2963be" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
<div class="e-con-inner">
<div class="elementor-element elementor-element-01d8ac7 e-flex e-con-boxed e-con e-child" data-id="01d8ac7" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-3227818 elementor-share-buttons--skin-flat elementor-share-buttons--shape-rounded elementor-share-buttons--view-icon-text elementor-grid-0 elementor-share-buttons--color-official elementor-widget elementor-widget-share-buttons" data-id="3227818" data-element_type="widget" data-e-type="widget" data-widget_type="share-buttons.default">
<div class="elementor-grid" role="list">
<div class="elementor-grid-item" role="listitem">
<div class="elementor-share-btn elementor-share-btn_x-twitter" role="button" tabindex="0" aria-label="Share on x-twitter">
<span class="elementor-share-btn__icon">
<svg aria-hidden="true" class="e-font-icon-svg e-fab-x-twitter" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg> </span>
<div class="elementor-share-btn__text">
<span class="elementor-share-btn__title">
Post </span>
</div>
</div>
</div>
<div class="elementor-grid-item" role="listitem">
<div class="elementor-share-btn elementor-share-btn_facebook" role="button" tabindex="0" aria-label="Share on facebook">
<span class="elementor-share-btn__icon">
<svg aria-hidden="true" class="e-font-icon-svg e-fab-facebook" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path></svg> </span>
<div class="elementor-share-btn__text">
<span class="elementor-share-btn__title">
Share </span>
</div>
</div>
</div>
<div class="elementor-grid-item" role="listitem">
<div class="elementor-share-btn elementor-share-btn_linkedin" role="button" tabindex="0" aria-label="Share on linkedin">
<span class="elementor-share-btn__icon">
<svg aria-hidden="true" class="e-font-icon-svg e-fab-linkedin" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg> </span>
<div class="elementor-share-btn__text">
<span class="elementor-share-btn__title">
Share </span>
</div>
</div>
</div>
</div>
</div>
<div class="elementor-element elementor-element-1b08945 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="1b08945" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
<div class="elementor-divider">
<span class="elementor-divider-separator">
</span>
</div>
</div>
<div class="elementor-element elementor-element-74e48cb elementor-widget elementor-widget-heading" data-id="74e48cb" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<h3 class="elementor-heading-title elementor-size-default">Related Posts</h3> </div>
<div class="elementor-element elementor-element-da9d136 elementor-grid-1 elementor-posts--thumbnail-none elementor-grid-tablet-1 elementor-posts--align-center elementor-grid-mobile-1 elementor-widget elementor-widget-posts" data-id="da9d136" data-element_type="widget" data-e-type="widget" data-settings="{&quot;classic_columns&quot;:&quot;1&quot;,&quot;classic_columns_tablet&quot;:&quot;1&quot;,&quot;classic_columns_mobile&quot;:&quot;1&quot;,&quot;classic_row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:35,&quot;sizes&quot;:[]},&quot;classic_row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;classic_row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="posts.classic">
<div class="elementor-widget-container">
<div class="elementor-posts-container elementor-posts elementor-posts--skin-classic elementor-grid" role="list">
<article class="elementor-post elementor-grid-item post-20401 post type-post status-publish format-standard hentry category-ecosystem tag-cli tag-developer-tools" role="listitem">
<div class="elementor-post__text">
<span class="elementor-post__title">
<a href="https://www.heroku.com/blog/6-lesser-known-heroku-cli-commands/" >
6 Lesser-Known Heroku CLI Commands You Probably Aren’t Using </a>
</span>
</div>
</article>
<article class="elementor-post elementor-grid-item post-20315 post type-post status-publish format-standard hentry category-news tag-security tag-security-compliance" role="listitem">
<div class="elementor-post__text">
<span class="elementor-post__title">
<a href="https://www.heroku.com/blog/fine-grained-access-control-now-available-all-customers/" >
Fine-Grained Access Control Now Available for All Heroku Customers </a>
</span>
</div>
</article>
<article class="elementor-post elementor-grid-item post-20025 post type-post status-publish format-standard hentry category-engineering tag-continuous-deployment tag-heroku-pipelines tag-how-to" role="listitem">
<div class="elementor-post__text">
<span class="elementor-post__title">
<a href="https://www.heroku.com/blog/how-to-set-up-staging-environment-3-easy-steps/" >
How To Set Up a Staging Environment on Heroku in 3 Easy Steps </a>
</span>
</div>
</article>
<article class="elementor-post elementor-grid-item post-19982 post type-post status-publish format-standard hentry category-engineering tag-cli tag-security" role="listitem">
<div class="elementor-post__text">
<span class="elementor-post__title">
<a href="https://www.heroku.com/blog/securing-heroku-cli-credentials-with-system-keychain-storage/" >
Securing Heroku CLI Credentials with System Keychain Storage </a>
</span>
</div>
</article>
<article class="elementor-post elementor-grid-item post-19879 post type-post status-publish format-standard hentry category-engineering tag-cli tag-heroku-connect tag-salesforce" role="listitem">
<div class="elementor-post__text">
<span class="elementor-post__title">
<a href="https://www.heroku.com/blog/health-check-for-your-heroku-connect-data-pipeline/" >
A 15-Second Health Check for Your Heroku Connect Data Pipeline </a>
</span>
</div>
</article>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-element elementor-element-bf46c3e pageblock pageblock--oms-cta e-flex e-con-boxed e-con e-parent" data-id="bf46c3e" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;}" data-background="overlay">
<div class="e-con-inner">
<div class="elementor-element elementor-element-36e77f2 e-con-full container container--oms-cta e-flex e-con e-child" data-id="36e77f2" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-355ff82 elementor-widget elementor-widget-text-editor" data-id="355ff82" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<h2>Ready to Get Started?</h2><p class="intro-text">Stay focused on building great data-driven applications and let Heroku tackle the rest.</p><p><a href="/contact-sales/" class="btn-secondary elementor-button-link">Talk to A Heroku Rep</a>   <a class="btn-primary elementor-button-link" href="https://signup.heroku.com/">Sign Up Now</a></p> </div>
</div>
</div>
</section>
<section class="elementor-element elementor-element-6317b9c pageblock pageblock--about-author e-flex e-con-boxed e-con e-parent" data-id="6317b9c" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-cc91a7e elementor-widget elementor-widget-shortcode" data-id="cc91a7e" data-element_type="widget" data-e-type="widget" data-widget_type="shortcode.default">
<div class="elementor-shortcode"><h6>More from the Author</h6>
<div class="author-posts--wrapper">
<div class="author-info">
<div class="author-avatar"><a href="https://www.heroku.com/blog/author/camille-baldock/" class="author-gravatar"><img alt='' src='https://secure.gravatar.com/avatar/ed603f7fca0ca8df835b9ce3191a8dc13bd8a3051a0b68b66dd1523874006f7a?s=70&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/ed603f7fca0ca8df835b9ce3191a8dc13bd8a3051a0b68b66dd1523874006f7a?s=140&#038;d=mm&#038;r=g 2x' class='avatar avatar-70 photo' height='70' width='70' decoding='async'/></a></div>
<div class="author-name-designation">
<div class="author-name"><a href="https://www.heroku.com/blog/author/camille-baldock/">Camille Baldock</a></div>
<div class="author-designation">Heroku Staff</div>
</div>
</div>
<hr /><ul><li><a href="https://www.heroku.com/blog/heroku-pgx-plans/">Heroku Postgres PGX: Bigger Databases, Improved Infrastructure, Same Price</a></li><li><a href="https://www.heroku.com/blog/postgresql-10-general-availability/">PostgreSQL 10 Generally Available on Heroku</a></li><li><a href="https://www.heroku.com/blog/postgres-10-beta/">PostgreSQL 10 Now Available in Beta on Heroku Postgres</a></li></ul></div></div>
</div>
<div class="elementor-element elementor-element-99d3626 elementor-widget elementor-widget-text-editor" data-id="99d3626" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<p>Browse the archives for <a href="https://www.heroku.com/blog/category/engineering/">Engineering</a> or <a href="/blog/">all blogs</a>. Subscribe to the RSS feed for <a href="https://www.heroku.com/blog/category/engineering/feed/">Engineering</a> or <a href="https://www.heroku.com/blog/feed/">all blogs</a>.</p> </div>
</div>
</section>
</main>
<footer data-elementor-type="footer" data-elementor-id="14" class="elementor elementor-14 elementor-location-footer" data-elementor-post-type="elementor_library">
<div class="elementor-element elementor-element-4ab36929 e-con-full e-flex e-con e-parent" data-id="4ab36929" data-element_type="container" data-e-type="container" id="oms-footer">
<div class="elementor-element elementor-element-5242ecfe col-count--3 e-flex e-con-boxed e-con e-child" data-id="5242ecfe" data-element_type="container" data-e-type="container" id="main-footer" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
<div class="e-con-inner">
<div class="elementor-element elementor-element-12479e49 e-con-full column column--footer column--footer-nav e-flex e-con e-child" data-id="12479e49" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-ac2bd43 elementor-widget elementor-widget-wp-widget-nav_menu" data-id="ac2bd43" data-element_type="widget" data-e-type="widget" data-widget_type="wp-widget-nav_menu.default">
<div class="elementor-widget-container">
<nav class="menu-footer-1-container" aria-label="Menu"><ul id="menu-footer-1" class="menu"><li id="menu-item-275" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-275"><a href="https://www.heroku.com/products/">Products</a>
<ul class="sub-menu">
<li id="menu-item-219" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-219"><a href="https://www.heroku.com/platform/">Heroku Platform</a></li>
<li id="menu-item-13878" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13878"><a href="https://www.heroku.com/ai/">Heroku AI</a></li>
<li id="menu-item-13881" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13881"><a href="https://www.heroku.com/ai/managed-inference-and-agents/">Heroku Managed Inference and Agents</a></li>
<li id="menu-item-13879" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13879"><a href="https://www.heroku.com/ai/pgvector-for-heroku-postgres/">pgvector for Heroku Postgres</a></li>
<li id="menu-item-13880" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13880"><a href="https://www.heroku.com/ai/mcp-on-heroku/">MCP on Heroku</a></li>
<li id="menu-item-220" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-220"><a href="https://www.heroku.com/managed-data-services/">Heroku Data Services</a></li>
<li id="menu-item-221" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-221"><a href="https://www.heroku.com/postgres/">Heroku Postgres</a></li>
<li id="menu-item-229" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-229"><a href="https://www.heroku.com/key-value-store/">Heroku Key-Value Store</a></li>
<li id="menu-item-228" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-228"><a href="https://www.heroku.com/kafka/">Apache Kafka on Heroku</a></li>
<li id="menu-item-230" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-230"><a href="https://www.heroku.com/enterprise/">Heroku Enterprise</a></li>
<li id="menu-item-12268" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12268"><a href="https://www.heroku.com/private-spaces/">Heroku Private Spaces</a></li>
<li id="menu-item-232" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-232"><a href="https://www.heroku.com/connect/">Heroku Connect</a></li>
<li id="menu-item-233" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-233"><a href="https://www.heroku.com/shield/">Heroku Shield</a></li>
<li id="menu-item-2240" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2240"><a href="https://www.heroku.com/support/">Heroku Success</a></li>
<li id="menu-item-234" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-234"><a href="https://www.heroku.com/teams/">Heroku Teams</a></li>
<li id="menu-item-235" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-235"><a href="https://elements.heroku.com/">Elements Marketplace</a></li>
</ul>
</li>
</ul></nav> </div>
</div>
</div>
<div class="elementor-element elementor-element-57b6ee5d e-con-full column column--footer column--footer-nav e-flex e-con e-child" data-id="57b6ee5d" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-791587d elementor-widget elementor-widget-wp-widget-nav_menu" data-id="791587d" data-element_type="widget" data-e-type="widget" data-widget_type="wp-widget-nav_menu.default">
<div class="elementor-widget-container">
<nav class="menu-footer-2-container" aria-label="Menu"><ul id="menu-footer-2" class="menu"><li id="menu-item-2241" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2241"><a href="https://www.heroku.com/languages/">Languages</a>
<ul class="sub-menu">
<li id="menu-item-2242" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2242"><a href="https://www.heroku.com/python/">Python</a></li>
<li id="menu-item-14019" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14019"><a href="https://www.heroku.com/dotnet/">.NET</a></li>
<li id="menu-item-2244" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2244"><a href="https://www.heroku.com/java/">Java</a></li>
<li id="menu-item-2245" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2245"><a href="https://www.heroku.com/nodejs/">Node.js</a></li>
<li id="menu-item-2248" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2248"><a href="https://www.heroku.com/go/">Go</a></li>
<li id="menu-item-2247" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2247"><a href="https://www.heroku.com/php/">PHP</a></li>
<li id="menu-item-2246" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2246"><a href="https://www.heroku.com/ruby/">Ruby</a></li>
<li id="menu-item-18612" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18612"><a href="/java/?lang=scala">Scala</a></li>
<li id="menu-item-18611" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18611"><a href="/java/?lang=clojure">Clojure</a></li>
</ul>
</li>
</ul></nav> </div>
</div>
</div>
<div class="elementor-element elementor-element-2b0ed67 e-con-full column column--footer column--footer-nav e-flex e-con e-child" data-id="2b0ed67" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-075cf47 footer--menu-header elementor-widget elementor-widget-heading" data-id="075cf47" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-heading-title elementor-size-default">Resources</div> </div>
<div class="elementor-element elementor-element-e4628b2 elementor-widget elementor-widget-wp-widget-nav_menu" data-id="e4628b2" data-element_type="widget" data-e-type="widget" data-widget_type="wp-widget-nav_menu.default">
<div class="elementor-widget-container">
<nav class="menu-footer-3-container" aria-label="Menu"><ul id="menu-footer-3" class="menu"><li id="menu-item-2253" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2253"><a href="https://devcenter.heroku.com/">Dev Center</a></li>
<li id="menu-item-2254" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2254"><a href="https://www.heroku.com/training-and-education/">Training &#038; Education</a></li>
<li id="menu-item-2255" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2255"><a href="https://devcenter.heroku.com/start">Get Started</a></li>
<li id="menu-item-2257" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2257"><a href="https://www.heroku.com/pricing/">Pricing</a></li>
<li id="menu-item-2258" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2258"><a href="https://www.heroku.com/blog/">Blog</a></li>
<li id="menu-item-2259" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2259"><a href="https://www.heroku.com/customers/">Customers</a></li>
<li id="menu-item-2260" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2260"><a href="https://www.heroku.com/partnering/">Partners</a></li>
<li id="menu-item-2261" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2261"><a href="https://www.heroku.com/compliance/">Compliance Center</a></li>
<li id="menu-item-2262" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2262"><a href="https://www.heroku.com/solutions/">Solutions</a></li>
<li id="menu-item-2263" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2263"><a href="https://www.heroku.com/codeish-podcasts/">Podcasts</a></li>
</ul></nav> </div>
</div>
</div>
<div class="elementor-element elementor-element-00ba0d9 e-con-full column column--footer column--footer-nav e-flex e-con e-child" data-id="00ba0d9" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-8f952e7 elementor-widget elementor-widget-wp-widget-nav_menu" data-id="8f952e7" data-element_type="widget" data-e-type="widget" data-widget_type="wp-widget-nav_menu.default">
<div class="elementor-widget-container">
<nav class="menu-footer-4-container" aria-label="Menu"><ul id="menu-footer-4" class="menu"><li id="menu-item-2264" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2264"><a href="https://www.heroku.com/about/">About Us</a>
<ul class="sub-menu">
<li id="menu-item-2267" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2267"><a href="https://www.heroku.com/what/">What is Heroku?</a></li>
<li id="menu-item-2270" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2270"><a href="https://www.heroku.com/salesforce/">Heroku &#038; Salesforce</a></li>
<li id="menu-item-2271" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2271"><a href="https://www.heroku.com/careers/">Careers</a></li>
</ul>
</li>
<li id="menu-item-193" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-193"><a href="https://help.heroku.com/">Help Center</a></li>
<li id="menu-item-194" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-194"><a href="https://status.salesforce.com/products/Heroku">Status</a></li>
<li id="menu-item-198" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-198"><a href="https://www.heroku.com/contact/">Contact</a></li>
</ul></nav> </div>
</div>
</div>
<nav class="elementor-element elementor-element-1d2fabd9 e-con-full column column--footer e-flex e-con e-child" data-id="1d2fabd9" data-element_type="container" data-e-type="container" aria-label="social">
<div class="elementor-element elementor-element-2609a195 e-grid-align-right e-grid-align-tablet-center elementor-shape-rounded elementor-grid-0 elementor-widget elementor-widget-social-icons" data-id="2609a195" data-element_type="widget" data-e-type="widget" data-widget_type="social-icons.default">
<div class="elementor-social-icons-wrapper elementor-grid" role="list">
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-Bluesky elementor-repeater-item-96a9910" href="https://bsky.app/profile/heroku.com" target="_blank">
<span class="elementor-screen-only">Bluesky</span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 600 530"><path d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z"></path></svg> </a>
</span>
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-x-twitter-square elementor-repeater-item-525a1a8" href="https://x.com/heroku" target="_blank">
<span class="elementor-screen-only">X-twitter-square</span>
<svg aria-hidden="true" class="e-font-icon-svg e-fab-x-twitter-square" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396H283.8L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5L313.6 116h47.5zM323.3 367.6L153.4 142.9H125.1L296.9 367.6h26.3z"></path></svg> </a>
</span>
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-linkedin elementor-repeater-item-cf7fdae" href="https://www.linkedin.com/company/heroku" target="_blank">
<span class="elementor-screen-only">Linkedin</span>
<svg aria-hidden="true" class="e-font-icon-svg e-fab-linkedin" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg> </a>
</span>
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-github elementor-repeater-item-79745e7" href="https://github.com/heroku" target="_blank">
<span class="elementor-screen-only">Github</span>
<svg aria-hidden="true" class="e-font-icon-svg e-fab-github" viewBox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> </a>
</span>
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-rss elementor-repeater-item-428cd3e" href="https://www.heroku.com/blog/feed/" target="_blank">
<span class="elementor-screen-only">Rss</span>
<svg aria-hidden="true" class="e-font-icon-svg e-fas-rss" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"></path></svg> </a>
</span>
</div>
</div>
</nav>
</div>
</div>
<div class="elementor-element elementor-element-79de5a00 e-flex e-con-boxed e-con e-child" data-id="79de5a00" data-element_type="container" data-e-type="container" id="bottom-footer" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
<div class="e-con-inner">
<div class="elementor-element elementor-element-da83b70 e-con-full column column--footer e-flex e-con e-child" data-id="da83b70" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-aa5f8d0 footer--logo elementor-widget elementor-widget-image" data-id="aa5f8d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<img loading="lazy" src="https://www.heroku.com/wp-content/uploads/2025/01/Heroku-Logo-Light-RGB.png?w=200" title="" alt="Heroku - from Salesforce" /> </div>
</div>
<div class="elementor-element elementor-element-277b6566 e-con-full column column--footer e-flex e-con e-child" data-id="277b6566" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-1614a8b8 elementor-widget__width-auto elementor-nav-menu--dropdown-none copyright copyright--nav elementor-nav-menu__align-start elementor-widget elementor-widget-nav-menu" data-id="1614a8b8" data-element_type="widget" data-e-type="widget" data-settings="{&quot;layout&quot;:&quot;horizontal&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;svg aria-hidden=\&quot;true\&quot; class=\&quot;e-font-icon-svg e-fas-caret-down\&quot; viewBox=\&quot;0 0 320 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;}}" data-widget_type="nav-menu.default">
<nav aria-label="Copyright" class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-none">
<ul id="menu-1-1614a8b8" class="elementor-nav-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10887"><a target="_blank" href="https://www.salesforce.com/company/legal/" class="elementor-item">Legal</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10888"><a target="_blank" href="https://www.salesforce.com/company/legal/sfdc-website-terms-of-service/" class="elementor-item">Terms of Service</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10889"><a target="_blank" href="https://www.salesforce.com/company/privacy/" class="elementor-item">Privacy Information</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10890"><a target="_blank" href="https://www.salesforce.com/company/legal/disclosure/" class="elementor-item">Responsible Disclosure</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10891"><a target="_blank" href="https://trust.salesforce.com/" class="elementor-item">Trust</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10892"><a href="https://www.heroku.com/contact/" class="elementor-item">Contact</a></li>
<li class="optanon-toggle-display menu-item menu-item-type-custom menu-item-object-custom menu-item-10893"><a href="#" class="elementor-item elementor-item-anchor">Cookie Preferences</a></li>
<li class="icon--ccpa menu-item menu-item-type-custom menu-item-object-custom menu-item-10894"><a target="_blank" href="https://www.salesforce.com/form/other/privacy-request/" class="elementor-item">Your Privacy Choices</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-238"><a href="https://www.heroku.com/sitemap/" class="elementor-item">Sitemap</a></li>
</ul> </nav>
<nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true">
<ul id="menu-2-1614a8b8" class="elementor-nav-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10887"><a target="_blank" href="https://www.salesforce.com/company/legal/" class="elementor-item" tabindex="-1">Legal</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10888"><a target="_blank" href="https://www.salesforce.com/company/legal/sfdc-website-terms-of-service/" class="elementor-item" tabindex="-1">Terms of Service</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10889"><a target="_blank" href="https://www.salesforce.com/company/privacy/" class="elementor-item" tabindex="-1">Privacy Information</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10890"><a target="_blank" href="https://www.salesforce.com/company/legal/disclosure/" class="elementor-item" tabindex="-1">Responsible Disclosure</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10891"><a target="_blank" href="https://trust.salesforce.com/" class="elementor-item" tabindex="-1">Trust</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10892"><a href="https://www.heroku.com/contact/" class="elementor-item" tabindex="-1">Contact</a></li>
<li class="optanon-toggle-display menu-item menu-item-type-custom menu-item-object-custom menu-item-10893"><a href="#" class="elementor-item elementor-item-anchor" tabindex="-1">Cookie Preferences</a></li>
<li class="icon--ccpa menu-item menu-item-type-custom menu-item-object-custom menu-item-10894"><a target="_blank" href="https://www.salesforce.com/form/other/privacy-request/" class="elementor-item" tabindex="-1">Your Privacy Choices</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-238"><a href="https://www.heroku.com/sitemap/" class="elementor-item" tabindex="-1">Sitemap</a></li>
</ul> </nav>
</div>
<div class="elementor-element elementor-element-3f52f268 e-con-full wrapper e-flex e-con e-child" data-id="3f52f268" data-element_type="container" data-e-type="container">
<div class="elementor-element elementor-element-f8ea2fb elementor-widget elementor-widget-text-editor" data-id="f8ea2fb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<p>© Copyright 2026 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States</p> </div>
</div>
</div>
</div>
</div>
</div>
</footer>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/orbitmedia-elementor/*","/wp-content/themes/hello-elementor/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script type="application/ld+json" id="slim-seo-schema">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://www.heroku.com/#website","name":"Heroku","description":"Cloud Application Platform","potentialAction":{"@id":"https://www.heroku.com/#searchaction"},"publisher":{"@id":"https://www.heroku.com/#organization"},"url":"https://www.heroku.com/"},{"@type":"Corporation","@id":"https://www.heroku.com/#organization","name":"Heroku","logo":"https://www.heroku.com/wp-content/uploads/2025/01/Heroku-Logo-Light-RGB.png?w=200","sameAs":["https://x.com/heroku","https://github.com/heroku","https://www.linkedin.com/company/heroku","https://bsky.app/profile/heroku.com"],"url":"https://www.heroku.com/"},{"@type":"BreadcrumbList","name":"Breadcrumbs","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.heroku.com/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://www.heroku.com/blog/"},{"@type":"ListItem","position":3,"name":"Engineering","item":"https://www.heroku.com/blog/category/engineering/"},{"@type":"ListItem","position":4,"name":"Rolling the Heroku Redis Fleet"}],"@id":"https://www.heroku.com/blog/rolling-redis-fleet/#breadcrumblist"},{"@type":"TechArticle","url":"https://www.heroku.com/blog/rolling-redis-fleet/","headline":"Rolling the Heroku Redis Fleet","author":"Camille Baldock","publisher":{"@id":"https://www.heroku.com/#organization"},"datePublished":"2018-06-27T20:27:00+00:00","dateModified":"2026-07-15T18:20:45+00:00","articleBody":"Over the past few weeks, Heroku proactively updated our entire Redis fleet with a version of Redis not vulnerable to CVE-2018-11218 . This was an embargoed vulnerability, so we did this work without notifying our customers about the underlying cause. As always, our goal was to update all Heroku Redis instances well before the embargo expired. As a Data Infrastructure Engineer at Heroku, I wanted to share how we manage large fleet operations such as this one. The most important aspect of our job is keeping customers safe from security vulnerabilities, while also minimizing disruption and downtime. Those two objectives are often at odds with each other, so we work hard to reduce the impact of these kinds of updates. When patching a security vulnerability or doing any fleet-wide operations, there are three main concepts we care about: designing infrastructure components to be immutable, having and following a well-defined operations process, and being aware of and mitigating employee fatigue or burnout. I’ll talk more about each of these in detail, but it&#39;s important to first understand how high-availability works with Heroku Redis. Heroku Redis and High Availability All paid Heroku Redis plans have a High Availability (HA) feature. When the primary Redis instance fails, it is automatically replaced with a replica, called a standby. Standbys update asynchronously. This means that any developer using a paid Heroku Redis plan gets HA Redis without having to do any setup or ongoing operations. How does Heroku Patch a Security Vulnerability? Immutable Infrastructure Helps Us Scale The Heroku Data infrastructure team uses the principle of immutable infrastructure. In a traditional mutable server infrastructure, engineers and administrators can SSH into servers and change configurations or upgrade packages manually. These servers are “mutable” because they can change once created. With immutable infrastructure, servers are never modified after they&#39;re deployed. If we need to change something, we build new servers from a common image and deploy them as replacements. While mutable infrastructure may work well for smaller fleets, it is not a viable option for us. Heroku manages millions of databases. At that scale, it is not feasible to manage customizations on specific servers unless they are fully-automated through our control planes. Additionally, if we find a change that would benefit one customer, we want to make sure all our customers get the benefit of that change. A Well-Defined Operations Process Minimizes Errors It is important to have a well-defined and clear understanding of our automation code when performing operations on many servers at once. One small error could impact thousands of customers, and leave their application with more downtime than necessary. Here&#39;s how we perform a fleet-wide Redis patch: We create a new server image that includes all the changes we need to roll out (security patches, OS upgrades, configuration updates, etc.). We test this image, review the results, and then flag it for release. We replace all High Availability standbys with new ones that use the updated image. Once all standbys are patched: We schedule maintenance for all our customers on paid databases plans; these maintenances are scheduled in their next maintenance window, with a warning of at least three business days. Customers can wait for the scheduled maintenance or run the maintenance ahead of the scheduled time if desired. Ensure the standby is in sync with the primary. This ensures that we do not lose data due to faulty replication. We watch for the correct functioning of a High Availability standby at all times during its lifetime. We page an operator in the rare event of a replication failure that goes unresolved for too long. Break the replication link. This means the standby is no longer following the primary, and is now capable of accepting writes. Push a release. As an addon provider, Heroku Redis updates the config vars on your application to point at the new primary. De-provision the old primary and create a new standby. Customers receive an email first to notify them about the upcoming maintenance and then another to notify them of completion. Once all HA Redis instances are updated, we gradually replace all our hobby plan databases to be running on the updated image. A Focus on Employee Health Helps Us Respond When Needed Most Fleet rolls generally result in more pages for the on-call operator to triage. This is due to the increased likelihood of hitting edge cases we have never seen before and therefore never automated. We work hard at fixing these issues before they cause issues, it&#39;s also important to keep an eye on the health of the on-call operator for when they do. We have a few mechanisms to help reduce fatigue and burnout on our team: Our fleet roll code only schedules replacement operations during the current on-call operator&#39;s business hours. This limits burnout by reducing the risk of the fleet roll waking them up at night. Our control plane software automatically manages all fleet rolls. We determine a safe concurrency level to prevent too much activity from happening all at once. Outcome In the end, we successfully completed a fleet roll for all Heroku Redis customers within five weeks of the vulnerability notification. We beat the public announcement by a week too. We invest heavily in our people and process to make these kinds of updates both possible and predictable. In fact, we follow a similar process for the rest of Heroku Data infrastructure, including Heroku Postgres and Apache Kafka on Heroku. It&#39;s all part of our commitment to provide you with the best possible service. If we do our job well, you won&#39;t notice any of this effort, but we take pride in that too.","articleSection":["Engineering"],"image":[""],"inLanguage":"en-US","@id":"https://www.heroku.com/blog/rolling-redis-fleet/#techarticle_blog"},{"@type":"SearchAction","@id":"https://www.heroku.com/#searchaction","target":"https://www.heroku.com/?s={search_term_string}","query-input":"required name=search_term_string"}]}</script> <script>
( () => {
const lazyloadRunObserver = () => {
const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
entries.forEach( ( entry ) => {
if ( entry.isIntersecting ) {
let lazyloadBackground = entry.target;
if( lazyloadBackground ) {
lazyloadBackground.classList.add( 'e-lazyloaded' );
}
lazyloadBackgroundObserver.unobserve( entry.target );
}
});
}, { rootMargin: '200px 0px 200px 0px' } );
lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
lazyloadBackgroundObserver.observe( lazyloadBackground );
} );
};
const events = [
'DOMContentLoaded',
'elementor/lazyload/observe',
];
events.forEach( ( event ) => {
document.addEventListener( event, lazyloadRunObserver );
} );
} )();
</script>
<script type="text/javascript">var algolia = {"debug":false,"application_id":"2TGALADMUD","search_api_key":"7d2207578289591ca7427056006113f0","powered_by_enabled":false,"insights_enabled":false,"search_hits_per_page":"10","query":"","indices":{"searchable_posts":{"name":"wp_searchable_posts","id":"searchable_posts","enabled":true,"replicas":[]}},"autocomplete":{"sources":[],"input_selector":"input[name='s']:not(.no-autocomplete):not(#adminbar-search)","input_selector_modern":"#autocomplete"}};</script><style id="eael-inline-css">.clearfix::before,.clearfix::after{content:" ";display:table;clear:both}.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right{padding-top:40px}.eael-contact-form input[type=text],.eael-contact-form input[type=email],.eael-contact-form input[type=url],.eael-contact-form input[type=tel],.eael-contact-form input[type=date],.eael-contact-form input[type=number],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:100%}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:none;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-post-elements-readmore-btn{font-size:12px;font-weight:500;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out;display:inline-block}.elementor-lightbox .dialog-widget-content{width:100%;height:100%}.eael-contact-form-align-left,.elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container{margin:0 auto 0 0;display:inline-block;text-align:left}.eael-contact-form-align-center,.elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container{float:none;margin:0 auto;display:inline-block;text-align:left}.eael-contact-form-align-right,.elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container{margin:0 0 0 auto;display:inline-block;text-align:left}.eael-force-hide{display:none !important}.eael-d-none{display:none !important}.eael-d-block{display:block !important}.eael-h-auto{height:auto !important}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating~.count{display:none}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating{display:none}.sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.elementor-widget-eael-adv-tabs .eael-tab-content-item,.elementor-widget-eael-adv-accordion .eael-accordion-content,.elementor-widget-eael-data-table .td-content,.elementor-widget-eael-info-box .eael-infobox-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template,.elementor-widget-eael-countdown .eael-countdown-container,.elementor-widget-eael-cta-box .eael-cta-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap,.elementor-widget-eael-protected-content .eael-protected-content-message,.elementor-widget-eael-protected-content .protected-content,.eael-offcanvas-content-visible .eael-offcanvas-body,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item{position:relative}.elementor-widget-eael-adv-tabs .eael-tab-content-item:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-adv-accordion .eael-accordion-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-data-table .td-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-info-box .eael-infobox-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-container:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-cta-box .eael-cta-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .eael-protected-content-message:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .protected-content:hover .eael-onpage-edit-template-wrapper,.eael-offcanvas-content-visible .eael-offcanvas-body:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item:hover .eael-onpage-edit-template-wrapper{display:block}.eael-widget-otea-active .elementor-element:hover>.elementor-element-overlay,.eael-widget-otea-active .elementor-empty-view,.eael-widget-otea-active .elementor-add-section-inline,.eael-widget-otea-active .elementor-add-section{display:initial !important}.eael-onpage-edit-template-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:none;border:2px solid #5eead4}.eael-onpage-edit-template-wrapper::after{position:absolute;content:"";top:0;left:0;right:0;bottom:0;z-index:2;background:#5eead4;opacity:.3}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate{display:block}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate::after{display:none}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template{background:#5eead4;color:#000;width:150px;text-align:center;height:30px;line-height:30px;font-size:12px;cursor:pointer;position:relative;z-index:3;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::before{content:"";border-top:30px solid #5eead4;border-right:0;border-bottom:0;border-left:14px solid rgba(0,0,0,0);right:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::after{content:"";border-top:0;border-right:0;border-bottom:30px solid rgba(0,0,0,0);border-left:14px solid #5eead4;left:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template>i{margin-right:8px}.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect1,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect2,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect3,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect4{-webkit-box-shadow:inherit !important;box-shadow:inherit !important}
.eael-password-protected-content-fields>form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eael-password-protected-content-fields .eael-password{padding:10px 20px;border-radius:0;font-size:1em;line-height:1em}.eael-password-protected-content-fields .eael-submit{text-transform:uppercase;padding:10px 20px;border:1px solid #333;border-radius:0;font-size:1em;line-height:1em}.eael-protected-content-message{padding:10px}.protected-content-error-msg{color:red}.rtl .eael-password-protected-content-fields>form{direction:ltr}
.clearfix::before,.clearfix::after{content:" ";display:table;clear:both}.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right{padding-top:40px}.eael-contact-form input[type=text],.eael-contact-form input[type=email],.eael-contact-form input[type=url],.eael-contact-form input[type=tel],.eael-contact-form input[type=date],.eael-contact-form input[type=number],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:100%}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:none;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-post-elements-readmore-btn{font-size:12px;font-weight:500;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out;display:inline-block}.elementor-lightbox .dialog-widget-content{width:100%;height:100%}.eael-contact-form-align-left,.elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container{margin:0 auto 0 0;display:inline-block;text-align:left}.eael-contact-form-align-center,.elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container{float:none;margin:0 auto;display:inline-block;text-align:left}.eael-contact-form-align-right,.elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container{margin:0 0 0 auto;display:inline-block;text-align:left}.eael-force-hide{display:none !important}.eael-d-none{display:none !important}.eael-d-block{display:block !important}.eael-h-auto{height:auto !important}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating~.count{display:none}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating{display:none}.sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.elementor-widget-eael-adv-tabs .eael-tab-content-item,.elementor-widget-eael-adv-accordion .eael-accordion-content,.elementor-widget-eael-data-table .td-content,.elementor-widget-eael-info-box .eael-infobox-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template,.elementor-widget-eael-countdown .eael-countdown-container,.elementor-widget-eael-cta-box .eael-cta-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap,.elementor-widget-eael-protected-content .eael-protected-content-message,.elementor-widget-eael-protected-content .protected-content,.eael-offcanvas-content-visible .eael-offcanvas-body,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item{position:relative}.elementor-widget-eael-adv-tabs .eael-tab-content-item:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-adv-accordion .eael-accordion-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-data-table .td-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-info-box .eael-infobox-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-container:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-cta-box .eael-cta-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .eael-protected-content-message:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .protected-content:hover .eael-onpage-edit-template-wrapper,.eael-offcanvas-content-visible .eael-offcanvas-body:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item:hover .eael-onpage-edit-template-wrapper{display:block}.eael-widget-otea-active .elementor-element:hover>.elementor-element-overlay,.eael-widget-otea-active .elementor-empty-view,.eael-widget-otea-active .elementor-add-section-inline,.eael-widget-otea-active .elementor-add-section{display:initial !important}.eael-onpage-edit-template-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:none;border:2px solid #5eead4}.eael-onpage-edit-template-wrapper::after{position:absolute;content:"";top:0;left:0;right:0;bottom:0;z-index:2;background:#5eead4;opacity:.3}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate{display:block}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate::after{display:none}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template{background:#5eead4;color:#000;width:150px;text-align:center;height:30px;line-height:30px;font-size:12px;cursor:pointer;position:relative;z-index:3;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::before{content:"";border-top:30px solid #5eead4;border-right:0;border-bottom:0;border-left:14px solid rgba(0,0,0,0);right:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::after{content:"";border-top:0;border-right:0;border-bottom:30px solid rgba(0,0,0,0);border-left:14px solid #5eead4;left:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template>i{margin-right:8px}.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect1,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect2,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect3,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect4{-webkit-box-shadow:inherit !important;box-shadow:inherit !important}
.eael-password-protected-content-fields>form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eael-password-protected-content-fields .eael-password{padding:10px 20px;border-radius:0;font-size:1em;line-height:1em}.eael-password-protected-content-fields .eael-submit{text-transform:uppercase;padding:10px 20px;border:1px solid #333;border-radius:0;font-size:1em;line-height:1em}.eael-protected-content-message{padding:10px}.protected-content-error-msg{color:red}.rtl .eael-password-protected-content-fields>form{direction:ltr}
.clearfix::before,.clearfix::after{content:" ";display:table;clear:both}.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right{padding-top:40px}.eael-contact-form input[type=text],.eael-contact-form input[type=email],.eael-contact-form input[type=url],.eael-contact-form input[type=tel],.eael-contact-form input[type=date],.eael-contact-form input[type=number],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:100%}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:none;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-post-elements-readmore-btn{font-size:12px;font-weight:500;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out;display:inline-block}.elementor-lightbox .dialog-widget-content{width:100%;height:100%}.eael-contact-form-align-left,.elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container{margin:0 auto 0 0;display:inline-block;text-align:left}.eael-contact-form-align-center,.elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container{float:none;margin:0 auto;display:inline-block;text-align:left}.eael-contact-form-align-right,.elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container{margin:0 0 0 auto;display:inline-block;text-align:left}.eael-force-hide{display:none !important}.eael-d-none{display:none !important}.eael-d-block{display:block !important}.eael-h-auto{height:auto !important}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating~.count{display:none}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating{display:none}.sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.elementor-widget-eael-adv-tabs .eael-tab-content-item,.elementor-widget-eael-adv-accordion .eael-accordion-content,.elementor-widget-eael-data-table .td-content,.elementor-widget-eael-info-box .eael-infobox-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template,.elementor-widget-eael-countdown .eael-countdown-container,.elementor-widget-eael-cta-box .eael-cta-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap,.elementor-widget-eael-protected-content .eael-protected-content-message,.elementor-widget-eael-protected-content .protected-content,.eael-offcanvas-content-visible .eael-offcanvas-body,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item{position:relative}.elementor-widget-eael-adv-tabs .eael-tab-content-item:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-adv-accordion .eael-accordion-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-data-table .td-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-info-box .eael-infobox-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-container:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-cta-box .eael-cta-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .eael-protected-content-message:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .protected-content:hover .eael-onpage-edit-template-wrapper,.eael-offcanvas-content-visible .eael-offcanvas-body:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item:hover .eael-onpage-edit-template-wrapper{display:block}.eael-widget-otea-active .elementor-element:hover>.elementor-element-overlay,.eael-widget-otea-active .elementor-empty-view,.eael-widget-otea-active .elementor-add-section-inline,.eael-widget-otea-active .elementor-add-section{display:initial !important}.eael-onpage-edit-template-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:none;border:2px solid #5eead4}.eael-onpage-edit-template-wrapper::after{position:absolute;content:"";top:0;left:0;right:0;bottom:0;z-index:2;background:#5eead4;opacity:.3}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate{display:block}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate::after{display:none}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template{background:#5eead4;color:#000;width:150px;text-align:center;height:30px;line-height:30px;font-size:12px;cursor:pointer;position:relative;z-index:3;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::before{content:"";border-top:30px solid #5eead4;border-right:0;border-bottom:0;border-left:14px solid rgba(0,0,0,0);right:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::after{content:"";border-top:0;border-right:0;border-bottom:30px solid rgba(0,0,0,0);border-left:14px solid #5eead4;left:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template>i{margin-right:8px}.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect1,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect2,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect3,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect4{-webkit-box-shadow:inherit !important;box-shadow:inherit !important}
.eael-password-protected-content-fields>form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eael-password-protected-content-fields .eael-password{padding:10px 20px;border-radius:0;font-size:1em;line-height:1em}.eael-password-protected-content-fields .eael-submit{text-transform:uppercase;padding:10px 20px;border:1px solid #333;border-radius:0;font-size:1em;line-height:1em}.eael-protected-content-message{padding:10px}.protected-content-error-msg{color:red}.rtl .eael-password-protected-content-fields>form{direction:ltr}
.clearfix::before,.clearfix::after{content:" ";display:table;clear:both}.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right{padding-top:40px}.eael-contact-form input[type=text],.eael-contact-form input[type=email],.eael-contact-form input[type=url],.eael-contact-form input[type=tel],.eael-contact-form input[type=date],.eael-contact-form input[type=number],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:100%}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:none;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-post-elements-readmore-btn{font-size:12px;font-weight:500;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out;display:inline-block}.elementor-lightbox .dialog-widget-content{width:100%;height:100%}.eael-contact-form-align-left,.elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container{margin:0 auto 0 0;display:inline-block;text-align:left}.eael-contact-form-align-center,.elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container{float:none;margin:0 auto;display:inline-block;text-align:left}.eael-contact-form-align-right,.elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container{margin:0 0 0 auto;display:inline-block;text-align:left}.eael-force-hide{display:none !important}.eael-d-none{display:none !important}.eael-d-block{display:block !important}.eael-h-auto{height:auto !important}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating~.count{display:none}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating{display:none}.sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.elementor-widget-eael-adv-tabs .eael-tab-content-item,.elementor-widget-eael-adv-accordion .eael-accordion-content,.elementor-widget-eael-data-table .td-content,.elementor-widget-eael-info-box .eael-infobox-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template,.elementor-widget-eael-countdown .eael-countdown-container,.elementor-widget-eael-cta-box .eael-cta-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap,.elementor-widget-eael-protected-content .eael-protected-content-message,.elementor-widget-eael-protected-content .protected-content,.eael-offcanvas-content-visible .eael-offcanvas-body,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item{position:relative}.elementor-widget-eael-adv-tabs .eael-tab-content-item:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-adv-accordion .eael-accordion-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-data-table .td-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-info-box .eael-infobox-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-container:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-cta-box .eael-cta-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .eael-protected-content-message:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .protected-content:hover .eael-onpage-edit-template-wrapper,.eael-offcanvas-content-visible .eael-offcanvas-body:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item:hover .eael-onpage-edit-template-wrapper{display:block}.eael-widget-otea-active .elementor-element:hover>.elementor-element-overlay,.eael-widget-otea-active .elementor-empty-view,.eael-widget-otea-active .elementor-add-section-inline,.eael-widget-otea-active .elementor-add-section{display:initial !important}.eael-onpage-edit-template-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:none;border:2px solid #5eead4}.eael-onpage-edit-template-wrapper::after{position:absolute;content:"";top:0;left:0;right:0;bottom:0;z-index:2;background:#5eead4;opacity:.3}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate{display:block}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate::after{display:none}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template{background:#5eead4;color:#000;width:150px;text-align:center;height:30px;line-height:30px;font-size:12px;cursor:pointer;position:relative;z-index:3;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::before{content:"";border-top:30px solid #5eead4;border-right:0;border-bottom:0;border-left:14px solid rgba(0,0,0,0);right:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::after{content:"";border-top:0;border-right:0;border-bottom:30px solid rgba(0,0,0,0);border-left:14px solid #5eead4;left:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template>i{margin-right:8px}.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect1,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect2,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect3,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect4{-webkit-box-shadow:inherit !important;box-shadow:inherit !important}
.eael-password-protected-content-fields>form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eael-password-protected-content-fields .eael-password{padding:10px 20px;border-radius:0;font-size:1em;line-height:1em}.eael-password-protected-content-fields .eael-submit{text-transform:uppercase;padding:10px 20px;border:1px solid #333;border-radius:0;font-size:1em;line-height:1em}.eael-protected-content-message{padding:10px}.protected-content-error-msg{color:red}.rtl .eael-password-protected-content-fields>form{direction:ltr}
.clearfix::before,.clearfix::after{content:" ";display:table;clear:both}.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right{padding-top:40px}.eael-contact-form input[type=text],.eael-contact-form input[type=email],.eael-contact-form input[type=url],.eael-contact-form input[type=tel],.eael-contact-form input[type=date],.eael-contact-form input[type=number],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:100%}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:none;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-post-elements-readmore-btn{font-size:12px;font-weight:500;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out;display:inline-block}.elementor-lightbox .dialog-widget-content{width:100%;height:100%}.eael-contact-form-align-left,.elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container{margin:0 auto 0 0;display:inline-block;text-align:left}.eael-contact-form-align-center,.elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container{float:none;margin:0 auto;display:inline-block;text-align:left}.eael-contact-form-align-right,.elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container{margin:0 0 0 auto;display:inline-block;text-align:left}.eael-force-hide{display:none !important}.eael-d-none{display:none !important}.eael-d-block{display:block !important}.eael-h-auto{height:auto !important}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating~.count{display:none}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating{display:none}.sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.elementor-widget-eael-adv-tabs .eael-tab-content-item,.elementor-widget-eael-adv-accordion .eael-accordion-content,.elementor-widget-eael-data-table .td-content,.elementor-widget-eael-info-box .eael-infobox-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template,.elementor-widget-eael-countdown .eael-countdown-container,.elementor-widget-eael-cta-box .eael-cta-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap,.elementor-widget-eael-protected-content .eael-protected-content-message,.elementor-widget-eael-protected-content .protected-content,.eael-offcanvas-content-visible .eael-offcanvas-body,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item{position:relative}.elementor-widget-eael-adv-tabs .eael-tab-content-item:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-adv-accordion .eael-accordion-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-data-table .td-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-info-box .eael-infobox-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-container:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-cta-box .eael-cta-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .eael-protected-content-message:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .protected-content:hover .eael-onpage-edit-template-wrapper,.eael-offcanvas-content-visible .eael-offcanvas-body:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item:hover .eael-onpage-edit-template-wrapper{display:block}.eael-widget-otea-active .elementor-element:hover>.elementor-element-overlay,.eael-widget-otea-active .elementor-empty-view,.eael-widget-otea-active .elementor-add-section-inline,.eael-widget-otea-active .elementor-add-section{display:initial !important}.eael-onpage-edit-template-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:none;border:2px solid #5eead4}.eael-onpage-edit-template-wrapper::after{position:absolute;content:"";top:0;left:0;right:0;bottom:0;z-index:2;background:#5eead4;opacity:.3}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate{display:block}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate::after{display:none}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template{background:#5eead4;color:#000;width:150px;text-align:center;height:30px;line-height:30px;font-size:12px;cursor:pointer;position:relative;z-index:3;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::before{content:"";border-top:30px solid #5eead4;border-right:0;border-bottom:0;border-left:14px solid rgba(0,0,0,0);right:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::after{content:"";border-top:0;border-right:0;border-bottom:30px solid rgba(0,0,0,0);border-left:14px solid #5eead4;left:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template>i{margin-right:8px}.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect1,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect2,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect3,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect4{-webkit-box-shadow:inherit !important;box-shadow:inherit !important}
.eael-password-protected-content-fields>form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eael-password-protected-content-fields .eael-password{padding:10px 20px;border-radius:0;font-size:1em;line-height:1em}.eael-password-protected-content-fields .eael-submit{text-transform:uppercase;padding:10px 20px;border:1px solid #333;border-radius:0;font-size:1em;line-height:1em}.eael-protected-content-message{padding:10px}.protected-content-error-msg{color:red}.rtl .eael-password-protected-content-fields>form{direction:ltr}
.clearfix::before,.clearfix::after{content:" ";display:table;clear:both}.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right{padding-top:40px}.eael-contact-form input[type=text],.eael-contact-form input[type=email],.eael-contact-form input[type=url],.eael-contact-form input[type=tel],.eael-contact-form input[type=date],.eael-contact-form input[type=number],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:100%}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:none;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-post-elements-readmore-btn{font-size:12px;font-weight:500;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out;display:inline-block}.elementor-lightbox .dialog-widget-content{width:100%;height:100%}.eael-contact-form-align-left,.elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container{margin:0 auto 0 0;display:inline-block;text-align:left}.eael-contact-form-align-center,.elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container{float:none;margin:0 auto;display:inline-block;text-align:left}.eael-contact-form-align-right,.elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container{margin:0 0 0 auto;display:inline-block;text-align:left}.eael-force-hide{display:none !important}.eael-d-none{display:none !important}.eael-d-block{display:block !important}.eael-h-auto{height:auto !important}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating~.count{display:none}.theme-martfury .elementor-wc-products .woocommerce ul.products li.product .product-inner .mf-rating .eael-star-rating.star-rating{display:none}.sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.elementor-widget-eael-adv-tabs .eael-tab-content-item,.elementor-widget-eael-adv-accordion .eael-accordion-content,.elementor-widget-eael-data-table .td-content,.elementor-widget-eael-info-box .eael-infobox-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template,.elementor-widget-eael-countdown .eael-countdown-container,.elementor-widget-eael-cta-box .eael-cta-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap,.elementor-widget-eael-protected-content .eael-protected-content-message,.elementor-widget-eael-protected-content .protected-content,.eael-offcanvas-content-visible .eael-offcanvas-body,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item{position:relative}.elementor-widget-eael-adv-tabs .eael-tab-content-item:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-adv-accordion .eael-accordion-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-data-table .td-content:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-info-box .eael-infobox-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-expiry-template:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-countdown .eael-countdown-container:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-cta-box .eael-cta-template-wrapper:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-primary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-toggle .eael-toggle-secondary-wrap:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .eael-protected-content-message:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-protected-content .protected-content:hover .eael-onpage-edit-template-wrapper,.eael-offcanvas-content-visible .eael-offcanvas-body:hover .eael-onpage-edit-template-wrapper,.elementor-widget-eael-stacked-cards .eael-stacked-cards__item:hover .eael-onpage-edit-template-wrapper{display:block}.eael-widget-otea-active .elementor-element:hover>.elementor-element-overlay,.eael-widget-otea-active .elementor-empty-view,.eael-widget-otea-active .elementor-add-section-inline,.eael-widget-otea-active .elementor-add-section{display:initial !important}.eael-onpage-edit-template-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:none;border:2px solid #5eead4}.eael-onpage-edit-template-wrapper::after{position:absolute;content:"";top:0;left:0;right:0;bottom:0;z-index:2;background:#5eead4;opacity:.3}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate{display:block}.eael-onpage-edit-template-wrapper.eael-onpage-edit-activate::after{display:none}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template{background:#5eead4;color:#000;width:150px;text-align:center;height:30px;line-height:30px;font-size:12px;cursor:pointer;position:relative;z-index:3;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::before{content:"";border-top:30px solid #5eead4;border-right:0;border-bottom:0;border-left:14px solid rgba(0,0,0,0);right:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template::after{content:"";border-top:0;border-right:0;border-bottom:30px solid rgba(0,0,0,0);border-left:14px solid #5eead4;left:100%;position:absolute}.eael-onpage-edit-template-wrapper .eael-onpage-edit-template>i{margin-right:8px}.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect1,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect2,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect3,.elementor-edit-area-active .eael_wd_liquid_glass_shadow-effect4{-webkit-box-shadow:inherit !important;box-shadow:inherit !important}
.eael-password-protected-content-fields>form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eael-password-protected-content-fields .eael-password{padding:10px 20px;border-radius:0;font-size:1em;line-height:1em}.eael-password-protected-content-fields .eael-submit{text-transform:uppercase;padding:10px 20px;border:1px solid #333;border-radius:0;font-size:1em;line-height:1em}.eael-protected-content-message{padding:10px}.protected-content-error-msg{color:red}.rtl .eael-password-protected-content-fields>form{direction:ltr}
</style><link rel='stylesheet' id='all-css-0' href='https://www.heroku.com/_static/??-eJydjEEKgCAQAD+ULkFol+gtoYsI7q64ht/PDn2g4zDMwKgmCHfkDrXcKbMCFqTJ0kxtApcqdoWgCiPHhN0UkTciEraU2U61wN9Pajl+l5OO1e/eObc5/wDYHzkB' type='text/css' media='all' />
<script id="oms-admin-scripts-fix-js" src="https://www.heroku.com/wp-content/themes/orbitmedia-elementor/resources/js/dist/admin.js?ver=7.1"></script>
<script id="imagesloaded-js" src="https://www.heroku.com/wp-includes/js/imagesloaded.min.js?ver=5.0.0"></script>
<script id="masonry-js" src="https://www.heroku.com/wp-includes/js/masonry.min.js?ver=4.2.2"></script>
<script id="jquery-masonry-js" src="https://www.heroku.com/wp-includes/js/jquery/jquery.masonry.min.js?ver=3.1.2b"></script>
<script id="wp-hooks-js" src="https://www.heroku.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
<script id="wp-i18n-js" src="https://www.heroku.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="wp-parsely-loader-js-before">
window.wpParselySiteId = 'heroku.com';
//# sourceURL=wp-parsely-loader-js-before
</script>
<script id="wp-parsely-loader-js" src="https://www.heroku.com/wp-content/mu-plugins/wp-parsely-3.24/build/loader.js?ver=ecf94842061bea03d54b"></script>
<script id="parsely-cfg" data-parsely-site="heroku.com" src="https://cdn.parsely.com/keys/heroku.com/p.js?ver=3.24.1"></script>
<script id="elementor-webpack-runtime-js" src="https://www.heroku.com/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.2.3"></script>
<script id="elementor-frontend-modules-js" src="https://www.heroku.com/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.2.3"></script>
<script id="jquery-ui-core-js-before">
jQuery.uiBackCompat = true;
//# sourceURL=jquery-ui-core-js-before
</script>
<script id="jquery-ui-core-js" src="https://www.heroku.com/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
<script id="elementor-frontend-js-extra">
var EAELImageMaskingConfig = {"svg_dir_url":"https://www.heroku.com/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/img/image-masking/svg-shapes/"};
//# sourceURL=elementor-frontend-js-extra
</script>
<script id="elementor-frontend-js-before">
var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnX":"Share on X","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":767,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1199,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1399,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},
"hasCustomBreakpoints":false},"version":"4.2.3","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"container":true,"e_optimized_markup":true,"e_panel_promotions":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"nested-elements":true,"e_atomic_elements":true,"atomic_widgets_should_enforce_capabilities":true,"editor_mcp":true,"e_bc_migrations":true,"e_classes":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_variables_manager":true,"e_opt_in_v4_page":true,"e_opt_in_v4":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true,"e_pro_atomic_form":true,"e_pro_collection_loop":true,"e_pro_variables":true,"e_pro_interactions":true},"urls":{"assets":"https:\/\/www.heroku.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/www.heroku.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/www.heroku.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"3cec99aa57","atomicFormsSendForm":"2f4e5e4aee"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description","hello_header_logo_type":"logo","hello_header_menu_layout":"horizontal","hello_footer_logo_type":"logo"},"post":{"id":9854,"title":"How%20Heroku%20Patches%20Redis%20at%20Scale%20%7C%20Heroku","excerpt":"","featuredImage":false}};
//# sourceURL=elementor-frontend-js-before
</script>
<script id="elementor-frontend-js" src="https://www.heroku.com/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.2.3"></script>
<script id="orbit-js-extra">
var herokuParams = {"ajaxurl":"https://www.heroku.com/wp-admin/admin-ajax.php","nonce":"d3e155e73f"};
//# sourceURL=orbit-js-extra
</script>
<script id="orbit-js" src="https://www.heroku.com/wp-content/themes/orbitmedia-elementor/resources/js/dist/min/combined.min.js?ver=1787163968"></script>
<script id="prismjs-core-js-before">
window.Prism = window.Prism || {};
window.Prism.plugins = window.Prism.plugins || {};
window.Prism.plugins.autoloader = window.Prism.plugins.autoloader || {};
window.Prism.plugins.autoloader.languages_path = 'https://cdnjs.cloudflare.com/ajax/libs/prism/1.30.0/components/';
//# sourceURL=prismjs-core-js-before
</script>
<script data-wp-strategy="defer" defer id="prismjs-core-js" src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.30.0/prism.min.js?ver=1.30.0"></script>
<script data-wp-strategy="defer" defer id="prismjs-autoloader-js" src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.30.0/plugins/autoloader/prism-autoloader.min.js?ver=1.30.0"></script>
<script id="hello-theme-frontend-js" src="https://www.heroku.com/wp-content/themes/hello-elementor/assets/js/hello-frontend.js?ver=3.4.9"></script>
<script id="swiper-js" src="https://www.heroku.com/wp-content/plugins/elementor/assets/lib/swiper/v8/swiper.min.js?ver=8.4.5"></script>
<script id="smartmenus-js" src="https://www.heroku.com/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js?ver=1.2.1"></script>
<script id="heroku-key-takeaways-js" src="https://www.heroku.com/wp-content/plugins/heroku-widgets/resources/key-takeaways.js?ver=1.1.7"></script>
<script id="gforms_recaptcha_recaptcha-js-extra">
var gforms_recaptcha_recaptcha_strings = {"nonce":"cfcf96bb39","disconnect":"Disconnecting","change_connection_type":"Resetting","spinner":"https://www.heroku.com/wp-content/plugins/gravityforms/images/spinner.svg","connection_type":"classic","disable_badge":"1","change_connection_type_title":"Change Connection Type","change_connection_type_message":"Changing the connection type will delete your current settings. Do you want to proceed?","disconnect_title":"Disconnect","disconnect_message":"Disconnecting from reCAPTCHA will delete your current settings. Do you want to proceed?","site_key":"6LepFh0rAAAAAFm7PNbKmEGIxqyF5OIAkfNDp2YZ"};
//# sourceURL=gforms_recaptcha_recaptcha-js-extra
</script>
<script data-wp-strategy="defer" defer id="gforms_recaptcha_recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=6LepFh0rAAAAAFm7PNbKmEGIxqyF5OIAkfNDp2YZ&#038;ver=2.2.2"></script>
<script data-wp-strategy="defer" defer id="gforms_recaptcha_frontend-js" src="https://www.heroku.com/wp-content/plugins/gravityformsrecaptcha/js/frontend.min.js?ver=2.2.2"></script>
<script id="eael-general-js-extra">
var localize = {"ajaxurl":"https://www.heroku.com/wp-admin/admin-ajax.php","nonce":"e397b6c435","i18n":{"added":"Added ","compare":"Compare","loading":"Loading..."},"eael_translate_text":{"required_text":"is a required field","invalid_text":"Invalid","billing_text":"Billing","shipping_text":"Shipping","fg_mfp_counter_text":"of"},"page_permalink":"https://www.heroku.com/blog/rolling-redis-fleet/","cart_redirectition":"","cart_page_url":"","el_breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":767,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1199,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1399,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"ParticleThemesData":{"default":"{\"particles\":{\"number\":{\"value\":160,\"density\":{\"enable\":true,\"value_area\":800}},\"color\":{\"value\":\"#ffffff\"},\"shape\":{\"type\":\"circle\",\"stroke\":{\"width\":0,\"color\":\"#000000\"},\"polygon\":{\"nb_sides\":5},\"image\":{\"src\":\"img/github.svg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":0.5,\"random\":false,\"anim\":{\"enable\":false,\"speed\":1,\"opacity_min\":0.1,\"sync\":false}},\"size\":{\"value\":3,\"random\":true,\"anim\":{\"enable\":false,\"speed\":40,\"size_min\":0.1,\"sync\":false}},\"line_linked\":{\"enable\":true,\"distance\":150,\"color\":\"#ffffff\",\"opacity\":0.4,\"width\":1},\"move\":{\"enable\":true,\"speed\":6,\"direction\":\"none\",\"random\":false,\"straight\":false,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":1200}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":true,\"mode\":\"repulse\"},\"onclick\":{\"enable\":true,\"mode\":\"push\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":400,\"line_linked\":{\"opacity\":1}},\"bubble\":{\"distance\":400,\"size\":40,\"duration\":2,\"opacity\":8,\"speed\":3},\"repulse\":{\"distance\":200,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}","nasa":"{\"particles\":{\"number\":{\"value\":250,\"density\":{\"enable\":true,\"value_area\":800}},\"color\":{\"value\":\"#ffffff\"},\"shape\":{\"type\":\"circle\",\"stroke\":{\"width\":0,\"color\":\"#000000\"},\"polygon\":{\"nb_sides\":5},\"image\":{\"src\":\"img/github.svg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":1,\"random\":true,\"anim\":{\"enable\":true,\"speed\":1,\"opacity_min\":0,\"sync\":false}},\"size\":{\"value\":3,\"random\":true,\"anim\":{\"enable\":false,\"speed\":4,\"size_min\":0.3,\"sync\":false}},\"line_linked\":{\"enable\":false,\"distance\":150,\"color\":\"#ffffff\",\"opacity\":0.4,\"width\":1},\"move\":{\"enable\":true,\"speed\":1,\"direction\":\"none\",\"random\":true,\"straight\":false,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":600}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":true,\"mode\":\"bubble\"},\"onclick\":{\"enable\":true,\"mode\":\"repulse\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":400,\"line_linked\":{\"opacity\":1}},\"bubble\":{\"distance\":250,\"size\":0,\"duration\":2,\"opacity\":0,\"speed\":3},\"repulse\":{\"distance\":400,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}","bubble":"{\"particles\":{\"number\":{\"value\":15,\"density\":{\"enable\":true,\"value_area\":800}},\"color\":{\"value\":\"#1b1e34\"},\"shape\":{\"type\":\"polygon\",\"stroke\":{\"width\":0,\"color\":\"#000\"},\"polygon\":{\"nb_sides\":6},\"image\":{\"src\":\"img/github.svg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":0.3,\"random\":true,\"anim\":{\"enable\":false,\"speed\":1,\"opacity_min\":0.1,\"sync\":false}},\"size\":{\"value\":50,\"random\":false,\"anim\":{\"enable\":true,\"speed\":10,\"size_min\":40,\"sync\":false}},\"line_linked\":{\"enable\":false,\"distance\":200,\"color\":\"#ffffff\",\"opacity\":1,\"width\":2},\"move\":{\"enable\":true,\"speed\":8,\"direction\":\"none\",\"random\":false,\"straight\":false,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":1200}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":false,\"mode\":\"grab\"},\"onclick\":{\"enable\":false,\"mode\":\"push\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":400,\"line_linked\":{\"opacity\":1}},\"bubble\":{\"distance\":400,\"size\":40,\"duration\":2,\"opacity\":8,\"speed\":3},\"repulse\":{\"distance\":200,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}","snow":"{\"particles\":{\"number\":{\"value\":450,\"density\":{\"enable\":true,\"value_area\":800}},\"color\":{\"value\":\"#fff\"},\"shape\":{\"type\":\"circle\",\"stroke\":{\"width\":0,\"color\":\"#000000\"},\"polygon\":{\"nb_sides\":5},\"image\":{\"src\":\"img/github.svg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":0.5,\"random\":true,\"anim\":{\"enable\":false,\"speed\":1,\"opacity_min\":0.1,\"sync\":false}},\"size\":{\"value\":5,\"random\":true,\"anim\":{\"enable\":false,\"speed\":40,\"size_min\":0.1,\"sync\":false}},\"line_linked\":{\"enable\":false,\"distance\":500,\"color\":\"#ffffff\",\"opacity\":0.4,\"width\":2},\"move\":{\"enable\":true,\"speed\":6,\"direction\":\"bottom\",\"random\":false,\"straight\":false,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":1200}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":true,\"mode\":\"bubble\"},\"onclick\":{\"enable\":true,\"mode\":\"repulse\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":400,\"line_linked\":{\"opacity\":0.5}},\"bubble\":{\"distance\":400,\"size\":4,\"duration\":0.3,\"opacity\":1,\"speed\":3},\"repulse\":{\"distance\":200,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}","nyan_cat":"{\"particles\":{\"number\":{\"value\":150,\"density\":{\"enable\":false,\"value_area\":800}},\"color\":{\"value\":\"#ffffff\"},\"shape\":{\"type\":\"star\",\"stroke\":{\"width\":0,\"color\":\"#000000\"},\"polygon\":{\"nb_sides\":5},\"image\":{\"src\":\"http://wiki.lexisnexis.com/academic/images/f/fb/Itunes_podcast_icon_300.jpg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":0.5,\"random\":false,\"anim\":{\"enable\":false,\"speed\":1,\"opacity_min\":0.1,\"sync\":false}},\"size\":{\"value\":4,\"random\":true,\"anim\":{\"enable\":false,\"speed\":40,\"size_min\":0.1,\"sync\":false}},\"line_linked\":{\"enable\":false,\"distance\":150,\"color\":\"#ffffff\",\"opacity\":0.4,\"width\":1},\"move\":{\"enable\":true,\"speed\":14,\"direction\":\"left\",\"random\":false,\"straight\":true,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":1200}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":false,\"mode\":\"grab\"},\"onclick\":{\"enable\":true,\"mode\":\"repulse\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":200,\"line_linked\":{\"opacity\":1}},\"bubble\":{\"distance\":400,\"size\":40,\"duration\":2,\"opacity\":8,\"speed\":3},\"repulse\":{\"distance\":200,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}"},"eael_login_nonce":"0cb6bdc2c3","eael_register_nonce":"c811c4ff74","eael_lostpassword_nonce":"b58ea4d048","eael_resetpassword_nonce":"90e2eb488d"};
//# sourceURL=eael-general-js-extra
</script>
<script id="eael-general-js" src="https://www.heroku.com/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/js/view/general.min.js?ver=6.7.3"></script>
<script id="jetpack-stats-js-before">
_stq = window._stq || [];
_stq.push([ "view", {"v":"ext","blog":"240053110","post":"9854","tz":"-7","srv":"www.heroku.com","hp":"vip","j":"1:16.1.3"} ]);
_stq.push([ "clickTrackerInit", "240053110", "9854" ]);
//# sourceURL=jetpack-stats-js-before
</script>
<script data-wp-strategy="defer" defer fetchpriority="low" id="jetpack-stats-js" src="https://stats.wp.com/e-202637.js"></script>
<script id="hoverIntent-js" src="https://www.heroku.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2"></script>
<script id="megamenu-js" src="https://www.heroku.com/wp-content/plugins/megamenu/js/maxmegamenu.js?ver=3.10.6"></script>
<script id="megamenu-pro-js" src="https://www.heroku.com/wp-content/plugins/megamenu-pro/assets/public.js?ver=2.4.2"></script>
<script id="elementor-pro-webpack-runtime-js" src="https://www.heroku.com/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=4.2.2"></script>
<script id="elementor-pro-frontend-js-before">
var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/www.heroku.com\/wp-admin\/admin-ajax.php","nonce":"f1393033f1","urls":{"assets":"https:\/\/www.heroku.com\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/www.heroku.com\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":false},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},
"facebook_sdk":{"lang":"en_US","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/www.heroku.com\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}};
//# sourceURL=elementor-pro-frontend-js-before
</script>
<script id="elementor-pro-frontend-js" src="https://www.heroku.com/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=4.2.2"></script>
<script id="pro-elements-handlers-js" src="https://www.heroku.com/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=4.2.2"></script>
</body>
</html>