/* Search and Mobile Menu Styles */

/* ==========================================================================
   SEARCH MODAL DESKTOP
   ========================================================================== */


/* ───────── POPUP CONTAINER ───────── */

/* Search popup only */
.elementor-popup-modal:has(.elementor-31077) .dialog-widget-content,
.elementor-popup-modal:has(.elementor-41807) .dialog-widget-content {
    background: #000000 !important;
    border-radius: 16px !important;
    border: 2px solid rgba(255, 255, 255, 0.18) !important;
    overflow: hidden !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6) !important;
}

/* Remove Elementor white wrapper only for this popup */
.elementor-popup-modal:has(.elementor-31077) .dialog-message,
.elementor-popup-modal:has(.elementor-31077) .dialog-lightbox-message,
.elementor-popup-modal:has(.elementor-41807) .dialog-message,
.elementor-popup-modal:has(.elementor-41807) .dialog-lightbox-message {
    background: transparent !important;
}

/* Make all search inner wrappers black */
.elementor-31077,
.elementor-31077 .elementor-section,
.elementor-31077 .elementor-container,
.elementor-31077 .elementor-widget-wrap,
.elementor-31077 .e-con,
.elementor-31077 .e-con-inner,
.elementor-41807 .elementor-widget-wrap,
.elementor-41807 .e-con,
.elementor-41807 .e-con-inner {
    background: #000000 !important;
}

/* Desktop only: popup glow */
@media (min-width: 1025px) {
    .elementor-popup-modal:has(.elementor-31077) .dialog-widget-content,
    .elementor-popup-modal:has(.elementor-41807) .dialog-widget-content {
        box-shadow:
            0 0 18px rgba(255, 255, 255, 0.268),
            0 0 42px rgba(255, 255, 255, 0.265),
            0 20px 60px rgba(0, 0, 0, 0.6) !important;
    }
}



/* Remove popup close button */
.elementor-popup-modal .dialog-close-button {
    display: none !important;
}

/* Inner container */
.elementor-31077 .e-con-inner,
.elementor-41807 .e-con-inner {
    background: #000000 !important;
    padding: 0 !important;
    gap: 0 !important;
}

/* Search widget full width */
.elementor-31077 .elementor-widget-search,
.elementor-31077 .e-search,
.elementor-41807 .elementor-widget-search,
.elementor-41807 .e-search {
    width: 100% !important;
    display: block !important;
}

/* ───────── SEARCH FORM ───────── */
.elementor-31077 .e-search-form,
.elementor-41807 .e-search-form {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 48px 20px 10px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    background: transparent !important;
}

/* Hide Elementor label space */
.elementor-31077 .e-search-label,
.elementor-41807 .e-search-label {
    display: none !important;
}

/* Input wrapper */
.elementor-31077 .e-search-input-wrapper,
.elementor-41807 .e-search-input-wrapper {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    position: relative !important;
    display: block !important;
}

/* Input */
.elementor-31077 .e-search-input,
.elementor-41807 .e-search-input {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    height: auto !important;

    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 14px !important;

    outline: none !important;
    box-shadow: none !important;

    color: #ffffff !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    padding: 8px 15px !important;
    box-sizing: border-box !important;
}

/* Placeholder */
.elementor-31077 .e-search-input::placeholder,
.elementor-41807 .e-search-input::placeholder {
    color: rgba(255, 255, 255, 0.42) !important;
}

/* Focus */
.elementor-31077 .e-search-input:focus,
.elementor-31077 .e-search-input:focus,
.elementor-31077 .e-search-input:focus-visible,
.elementor-41807 .e-search-input:focus,
.elementor-41807 .e-search-input:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
}

/* Custom styles for search buttons */ 
/* --- Search Button Reset --- */
.elementor-41807 .e-search-submit,
.elementor-31077 .e-search-submit {
    overflow: hidden !important;
    position: relative !important;
    display: inline-flex !important; 
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 24px !important;
    border-radius: 100px !important;
    background-color: var(--e-global-color-primary) !important;
     transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1) !important;
    cursor: pointer;
}

/* 1. The Dynamic Text Layer */
.elementor-41807 .e-search-submit span, .elementor-31077 .e-search-submit span {
    display: block !important;
    position: relative !important;
    transform: translateY(0) !important;
    transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1) !important;
    color: #ffffff !important;
    text-shadow: 0 40px 0 var(--e-global-color-primary) !important;
}

/* --- THE HOVER ACTION --- */
.elementor-41807 .e-search-submit:hover, .elementor-31077 .e-search-submit:hover {
    background-color: #ffffff !important;
    border-color: var(--e-global-color-primary) !important;
}

/* On hover, we shift the span up by exactly 40px.  */
.elementor-41807 .e-search-submit:hover span, .elementor-31077 .e-search-submit:hover span {
    transform: translateY(-40px) !important; 
}


/* ───────── LIVE RESULTS INSIDE CONTAINER ───────── */
.elementor-31077 .e-search-results-container,
.elementor-41807 .e-search-results-container {
    order: 3 !important;
    flex: 0 0 100% !important;
    width: 100% !important;

    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;

    background: transparent !important;
    border: none !important;
    box-shadow: none !important;

    margin: 10px 0 0 !important;
    padding: 0 !important;
}

/* Results list */
.elementor-31077 .e-search-results,
.elementor-41807 .e-search-results {
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Result links */
.elementor-31077 .e-search-results a,
.elementor-31077 .e-search-results .e-search-result,
.elementor-41807 .e-search-results a,
.elementor-41807 .e-search-results .e-search-result {
    display: block !important;
    color: rgba(255, 255, 255, 0.75) !important;
    background: transparent !important;
    text-decoration: none !important;

    font-size: 18px !important;
    line-height: 1.5 !important;
}

.elementor-31077 .e-search-results a:hover,
.elementor-31077 .e-search-results .e-search-result:hover,
.elementor-41807 .e-search-results a:hover,
.elementor-41807 .e-search-results .e-search-result:hover {
    color: #ffffff !important;
    background: transparent !important;
}

/* ───────── TRENDING SECTION ───────── */
.elementor-31077 .trending-container,
.elementor-41807 .trending-container {
    padding: 20px 32px 20px 32px !important;
}

/* Trending heading */
.elementor-31077 .trending-title ,
.elementor-41807 .trending-title {
    color: #ffffff !important;
    font-size: 28px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    margin: 0 0 22px !important;
}

/* Trending list */
.elementor-31077 .trending-searches, .elementor-41807 .trending-searches {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.elementor-31077 .trending-searches li, .elementor-41807 .trending-searches li {
    margin-bottom: 14px !important;
}

.elementor-31077 .trending-searches a, .elementor-41807 .trending-searches a {
    color: rgba(255, 255, 255, 0.7) !important;
    text-decoration: none !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}

.elementor-31077 .trending-searches a:hover, .elementor-41807 .trending-searches a:hover {
    color: #ffffff !important;
}

/* Hide trending when user types */
.elementor-31077:has(.e-search-input:not(:placeholder-shown)) .trending-container, .elementor-41807:has(.e-search-input:not(:placeholder-shown)) .trending-container {
    display: none !important;
}

/* ───────── MOBILE ───────── */
@media (max-width: 767px) {
    .elementor-31077 .e-search-form, .elementor-41807 .e-search-form {
        padding: 0px !important;
        gap: 12px !important;
    }

    .elementor-31077 .e-search-input-wrapper,
    .elementor-41807 .e-search-input-wrapper {
        flex: 0 0 100% !important;
    }

    .elementor-31077 .e-search-submit,
    .elementor-41807 .e-search-submit {
        width: 100% !important;
        padding: 14px 20px !important;
    }

    .elementor-31077 .trending-container,
    .elementor-41807 .trending-container {
        padding: 20px 0px 0px 0px!important
    }

    .elementor-31077 .trending-title,
    .elementor-41807 .trending-title {
        font-size: 24px !important;
    }

    .chapmans-global-search .e-search-submit  {
        display: none!important;
    }
}



/* Pagination */
.elementor-31077 .search-pagination,
.elementor-41807 .search-pagination {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin-top: 24px !important;
}

.elementor-31077 .search-pagination button, .elementor-41807 .search-pagination button {
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 50px !important;
    color: #fff !important;
    padding: 8px 18px !important;
    cursor: pointer !important;
}

.elementor-31077 .search-pagination button:disabled, .elementor-41807 .search-pagination button:disabled {
    opacity: 0.35 !important;
    cursor: not-allowed !important;
}

.elementor-31077 .search-pagination span, .elementor-41807 .search-pagination span {
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 14px !important;
}

/* Pagination current (pink) */
.elementor-31077 .elementor-pagination .page-numbers.current, .elementor-41807 .elementor-pagination .page-numbers.current {
    padding: 5px 12px !important;
    /* ↓ smaller padding */
    border-radius: 12px !important;
    /* ↓ less rounded */
    background: var(--e-global-color-primary);
    color: #fff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: auto !important;
}

/* Other numbers spacing (optional cleaner look) */
.elementor-31077 .elementor-pagination .page-numbers, .elementor-41807 .elementor-pagination .page-numbers {
    padding: 4px 8px !important;
}

/* Space above pagination */
.elementor-31077 .elementor-pagination , .elementor-41807 .elementor-pagination {
    margin-top: 32px !important;
}

/* Trending heading uses H1 font family but keeps size */
.elementor-31077 .trending-title, .elementor-41807 .trending-title {
    font-family: var(--e-global-typography-primary-font-family) !important;
}

/* Loader — white icon, no border */
.elementor-31077 .e-search-loader svg path, .elementor-41807 .e-search-loader svg path {
    fill: #ffffff !important;
}

.elementor-31077 .e-search-loader svg , .elementor-41807 .e-search-loader svg  {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Remove border from loader container */
.elementor-31077 .e-search-results-container, .elementor-41807 .e-search-results-container {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

.elementor-31077 .e-search-loader, .elementor-41807 .e-search-loader {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}


/* Full Mobile Hamburger and Search Results */

/* ===== MOBILE NAVBAR ===== */
@media (max-width: 767px) {

    .chapmans-navbar {
        transition:
            background-color .3s cubic-bezier(.4, 0, .2, 1),
            box-shadow .3s cubic-bezier(.4, 0, .2, 1),
            border-color .3s cubic-bezier(.4, 0, .2, 1);
    }

    /* body.cm-menu-open .chapmans-navbar {
        background-color: #000 !important;
        box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
    } */

    #cm-overlay {
        display: none;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        z-index: 999999;
        background: #000;
        overflow: hidden;
    }

    .cm-panel {
        position: absolute;
        width: 100%;
        height: 100%;
        overflow-y: auto;
        background: #000;
        color: #fff;
        transform: translateX(100%);
        transition: transform .3s cubic-bezier(.4, 0, .2, 1);
        padding-bottom: 95px;
    }

    .cm-panel.cm-active {
        transform: translateX(0);
    }

    #cm-panel-main {
        transform: translateX(0);
    }

    .cm-nav-item,
    .cm-view-all,
    .cm-acc-header,
    .cm-simple-link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 22px 20px;
        border-bottom: 1px solid #222;
        background: #000;
        color: #fff !important;
        text-decoration: none;
        font-size: 17px !important;
        font-weight: 400;
        letter-spacing: 0.2px;
    }

    .cm-nav-item,
    .cm-nav-item:visited,
    .cm-nav-item:hover,
    .cm-nav-item:active,
    .cm-view-all,
    .cm-view-all:visited,
    .cm-view-all:hover,
    .cm-view-all:active,
    .cm-simple-link,
    .cm-simple-link:visited,
    .cm-simple-link:hover,
    .cm-simple-link:active {
        color: #fff !important;
    }

    .cm-subheader {
        display: flex;
        align-items: center;
        padding: 18px 20px;
        border-bottom: 1px solid #222;
        background: #000 !important;
    }

    .cm-subheader h2 {
        flex: 1;
        text-align: center;
        font-family: inherit !important;
        font-size: 20px !important;
        font-weight: 600 !important;
        letter-spacing: 0.2px !important;
        line-height: 1.2 !important;
        color: #fff !important;
        margin: 0;
    }

    .cm-btn:not(.cm-lang-btn),
    .cm-nav-item span,
    .cm-acc-header span,
    .cm-subheader .cm-btn:not(.cm-lang-btn) {
        background: transparent !important;
        color: #fff !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        width: 16px !important;
        height: 16px !important;
        min-width: 16px !important;
        min-height: 16px !important;
        padding: 0 !important;
        font-size: 0 !important;
        line-height: 1 !important;
        cursor: pointer;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-family: inherit !important;
        flex-shrink: 0 !important;
        position: relative;
    }

    .cm-nav-item span::before {
        content: "";
        display: block;
        width: 14px;
        height: 14px;
        background-color: #fff;
        -webkit-mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: center;
        mask-position: center;
        -webkit-mask-size: contain;
        mask-size: contain;
        transform: rotate(-90deg);
    }

    .cm-btn:not(.cm-lang-btn)::before {
        content: "";
        display: block;
        width: 14px;
        height: 14px;
        background-color: #fff;
        -webkit-mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: center;
        mask-position: center;
        -webkit-mask-size: contain;
        mask-size: contain;
        transform: rotate(90deg);
    }

    .cm-acc-header {
        cursor: pointer;
    }

    .cm-acc-header span::before {
        content: "";
        display: block;
        width: 14px;
        height: 14px;
        background-color: #fff;
        -webkit-mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: center;
        mask-position: center;
        -webkit-mask-size: contain;
        mask-size: contain;
        transition: transform 0.2s ease;
        transform: rotate(0deg);
    }

    .cm-acc-header.is-open span::before {
        transform: rotate(180deg);
    }

    .cm-acc-body {
        display: none;
        background: #000;
    }

    .cm-acc-body.open {
        display: block;
    }

    .cm-acc-link {
        display: block !important;
        padding: 16px 20px 16px 48px;
        color: #fff !important;
        text-decoration: none;
        font-size: 16px !important;
        font-weight: 400;
        background: #000;
        border-bottom: none;
    }

    .cm-acc-link,
    .cm-acc-link:visited,
    .cm-acc-link:hover,
    .cm-acc-link:active {
        color: #fff !important;
    }

    .cm-lang {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 24px 20px;
        border-top: 1px solid #2a2a2a;
        background: #000;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100vw;
        box-sizing: border-box;
        z-index: 1000000;
    }

    .cm-lang span {
        color: #bbb !important;
        font-size: 15px;
    }

    .cm-lang-switch {
        display: flex;
        align-items: center;
        background: #1a1a1a;
        border-radius: 12px;
        padding: 4px;
    }

    .cm-lang .cm-lang-btn,
    .cm-lang .cm-lang-btn:visited,
    .cm-lang .cm-lang-btn:hover,
    .cm-lang .cm-lang-btn:active {
        padding: 6px 28px !important;
        border: none !important;
        background: transparent !important;
        color: #888 !important;
        font-size: 14px !important;
        font-weight: 500 !important;
        margin: 0 !important;
        width: auto !important;
        height: auto !important;
        min-width: unset !important;
        min-height: unset !important;
        box-shadow: none !important;
        border-radius: 8px !important;
    }

    .cm-lang .cm-lang-btn.active,
    .cm-lang .cm-lang-btn.active:visited,
    .cm-lang .cm-lang-btn.active:hover,
    .cm-lang .cm-lang-btn.active:active {
        background: #fff !important;
        color: #000 !important;
    }

    body.cm-menu-open {
        overflow: hidden;
    }

    .elementor-menu-toggle {
        z-index: 1000000;
        position: relative;
    }

    body.cm-menu-open .elementor-nav-menu--dropdown,
    body.cm-menu-open .elementor-nav-menu__container.elementor-nav-menu--dropdown {
        display: none !important;
    }

    .cm-panel .cm-view-all:nth-of-type(2) {
        display: none !important;
    }

    body.cm-menu-open #cm-overlay {
        display: block !important;
    }

    #cm-overlay {
        position: fixed !important;
        top: var(--cm-overlay-top, 0px) !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: none !important;
        background: #000 !important;
        overflow: hidden !important;
        z-index: 999999 !important;
    }

    .cm-panel {
        position: absolute !important;
        inset: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100% !important;
        box-sizing: border-box !important;
        padding-bottom: 95px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background: #000 !important;
    }

    #cm-main-nav,
    .cm-nav-item,
    .cm-view-all,
    .cm-acc-header,
    .cm-simple-link,
    .cm-acc-link {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* ACTIVE LINKS = PINK */
    .cm-active-link,
    .cm-active-link:visited,
    .cm-active-link:hover,
    .cm-active-link:active,
    .cm-active-link-parent,
    .cm-active-link-parent:visited,
    .cm-active-link-parent:hover,
    .cm-active-link-parent:active,
    .cm-simple-link.cm-active-link,
    .cm-simple-link.cm-active-link:visited,
    .cm-simple-link.cm-active-link:hover,
    .cm-simple-link.cm-active-link:active,
    .cm-nav-item.cm-active-link,
    .cm-nav-item.cm-active-link:visited,
    .cm-nav-item.cm-active-link:hover,
    .cm-nav-item.cm-active-link:active,
    .cm-view-all.cm-active-link,
    .cm-view-all.cm-active-link:visited,
    .cm-view-all.cm-active-link:hover,
    .cm-view-all.cm-active-link:active,
    .cm-acc-link.cm-active-link,
    .cm-acc-link.cm-active-link:visited,
    .cm-acc-link.cm-active-link:hover,
    .cm-acc-link.cm-active-link:active,
    .cm-acc-header.cm-active-link,
    .cm-acc-header.cm-active-link:hover {
        color: var(--e-global-color-primary) !important;
        font-weight: 600 !important;
    }



    /* ===== SEARCH PANEL ===== */
    #cm-panel-search {
        padding-bottom: 0 !important;
    }

    .cm-search-input-row {
        padding: 16px 20px;
        border-bottom: 1px solid #222;
        background: #000;
    }

    .cm-search-input {
        width: 100% !important;
        box-sizing: border-box !important;
        background: #1a1a1a !important;
        border: none !important;
        border-radius: 10px !important;
        color: #fff !important;
        font-size: 16px !important;
        font-family: inherit !important;
        padding: 13px 16px !important;
        outline: none !important;
    }

    .cm-search-input::placeholder {
        color: #555 !important;
    }

    .cm-search-body {
        overflow-y: auto;
    }

    .cm-search-section-label {
        color: #666 !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        text-transform: uppercase;
        letter-spacing: 1px;
        padding: 20px 20px 8px 20px;
        margin: 0;
    }

    .cm-search-result-item,
    .cm-search-result-item:visited,
    .cm-search-result-item:hover,
    .cm-search-result-item:active {
        display: flex !important;
        align-items: center !important;
        padding: 22px 20px !important;
        border-bottom: 1px solid #222 !important;
        background: #000 !important;
        color: #fff !important;
        text-decoration: none !important;
        font-size: 17px !important;
        font-weight: 400 !important;
        font-family: inherit !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .cm-search-empty,
    .cm-search-loading {
        color: #666 !important;
        font-size: 15px !important;
        padding: 22px 20px;
        display: block;
        border-bottom: 1px solid #222;
    }
}

/* Desktop: hide Where to Buy from desktop menu only */
@media (min-width: 768px) {
    .elementor-nav-menu--main .elementor-nav-menu>li:has(> a[href*="where-to-buy"]) {
        display: none !important;
    }
}


/* ===== TABLET NAVBAR (768px–1024px) ===== */
@media (min-width: 768px) and (max-width: 1024px) {

    /* body.cm-menu-open .chapmans-navbar {
        background-color: #000 !important;
        box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
    } */

    body.cm-menu-open {
        overflow: hidden;
    }

    body.cm-menu-open #cm-overlay {
        display: block !important;
    }

    body.cm-menu-open .elementor-nav-menu--dropdown,
    body.cm-menu-open .elementor-nav-menu__container.elementor-nav-menu--dropdown {
        display: none !important;
    }

    .elementor-menu-toggle {
        z-index: 1000000;
        position: relative;
    }

    #cm-overlay {
        position: fixed !important;
        top: var(--cm-overlay-top, 0px) !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: none !important;
        background: #000 !important;
        overflow: hidden !important;
        z-index: 999999 !important;
        display: none;
    }

    .cm-panel {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        max-width: 640px !important;
        /* cap width on wider tablets */
        margin: 0 auto !important;
        /* centre the panel */
        height: 100% !important;
        box-sizing: border-box !important;
        padding-bottom: 110px !important;
        /* taller lang bar clearance */
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background: #000 !important;
        transform: translateX(100%);
        transition: transform .3s cubic-bezier(.4, 0, .2, 1);
    }

    .cm-panel.cm-active {
        transform: translateX(0);
    }

    #cm-panel-main {
        transform: translateX(0);
    }

    .cm-nav-item,
    .cm-view-all,
    .cm-acc-header,
    .cm-simple-link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 26px 28px;
        /* more generous tablet padding */
        border-bottom: 1px solid #222;
        background: #000;
        color: #fff !important;
        text-decoration: none;
        font-size: 19px !important;
        /* slightly larger than mobile */
        font-weight: 400;
        letter-spacing: 0.2px;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .cm-nav-item,
    .cm-nav-item:visited,
    .cm-nav-item:hover,
    .cm-nav-item:active,
    .cm-view-all,
    .cm-view-all:visited,
    .cm-view-all:hover,
    .cm-view-all:active,
    .cm-simple-link,
    .cm-simple-link:visited,
    .cm-simple-link:hover,
    .cm-simple-link:active {
        color: #fff !important;
    }

    .cm-subheader {
        display: flex;
        align-items: center;
        padding: 22px 28px;
        border-bottom: 1px solid #222;
        background: #000 !important;
    }

    .cm-subheader h2 {
        flex: 1;
        text-align: center;
        font-family: inherit !important;
        font-size: 22px !important;
        font-weight: 600 !important;
        letter-spacing: 0.2px !important;
        line-height: 1.2 !important;
        color: #fff !important;
        margin: 0;
    }

    .cm-btn:not(.cm-lang-btn),
    .cm-nav-item span,
    .cm-acc-header span,
    .cm-subheader .cm-btn:not(.cm-lang-btn) {
        background: transparent !important;
        color: #fff !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        width: 20px !important;
        /* slightly larger hit area */
        height: 20px !important;
        min-width: 20px !important;
        min-height: 20px !important;
        padding: 0 !important;
        font-size: 0 !important;
        line-height: 1 !important;
        cursor: pointer;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-family: inherit !important;
        flex-shrink: 0 !important;
        position: relative;
    }

    .cm-nav-item span::before {
        content: "";
        display: block;
        width: 16px;
        height: 16px;
        background-color: #fff;
        -webkit-mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: center;
        mask-position: center;
        -webkit-mask-size: contain;
        mask-size: contain;
        transform: rotate(-90deg);
    }

    .cm-btn:not(.cm-lang-btn)::before {
        content: "";
        display: block;
        width: 16px;
        height: 16px;
        background-color: #fff;
        -webkit-mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: center;
        mask-position: center;
        -webkit-mask-size: contain;
        mask-size: contain;
        transform: rotate(90deg);
    }

    .cm-acc-header {
        cursor: pointer;
    }

    .cm-acc-header span::before {
        content: "";
        display: block;
        width: 16px;
        height: 16px;
        background-color: #fff;
        -webkit-mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        mask-image: url("https://staging.chapmans.ca/wp-content/uploads/2026/04/Vector.svg");
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: center;
        mask-position: center;
        -webkit-mask-size: contain;
        mask-size: contain;
        transition: transform 0.2s ease;
        transform: rotate(0deg);
    }

    .cm-acc-header.is-open span::before {
        transform: rotate(180deg);
    }

    .cm-acc-body {
        display: none;
        background: #000;
    }

    .cm-acc-body.open {
        display: block;
    }

    .cm-acc-link {
        display: block !important;
        padding: 18px 28px 18px 56px;
        /* deeper indent on tablet */
        color: #fff !important;
        text-decoration: none;
        font-size: 17px !important;
        font-weight: 400;
        background: #000;
        border-bottom: none;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .cm-acc-link,
    .cm-acc-link:visited,
    .cm-acc-link:hover,
    .cm-acc-link:active {
        color: #fff !important;
    }

    .cm-lang {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 28px 28px;
        /* taller on tablet */
        border-top: 1px solid #2a2a2a;
        background: #000;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100vw;
        box-sizing: border-box;
        z-index: 1000000;
    }

    .cm-lang span {
        color: #bbb !important;
        font-size: 16px;
    }

    .cm-lang-switch {
        display: flex;
        align-items: center;
        background: #1a1a1a;
        border-radius: 12px;
        padding: 4px;
    }

    .cm-lang .cm-lang-btn,
    .cm-lang .cm-lang-btn:visited,
    .cm-lang .cm-lang-btn:hover,
    .cm-lang .cm-lang-btn:active {
        padding: 8px 34px !important;
        /* bigger touch target */
        border: none !important;
        background: transparent !important;
        color: #888 !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        margin: 0 !important;
        width: auto !important;
        height: auto !important;
        min-width: unset !important;
        min-height: unset !important;
        box-shadow: none !important;
        border-radius: 8px !important;
    }

    .cm-lang .cm-lang-btn.active,
    .cm-lang .cm-lang-btn.active:visited,
    .cm-lang .cm-lang-btn.active:hover,
    .cm-lang .cm-lang-btn.active:active {
        background: #fff !important;
        color: #000 !important;
    }

    /* ACTIVE LINKS = PINK */
    .cm-active-link,
    .cm-active-link:visited,
    .cm-active-link:hover,
    .cm-active-link:active,
    .cm-active-link-parent,
    .cm-active-link-parent:visited,
    .cm-active-link-parent:hover,
    .cm-active-link-parent:active,
    .cm-simple-link.cm-active-link,
    .cm-nav-item.cm-active-link,
    .cm-view-all.cm-active-link,
    .cm-acc-link.cm-active-link,
    .cm-acc-header.cm-active-link,
    .cm-acc-header.cm-active-link:hover {
        color: var(--e-global-color-primary) !important;
        font-weight: 600 !important;
    }

    /* ===== SEARCH PANEL ===== */
    #cm-panel-search {
        padding-bottom: 0 !important;
    }

    .cm-search-input-row {
        padding: 20px 28px;
        border-bottom: 1px solid #222;
        background: #000;
    }

    .cm-search-input {
        width: 100% !important;
        box-sizing: border-box !important;
        background: #1a1a1a !important;
        border: none !important;
        border-radius: 10px !important;
        color: #fff !important;
        font-size: 17px !important;
        font-family: inherit !important;
        padding: 15px 18px !important;
        outline: none !important;
    }

    .cm-search-input::placeholder {
        color: #555 !important;
    }

    .cm-search-section-label {
        color: #666 !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        text-transform: uppercase;
        letter-spacing: 1px;
        padding: 22px 28px 10px 28px;
        margin: 0;
    }

    .cm-search-result-item,
    .cm-search-result-item:visited,
    .cm-search-result-item:hover,
    .cm-search-result-item:active {
        display: flex !important;
        align-items: center !important;
        padding: 24px 28px !important;
        border-bottom: 1px solid #222 !important;
        background: #000 !important;
        color: #fff !important;
        text-decoration: none !important;
        font-size: 18px !important;
        font-weight: 400 !important;
        font-family: inherit !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .cm-search-empty,
    .cm-search-loading {
        color: #666 !important;
        font-size: 16px !important;
        padding: 24px 28px;
        display: block;
        border-bottom: 1px solid #222;
    }

    .cm-panel .cm-view-all:nth-of-type(2) {
        display: none !important;
    }

    /* Hide Where to Buy from desktop/tablet nav menu */
    .elementor-nav-menu--main .elementor-nav-menu>li:has(> a[href*="where-to-buy"]) {
        display: none !important;
    }
}


/* Tablet */

@media (min-width: 768px) and (max-width: 1024px) {

    /* Fix sub-panels bleeding in from right */
    #cm-overlay {
        overflow: hidden !important;
    }

    .cm-panel:not(.cm-active):not(#cm-panel-main) {
        transform: translateX(100%) !important;
        visibility: hidden;
    }

    /* Fix main panel not taking full overlay width */
    #cm-panel-main {
        transform: translateX(0) !important;
    }
}


/* Tablet only */
@media (min-width: 768px) and (max-width: 1024px) {

    /* Search widget */
    .chapman-navbar-search-icon {
        margin-right: -12px !important;
    }

    /* Search icon wrapper */
    .chapman-navbar-search-icon .elementor-icon-wrapper {
        margin-right: 0 !important;
        padding-right: 0 !important;
    }

    /* Hamburger */
    .elementor-menu-toggle {
        margin-left: -12px !important;
        padding-left: 0 !important;
    }

}

@media (min-width: 768px) and (max-width: 1024px) {
    .cm-lang {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 28px 28px;
        border-top: 1px solid #2a2a2a;
        background: #000;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100vw !important;
        box-sizing: border-box;
        z-index: 1000000;
    }
}

/* Search header without back button */
.cm-search-header {
    justify-content: center;
}

.cm-search-header h2 {
    width: 100%;
    text-align: center;
}

/* Search icon becomes X only when search overlay is open */
.chapman-navbar-search-icon.cm-search-active svg {
    display: none;
}

.chapman-navbar-search-icon.cm-search-active .elementor-icon::before {
    content: "×";
    color: #fff;
    font-size: 40px;
    line-height: 1;
    font-weight: 300;
}

.chapman-navbar-search-icon.cm-search-active .elementor-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.chapman-navbar-search-icon.cm-search-active .elementor-icon::before {
    transform: translateY(-8px);
    display: block;
}

/* Remove shortcode default styling */
#cm-search-body .trending-container {
    margin: 0 !important;
    padding: 0 !important;
}

/* Hide duplicate shortcode heading since panel already has one */
#cm-search-body .trending-title {
    display: none !important;
}

/* Reset list */
#cm-search-body .trending-searches {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Match your existing search links */
#cm-search-body .trending-searches li {
    margin: 0 !important;
    padding: 0 !important;
}

/* Make shortcode links identical to .cm-simple-link */
#cm-search-body .trending-searches li a {
    display: block !important;
    width: 100% !important;
    color: rgba(255, 255, 255, 0.7) !important;
    text-decoration: none !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    padding: 10px 0 !important;
    transition: opacity 0.2s ease !important;
}

/* Hover */
#cm-search-body .trending-searches li a:hover {
    opacity: 0.7 !important;
}

/* First item top border if needed */
#cm-search-body .trending-searches li:first-child a {
    border-top: 0 !important;
}

/* Mobile */
@media (max-width: 767px) {
    #cm-search-body .trending-searches li a {
        font-size: 18px !important;
        padding: 10px 0 !important;
    }
}

#cm-search-body .trending-searches li a {
    padding-left: 36px !important;
}

@media (max-width: 767px) {
    #cm-search-body .trending-searches li a {
        padding-left: 24px !important;
    }
}

/* Hide original shortcode widget everywhere on page */
.cm-trending-shortcode {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

#cm-live-search-results {
    padding: 0 36px;
}

.cm-live-result {
    display: block;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    padding: 22px 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.cm-search-loading,
.cm-search-empty {
    color: #777;
    font-size: 18px;
    padding: 22px 0;
}

.cm-search-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 0;
    color: #fff;
    font-size: 16px;
}

.cm-search-pagination button {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #fff;
    border-radius: 30px;
    padding: 10px 18px;
    cursor: pointer;
}

.cm-search-pagination button:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

/* Trending heading */
#cm-search-body .cm-search-section-label {
    font-family: var(--e-global-typography-primary-font-family) !important;
    font-size: 22px !important;
    line-height: 1.2 !important;
    margin-bottom: 18px !important;
    letter-spacing: 1px !important;
    color: #ffffff !important;
    text-transform: capitalize !important;
}

/* Remove extra top spacing from shortcode list */
#cm-search-body .trending-searches {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Reduce first item top gap */
#cm-search-body .trending-searches li:first-child a {
    padding-top: 10px !important;
}

@media (max-width: 767px) {
    #cm-search-body .cm-search-section-label {

        font-size: 20px !important;
        margin-bottom: 14px !important;
    }

    #cm-search-body .trending-searches li:first-child a {
        padding-top: 14px !important;
    }
}



/* =========================================
   FIX MOBILE/TABLET MENU OVERLAY
   1. No space above navbar
   2. Products visible
   3. Sub panels clickable
========================================= */

@media (max-width: 1024px) {

    /* Keep navbar on top */
    .chapmans-navbar,
    .chapmans-navbar.elementor-sticky,
    .chapmans-navbar.elementor-sticky--active {
        position: fixed !important;
        top: 0 !important;
        z-index: 1000005 !important;
    }

    /* Overlay slides behind navbar */
    #cm-overlay {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;

        width: 100vw !important;
        height: 100vh !important;

        background: #000 !important;
        overflow: hidden !important;

        z-index: 1000000 !important;

        display: block !important;

        transform: translateX(100%) !important;
        transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1) !important;

        border-radius: 0 !important;
    }

    body.cm-menu-open #cm-overlay {
        transform: translateX(0) !important;
    }

    /* Panel base */
    #cm-overlay .cm-panel {
        position: absolute !important;
        inset: 0 !important;

        width: 100vw !important;
        max-width: 100vw !important;
        height: 100vh !important;

        background: #000 !important;

        box-sizing: border-box !important;

        /* This pushes Products below navbar */
        padding-top: var(--cm-overlay-top, 118px) !important;
        padding-bottom: 95px !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        transform: translateX(100%) !important;
        transition: transform 0.35s ease !important;

        opacity: 0;
        pointer-events: none;
        z-index: 1;

        border-radius: 0 !important;
    }

    /* Active panel only is clickable */
    #cm-overlay .cm-panel.cm-active {
        transform: translateX(0) !important;
        opacity: 1;
        pointer-events: auto;
        z-index: 5;
    }

    /* Panel moved left */
    #cm-overlay .cm-panel.cm-left {
        transform: translateX(-100%) !important;
        opacity: 1;
        pointer-events: none;
        z-index: 1;
    }

    /* Hide Elementor default dropdown */
    body.cm-menu-open .elementor-nav-menu--dropdown,
    body.cm-menu-open .elementor-nav-menu__container.elementor-nav-menu--dropdown {
        display: none !important;
    }

    /* Language bar */
    .cm-lang {
        z-index: 10 !important;
    }
}

/* =========================================
   FINAL FIX: SEARCH PANEL ALIGNMENT
========================================= */

@media (max-width: 1024px) {

    /* Search panel full screen, no center/max-width rules */
    #cm-overlay #cm-panel-search {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;

        width: 100vw !important;
        max-width: 100vw !important;
        min-width: 100vw !important;

        height: 100vh !important;

        margin: 0 !important;
        padding-top: var(--cm-overlay-top, 118px) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-bottom: 40px !important;

        background: #000 !important;

        transform: translateX(0) !important;
        box-sizing: border-box !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    /* Hide search title/header row */
    #cm-panel-search .cm-search-header {
        display: none !important;
    }

    /* Search content wrapper */
    #cm-panel-search .cm-search-box {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        padding: 24px 20px 40px !important;

        box-sizing: border-box !important;
        background: #000 !important;
        transform: none !important;
    }

    /* Form must not overflow */
    #cm-panel-search form {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        transform: none !important;
    }

    /* Input full width inside panel */
    #cm-panel-search input[type="search"] {
        display: block !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        height: 56px !important;

        margin: 0 !important;
        padding: 0 18px !important;

        box-sizing: border-box !important;

        background: #1a1a1a !important;
        color: #fff !important;

        border: none !important;
        border-radius: 12px !important;

        font-size: 16px !important;
        outline: none !important;

        transform: none !important;
    }

    #cm-panel-search input[type="search"]::placeholder {
        color: rgba(255, 255, 255, 0.35) !important;
    }

    /* Trending */
    #cm-panel-search .cm-trending {
        width: 100% !important;
        margin: 32px 0 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    #cm-panel-search .cm-trending h3 {
        color: #fff !important;
        font-size: 22px !important;
        margin: 0 0 18px !important; 
    }

    #cm-panel-search .cm-trending a {
        display: block !important;
        width: 100% !important;

        color: #fff !important;
        text-decoration: none !important;

        font-size: 20px !important;
        padding: 18px 0 !important;

        border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
        box-sizing: border-box !important;
    }
}

  
@media (max-width: 767px) {
    
    .chapmans-global-search {
        height: 100% !important;
    }
    
    /* Ensures the inner wrapper fills the height too */
    .chapmans-global-search .dialog-lightbox-widget-content {
        height: 100% !important;
        width: 100% !important;
    }

    .chapmans-global-search-modal .e-loop-item {
    padding: 0px 0px 20px 0px!important;
    }

    .elementor-31077 .e-search-input, .elementor-41807 .e-search-input{
        width: 95% !important;;
        min-width: 95%!important;
    }
    .e-search-results{
        overflow: hidden!important;
    }
    .chapmans-global-search-modal span.page-numbers.prev{
    margin: 0px !important;
    }
}

.chapmans-global-search-modal .e-loop-item {
    border-bottom: 1px solid rgb(255, 255, 255, 0.19);
    padding: 20px 0px;
}

.chapmans-global-search-modal .search-result-title p {
    padding-bottom: 0px !important;
    margin-bottom: 0px !important;
}


.chapmans-global-search-modal span.prev.page-numbers.inactive,
.chapmans-global-search-modal span.next.page-numbers.inactive,
.chapmans-global-search-modal span.page-numbers.current {
    font-size: 18px;
}

li.lang-item.current-lang {
    background: #fff !important;
    color: #000 !important;
}

div#dynamic-pll-switcher li {
    padding: 6px 28px !important;
    border: none !important;
    background: transparent;
    color: #888 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    min-width: unset !important;
    min-height: unset !important;
    box-shadow: none !important;
    border-radius: 8px !important;
    list-style: none; 
    text-transform: uppercase!important;
}

div#dynamic-pll-switcher li a{
    color: #888;
}
div#dynamic-pll-switcher li.lang-item.current-lang a {
    color: #000 !important;
}

ul.dynamic-pll-switcher {
    padding-inline-start: 0px;
    display: flex;
}