Help
RSS
API
Feed
Maltego
Contact
Domain > 404.marissa-s.workers.dev
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-02-13
104.21.19.249
(
ClassC
)
2026-01-21
172.67.190.179
(
ClassC
)
Port 443
HTTP/1.1 404 Not FoundDate: Wed, 21 Jan 2026 22:01:07 GMTContent-Type: text/htmlContent-Length: 94258Connection: keep-aliveVary: accept-encodingReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?s79OiArmowvO4%2FbQ%2BrSAlUssZ%2FdTZ0%2FznUOr5MbTohaXyoo0wFNX4tQPAqaGlsb%2Bjg%2FKknfDi8hSfJfbicAnGvjT22V3dwwnPvfiZ3uabrQHWWiDfnUl5}}Nel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Server: cloudflareCF-RAY: 9c1a169c79e3f7ed-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>!-- This site was created in Webflow. https://webflow.com -->!-- Last Published: Wed Jan 14 2026 13:16:38 GMT+0000 (Coordinated Universal Time) -->html data-wf-domainwww.completeclosetdesign.com data-wf-page66eae19afe614762f0ad6b27 data-wf-site66d1d0f957da81046fb7897e langen>head>meta charsetutf-8/>title>Not Found/title>meta contentNot Found propertyog:title/>meta contentNot Found propertytwitter:title/>meta contentwidthdevice-width, initial-scale1 nameviewport/>meta contentWebflow namegenerator/>link hrefhttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/css/ccd-dev.webflow.shared.980cd2dc9.min.css relstylesheet typetext/css integritysha384-mAzS3J13qeOV6yYHkJo/Vfhb0FCUhw6CkN1B1oFj99XcQDea7iiS+wl7vQ5ZBE56 crossoriginanonymous/>script typetext/javascript>!function(o,c){var nc.documentElement,t w-mod-;n.className+t+js,(ontouchstartin o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+t+touch)}(window,document);/script>link hrefhttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/67651ba2cd2dd6bb841ec65d_Group%203087%20(1)%20(2).png relshortcut icon typeimage/x-icon/>link hrefhttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/67651baa3864b040bf34a9a8_Group%203087%20(1)%20(1).png relapple-touch-icon/>link hrefhttps://completeclosetdesign.com/404 relcanonical/>script typetext/javascript>!function(f,b,e,v,n,t,s){if(f.fbq)return;nf.fbqfunction(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbqn;n.pushn;n.loaded!0;n.version2.0;n.agentplwebflow;n.queue;tb.createElement(e);t.async!0;t.srcv;sb.getElementsByTagName(e)0;s.parentNode.insertBefore(t,s)}(window,document,script,https://connect.facebook.net/en_US/fbevents.js);fbq(init, 793602115455745);fbq(track, PageView);/script>style> .hero, .hero__container_inner { background-image: none !important; } .w-richtext:not(.hero__rich-content):not(.proc-sub__text):not(.inspired__head-text):not(.cta__text_white):not(.faq-card__text) p { color: #595d61; } .faq-card__text strong { color: #272b2e; } .faq-card__text p { color: #272b2e; } .harm__body { height: 0; } .btn.btn_hollow-white { backdrop-filter: blur(2px); } .eapps-widget-toolbar-panel-only-you { color: var(--dark-text) !important; background-color: #f9f5f2 !important; } .eapps-widget-toolbar-panel, .eapps-widget-toolbar-panel-share-button { background-color: var(--dark-text) !important; } .btn_hollow-black.btn_with-arrow.custom__btn:hover { background-color: #5c7a84; } .btn_hollow-black.btn_with-arrow::after { border-right: 1px solid rgba(51, 51, 51, 1); border-bottom: 1px solid rgba(51, 51, 51, 1); } .btn_hollow-black.btn_with-arrow:hover::after { border-right-color: #ffffff; border-bottom-color: #ffffff; } .btn:active { color: #ffffff !important; border-color: #3d545c !important; background-color: #3d545c !important; } .solutions__item-name { display: none; } .slider-arrows__btn.swiper-button-disabled { pointer-events: none; opacity: 1; background-color: rgba(211, 211, 212, 0.4); box-shadow: none; } .slider-arrows__btn.swiper-button-disabled path { fill: #272b2e; } .slider-arrows::before, .slider-arrows::after { content: none; } .testim .slider-arrows__btn { display: none; } .testim class*EmbedRoot__Root .slider-arrows__btn { display: block; } .option-images__name { display: none; } @media (min-width: 768px) { .colors-gal__item .colors-gal__body { display: none; } } .colors-gal__body { overflow: hidden; max-height: 0; padding-top: 0; transition: 300ms ease; }/style>script> (function () { function orientationChangeHandler() { setTimeout(() > { window.dispatchEvent(new Event(resize)) }, 100) } function subscribe(match, handler) { if (match.addListener) { match.addListener(handler) } else { match.addEventListener(change, handler) } } function matchMedia(media) { const match window.matchMedia(media) return function (handler) { return subscribe(match, handler) } } matchMedia((orientation: portrait))(orientationChangeHandler) })()/script>script> (function () { const setVars () > { const doc document.documentElement const header document.querySelector(.header) const appHeight () > { doc.style.setProperty(--app-height, `${window.innerHeight}px`) } const headerHeight () > { doc.style.setProperty(--header-height, `${header.clientHeight}px`) } appHeight() if (header) { headerHeight() } } window.addEventListener(DOMContentLoaded, setVars) window.addEventListener(resize, setVars) setVars() })()/script>script> const libraries { swiperScript: https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js, swiperStyle: https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css, holyStarsScript: https://unpkg.com/holy-stars@1.2.1/dist/holy-stars.js, holyStarsStyle: https://unpkg.com/holy-stars@1.2.1/dist/holy-stars.css, customSelectScript: https://cdn.jsdelivr.net/npm/custom-select@1.1.15/build/custom-select.min.js, customSelectStyle: https://cdn.jsdelivr.net/npm/custom-select@1.1.15/build/custom-select.min.css, smoothScrollScript: https://cdn.jsdelivr.net/gh/cferdinandi/smooth-scroll@15/dist/smooth-scroll.polyfills.min.js, glightboxStyle: https://cdn.jsdelivr.net/npm/glightbox/dist/css/glightbox.min.css, glightboxScript: https://cdn.jsdelivr.net/gh/mcstudios/glightbox/dist/js/glightbox.min.js, iMaskScript: https://unpkg.com/imask, }/script>script> class ImportObserver extends IntersectionObserver { constructor(callback, element, options) { super((entries) > { if (entries0.isIntersecting) { callback(entries) this.disconnect() } }, options) this.observe(element) } } class ScriptImportObserver extends ImportObserver { constructor({ callback, element, script, link, options }) { super( (entries) > { const scriptElement document.createElement(script) const linkElement document.createElement(link) const check (attr, url) > !!document.querySelector(`${attr}${url}`) if (script) { scriptElement.src script if (check(src, script)) { callback(entries) } else { scriptElement.addEventListener(load, () > callback(entries)) document.body.prepend(scriptElement) } } if (link) { linkElement.href link linkElement.rel stylesheet if (!check(href, link)) { document.head.append(linkElement) } } }, element, options, ) } }/script>script data-cfasyncfalse idcore-funcs> function createElement({ tag, target, attributes, events, className, textContent } {}) { const el document.createElement(tag || div) Object.entries(attributes || {}).forEach((attribute, value) > value ! null && el.setAttribute(attribute, value)) Object.entries(events || {}).forEach((event, callback) > callback ! null && el.addEventListener(event, callback)) className && (el.className className) textContent && (el.textContent textContent) target?.appendChild(el) return el } function createElementAsync({ tag, target, attributes, events, className, textContent }) { return new Promise(resolve > { requestAnimationFrame(() > { const el createElement({ tag, target, attributes, events, className, textContent }) const hasLoadEvent /img|script|iframe|link|audio|video|object|embed/i.test(el.tagName) if (hasLoadEvent) { el.addEventListener(load, () > resolve(el)) } else { resolve(el) } }) }) } function loadScriptAsync(src, initOnce, attributes {}, loadEventType) { if (!window.loadedScripts) window.loadedScripts {} if (!loadedScriptssrc) { const url new URL(src, location.href).href const existing ...document.querySelectorAll(scriptsrc).find(s > s.src url) const promise existing ? Promise.resolve(existing) : createElementAsync({ tag: script, target: document.body, attributes: { src, ...attributes }, }) if (loadEventType) promise.then(() > dispatchEvent(new Event(loadEventType))) loadedScriptssrc { promise } } else if (loadedScriptssrc.initOnce) { return Promise.reject(🚨 Attempt to execute setup code twice has been blocked) } if (initOnce) loadedScriptssrc.initOnce true return loadedScriptssrc.promise } function loadStyleAsync(href) { if (!window.loadedStyles) window.loadedStyles {} if (!loadedStyleshref) { const url new URL(href, location.href).href const existing ...document.querySelectorAll(linkhref).find(s > s.href url) loadedStyleshref existing ? Promise.resolve(existing) : createElementAsync({ tag: link, target: document.head, attributes: { rel: stylesheet, href, }, }) } return loadedStyleshref } function addSchema(schema) { createElement({ tag: script, target: document.head, textContent: JSON.stringify(schema), attributes: { type: application/ld+json }, }) } function onInteraction(callback, timeout) { let timer const events touchstart, mousemove, resize events.forEach(e > addEventListener(e, executeOnce)) if (timeout) addEventListener(load, executeAnyway) function executeOnce() { clearTimeout(timer) events.forEach(e > removeEventListener(e, executeOnce)) removeEventListener(load, executeAnyway) callback() } function executeAnyway() { if (!timer) timer setTimeout(executeOnce, timeout) } } function createObserver(callback, disconnect false) { return new IntersectionObserver((entries, observer) > { entries.forEach(entry > { if (entry.isIntersecting) { if (disconnect true) { observer.disconnect() } else if (disconnect false) { observer.unobserve(entry.target) } callback(entry) } }) }, { root: null, rootMargin: 200px, threshold: 0 }) } Object.defineProperty(Array.prototype, wrapWith, { value: function (tag div, childTag div, options {}) { const wrapper typeof tag string ? createElement({ tag, ...options }) : tag this.forEach(el > { if (el instanceof Node) { el.wrapWith(wrapper, options) } else { const child typeof childTag string ? createElement({ tag: childTag }) : childTag.cloneNode() child.textContent el child.wrapWith(wrapper, options) } }) return wrapper }, writable: false, configurable: false, enumerable: false, }) Object.defineProperty(HTMLElement.prototype, wrapWith, { value: function (tag div, options {}) { const wrapper typeof tag string ? createElement({ tag, ...options }) : tag wrapper.append(this) return wrapper }, writable: false, configurable: false, enumerable: false, }) window.eventTypes { swiperLoaded: swiper-loaded, imaskLoaded: imask-loaded, elfsightLoaded: elfsight-loaded, } window.observers {} window.swiperFuncs {}/script>script data-cfasyncfalse idgtm-func> function initGTM(id GTM-PMFTQMH) { if (!window.dataLayer) window.dataLayer loadScriptAsync(`https://www.googletagmanager.com/gtm.js?id${id}`, true) .then(() > { window.dataLayer.push({ event: gtm.js, gtm.start: (new Date()).getTime(), gtm.uniqueEventId: 0, }) console.log(GTM has been loaded 🎉) }) } if (!/webflow/.test(location.origin)) onInteraction(initGTM, 5000)/script>script data-uuid984e2a6f-5140-4f1d-95bc-c76db4866e3c idsa-dynamic-optimization nitro-exclude nowprocket srcdata:text/javascript;base64,dmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3NjcmlwdC5zZXRBdHRyaWJ1dGUoIm5vd3Byb2NrZXQiLCAiIik7c2NyaXB0LnNldEF0dHJpYnV0ZSgibml0cm8tZXhjbHVkZSIsICIiKTtzY3JpcHQuc3JjID0gImh0dHBzOi8vc2VvLmNvbnRyYWN0b3IuY2xpY2svc2NyaXB0cy9keW5hbWljX29wdGltaXphdGlvbi5qcyI7c2NyaXB0LmRhdGFzZXQudXVpZCA9ICI5ODRlMmE2Zi01MTQwLTRmMWQtOTViYy1jNzZkYjQ4NjZlM2MiO3NjcmlwdC5pZCA9ICJzYS1keW5hbWljLW9wdGltaXphdGlvbi1sb2FkZXIiO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTs typetext/javascript>/script>/head>body>header data-wf--section---header--variantbase classheader>div classdesign-mode w-embed>style> html.wf-design-mode { .swiper-wrapper { overflow: auto; scroll-snap-type: x mandatory; } .swiper-slide { scroll-snap-align: start; } }/style>/div>div classembed-style>div classw-embed>style>@keyframes navSlideIn { 0% { display: none; opacity: 0; transform: translateX(120%); } 1% { display: block; opacity: 0; transform: translateX(120%); } 100% { display: block; opacity: 1; transform: translateX(0); }}@keyframes navSlideOut { 0% { display: block; opacity: 1; transform: translateX(0); } 99% { display: block; opacity: 0; transform: translateX(120%); } 100% { display: block; opacity: 0; transform: translateX(120%); }}@keyframes subOpen { 0% { display: none; transform: translateX(-120%); } 1% { display: block; transform: translateX(-120%); } 100% { display: block; transform: translateX(0); }}@keyframes subClose { 0% { display: block; transform: translateX(0); } 99% { display: block; transform: translateX(-120%); } 100% { display: none; transform: translateX(-120%); }}.header.sticky { box-shadow: -4px 0px 8px 0px rgba(255, 255, 255, .2);}@media (max-width: 1279px) {.header { box-shadow: -4px 0px 8px 0px rgba(255, 255, 255, .2);}}.nav { display: none; width: 100%; height: calc(var(--app-height) - var(--header-height)); position: absolute; top: 100%; right: 0; transform: translateX(120%); transition: transform 500ms ease; opacity: 0;}.nav a { color: inherit;}.nav.opened { display: block; opacity: 1; transform: translateX(0); animation-name: navSlideIn; animation-duration: var(--nav-animation-duration); animation-timing-function: ease;}.nav.closing { display: block; opacity: 0; transform: translateX(120%); animation-name: navSlideOut; animation-duration: var(--nav-animation-duration); animation-timing-function: ease;}@media (min-width: 1280px) { .nav { display: block; width: auto; height: auto; position: static; top: auto; left: auto; transform: none; z-index: 1; transform: none; opacity: 1; transition: none; } .nav.opened { animation-name: none; } .nav.closing { transform: none; animation-name: none; opacity: 1; }}.header-toggle { width: 24px; height: 24px; position: relative;}.header-toggle div,.header-toggle::before,.header-toggle::after { width: 100%; height: 1px; position: absolute; left: 50%; background-color: #fff; transition: transform 300ms ease; border-radius: 2px;}.header-toggle div { left: 0; top: 50%;}.header-toggle::before,.header-toggle::after { content: ; transform: translate(-50%, 0);}.header-toggle::before { top: 20%;}.header-toggle::after { bottom: 20%;}.header-toggle.opened div { opacity: 0;}.header-toggle.opened::before,.header-toggle.opened::after { top: 50%; bottom: auto; left: 50%;}.header-toggle.opened::before { transform: translate(-50%, -50%) rotate(45deg);}.header-toggle.opened::after { transform: translate(-50%, -50%) rotate(-45deg);}.header-toggle { display: block; background-color: transparent;}.nav__menu { display: flex; flex-direction: column; row-gap: 16px; width: 100%; height: 100%; max-width: 375px; padding: 32px 16px; margin-left: auto; position: relative; overflow: hidden; background-color: #F9F5F2;}.nav__menu.sub-opened { overflow-y: hidden;}.nav__overlay { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: -1; background-color: rgba(39, 43, 46, 0.6); backdrop-filter: blur(3px);}@media (min-width: 1280px) { .nav__menu { row-gap: 24px; max-width: none; max-height: none; padding: 0; position: static; overflow: visible; background-color: transparent; } .nav__menu.sub-opened { overflow-y: visible; } .nav__overlay { display: none; }}.nav__link_with-list::after { content: ; width: 6px; height: 6px; border-right: 1px solid #fff; border-bottom: 1px solid #fff; position: absolute; top: 50%; right: 2px; transform: translate(0, -50%) rotate(-45deg);}@media (min-width: 1280px) { .nav__link_with-list::after { border-right-color: #0B2549; border-bottom-color: #0B2549; right: 2px; transform: translate(0, -65%) rotate(45deg); }}.nav-contact__text-val a { color: #006E5A;}.nav-contact__text-val a:hover { color: #FFAD01;}.nav__list { scrollbar-color: rgba(92, 122, 132, 1) rgba(92, 122, 132, 0.4); scrollbar-width: 4px; display: flex; flex-direction: column; align-items: start; flex-grow: 1; height: 100%; max-height: calc(var(--app-height) - var(--header-height) - 220px); padding-right: 32px; overflow-x: hidden; overflow-y: auto;}.nav__list::-webkit-scrollbar { width: 4px;}.nav__list::-webkit-scrollbar-track { background-color: rgba(92, 122, 132, 0.4); border-radius: 16px;}.nav__list::-webkit-scrollbar-thumb { background-color: rgba(92, 122, 132, 1); border-radius: 16px;}@media (min-width: 1280px) { .nav__list { scrollbar-color: transparent; scrollbar-width: 0; flex-direction: row; align-items: center; padding-right: 0; } .nav__list::-webkit-scrollbar { width: 0; } .nav__list::-webkit-scrollbar-track { background-color: transparent; } .nav__list::-webkit-scrollbar-thumb { background-color: transparent; }}.nav__link_with-list+.nav__sub-list { display: none;}.dropdown-opener { display: none; padding: 32px 16px; position: absolute; top: 0; left: 0; right: 0; bottom: 0; transform: translateX(-120%); background-color: #F9F5F2;}.dropdown-opener.opened { display: block; transform: translateX(0); animation-name: subOpen; animation-timing-function: ease; animation-duration: 300ms;}.dropdown-opener.closing { display: block; transform: translateX(-120%); animation-name: subClose; animation-timing-function: ease; animation-duration: 300ms;}.dropdown-opener__back { margin-bottom: 16px; padding-right: 24px; position: relative; text-decoration: underline; cursor: pointer;}.dropdown-opener__back::before { content: ; width: 6px; height: 6px; border-right: 1px solid #272B2E; border-bottom: 1px solid #272B2E; position: absolute; top: 50%; right: 2px; transform: translate(0, -50%) rotate(135deg);}.dropdown-opener__destination { scrollbar-color: rgba(92, 122, 132, 1) rgba(92, 122, 132, 0.4); scrollbar-width: 3px; height: 100%; max-height: calc(var(--app-height) - var(--header-height) - 60px); padding-right: 4px; overflow-x: hidden; overflow-y: auto;}.dropdown-opener__destination .nav-dropdown { display: flex;}.dropdown-opener__destination::-webkit-scrollbar { width: 3px;}.dropdown-opener__destination::-webkit-scrollbar-track { background-color: rgba(92, 122, 132, 0.4); border-radius: 16px;}.dropdown-opener__destination::-webkit-scrollbar-thumb { background-color: rgba(92, 122, 132, 1); border-radius: 16px;}@media (min-width: 1280px) { .dropdown-opener { display: none; } .dropdown-opener__destination .nav-dropdown { display: none; } .dropdown-opener__destination { scrollbar-color: transparent; scrollbar-width: 0; } .dropdown-opener__destination::-webkit-scrollbar { width: 0; } .dropdown-opener__destination::-webkit-scrollbar-track { background-color: transparent; } .dropdown-opener__destination::-webkit-scrollbar-thumb { background-color: transparent; }}@media (max-width: 1279px) and (max-height: 550px) { .dropdown-opener { padding-top: 12px; padding-bottom: 12px; bottom: 0; } .dropdown-opener__back { margin-bottom: 18px; } .nav__menu { padding-top: 12px; padding-bottom: 12px; } .btn.btn_filled-orange.nav__toolbar-btn { padding-top: 12px; padding-bottom: 12px; margin-top: 0; } .nav__menu { gap: 16px; } .nav__toolbar { gap: 16px; } .nav__list { gap: 16px; } .nav-dropdown__item.nav-dropdown__item_view-all { padding-top: 0; } .nav__sub-list.nav-dropdown { gap: 16px; } .nav__list { max-height: calc(var(--app-height) - var(--header-height) - 100px); }}@media (min-width: 1280px) { .nav__list { overflow: visible; } .nav__item_with-list { position: relative; } .nav__sub-list { position: absolute; top: calc(100% + 12px); left: -24px; } .nav-dropdown__link { white-space: nowrap; } .nav__link { white-space: nowrap; } .nav__sub-list::after { content: ; display: block; width: calc(100% + 32px); height: 34px; position: absolute; top: 1px; transform: translate(-16px, -100%); }}@media (hover: hover) and (min-width: 1280px) { .nav__item_with-list:hover .nav__link_with-list::after { border-right-color: rgba(157, 120, 24, 1); border-bottom-color: rgba(157, 120, 24, 1); transform: translate(0, 10%) rotate(-135deg); } .nav__item_with-list:hover>.nav__sub-list.nav-dropdown { display: flex; }}@media (hover: hover) { .nav__link_with-list::after { transition: transform 300ms ease; } .nav__item:hover>.nav__link { color: rgba(157, 120, 24, 1); } .nav__link { transition: color 300ms ease; }}.header__toolbar-svg { width: 15px; height: 15px; position: relative;}.header__toolbar-svg svg { width: 100%; height: 100%; position: absolute; top: 0; left: 0; object-fit: contain; object-position: center;}.nav__toolbar-btn { display: inline-block; width: 100%; padding-top: 12px; padding-bottom: 12px;}.header .cta-contact__phone-ico svg { width: 100%; height: 100%; position: absolute; top: 0; left: 0; object-fit: contain; object-position: center;}.nav-dropdown { display: flex; flex-direction: column; gap: 12px;}.nav-dropdown__link { text-decoration: none;}.nav-dropdown__link_with-list { padding-right: 20px; position: relative;}.nav-dropdown__link_with-list::after { content: ; width: 6px; height: 6px; border-right: 1px solid #fff; border-bottom: 1px solid #fff; position: absolute; top: 50%; right: 2px; transform: translate(0, -50%) rotate(-45deg);}.nav-dropdown__link_with-list + .nav-dropdown__list { display: none;}.nav-dropdown__list { display: flex; flex-direction: column; align-items: start;}@media (min-width: 1280px) { .nav__sub-list.nav-dropdown { min-width: 0; } .nav-dropdown_simple-on-desk { padding: 20px 24px; left: auto; top: calc(100% + 32px); background-color: #fff; box-shadow: 5px 10px 10px rgba(201, 201, 201, .15); }}@media (min-width: 1280px) { .nav-dropdown_grid-on-desktop { width: 100%; min-height: 380px; max-width: 1440px; padding: 32px 16px; gap: 8px; position: fixed; left: 50%; transform: translate(-50%, 0); top: 88px; background-color: rgba(250, 250, 250, 1); } .nav-dropdown_grid-on-desktop::before { content: ; display: block; width: 100vw; height: 100%; position: absolute; top: 0; left: 50%; transform: translate(-50%, 0); background-color: rgba(250, 250, 250, 1); box-shadow: 10px 10px 10px 0px rgba(201, 201, 201, 0.15); }}@media (min-width: 1280px) { .nav__link_with-list::before { content: ; display: block; width: 120%; height: 120%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }}.header__btn { white-space: nowrap;}/style>/div>div classw-embed>style>@media (max-width: 767px) { /*.header.opened .header__logo-link { width: 36px; height: 36px; }*/ .header.opened .header__toolbar-item_btn { max-width: 180px; }}@media (max-width: 374px) { .btn.btn_filled-brown.header__toolbar-btn { padding: 8px; font-size: 14px; } .header__toolbar { grid-column-gap: 8px; }}/* FOCUS WITHIN */@media (min-width: 1280px) { .nav__link_with-list+.nav__sub-list, .nav-dropdown__link_with-list + .nav-dropdown__list { display: flex; position: absolute; width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; white-space: nowrap; clip-path: inset(100%); clip: rect(0 0 0 0); overflow: hidden; top: 42px; left: -16px; } .nav__item_with-list:focus-within > .nav__sub-list, .nav__item_with-list:hover > .nav__sub-list { width: auto; height: auto; margin: 0; border: none; padding: 16px; clip-path: initial; clip: initial; overflow: visible; } /*.nav__item_with-list:focus-within > .nav__link_with-list { outline: 2px solid #9c6513; }*/ .nav__item_with-list:focus-within > .nav-dropdown_grid-on-desktop, .nav__item_with-list:hover > .nav-dropdown_grid-on-desktop { width: 100%; padding: 56px 72px; position: fixed; } .nav-dropdown__link_with-list.active + .nav-dropdown__list, .nav-dropdown__item_with-list:focus-within:not(:active) > .nav-dropdown__list { width: auto; height: auto; margin: 0; border: none; padding: 0; clip-path: initial; clip: initial; overflow: visible; } .nav-dropdown__item_with-list:focus-within:not(:active) > .nav-dropdown__list { background-color: #FAFAFA; z-index: 5; } /*.nav-dropdown__item_with-list:focus-within:not(:active) > .nav-dropdown__link { outline: 2px solid #9c6513; }*/ .nav-dropdown__item_with-list:focus-within:not(:active) > .nav-dropdown__list::before { content: ; display: block; width: 66%; height: 320px; position: fixed; background-color: #FAFAFA; } .nav-dropdown__item_with-list:focus-within:not(:active) > .nav-dropdown__list > * { position: relative; z-index: 1; }}.nav__link_with-list { padding-right: 24px; position: relative;}.nav__link_with-list::after { border-right-color: #272B2E; border-bottom-color: #272B2E;}.nav-dropdown__link { font-weight: 400;}.dropdown-opener__back { display: inline-block;}.nav-dropdown { padding-bottom: 24px;}.dropdown-opener__destination { position: relative;}.dropdown-opener__destination::after { content: ; display: block; width: 100%; height: 120px; position: absolute; left: 0; bottom: 0; background: linear-gradient(180deg, transparent 0, #F9F5F2 89.56%); transition: 300ms ease; opacity: 0; pointer-events: none;}.dropdown-opener__destination.on-top::after { opacity: 1;}@media (min-width: 1280px) { .nav__item_with-list:focus-within > .nav__sub-list.nav-dropdown_grid-on-desktop,.nav__item_with-list:hover > .nav__sub-list.nav-dropdown_grid-on-desktop { display: grid; padding: 42px 16px; top: var(--header-height); left: 50%;}.nav__item_with-list > .nav__sub-list.nav-dropdown_grid-on-desktop { grid-template-columns: repeat(5, 1fr); grid-gap: 40px;}.nav-dropdown__item.nav-dropdown__item_card { grid-gap: 24px; padding: 0; color: inherit; position: relative; background-color: transparent;}.nav-dropdown__item_last.nav-dropdown__item_card { grid-column: 1 / 5 span; display: flex; flex-direction: row; align-items: center; justify-content: space-between; padding-top: 48px; border-radius: 0; background-color: #F9F5F2;}.nav-dropdown__item_last.nav-dropdown__item_card > * { position: relative;}.nav-dropdown__item_last.nav-dropdown__item_card::before { content: ; display: block; width: 102vw; height: calc(100% + 42px); position: absolute; left: 50%; transform: translate(-50%, 0); top: 0; background-color: #F9F5F2;}}@media (min-width: 1440px) { .nav__item_with-list:focus-within > .nav__sub-list.nav-dropdown_grid-on-desktop,.nav__item_with-list:hover > .nav__sub-list.nav-dropdown_grid-on-desktop { padding: 42px 72px;}.nav__item_with-list > .nav__sub-list.nav-dropdown_grid-on-desktop { grid-template-columns: repeat(5, 18%); grid-gap: 40px;}}@media (min-width: 1280px) { .nav-dropdown__link, .nav-dropdown__card-link { transition: color 300ms ease; } .nav-dropdown__link:hover, .nav-dropdown__card-link:hover, .nav__item:hover > .nav__link { color: #5C7A84; } .nav__item:hover > .nav__link_with-list::after { border-right-color: #5C7A84; border-bottom-color: #5C7A84; } .nav__sub-list::after { height: 26px; }}.header + main { padding-top: 56px;}@media (min-width: 992px) {.header + main { padding-top: 72px;}}@media (min-width: 1280px) {.header:not(data-wf--section---header--variantlanding) + main { padding-top: 132px;} }.header__nav.sub-toggling { pointer-events: none;}@media (min-width: 1280px) {.nav__menu > .nav__list > .nav__item > .nav__link:not(.nav__link_with-list) { position: relative;}.nav__menu > .nav__list > .nav__item > .nav__link:not(.nav__link_with-list)::before { content: ; display: block; width: 130%; height: 200%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}}.dropdown-opener__back { padding-left: 0; background-color: transparent;}div.nav-dropdown__card-link { pointer-events: none;}.header-phone { transition: 300ms ease;}.header-phone:hover { opacity: .6;}/style>/div>div classswiper w-embed>style> .swiper-buttondisabled { opacity: 0.6; } .swiper-controls:has(.swiper-button-lock) { display: none; }/style>/div>/div>div classheader__head>div classcontainer header__head-container>a aria-labelMain logo href/ classheader__logo-link w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/675004c61c322e35adfaeb8e_header__logo.avif loadinglazy alt classheader__logo header__logo_desk/>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/675004c61c322e35adfaeb8e_header__logo.avif loadinglazy alt classheader__logo header__logo_mob/>/a>div classheader__toolbar>div classheader__toolbar-item>a aria-labelPhone link hreftel:+16306268234 classheader-phone w-inline-block>div classheader-phone__wr-img>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66d5c8d470028b0f7cfdd90f_header-phone.svg loadinglazy alt classheader-phone__img/>/div>div classheader-phone__text>(630) 626-8234/div>/a>/div>div classheader__toolbar-item header__toolbar-item_btn>a href/contact classbtn btn_filled-blue header__btn>Free Estimate/a>/div>div classheader__toolbar-item header__toolbar-item_toggle>button aria-labelmobile menu toggle classheader-toggle header__toggle>div>/div>/button>/div>/div>/div>/div>div classcontainer header__main-container>div classnav header__nav>div classnav__menu>ul rolelist classnav__list w-list-unstyled>li classnav__item nav__item_with-list>div classnav__link nav__link_with-list>Custom Storage Solutions/div>ul rolelist classnav__sub-list nav-dropdown nav-dropdown_grid-on-desktop w-list-unstyled>li classnav-dropdown__item nav-dropdown__item_card>div classnav-dropdown__card-link>div classnav-dropdown__wr-card-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/6756a7b2307465d0d40d5d07_bedroom.svg loadinglazy alt classnav-dropdown__card-ico/>/div>div classnav-dropdown__card-link-text>Bedroom/div>/div>ul rolelist classnav-dropdown__list w-list-unstyled>li classnav-dropdown__item>a href/custom-walk-in-closet-design classnav-dropdown__link>Walk-In Closets/a>/li>li classnav-dropdown__item>a href/custom-reach-in-closet-design classnav-dropdown__link>Reach-In Closets/a>/li>li classnav-dropdown__item>a href/custom-children-closet-design classnav-dropdown__link>Children Closets/a>/li>li classnav-dropdown__item>a href/custom-murphy-bed-design classnav-dropdown__link>Murphy Bed/a>/li>/ul>/li>li classnav-dropdown__item nav-dropdown__item_card>div classnav-dropdown__card-link>div classnav-dropdown__wr-card-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/6756a7c7e8b1b515465df794_garage.svg loadinglazy alt classnav-dropdown__card-ico/>/div>div classnav-dropdown__card-link-text>Garage/div>/div>ul rolelist classnav-dropdown__list w-list-unstyled>li classnav-dropdown__item>a href/custom-workbench-storage classnav-dropdown__link>Workbench Storage/a>/li>li classnav-dropdown__item>a href/custom-garage-cabinet-design classnav-dropdown__link>Garage Cabinets/a>/li>/ul>/li>li classnav-dropdown__item nav-dropdown__item_card>div classnav-dropdown__card-link>div classnav-dropdown__wr-card-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/6756a6b22ea3cf18f040d99c_Frame%204427.svg loadinglazy alt classnav-dropdown__card-ico/>/div>div classnav-dropdown__card-link-text>Laundry/div>/div>ul rolelist classnav-dropdown__list w-list-unstyled>li classnav-dropdown__item>a href/custom-laundry-room-cabinet-design classnav-dropdown__link>Laundry Room Closets/a>/li>/ul>/li>li classnav-dropdown__item nav-dropdown__item_card>div classnav-dropdown__card-link>div classnav-dropdown__wr-card-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/6756a7eb0fc7767e9d65afd9_workspace.svg loadinglazy alt classnav-dropdown__card-ico/>/div>div classnav-dropdown__card-link-text>Work Space/div>/div>ul rolelist classnav-dropdown__list w-list-unstyled>li classnav-dropdown__item>a href/custom-home-office-designs classnav-dropdown__link>Home Office Closets/a>/li>li classnav-dropdown__item>a href/custom-home-library-cabinets classnav-dropdown__link>Library/a>/li>/ul>/li>li classnav-dropdown__item nav-dropdown__item_card>div classnav-dropdown__card-link>div classnav-dropdown__wr-card-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/6756a801e22305507acd6ccf_other.svg loadinglazy alt classnav-dropdown__card-ico/>/div>div classnav-dropdown__card-link-text>Other/div>/div>ul rolelist classnav-dropdown__list w-list-unstyled>li classnav-dropdown__item>a href/custom-mudroom-design classnav-dropdown__link>Mudroom Closets/a>/li>li classnav-dropdown__item>a href/custom-kitchen-pantry-designer classnav-dropdown__link>Kitchen Pantry/a>/li>li classnav-dropdown__item>a href/custom-bar-cabinet-design classnav-dropdown__link>Liquor Cabinets/a>/li>li classnav-dropdown__item>a href/custom-entertainment-center classnav-dropdown__link>Entertainment Area Storage/a>/li>/ul>/li>li classnav-dropdown__item nav-dropdown__item_card nav-dropdown__item_last>div classnav-dropdown__card-link-text>We Also Help with Commercial Space Storage/div>ul rolelist classnav-dropdown__list w-list-unstyled>li classnav-dropdown__item>a href/custom-commercial-storage-chicagoland classbtn btn_hollow-black btn_with-arrow nav-dropdown__card-btn>Commercial Space Storage/a>/li>/ul>/li>/ul>/li>li classnav__item>a href/portfolio classnav__link>Portfolio/a>/li>li classnav__item>a href/our-closet-design-process classnav__link>Process/a>/li>li classnav__item>a href/financing-options classnav__link>Financing/a>/li>li classnav__item>a href/areas-we-serve classnav__link>Areas We Serve/a>/li>li classnav__item nav__item_with-list>a href/about classnav__link nav__link_with-list>About Us/a>ul rolelist classnav__sub-list nav-dropdown nav-dropdown_simple-on-desk w-list-unstyled>li classnav-dropdown__item>a href/testimonials classnav-dropdown__link>Testimonials/a>/li>li classnav-dropdown__item>a href/blog classnav-dropdown__link>Blog/a>/li>li classnav-dropdown__item nav-dropdown__item_mobile-only>a href/about classnav-dropdown__link>About Our Company/a>/li>/ul>/li>li classnav__item>a href/contact classnav__link>Contact Us/a>/li>/ul>div classnav__toolbar>div classnav__toolbar-item>ul rolelist classsocials w-list-unstyled>li classsocials__item>a hrefhttps://www.facebook.com/CompleteClosetDesign/ target_blank classsocial-link w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66d5cdd2289d024179c04cd2_social-fb.svg loadinglazy altSocial logo classsocial-link__ico/>/a>/li>li classsocials__item>a hrefhttps://www.linkedin.com/company/complete-closet-design/ target_blank classsocial-link w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66d5cdd2639d4c3a507af547_social-in.svg loadinglazy altSocial logo classsocial-link__ico/>/a>/li>li classsocials__item>a hrefhttps://www.instagram.com/completeclosetdesign/ target_blank classsocial-link w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66d5cdd297d8b858b4ce09a3_social-inst.svg loadinglazy altSocial logo classsocial-link__ico/>/a>/li>/ul>/div>div classnav__toolbar-item>div classnav-contacts>address>a hrefhttps://maps.app.goo.gl/7NQ8MrXqB6j7av2e9 target_blank classnav-contacts__link w-inline-block>div classnav-contacts__wr-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66d5cdd2dcf1eda756ec1a1b_header-pin.svg loadinglazy alt classnav-contacts__ico/>/div>div classnav-contacts__text>21715 S Colleen Ct, Shorewood, IL 60404/div>/a>/address>a hreftel:+16306268234 classnav-contacts__link w-inline-block>div classnav-contacts__wr-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66d5cdd2591d692fd9ee26cf_header-mob-phone.svg loadinglazy alt classnav-contacts__ico/>/div>div classnav-contacts__text>(630) 626-8234/div>/a>/div>/div>/div>/div>div classnav__overlay header__nav-overlay>/div>/div>/div>div classembed-script>div classw-embed w-script>!-- Body Scroll Lock -->script>!function(e,o){if(functiontypeof define&&define.amd)define(exports,o);else if(undefined!typeof exports)o(exports);else{var t{};o(t),e.bodyScrollLockt}}(this,function(exports){use strict;Object.defineProperty(exports,__esModule,{value:!0});var t!1;if(undefined!typeof window){var e{get passive(){t!0}};window.addEventListener(testPassive,null,e),window.removeEventListener(testPassive,null,e)}function l(o){return c.some(function(e){return!(!e.options.allowTouchMove||!e.options.allowTouchMove(o))})}function d(e){var oe||window.event;return!!l(o.target)||(1o.touches.length||(o.preventDefault&&o.preventDefault(),!1))}function n(){void 0!v&&(document.body.style.paddingRightv,vvoid 0),void 0!s&&(document.body.style.overflows,svoid 0)}var iundefined!typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||MacIntelwindow.navigator.platform&&1window.navigator.maxTouchPoints),c,a!1,u-1,svoid 0,vvoid 0;exports.disableBodyScrollfunction(r,e){if(r){if(!c.some(function(e){return e.targetElementr})){var o{targetElement:r,options:e||{}};c.concat(function(e){if(Array.isArray(e)){for(var o0,tArray(e.length);oe.length;o++)toeo;return t}return Array.from(e)}(c),o),i?(r.ontouchstartfunction(e){1e.targetTouches.length&&(ue.targetTouches0.clientY)},r.ontouchmovefunction(e){var o,t,n,i;1e.targetTouches.length&&(tr,i(oe).targetTouches0.clientY-u,l(o.target)||(t&&0t.scrollTop&&0i||(nt)&&n.scrollHeight-n.scrollTopn.clientHeight&&i0?d(o):o.stopPropagation()))},a||(document.addEventListener(touchmove,d,t?{passive:!1}:void 0),a!0)):function(e){if(void 0v){var o!!e&&!0e.reserveScrollBarGap,twindow.innerWidth-document.documentElement.clientWidth;o&&0t&&(vdocument.body.style.paddingRight,document.body.style.paddingRightt+px)}void 0s&&(sdocument.body.style.overflow,document.body.style.overflowhidden)}(e)}}else console.error(disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.)},exports.clearAllBodyScrollLocksfunction(){i?(c.forEach(function(e){e.targetElement.ontouchstartnull,e.targetElement.ontouchmovenull}),a&&(document.removeEventListener(touchmove,d,t?{passive:!1}:void 0),a!1),u-1):n(),c},exports.enableBodyScrollfunction(o){o?(cc.filter(function(e){return e.targetElement!o}),i?(o.ontouchstartnull,o.ontouchmovenull,a&&0c.length&&(document.removeEventListener(touchmove,d,t?{passive:!1}:void 0),a!1)):c.length||n()):console.error(enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.)}});/script>/div>div classw-embed w-script>script typemodule> import { clearBodyLocks, lock, } from https://cdn.jsdelivr.net/npm/tua-body-scroll-lock/dist/tua-bsl.esm.browser.min.js class HeaderSubs { constructor(elements, config, classes, functions) { this.elements elements this.config config this.classes classes this.scroll functions.scroll this.openedList this.init() } isMobile() { return window.innerWidth this.config.breakpoint } isOpened() { return !!this.openedList.length } close(event) { if (event) { event.preventDefault() } const current this.openedList.pop() const animateClosing () > { current.opener.el.classList.add(this.classes.status.closing) this.elements.menu.nav.classList.add(sub-toggling) setTimeout(() > { current.opener.el.classList.remove(this.classes.status.closing) current.source.append(current.drop) current.opener.el.remove() this.elements.menu.nav.classList.remove(sub-toggling) }, this.config.animationDuration) } if (!this.openedList.length) { this.elements.menu.inner.classList.remove(this.classes.status.subOpened) } animateClosing() this.scroll.enable() if (this.openedList.length) { this.scroll.disable(this.openedListthis.openedList.length - 1) } else { this.scroll.disable(this.elements.menu.inner) } } createOpener(text) { const el document.createElement(div) const backBtn document.createElement(button) const dest document.createElement(div) el.classList.add(dropdown-opener) backBtn.classList.add(dropdown-opener__back) dest.classList.add(dropdown-opener__destination) backBtn.setAttribute(type, button) el.append(backBtn) el.append(dest) backBtn.innerHTML text return { el, backBtn, dest, } } addOpenClasses(current) { current.classList.add(this.classes.status.opened) if (!this.elements.menu.inner.classList.contains(this.classes.status.subOpened)) { this.elements.menu.inner.classList.add(this.classes.status.subOpened) } } open(event) { if (this.isMobile()) { event.preventDefault() const btn event.target const current { text: btn.textContent, } current.opener this.createOpener((!current.text) ? Back to the menu : current.text) this.elements.menu.el.append(current.opener.el) current.opener.dest.scrollTo(0, 0) current.opener.backBtn.addEventListener(click, this.close.bind(this)) if (btn.classList.contains(nav__link)) { current.source btn.closest(.nav__item_with-list) current.drop current.source.querySelector(.nav__sub-list) } else if (btn.classList.contains(nav-dropdown__link)) { current.source btn.closest(.nav-dropdown__item_with-list) current.drop current.source.querySelector(.nav-dropdown__list) } current.opener.dest.append(current.drop) this.addOpenClasses(current.opener.el) this.scroll.disable(current.opener.dest) this.openedList.push(current) this.elements.menu.nav.classList.add(sub-toggling) setTimeout(() > { this.elements.menu.nav.classList.remove(sub-toggling) }, this.config.animationDuration) const onScrollDestination () > { const scrollPos current.opener.dest.scrollTop if (scrollPos 0) { current.opener.dest.classList.add(on-top) } else { current.opener.dest.classList.remove(on-top) } } onScrollDestination() current.opener.dest.addEventListener(scroll, onScrollDestination) // this.elements.main.header.style.setProperty(--nav-back-btn-height, `${this.elements.sub.backBtn.offsetHeight}px`) } } moveToDests() { this.openedList.forEach(current > { current.source.append(current.drop) current.opener.el.remove() }) } forceClose() { const done () > { this.moveToDests() this.elements.menu.inner.classList.remove(this.classes.status.subOpened) this.openedList } if (this.isOpened()) { if (window.innerWidth this.config.breakpoint) { setTimeout(done, this.config.animationDuration) } else { done() } // this.elements.main.header.style.removeProperty(--nav-back-btn-height) } } defineEvents() { this.elements.sub.openBtns.forEach(btn > { btn.addEventListener(click, this.open.bind(this)) }) } init() { this.defineEvents() } } class HeaderMenu { scroll { disable(el) { lock(el) // bodyScrollLock.disableBodyScroll(el) }, enable() { clearBodyLocks() // bodyScrollLock.clearAllBodyScrollLocks() }, } constructor(elements, config, classes) { this.elements elements this.config config this.classes classes this.states { opened: false, } this.init() } isOpened() { return this.states.opened } defineCssVars() { this.elements.main.header.style.setProperty(--nav-animation-duration, `${this.config.animationDuration}ms`) } addOpenClasses() { this.elements.main.header.classList.add(this.classes.status.opened) this.elements.menu.nav.classList.add(this.classes.status.opened) this.elements.menu.toggleBtn.classList.add(this.classes.status.opened) document.body.style.overflow hidden } removeOpenClasses() { this.elements.main.header.classList.remove(this.classes.status.opened) this.elements.menu.nav.classList.remove(this.classes.status.opened) this.elements.menu.toggleBtn.classList.remove(this.classes.status.opened) document.body.removeAttribute(style) } open() { this.addOpenClasses() this.scroll.disable(this.elements.menu.inner) this.elements.menu.inner.scrollTo(0, 0) this.states.opened true } close(isForce) { const animateClosing () > { this.elements.menu.nav.classList.add(this.classes.status.closing) setTimeout(() > { this.elements.menu.nav.classList.remove(this.classes.status.closing) }, this.config.animationDuration) } this.removeOpenClasses() if (!isForce || (typeof (isForce) object)) { animateClosing() } this.scroll.enable() this.states.opened false this.subMenu.forceClose() } toggleMenu() { if (this.isOpened()) { this.close() } else { this.open() } } forceClose() { if (this.isOpened()) { const isForce true this.close(isForce) } this.elements.main.header.classList.add(this.classes.status.transitionsOff) setTimeout(() > { this.elements.main.header.classList.remove(this.classes.status.transitionsOff) }, this.config.animationDuration) } defineEvents() { this.elements.menu.toggleBtn.addEventListener(click, this.toggleMenu.bind(this)) this.elements.menu.overlay.addEventListener(click, this.close.bind(this)) const media `(min-width: ${this.config.breakpoint}px)` const mediaWatcher window.matchMedia(media) mediaWatcher.addEventListener(change, this.forceClose.bind(this)) this.elements.main.header.querySelectorAll(ahref*#:not(href#)).forEach(link > { link.addEventListener(click, this.close.bind(this)) }) } init() { this.defineCssVars() this.defineEvents() this.subMenu new HeaderSubs(this.elements, this.config, this.classes, { scroll: this.scroll, }) } } class Header { constructor(elements, config, classes) { this.elements elements this.config config this.classes classes this.init() } stickyToggle() { const height this.elements.main.header.offsetHeight / 4 const isHeight window.pageYOffset > height if (isHeight) { this.elements.main.header.classList.add(this.classes.status.sticky) } else { this.elements.main.header.classList.remove(this.classes.status.sticky) } } defineStickyEvent() { this.stickyToggle() window.addEventListener(scroll, this.stickyToggle.bind(this)) } defineEvents() { this.defineStickyEvent() } defineMenu() { new HeaderMenu(this.elements, this.config, this.classes) } init() { this.defineEvents() this.defineMenu() } } const headerEl document.querySelector(.header) if (headerEl) { const navEl headerEl.querySelector(.nav) new Header({ main: { header: headerEl, }, menu: { toggleBtn: headerEl.querySelector(.header__toggle), overlay: headerEl.querySelector(.header__nav-overlay), inner: navEl.querySelector(.nav__list), el: navEl.querySelector(.nav__menu), nav: navEl, }, sub: { openBtns: navEl.querySelectorAll(.nav__link_with-list, .nav-dropdown__link_with-list), }, }, { breakpoint: 1280, animationDuration: 500, }, { elements: { dropItem: nav__item_with-list, dropList: nav__sub-list, }, status: { sticky: sticky, opened: opened, subOpened: sub-opened, closing: closing, transitionsOff: transitions-off, }, }) }/script>/div>/div>/header>main>div classerror>div classembed-script w-embed>style>.error__wr-bg::before { content: ; display: block; width: 100%; padding-top: 100%;}.btn.btn_hollow-black.error__btn { display: flex; gap: 10px; background-color: rgba(255, 255, 255, 0.1);}.btn.btn_hollow-black.error__btn::before { content: ; display: block; width: 7px; height: 7px; border-top: 2px solid #fff; border-left: 2px solid #fff; transform: translate(0, 0%) rotate(-45deg);}.btn.btn_hollow-black.error__btn:hover { border-color: #5C7A84; background-color: #5C7A84;}.error__container { align-items: center; min-height: calc(var(--app-height) - 305px - var(--header-height));}/style>/div>div classcontainer error__container>div classerror__wr-bg>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66eae47e68631e013d9b13bf_error-bg.avif loadinglazy alt classerror__bg/>/div>div classerror__wr-text>div classerror__num>404/div>h1 classerror__heading>Something Missing/h1>p classerror__text>This page is missing or you assembled the link incorrectly./p>a href/ classbtn btn_hollow-black error__btn>Go to Home Page/a>/div>/div>/div>footer classfooter>div classembed-code w-embed>style>.footer__logo-link::before { content: ; display: block; width: 100%; padding-top: 26%;}a.footer__contact-link:hover { opacity: .6;}/style>/div>div classcontainer footer__container>div classfooter__main>div classfooter__head>a href/ classfooter__logo-link w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/675004c61c322e35adfaeb8e_header__logo.avif loadinglazy altlogo classfooter__logo/>/a>section>div idw-node-_866e0fa5-8893-ee1c-81d3-9f6f2861e167-3cc42253 classw-layout-layout wf-layout-layout>div classw-layout-cell>a hrefhttps://www.containerstore.com/welcome.htm target_blank classlink-block w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image.png loadinglazy sizes(max-width: 3840px) 100vw, 3840px srcsethttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image-p-500.png 500w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image-p-800.png 800w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image-p-1080.png 1080w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image-p-1600.png 1600w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image-p-2000.png 2000w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image-p-2600.png 2600w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image-p-3200.png 3200w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b180183b3e6ebc9c859_image.png 3840w altThe Container Store trade program partner classimage-2/>/a>/div>div classw-layout-cell>a hrefhttps://nihba.com/ target_blank classlink-block-2 w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b188b4c48ec1cd49ad5_2024_MemberNIHBA-(1).png loadinglazy sizes(max-width: 1361px) 100vw, 1361px srcsethttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b188b4c48ec1cd49ad5_2024_MemberNIHBA-(1)-p-500.png 500w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b188b4c48ec1cd49ad5_2024_MemberNIHBA-(1)-p-800.png 800w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b188b4c48ec1cd49ad5_2024_MemberNIHBA-(1)-p-1080.png 1080w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58b188b4c48ec1cd49ad5_2024_MemberNIHBA-(1).png 1361w altNIHBA Member 2024 – National Institute of Home Builders Association/>/a>/div>div classw-layout-cell>a hrefhttps://www.crateandbarrel.com/ target_blank classlink-block-3 w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel.png loadinglazy sizes(max-width: 3840px) 100vw, 3840px srcsethttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel-p-500.png 500w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel-p-800.png 800w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel-p-1080.png 1080w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel-p-1600.png 1600w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel-p-2000.png 2000w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel-p-2600.png 2600w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel-p-3200.png 3200w, https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/68b58dfe34824293b02d56a6_CrateBarrel.png 3840w altCrate & Barrel trade program partner/>/a>/div>/div>/section>ul rolelist classfooter__soc>li classfooter__soc-item>a aria-labelfacebook link hrefhttps://www.facebook.com/CompleteClosetDesign/ target_blank classfooter__soc-link w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66e854ad2b7c435459c27d0d_footer__soc-1.svg loadinglazy alt classfooter__soc-logo/>/a>/li>li classfooter__soc-item>a aria-labellinkedin hrefhttps://www.linkedin.com/company/complete-closet-design/ target_blank classfooter__soc-link w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/672b6b1ec25b420e8d153a21_icons8-linkedin.svg loadinglazy alt classfooter__soc-logo/>/a>/li>li classfooter__soc-item>a aria-labelinstagram hrefhttps://www.instagram.com/completeclosetdesign/ target_blank classfooter__soc-link w-inline-block>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66e854ad4e142c18c8fc59c5_footer__soc-3.svg loadinglazy alt classfooter__soc-logo/>/a>/li>/ul>/div>div idw-node-b76e4d26-55a6-6819-2cfb-f0383cc42263-3cc42253 classfooter__contacts>address>a hrefhttps://maps.app.goo.gl/7NQ8MrXqB6j7av2e9 target_blank classfooter__contact-link w-inline-block>div classfooter__contact-link-wr-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66e85516b169b1ca74275805_footer-cont-1.svg loadinglazy alt classfooter__contact-link-ico/>/div>div classfooter__contact-link-text>401 Earl Rd Shorewood, IL 60404 UNIT F/div>/a>/address>address>a hrefhttps://maps.app.goo.gl/xP9fFDRvVg1rsPv96 target_blank classfooter__contact-link w-inline-block>div classfooter__contact-link-wr-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66e85516b169b1ca74275805_footer-cont-1.svg loadinglazy alt classfooter__contact-link-ico/>/div>div classfooter__contact-link-text>2852 Forest Creek Ln, Naperville, IL 60565/div>/a>/address>address>a hrefhttps://maps.app.goo.gl/MDEvQHZcz4D58PF98 target_blank classfooter__contact-link w-inline-block>div classfooter__contact-link-wr-ico>/div>/a>/address>/div>div idw-node-_109f2aa3-8d1e-9f90-f819-0c4eaea1c2d8-3cc42253 classfooter__contacts>div classfooter__contact-link>div classfooter__contact-link-wr-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66e85516291ee79fda412cbf_footer-cont-2.svg loadinglazy alt classfooter__contact-link-ico/>/div>div classfooter__contact-wr-text>div classfooter__contact-link-text>Mon - Fri  08:00 AM - 06:00 PM/div>div classfooter__contact-link-text>Sat - Sun  08:00 AM - 04:00 PM/div>/div>/div>a hreftel:+16306268234 classfooter__contact-link w-inline-block>div classfooter__contact-link-wr-ico>img srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66e855160ab8091ff3439fe8_footer-cont-3.svg loadinglazy alt classfooter__contact-link-ico/>/div>div classfooter__contact-link-text>(630) 626-8234/div>/a>/div>ul idw-node-b76e4d26-55a6-6819-2cfb-f0383cc42276-3cc42253 rolelist classfooter__nav-list w-list-unstyled>li classfooter__nav-item>a href/areas-we-serve/naperville-custom-closets classfooter__link footer__link_nav>Naperville/a>/li>li classfooter__nav-item>a href/areas-we-serve/downers-grove-custom-closets classfooter__link footer__link_nav>Downers Grove/a>/li>li classfooter__nav-item>a href/areas-we-serve/aurora-custom-closets classfooter__link footer__link_nav>Aurora/a>/li>/ul>/div>div classfooter__footer>p classfooter__text>Copyright ©span classfooter__year>2024/span>. All Rights Reserved/p>ul idw-node-e565e3be-b66b-a03b-9c52-d4a54962dfdd-3cc42253 rolelist classfooter__footer-links w-list-unstyled>li>a href/terms-and-conditions classfooter__link>Terms & Conditions/a>/li>li>a href/privacy-policy classfooter__link>Privacy Policy/a>/li>/ul>p idw-node-b76e4d26-55a6-6819-2cfb-f0383cc4228b-3cc42253 classfooter__text>Created By a hrefhttps://comradeweb.com/ relnofollow noreferrer noopener target_blank classfooter__link>Comrade Digital Marketing Agency/a>/p>/div>/div>div classembed-code w-embed w-script>script> const yearEl document.querySelector(.footer__year) if (yearEl) { yearEl.textContent new Date().getFullYear() }/script>/div>div classnofollow w-embed w-script>script data-cfasyncfalse typemodule> const allowedHosts location.host, comradeweb.com, www.youtube.com, www.facebook.com, www.linkedin.com, www.instagram.com, maps.app.goo.gl, document.querySelectorAll(a).forEach(link > { const { host, protocol } new URL(link.href) if (/https?:/.test(protocol)) { if (!allowedHosts.includes(host)) { link.rel nofollow noopener noreferrer } else if (link.rel) { link.relList.remove(noindex) } if (host ! location.host) link.target _blank } })/script>/div>div classsymbols w-embed>svg> defs> !-- Add id, remove width and height and replace stroke/fill with currentColor --> symbol idarrow-left xmlnshttp://www.w3.org/2000/svg viewBox0 0 24 24 fillnone> path dM20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z fillcurrentColor/> /symbol> symbol idarrow-right xmlnshttp://www.w3.org/2000/svg viewBox0 0 24 24 fillnone> path dM4 11H16.17L10.58 5.41L12 4L20 12L12 20L10.59 18.59L16.17 13H4V11Z fillcurrentColor/> /symbol> symbol idlifetime xmlnshttp://www.w3.org/2000/svg viewBox0 0 56 56 fillnone> path dM50.1667 20.8226C50.1667 17.1219 48.7333 13.6494 46.1279 11.0471C41.0603 5.96077 32.8729 5.67351 27.4681 10.2613C27.4597 10.2613 27.4428 10.2613 27.4344 10.2613C27.4175 10.2613 27.4091 10.2613 27.3922 10.2613C27.3753 10.2613 27.3585 10.2529 27.3416 10.2613C24.8626 8.14906 21.7344 7 18.4375 7C14.7444 7 11.2789 8.43633 8.68184 11.0471C3.39505 16.3277 3.31073 25.0133 8.5385 30.446C8.5638 30.4629 8.58066 30.4882 8.59752 30.5136L17.8389 39.7737L26.802 48.755C26.9622 48.9155 27.173 49 27.4006 49C27.6283 49 27.8391 48.9071 27.9993 48.755L46.1279 30.5896L46.2038 30.5136C46.2038 30.5136 46.2459 30.4629 46.2712 30.446C46.2881 30.4291 46.2965 30.4206 46.3218 30.3953C48.8008 27.8183 50.1667 24.4218 50.1667 20.8226ZM27.4006 46.9638L9.82015 29.3476C9.82015 29.3476 9.81172 29.3392 9.80329 29.3307C9.75269 29.2716 9.69367 29.2209 9.68524 29.2124C5.14888 24.4894 5.22477 16.8684 9.86231 12.2299C12.1389 9.94025 15.1828 8.6729 18.4207 8.6729C21.6585 8.6729 24.5507 9.87266 26.802 12.0525C26.802 12.0525 26.8188 12.061 26.8273 12.0694C26.861 12.0947 26.8947 12.1201 26.9285 12.137C26.9622 12.1623 26.9959 12.1877 27.0381 12.2046C27.0465 12.2046 27.0549 12.213 27.0634 12.2215C27.0887 12.2299 27.1224 12.2384 27.1477 12.2468C27.1898 12.2553 27.2236 12.2722 27.2657 12.2806C27.3079 12.2806 27.35 12.2806 27.3922 12.2806C27.4344 12.2806 27.4681 12.2806 27.5103 12.2806C27.5524 12.2806 27.5946 12.2637 27.6367 12.2468C27.662 12.2384 27.6958 12.2384 27.7211 12.2215C27.7295 12.2215 27.7379 12.213 27.7463 12.2046C27.7801 12.1877 27.8138 12.1623 27.8475 12.1454C27.8813 12.1201 27.9234 12.1032 27.9487 12.0694C27.9487 12.0694 27.9656 12.061 27.974 12.0525C32.6874 7.50694 40.293 7.58298 44.9221 12.2299C47.2072 14.5112 48.4719 17.5613 48.4719 20.8057C48.4719 24.0501 47.2746 26.9481 45.1582 29.1533C45.0908 29.2124 45.0317 29.2716 44.9221 29.3814L35.7651 38.557L27.4006 46.9384V46.9638Z fillcurrentColor/> path dM28.64 25.6097V20.0571C28.64 19.6132 28.3648 19.25 28.0284 19.25C27.692 19.25 27.4167 19.6132 27.4167 20.0571V25.9487C27.4167 26.0536 27.4351 26.1585 27.4657 26.2635C27.4963 26.3603 27.5391 26.4491 27.6002 26.5217L29.8693 29.5159C29.9917 29.6774 30.1446 29.75 30.3036 29.75C30.4626 29.75 30.6155 29.6693 30.7378 29.5159C30.9764 29.2012 30.9764 28.6927 30.7378 28.378L28.6461 25.6178L28.64 25.6097Z fillcurrentColor/> path dM36.0793 34.9125C36.0793 34.9125 36.088 34.895 36.0967 34.8775C38.3017 32.6637 39.6667 29.61 39.6667 26.25C39.6667 22.89 38.3017 19.8362 36.0967 17.6225C36.0967 17.6137 36.088 17.605 36.0793 17.5875C36.0705 17.57 36.0617 17.5787 36.0442 17.57C33.8305 15.365 30.7767 14 27.4167 14C24.0567 14 21.003 15.365 18.7892 17.57C18.7805 17.57 18.7717 17.5788 18.7542 17.5875C18.7367 17.5963 18.7455 17.605 18.7367 17.6225C16.5317 19.8362 15.1667 22.89 15.1667 26.25C15.1667 29.61 16.5317 32.6637 18.7367 34.8775C18.7367 34.8863 18.7455 34.895 18.7542 34.9125C18.763 34.93 18.7717 34.9212 18.7892 34.93C21.003 37.135 24.0567 38.5 27.4167 38.5C30.7767 38.5 33.8305 37.135 36.0442 34.93C36.053 34.93 36.0617 34.9213 36.0793 34.9125ZM34.7755 32.3663C34.4342 32.025 33.883 32.025 33.5417 32.3663C33.2005 32.7075 33.2005 33.2588 33.5417 33.6L34.198 34.2563C32.5792 35.63 30.5405 36.5137 28.3005 36.6975V35.77C28.3005 35.2888 27.9067 34.895 27.4255 34.895C26.9442 34.895 26.5505 35.2888 26.5505 35.77V36.6975C24.3105 36.5137 22.2717 35.6213 20.653 34.2563L21.3092 33.6C21.6505 33.2588 21.6505 32.7075 21.3092 32.3663C20.968 32.025 20.4167 32.025 20.0755 32.3663L19.4192 33.0225C18.0455 31.4038 17.1617 29.365 16.978 27.125H17.9055C18.3867 27.125 18.7805 26.7312 18.7805 26.25C18.7805 25.7688 18.3867 25.375 17.9055 25.375H16.978C17.1617 23.135 18.0542 21.0963 19.4192 19.4775L20.0755 20.1337C20.2505 20.3088 20.4692 20.3875 20.6967 20.3875C20.9242 20.3875 21.143 20.3 21.318 20.1337C21.6592 19.7925 21.6592 19.2413 21.318 18.9L20.6617 18.2438C22.2805 16.87 24.3192 15.9862 26.5592 15.8025V16.73C26.5592 17.2113 26.953 17.605 27.4342 17.605C27.9155 17.605 28.3092 17.2113 28.3092 16.73V15.8025C30.5492 15.9862 32.588 16.8788 34.2067 18.2438L33.5505 18.9C33.2092 19.2413 33.2092 19.7925 33.5505 20.1337C33.7255 20.3088 33.9442 20.3875 34.1717 20.3875C34.3993 20.3875 34.618 20.3 34.793 20.1337L35.4492 19.4775C36.823 21.0963 37.7067 23.135 37.8905 25.375H36.963C36.4817 25.375 36.088 25.7688 36.088 26.25C36.088 26.7312 36.4817 27.125 36.963 27.125H37.8905C37.7067 29.365 36.8142 31.4038 35.4492 33.0225L34.793 32.3663H34.7755Z fillcurrentColor/> /symbol> symbol idribbon xmlnshttp://www.w3.org/2000/svg viewBox0 0 56 56 fillnone> path dM37.6244 33.0024L43.718 43.5404L38.6744 43.0028C38.3336 42.968 38.009 43.1564 37.868 43.4684L35.8087 48.0962L29.1421 36.5683C29.3275 36.4873 29.5147 36.3961 29.7025 36.2905C31.3747 35.3251 32.9089 34.8679 34.7179 34.8367C36.3056 34.8085 37.052 34.1299 37.6244 33.0024ZM18.3545 33.0024C18.9275 34.1299 19.6763 34.8085 21.2646 34.8367C23.0742 34.8679 24.6774 35.2183 26.2836 36.2905C26.4708 36.4153 26.649 36.5119 26.8242 36.5905L20.1732 48.0962L18.1139 43.4684C17.9735 43.1564 17.6489 42.9686 17.3075 43.0028L12.2615 43.5404L18.3545 33.0024ZM33.2833 8.76754C34.4023 9.91776 35.5393 10.7428 37.1684 11.2642C38.258 11.6116 38.9522 12.1954 39.1808 13.5868C39.4376 15.1678 40.0094 16.4524 41.0876 17.7773C41.8094 18.6611 42.0968 19.5149 41.525 20.8115C40.8818 22.2839 40.6622 23.6681 40.8536 25.3679C40.9814 26.5056 40.76 27.3678 39.575 28.1532C38.2346 29.0406 37.3004 30.096 36.5372 31.6248C36.0272 32.6496 35.3617 33.2616 33.9403 33.2874C32.3407 33.3156 30.9835 33.7189 29.5027 34.5715C28.5499 35.1217 27.6402 35.3497 26.4774 34.5715C25.0596 33.6247 23.643 33.3156 22.0428 33.2874C20.6178 33.2616 19.959 32.6496 19.4495 31.6248C18.6869 30.096 17.7491 29.04 16.4087 28.1532C15.2249 27.3684 14.9987 26.5056 15.1277 25.3679C15.3209 23.6681 15.1019 22.2839 14.4587 20.8115C13.8869 19.5149 14.1707 18.6611 14.8937 17.7773C15.9743 16.4524 16.5437 15.1678 16.8029 13.5868C17.0315 12.1954 17.7287 11.6116 18.8153 11.2642C20.4444 10.7428 21.6258 9.95556 22.7004 8.76754C23.6508 7.72113 24.5346 7.65813 25.6572 7.90173C27.8353 8.36734 28.7947 8.15493 31.1347 7.79853C31.9519 7.67373 32.7523 8.22634 33.2833 8.76754ZM31.5433 6.01771C28.8865 6.34231 27.8113 6.66392 25.3518 6.13591C24.0834 5.86051 23.0802 5.93311 22.0086 7.11452C20.7936 8.46094 19.4585 9.34895 17.6177 9.93636C16.3835 10.33 15.5987 10.993 15.3395 12.5638C15.0491 14.3518 14.4053 15.8014 13.1831 17.2984C12.3677 18.3023 12.0455 19.2641 12.6899 20.7335C13.4177 22.3961 13.6673 23.9615 13.4495 25.884C13.3055 27.171 13.5587 28.143 14.8991 29.0334C15.9209 29.7084 16.7369 30.4836 17.4245 31.443L10.108 44.096C9.78283 44.6588 10.2358 45.353 10.8802 45.284L16.8977 44.6432L19.3517 50.1711C19.6175 50.7615 20.4426 50.8053 20.7672 50.2461L27.9889 37.7395L35.2141 50.2461C35.5387 50.8053 36.3638 50.7615 36.6266 50.1711L39.0806 44.6432L45.0993 45.284C45.7461 45.3524 46.1961 44.6588 45.8703 44.096L38.558 31.443C39.2456 30.4806 40.058 29.7084 41.0834 29.0334C42.4238 28.146 42.677 27.171 42.5306 25.884C42.3152 23.9609 42.5648 22.3955 43.2902 20.7335C43.937 19.2647 43.6112 18.3023 42.7958 17.2984C41.5772 15.802 40.9334 14.3524 40.643 12.5638C40.3838 10.993 39.599 10.3294 38.3648 9.93636C36.524 9.34895 35.2393 8.41774 33.9715 7.11452C33.0997 6.36391 32.5015 5.90191 31.5433 6.01771Z fillcurrentColor/> path fill-ruleevenodd clip-ruleevenodd dM27.989 13.7292C32.2839 13.7292 35.7453 17.1798 35.7453 21.4585C35.7453 25.7359 32.2833 29.1932 27.989 29.1932C23.6983 29.1932 20.2351 25.7365 20.2351 21.4585C20.2357 17.1804 23.6983 13.7292 27.989 13.7292ZM27.989 12.1392C22.8427 12.1392 18.6487 16.3206 18.6487 21.4585C18.6487 26.5981 22.8427 30.7766 27.989 30.7766C33.1389 30.7766 37.3299 26.5981 37.3299 21.4585C37.3299 16.3206 33.1395 12.1392 27.989 12.1392Z fillcurrentColor/> /symbol> symbol iddiscount xmlnshttp://www.w3.org/2000/svg viewBox0 0 56 56 fillnone> path dM49.7285 37.8874C48.8081 37.3935 47.7156 37.3112 46.7353 37.6704L36.7904 41.2397C36.8503 41.0601 36.8952 40.8806 36.9251 40.6935C37.0972 39.6159 36.7979 38.5309 36.102 37.7153C35.4061 36.8921 34.3884 36.4282 33.3108 36.4282H27.8632C26.5986 36.4282 25.3714 35.9867 24.3312 35.1561C21.9591 33.2629 17.1401 30.7561 10.8245 34.303V33.0534C10.8245 32.1853 10.1211 31.4819 9.25305 31.4819H5.57143C4.7034 31.4819 4 32.1853 4 33.0534V48.7975C4 49.6656 4.7034 50.369 5.57143 50.369H9.25305C10.1211 50.369 10.8245 49.6656 10.8245 48.7975V48.0268C12.0218 48.0118 15.0598 48.1839 19.4374 49.8975C22.236 50.9901 25.1469 51.5438 28.0428 51.5438C29.6516 51.5438 31.2605 51.3717 32.8394 51.0275C39.0802 49.673 44.9992 47.3533 49.9455 44.3227C50.7761 43.8139 51.3747 42.9683 51.5992 42.003C51.9808 40.3792 51.2176 38.688 49.7285 37.8874ZM9.51495 48.7826C9.51495 48.9248 9.39523 49.0445 9.25305 49.0445H5.57143C5.42925 49.0445 5.30952 48.9248 5.30952 48.7826V33.0384C5.30952 32.8962 5.42925 32.7765 5.57143 32.7765H9.25305C9.39523 32.7765 9.51495 32.8962 9.51495 33.0384V48.7826ZM50.3271 41.7037C50.1775 42.3322 49.7958 42.8785 49.2645 43.2078C43.1659 46.9418 36.8129 48.8275 32.5625 49.7554C28.3945 50.6608 24.0244 50.2941 19.9163 48.6853C15.5388 46.9717 12.4333 46.7248 10.9891 46.7248C10.9292 46.7248 10.8769 46.7248 10.8245 46.7248V35.7996C16.7959 32.0881 21.3306 34.4227 23.5156 36.1663C24.7802 37.1765 26.3217 37.7302 27.8632 37.7302H33.3108C33.9993 37.7302 34.6578 38.0295 35.1067 38.5608C35.5632 39.0921 35.7503 39.7806 35.6305 40.484C35.5258 41.1425 35.1067 41.7037 34.5305 42.0554C34.4856 42.0703 34.4482 42.0928 34.4108 42.1227C34.0367 42.3248 33.6027 42.437 33.1462 42.437H26.2843C25.9251 42.437 25.6258 42.7288 25.6258 43.0955C25.6258 43.4622 25.9176 43.754 26.2843 43.754H33.1462C33.8421 43.754 34.5006 43.5744 35.0693 43.2601L47.1693 38.92C47.8053 38.6955 48.5087 38.7404 49.1223 39.0772C50.0802 39.5635 50.574 40.6561 50.3271 41.7037Z fillcurrentColor/> path dM32.6374 28.6536C37.5462 28.6536 41.5347 24.6577 41.5347 19.7563C41.5347 14.855 37.5462 10.8516 32.6374 10.8516C27.7286 10.8516 23.7327 14.84 23.7327 19.7488C23.7327 24.6577 27.7286 28.6536 32.6374 28.6536ZM32.6374 12.1611C36.8204 12.1611 40.2251 15.5658 40.2251 19.7488C40.2251 23.9318 36.8204 27.344 32.6374 27.344C28.4544 27.344 25.0497 23.9393 25.0497 19.7563C25.0497 15.5733 28.4469 12.1611 32.6374 12.1611Z fillcurrentColor/> path dM19.9388 22.8394C20.5374 23.3632 21.166 23.9095 21.3755 24.4108C21.6 24.9496 21.5476 25.8102 21.4952 26.6333C21.4129 27.9428 21.3306 29.2972 22.2061 30.1727C23.0816 31.0482 24.436 30.9659 25.7456 30.8836C26.5687 30.8312 27.4292 30.7789 27.968 31.0033C28.4694 31.2129 29.0156 31.834 29.5394 32.4401C30.385 33.4054 31.3353 34.4904 32.6299 34.4904C33.9244 34.4904 34.8748 33.3979 35.7204 32.4326C36.2442 31.834 36.7904 31.2054 37.2918 30.9959C37.8306 30.7714 38.6911 30.8237 39.5142 30.8761C40.8238 30.9584 42.1782 31.0408 43.0537 30.1652C43.9292 29.2897 43.8469 27.9353 43.7646 26.6258C43.7122 25.8027 43.6598 24.9421 43.8843 24.4034C44.0938 23.902 44.7149 23.3557 45.321 22.8319C46.2863 21.9864 47.3788 21.036 47.3788 19.7415C47.3788 18.4469 46.2863 17.4966 45.321 16.651C44.7224 16.1272 44.0938 15.5809 43.8843 15.0796C43.6598 14.5408 43.7122 13.6803 43.7646 12.8571C43.8469 11.5476 43.9292 10.1932 43.0537 9.31768C42.1782 8.44217 40.8238 8.52448 39.5142 8.60679C38.6911 8.65918 37.8306 8.71156 37.2918 8.48707C36.7904 8.27754 36.2442 7.65646 35.7204 7.05034C34.8823 6.09251 33.9244 5 32.6374 5C31.3503 5 30.3925 6.09251 29.5469 7.05034C29.0231 7.64897 28.4768 8.27754 27.9755 8.48707C27.4367 8.71156 26.5762 8.65918 25.753 8.60679C24.4435 8.52448 23.0891 8.44217 22.2136 9.31768C21.3381 10.1932 21.4204 11.5476 21.5027 12.8571C21.5551 13.6803 21.6075 14.5408 21.383 15.0796C21.1735 15.5809 20.5524 16.1272 19.9462 16.651C18.9809 17.4966 17.8884 18.4469 17.8884 19.7415C17.8884 21.036 18.9809 22.0013 19.9388 22.8394ZM20.7993 17.6462C21.5177 17.0177 22.251 16.3741 22.5803 15.5884C22.9245 14.7653 22.8571 13.7551 22.7973 12.7823C22.7374 11.7571 22.6701 10.702 23.1265 10.2456C23.583 9.7891 24.6381 9.85645 25.6632 9.91632C26.6435 9.97618 27.6462 10.036 28.4694 9.69931C29.2551 9.37006 29.9061 8.63673 30.5272 7.91836C31.2156 7.12517 31.934 6.30952 32.6299 6.30952C33.3258 6.30952 34.0442 7.12517 34.7326 7.91836C35.3612 8.63673 36.0047 9.37006 36.7904 9.69931C37.6136 10.036 38.6163 9.97618 39.5965 9.91632C40.6142 9.85645 41.6693 9.7891 42.1333 10.2456C42.5897 10.702 42.5299 11.7571 42.4625 12.7823C42.4027 13.7551 42.3428 14.7653 42.6795 15.5884C43.0088 16.3741 43.7421 17.0177 44.4605 17.6462C45.2537 18.3347 46.0693 19.053 46.0693 19.7489C46.0693 20.4449 45.2537 21.1632 44.4605 21.8517C43.7421 22.4802 43.0088 23.1238 42.6795 23.9095C42.3353 24.7326 42.4027 25.7428 42.4625 26.7156C42.5224 27.7333 42.5897 28.7959 42.1333 29.2523C41.6768 29.7088 40.6217 29.6489 39.5965 29.5816C38.6163 29.5217 37.6136 29.4618 36.7904 29.7986C36.0047 30.1278 35.3612 30.8612 34.7326 31.5795C34.0442 32.3727 33.3258 33.1884 32.6299 33.1884C31.934 33.1884 31.2156 32.3727 30.5272 31.5795C29.8986 30.8612 29.2551 30.1278 28.4694 29.7986C27.968 29.5891 27.3993 29.5367 26.8081 29.5367C26.434 29.5367 26.0449 29.5591 25.6632 29.5816C24.6456 29.6414 23.583 29.7088 23.1265 29.2523C22.6701 28.7959 22.7299 27.7408 22.7973 26.7156C22.8571 25.7428 22.917 24.7326 22.5803 23.9095C22.251 23.1238 21.5177 22.4727 20.7993 21.8517C20.0061 21.1632 19.1905 20.4449 19.1905 19.7489C19.1905 19.053 20.0136 18.3347 20.7993 17.6462Z fillcurrentColor/> path dM29.8611 18.9103C31.0435 18.9103 32.0162 17.945 32.0162 16.7552C32.0162 15.5654 31.0509 14.6001 29.8611 14.6001C28.6714 14.6001 27.7061 15.5654 27.7061 16.7552C27.7061 17.945 28.6788 18.9103 29.8611 18.9103ZM29.8611 15.9171C30.3251 15.9171 30.7067 16.2913 30.7067 16.7627C30.7067 17.2341 30.3326 17.6083 29.8611 17.6083C29.3897 17.6083 29.0156 17.2341 29.0156 16.7627C29.0156 16.2913 29.3972 15.9171 29.8611 15.9171Z fillcurrentColor/> path dM35.4061 20.5947C34.2238 20.5947 33.251 21.56 33.251 22.7498C33.251 23.9396 34.2163 24.9049 35.4061 24.9049C36.5959 24.9049 37.5612 23.9396 37.5612 22.7498C37.5612 21.56 36.5959 20.5947 35.4061 20.5947ZM35.4061 23.5879C34.9421 23.5879 34.5605 23.2138 34.5605 22.7423C34.5605 22.2709 34.9346 21.8968 35.4061 21.8968C35.8775 21.8968 36.2516 22.2709 36.2516 22.7423C36.2516 23.2138 35.87 23.5879 35.4061 23.5879Z fillcurrentColor/> path dM28.4544 24.4333C28.5816 24.5455 28.7387 24.5979 28.8884 24.5979C29.068 24.5979 29.2476 24.5231 29.3748 24.3809L36.8652 15.9925C37.1047 15.7231 37.0822 15.3115 36.8128 15.0646C36.5435 14.8251 36.1319 14.8476 35.885 15.117L28.402 23.5054C28.1625 23.7748 28.185 24.1938 28.4544 24.4333Z fillcurrentColor/> /symbol> symbol idphone xmlnshttp://www.w3.org/2000/svg viewBox0 0 22 22 fillnone> path dM20.7522 14.9509L15.6102 12.6466C15.3772 12.5468 15.123 12.5067 14.8706 12.5299C14.6182 12.553 14.3756 12.6388 14.1647 12.7794C14.1434 12.7932 14.123 12.8085 14.1038 12.8251L11.4163 15.1109C11.3884 15.1261 11.3574 15.1346 11.3257 15.1358C11.2939 15.1369 11.2624 15.1306 11.2335 15.1175C9.50606 14.2837 7.71661 12.5051 6.87958 10.8017C6.86564 10.7732 6.8584 10.7419 6.8584 10.7102C6.8584 10.6785 6.86564 10.6473 6.87958 10.6188L9.17299 7.89761C9.18947 7.87749 9.20474 7.85641 9.21871 7.83448C9.35736 7.62278 9.44112 7.37987 9.4624 7.1277C9.48368 6.87552 9.44183 6.62202 9.34061 6.39007L7.05265 1.25682C6.92271 0.953802 6.69801 0.701094 6.41225 0.536628C6.1265 0.372163 5.79511 0.304811 5.46783 0.344681C4.04544 0.531677 2.73981 1.2302 1.79492 2.30971C0.850023 3.38921 0.330527 4.77585 0.333509 6.21047C0.333509 14.7332 7.26708 21.6668 15.7898 21.6668C17.2244 21.6696 18.6109 21.15 19.6903 20.2051C20.7698 19.2603 21.4684 17.9548 21.6556 16.5325C21.6954 16.2067 21.6289 15.8768 21.4662 15.5919C21.3034 15.3069 21.053 15.0821 20.7522 14.9509ZM15.7898 20.3606C7.98764 20.3606 1.63968 14.0127 1.63968 6.21047C1.63604 5.09362 2.03915 4.01365 2.77369 3.17233C3.50824 2.33102 4.52397 1.78592 5.6311 1.63888H5.65614C5.7 1.6397 5.74259 1.65375 5.77833 1.67919C5.81407 1.70464 5.84129 1.74029 5.85642 1.78147L8.15309 6.90927C8.16619 6.93778 8.17297 6.96879 8.17297 7.00016C8.17297 7.03154 8.16619 7.06254 8.15309 7.09105L5.85533 9.81877C5.83827 9.83831 5.82263 9.85904 5.80852 9.88081C5.66474 10.1003 5.58007 10.3532 5.56272 10.615C5.54537 10.8769 5.59592 11.1387 5.70947 11.3753C6.67495 13.352 8.66685 15.3286 10.6653 16.2941C10.9032 16.407 11.1664 16.4564 11.429 16.4373C11.6917 16.4182 11.945 16.3314 12.1641 16.1853C12.1848 16.1711 12.2055 16.1559 12.2251 16.1395L14.9114 13.8537C14.9379 13.8395 14.9672 13.8311 14.9973 13.8293C15.0274 13.8274 15.0575 13.832 15.0856 13.8429L20.2286 16.1472C20.2706 16.1651 20.3059 16.1957 20.3296 16.2348C20.3532 16.2738 20.364 16.3193 20.3603 16.3649C20.214 17.4725 19.6695 18.489 18.8283 19.2244C17.9872 19.9597 16.9071 20.3637 15.7898 20.3606Z fillcurrentColor/> /symbol> !-- Alias example --> symbol idcall> use href#phone>/use> /symbol> /defs>/svg>/div>div classremove-invisible w-embed w-script>script typemodule> document.querySelectorAll(.w-condition-invisible, .w-dyn-bind-empty).forEach(el > el.remove())/script>/div>div classscript w-embed w-script>script data-cfasyncfalse typemodule> document.addEventListener(DOMContentLoaded, () > { const richtexts document.querySelectorAll(.w-richtext) if (!richtexts) return HTMLElement.prototype.hasText function (textArray) { return textArray.some(text > this.textContent.includes(text)) } const extractionList const triggers { keywords: #cta_here, action: el > findAndReplace(el, .cta-templatedata-template, true), }, { keywords: #cta_start, stopWords: #cta_end, action: createCTA, }, richtexts.forEach(content > { ...content.children.forEach(el > { triggers.forEach(trigger > el.hasText(trigger.keywords) && trigger.action(el)) }) }) onParsingComplete() function onParsingComplete() { if (extractionList.length) { document.querySelector(.templates)?.remove() extractFromContainer(extractionList) } } function findAndReplace(target, selector, extract) { let el document.querySelector(selector).cloneNode(true) if (extract) extractionList.push(el) el ? target.replaceWith(el) : target.remove() } function extractFromContainer(elements) { const items Array.isArray(elements) ? elements : elements items.forEach(el > { const parent el.parentElement if (!parent) return const children ...parent.children const index children.indexOf(el) if (index -1) return const firstPart children.slice(0, index) const secondPart children.slice(index + 1) if (firstPart.length 0 && secondPart.length 0) return const firstContainer parent.cloneNode(false) const secondContainer parent.cloneNode(false) firstPart.forEach(child > firstContainer.appendChild(child)) secondPart.forEach(child > secondContainer.appendChild(child)) const fragment document.createDocumentFragment() if (firstPart.length) fragment.appendChild(firstContainer) fragment.appendChild(el) if (secondPart.length) fragment.appendChild(secondContainer) parent.replaceWith(fragment) }) } function createCTA(el) { const ctaTemplate document.querySelector(.cta-templatedata-template).cloneNode(true) ctaTemplate.removeAttribute(data-template) const data getData(this.stopWords) if (data.heading) { ctaTemplate.querySelector(h2).innerText data.heading.innerText } if (data.content) { const text ctaTemplate.querySelector(.cta__text) text.replaceChildren(...data.content) } if (data.button) { const button ctaTemplate.querySelector(.cta__btn) let classes button.className button.replaceWith(data.button) data.button.className classes } extractionList.push(ctaTemplate) el.replaceWith(ctaTemplate) function getData(stopWords) { let sibling el.nextElementSibling let item {} while (sibling && !sibling.hasText(stopWords)) { const nextEl sibling.nextElementSibling if (sibling.tagName.startsWith(H)) { item.heading sibling } else { const link sibling.querySelector(a) if (link) { item.button link } else { if (!item.content) item.content item.content.push(sibling) } } sibling.remove() sibling nextEl } sibling?.remove() return item } } })/script>/div>/footer>/main>script srchttps://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site66d1d0f957da81046fb7897e typetext/javascript integritysha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0 crossoriginanonymous>/script>script srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/js/webflow.schunk.36b8fb49256177c8.js typetext/javascript integritysha384-4abIlA5/v7XaW1HMXKBgnUuhnjBYJ/Z9C1OSg4OhmVw9O3QeHJ/qJqFBERCDPv7G crossoriginanonymous>/script>script srchttps://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/js/webflow.cfab9147.afe08544179e6d22.js typetext/javascript integritysha384-z5+ZqZDL/Bcdi5XKeTJypp1amRSaFe+ykjCAhS1f2qZKQv5U+UqVpu3rUEy8sUOZ crossoriginanonymous>/script>!-- Google Tag Manager (noscript) -->noscript> iframe height0 srchttps://www.googletagmanager.com/ns.html?idGTM-PMFTQMH styledisplay:none;visibility:hidden width0>/iframe>/noscript>!-- End Google Tag Manager (noscript) -->script typemodule> document.querySelectorAll(img).forEach((img, idx) > { const name img.closest(class*card)?.querySelector(class*heading)?.textContent || img.closest(section)?.querySelector(class*heading)?.textContent if (!img.alt) img.alt name ? `${name} Image` : `Image ${idx}` })/script>script idschemas typemodule> // BreadcrumbList { const crumbs ...document.querySelectorAll(.bread-content li).map((el, idx) > ({ @type: ListItem, position: idx + 1, name: el?.innerText, item: el?.href || el.querySelector(a)?.href || location.href, })).filter(crumb > crumb.name && crumb.item) if (crumbs.length) { const breadcrumbList { @context: https://schema.org, @type: BreadcrumbList, itemListElement: crumbs, } addSchema(breadcrumbList) } } // FAQPage { const faqs ...document.querySelectorAll(.faq .faq-card).map(el > ({ @type: Question, name: el.querySelector(.faq-card__heading)?.innerText, acceptedAnswer: { @type: Answer, text: el.querySelector(.faq-card__text)?.innerText, }, })).filter(faq > faq.name && faq.acceptedAnswer.text) if (faqs.length) { const faqPage { @context: https://schema.org, @type: FAQPage, mainEntity: faqs, } addSchema(faqPage) } } // LocalBusiness if (!/^\/blog/i.test(location.pathname)) { const localBusiness { @context: https://schema.org, @type: LocalBusiness, @id: #local-business, url: /, name: Custom Closets Designers, description: Complete Closet Design creates stunning and functional storage solutions for Chicago homes, image: https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66eae8f7478d478b6d12f34c_contact-page-bg-min.avif, telephone: +16306268234, logo: https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66d5c8d547668225b7934759_header-logo-desk.svg, sameAs: ...document.querySelectorAll(.footer__soc-link).map(link > link.href), priceRange: $$, address: { @type: PostalAddress, streetAddress: 401 Earl Rd Unit F, addressLocality: Shorewood, addressRegion: IL, postalCode: 60404, addressCountry: US, }, geo: { @type: GeoCoordinates, latitude: 41.4898334918286, longitude: -88.20496336585794, }, location: { @type: Place, address: { @type: PostalAddress, streetAddress: 2852 Forest Creek Ln, addressLocality: Naperville, addressRegion: IL, postalCode: 60565, addressCountry: US, }, }, { @type: Place, address: { @type: PostalAddress, streetAddress: 133 Willow Blvd, addressLocality: Willow Springs, addressRegion: IL, postalCode: 60480, addressCountry: US, }, }, , openingHoursSpecification: { @type: OpeningHoursSpecification, dayOfWeek: Monday, Tuesday, Wednesday, Thursday, Friday, opens: 08:00, closes: 18:00, }, { @type: OpeningHoursSpecification, dayOfWeek: Saturday, Sunday, opens: 08:00, closes: 16:00, }, } addSchema(localBusiness) } // BlogPosting if (/^\/blog\//i.test(location.pathname)) { const blogPosting { @context: https://schema.org, @type: BlogPosting, url: location.href, headline: document.querySelector(h1).innerText, image: document.querySelector(propertyog:image)?.content || https://cdn.prod.website-files.com/66d1d0f957da81046fb7897e/66d1dc6e5cfdf09da697190d_364e2829934610526b1d8c710df3d697-min.avif, author: { @type: Person, url: document.querySelector(a.hero__blog-stat-text)?.href, name: document.querySelector(a.hero__blog-stat-text)?.innerText, }, description: document.querySelector(.page-content__text p)?.innerText, datePublished: new Date(document.querySelector(.hero__hidden-dates .created)?.innerText).toISOString(), dateModified: new Date(document.querySelector(.hero__hidden-dates .modified)?.innerText).toISOString(), articleBody: document.querySelector(.page-content__text)?.innerText, } addSchema(blogPosting) } // Person + ProfilePage if (/^\/about\//i.test(location.pathname)) { const person { @context: https://schema.org/, @type: Person, @id: #person, url: location.href, name: document.querySelector(h1).innerText, image: document.querySelector(.about__img)?.src, description: document.querySelector(.about__text p)?.innerText, worksFor: { @id: #local-business }, } addSchema(person) const profilePage { @context: https://schema.org/, @type: ProfilePage, dateCreated: 2016-08-23T00:00:00-05:00, dateModified: new Date(document.lastModified).toISOString(), mainEntity: { @id: #person }, } const root .rel-gal const blogs ...document.querySelectorAll(root + .w-dyn-item).map(el > ({ @type: BlogPosting, author: { @id: #person }, url: el.querySelector(a).href, image: el.querySelector(img).src, headline: el.querySelector(.blog-card__heading).innerText, datePublished: new Date(el.querySelector(.blog-card__stat-item:last-child .blog-card__stat-text).innerText).toISOString(), })) if (blogs.length) { profilePage.mainEntity.agentInteractionStatistic { @type: InteractionCounter, interactionType: https://schema.org/WriteAction, userInteractionCount: await getUserInteractionCountAsync(blogs.length), } profilePage.hasPart blogs } addSchema(profilePage) async function getUserInteractionCountAsync(itemsPerPage 5) { const nextLink document.querySelector(root + .w-pagination-next) if (!nextLink) return itemsPerPage const baseUrl nextLink.href.slice(0, -1) const veryLastPage await getDOMAsync(baseUrl + 999999) const prevLink veryLastPage.querySelector(root + .w-pagination-previous) const prevUrl prevLink.href const lastPage await getDOMAsync(prevUrl) const pageCount prevUrl.split().slice(-1) const lastPageItems lastPage.querySelectorAll(root + .w-dyn-item).length return lastPageItems + (pageCount - 1) * itemsPerPage } async function getDOMAsync(url) { const response await fetch(url) const text await response.text() const parser new DOMParser() return parser.parseFromString(text, text/html) } }/script>/body>/html>
Subdomains
Date
Domain
IP
410.marissa-s.workers.dev
2026-01-21
104.21.19.249
404.marissa-s.workers.dev
2026-01-21
172.67.190.179
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]