/* =========================================================
   SMILE STUDIO
   MOBILE SLIDE MENU
   Design system matched to Divi site
   ========================================================= */


/* =========================================================
   01. DESIGN TOKENS
   ========================================================= */

:root {

    --smile-red: #CF000F;
    --smile-red-dark: #D30B17;

    --smile-black: #17181A;
    --smile-body: #363636;

    --smile-white: #FFFFFF;
    --smile-warm: #F8F7F5;

    --smile-border: rgba(23, 24, 26, 0.14);

    --smile-font-body: "Manrope", sans-serif;
    --smile-font-heading: "Open Sans", sans-serif;

}


/* =========================================================
   02. MAIN WRAPPER
   ========================================================= */

.aurexo-mobile-menu {

    position: relative;

    z-index: 999999;

    font-family: var(--smile-font-body);

}


/* =========================================================
   03. HAMBURGER
   ========================================================= */

.aurexo-mobile-menu-toggle {

    width: 48px !important;
    height: 48px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;

    background: transparent !important;

    display: flex !important;

    flex-direction: column !important;

    justify-content: center !important;

    align-items: flex-end !important;

    gap: 6px !important;

    cursor: pointer !important;

    position: relative !important;

    z-index: 1000001 !important;

    box-shadow: none !important;

    appearance: none !important;

    -webkit-appearance: none !important;

}


.aurexo-mobile-menu-toggle span {

    display: block !important;

    width: 29px !important;

    height: 2px !important;

    margin: 0 !important;

    padding: 0 !important;

    background: var(--smile-black) !important;

    pointer-events: none !important;

    transition:
        transform 0.3s ease,
        opacity 0.3s ease;

}


/* Hide hamburger while drawer is open */

.aurexo-mobile-menu.is-open
.aurexo-mobile-menu-toggle {

    opacity: 0 !important;

    visibility: hidden !important;

    pointer-events: none !important;

}


/* =========================================================
   04. BACKDROP
   ========================================================= */

.aurexo-mobile-menu-overlay {

    position: fixed;

    inset: 0;

    width: 100%;
    height: 100%;

    background: rgba(23, 24, 26, 0.48);

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        opacity 0.35s ease,
        visibility 0.35s ease;

    z-index: 999998;

}


/* Open */

.aurexo-mobile-menu.is-open
.aurexo-mobile-menu-overlay {

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

}


/* =========================================================
   05. SLIDE PANEL
   ========================================================= */

.aurexo-mobile-menu-panel {

    position: fixed;

    top: 0;
    right: 0;

    width: min(420px, 90vw);

    height: 100vh;
    height: 100dvh;

    background: var(--smile-white);

    transform: translateX(100%);

    transition:
        transform 0.45s cubic-bezier(
            0.77,
            0,
            0.18,
            1
        );

    z-index: 999999;

    display: flex;

    flex-direction: column;

    overflow: hidden;

    box-shadow:
        -18px 0 50px rgba(0, 0, 0, 0.10);

}


/* Open */

.aurexo-mobile-menu.is-open
.aurexo-mobile-menu-panel {

    transform: translateX(0);

}


/* =========================================================
   06. PANEL HEADER
   ========================================================= */

.aurexo-mobile-menu-header {

    height: 92px;

    min-height: 92px;

    padding: 0 38px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    background: var(--smile-white);

    border-bottom: 1px solid var(--smile-border);

}


/* Menu heading */

.aurexo-mobile-menu-title {

    margin: 0 !important;

    padding: 0 !important;

    font-family: var(--smile-font-heading) !important;

    font-size: 28px !important;

    line-height: 1 !important;

    font-weight: 600 !important;

    letter-spacing: -0.6px;

    color: var(--smile-black) !important;

}


/* =========================================================
   07. CLOSE BUTTON
   ========================================================= */

.aurexo-mobile-menu-close {

    width: 44px !important;
    height: 44px !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;

    background: transparent !important;

    position: relative !important;

    display: block !important;

    cursor: pointer !important;

    box-shadow: none !important;

    appearance: none !important;

    -webkit-appearance: none !important;

}


.aurexo-mobile-menu-close:hover,
.aurexo-mobile-menu-close:focus,
.aurexo-mobile-menu-close:active {

    border: 0 !important;

    background: transparent !important;

    box-shadow: none !important;

    outline: none !important;

}


/* X lines */

.aurexo-mobile-menu-close span {

    position: absolute;

    left: 7px;
    top: 21px;

    width: 30px;
    height: 2px;

    display: block;

    background: var(--smile-black);

}


/* First diagonal */

.aurexo-mobile-menu-close span:first-child {

    transform: rotate(45deg);

}


/* Second diagonal */

.aurexo-mobile-menu-close span:last-child {

    transform: rotate(-45deg);

}


/* =========================================================
   08. NAVIGATION AREA
   ========================================================= */

.aurexo-mobile-navigation {

    flex: 1;

    min-height: 0;

    overflow-y: auto;

    overflow-x: hidden;

    padding: 6px 38px 10px;

    -webkit-overflow-scrolling: touch;

    scrollbar-width: thin;

}


/* Webkit scrollbar */

.aurexo-mobile-navigation::-webkit-scrollbar {

    width: 4px;

}


.aurexo-mobile-navigation::-webkit-scrollbar-track {

    background: transparent;

}


.aurexo-mobile-navigation::-webkit-scrollbar-thumb {

    background: rgba(23, 24, 26, 0.18);

}


/* =========================================================
   09. WORDPRESS RESET
   ========================================================= */

.aurexo-mobile-menu-list,
.aurexo-mobile-menu-list ul {

    list-style: none !important;

    margin: 0 !important;

    padding: 0 !important;

}


/* Remove Divi/WordPress pseudo bullets */

.aurexo-mobile-menu-list li::before,
.aurexo-mobile-menu-list li::after {

    display: none !important;

    content: none !important;

}


/* =========================================================
   10. TOP LEVEL ITEMS
   ========================================================= */

.aurexo-mobile-menu-list > li {

    width: 100%;

    margin: 0 !important;

    padding: 0 !important;

    border-bottom: 1px solid var(--smile-border);

}


/* =========================================================
   11. ITEM WRAPPER
   ========================================================= */

.aurexo-mobile-menu-item-wrap {

    width: 100%;

    min-height: 64px;

    display: flex;

    align-items: center;

}


/* =========================================================
   12. MENU LINKS
   ========================================================= */

.aurexo-mobile-menu-link {

    flex: 1;

    min-width: 0;

    min-height: 64px;

    padding: 12px 5px !important;

    margin: 0 !important;

    display: flex;

    align-items: center;

    font-family: var(--smile-font-body) !important;

    font-size: 17px !important;

    line-height: 1.35 !important;

    font-weight: 500 !important;

    letter-spacing: -0.15px;

    color: var(--smile-black) !important;

    text-decoration: none !important;

    background: transparent !important;

    border: 0 !important;

}


/* Hover */

.aurexo-mobile-menu-link:hover {

    color: var(--smile-red) !important;

    background: transparent !important;

}


/* Active */

.aurexo-mobile-menu-link:active {

    color: var(--smile-red) !important;

}


/* =========================================================
   13. SUBMENU INDICATOR
   ========================================================= */

.aurexo-submenu-toggle {

    width: 48px !important;

    height: 48px !important;

    flex: 0 0 48px !important;

    margin: 0 !important;

    padding: 0 !important;

    border: 0 !important;

    background: transparent !important;

    position: relative !important;

    cursor: pointer !important;

    box-shadow: none !important;

    appearance: none !important;

    -webkit-appearance: none !important;

}


.aurexo-submenu-toggle:hover,
.aurexo-submenu-toggle:focus {

    background: transparent !important;

    box-shadow: none !important;

    outline: none !important;

}


/* Chevron pieces */

.aurexo-submenu-toggle span {

    position: absolute;

    top: 23px;

    width: 10px;

    height: 2px;

    background: var(--smile-black);

    display: block;

    transition:
        transform 0.3s ease;

}


.aurexo-submenu-toggle span:first-child {

    left: 14px;

    transform: rotate(45deg);

}


.aurexo-submenu-toggle span:last-child {

    left: 20px;

    transform: rotate(-45deg);

}


/* =========================================================
   14. SUBMENU
   ========================================================= */

.aurexo-mobile-menu-list .sub-menu {

    max-height: 0;

    overflow: hidden;

    opacity: 0;

    padding-left: 16px !important;

    transition:
        max-height 0.45s ease,
        opacity 0.3s ease;

}


/* Expanded */

.aurexo-mobile-menu-list
li.submenu-open
> .sub-menu {

    max-height: 1500px;

    opacity: 1;

}


/* =========================================================
   15. SUBMENU ITEMS
   ========================================================= */

.aurexo-mobile-menu-list
.sub-menu
li {

    border-top: 1px solid rgba(
        23,
        24,
        26,
        0.08
    );

}


/* Submenu links */

.aurexo-mobile-menu-list
.sub-menu
.aurexo-mobile-menu-link {

    min-height: 48px;

    padding: 10px 5px !important;

    font-family: var(--smile-font-body) !important;

    font-size: 15px !important;

    font-weight: 400 !important;

    color: var(--smile-body) !important;

}


/* Submenu hover */

.aurexo-mobile-menu-list
.sub-menu
.aurexo-mobile-menu-link:hover {

    color: var(--smile-red) !important;

}


/* =========================================================
   16. CHEVRON OPEN STATE
   ========================================================= */

.aurexo-mobile-menu-list
li.submenu-open
> .aurexo-mobile-menu-item-wrap
.aurexo-submenu-toggle
span:first-child {

    transform: rotate(-45deg);

}


.aurexo-mobile-menu-list
li.submenu-open
> .aurexo-mobile-menu-item-wrap
.aurexo-submenu-toggle
span:last-child {

    transform: rotate(45deg);

}


/* =========================================================
   17. CTA AREA
   ========================================================= */

.aurexo-mobile-menu-actions {

    flex-shrink: 0;

    padding: 18px 38px 26px;

    background: var(--smile-white);

    border-top: 1px solid var(--smile-border);

    display: flex;

    flex-direction: column;

    gap: 10px;

}


/* =========================================================
   18. CTA BUTTON BASE
   ========================================================= */

.aurexo-mobile-book-btn,
.aurexo-mobile-whatsapp-btn {

    width: 100%;

    min-height: 48px;

    height: 48px;

    padding: 10px 24px;

    display: flex;

    align-items: center;

    justify-content: center;

    box-sizing: border-box;

    font-family: var(--smile-font-body) !important;

    font-size: 14px !important;

    line-height: 1 !important;

    font-weight: 500 !important;

    text-decoration: none !important;

    border-radius: 5px !important;

    transition:
        background-color 0.25s ease,
        border-color 0.25s ease,
        color 0.25s ease,
        transform 0.25s ease;

}


/* =========================================================
   19. BOOK APPOINTMENT
   ========================================================= */

.aurexo-mobile-book-btn {

    color: var(--smile-white) !important;

    background: var(--smile-red) !important;

    border: 1px solid var(--smile-red) !important;

}


/* Hover */

.aurexo-mobile-book-btn:hover {

    color: var(--smile-white) !important;

    background: var(--smile-red-dark) !important;

    border-color: var(--smile-red-dark) !important;

    transform: translateY(-1px);

}


/* =========================================================
   20. WHATSAPP
   ========================================================= */

.aurexo-mobile-whatsapp-btn {

    color: var(--smile-body) !important;

    background: var(--smile-white) !important;

    border: 1px solid var(--smile-border) !important;

}


/* Hover */

.aurexo-mobile-whatsapp-btn:hover {

    color: var(--smile-red) !important;

    background: var(--smile-white) !important;

    border-color: var(--smile-red) !important;

    transform: translateY(-1px);

}


/* =========================================================
   21. BODY LOCK
   ========================================================= */

body.aurexo-menu-open {

    overflow: hidden;

}


/* =========================================================
   22. TABLET
   ========================================================= */

@media (max-width: 980px) {

    .aurexo-mobile-menu-panel {

        width: min(400px, 88vw);

    }

}


/* =========================================================
   23. MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .aurexo-mobile-menu-panel {

        width: min(390px, 90vw);

    }


    .aurexo-mobile-menu-header {

        height: 82px;

        min-height: 82px;

        padding-left: 28px;
        padding-right: 28px;

    }


    .aurexo-mobile-menu-title {

        font-size: 26px !important;

    }


    .aurexo-mobile-navigation {

        padding-left: 28px;
        padding-right: 28px;

    }


    .aurexo-mobile-menu-actions {

        padding-left: 28px;
        padding-right: 28px;

    }

}


/* =========================================================
   24. SMALL PHONES
   ========================================================= */

@media (max-width: 480px) {

    .aurexo-mobile-menu-panel {

        width: 92vw;

    }


    .aurexo-mobile-menu-header {

        height: 76px;

        min-height: 76px;

        padding-left: 22px;
        padding-right: 22px;

    }


    .aurexo-mobile-menu-title {

        font-size: 24px !important;

    }


    .aurexo-mobile-navigation {

        padding-left: 22px;
        padding-right: 22px;

    }


    .aurexo-mobile-menu-item-wrap {

        min-height: 60px;

    }


    .aurexo-mobile-menu-link {

        min-height: 60px;

        font-size: 16px !important;

    }


    .aurexo-mobile-menu-actions {

        padding: 16px 22px 20px;

    }


    .aurexo-mobile-book-btn,
    .aurexo-mobile-whatsapp-btn {

        min-height: 46px;

        height: 46px;

        font-size: 13px !important;

    }

}


/* =========================================================
   25. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .aurexo-mobile-menu-panel,
    .aurexo-mobile-menu-overlay,
    .aurexo-mobile-menu-link,
    .aurexo-submenu-toggle span,
    .aurexo-mobile-book-btn,
    .aurexo-mobile-whatsapp-btn {

        transition: none !important;

    }

}


/* =========================================================
   SMILE STUDIO MOBILE + TABLET MENU
   ========================================================= */

/* Hide custom mobile menu on desktop */
@media (min-width: 981px) {

    .aurexo-mobile-menu {
        display: none !important;
    }

}


/* Show custom menu on tablet + mobile */
@media (max-width: 980px) {

    .aurexo-mobile-menu {
        display: block !important;
    }

}


/* =========================================================
   TABLET
   768px - 980px
   ========================================================= */

@media (min-width: 768px) and (max-width: 980px) {

    .aurexo-mobile-menu-panel {

        width: min(440px, 55vw);

    }

    .aurexo-mobile-menu-header {

        height: 92px;
        min-height: 92px;

        padding-left: 36px;
        padding-right: 36px;

    }

    .aurexo-mobile-menu-title {

        font-size: 29px !important;

    }

    .aurexo-mobile-navigation {

        padding-left: 36px;
        padding-right: 36px;

    }

    .aurexo-mobile-menu-link {

        min-height: 66px;

        font-size: 18px !important;

    }

    .aurexo-mobile-menu-item-wrap {

        min-height: 66px;

    }

    .aurexo-mobile-menu-actions {

        padding-left: 36px;
        padding-right: 36px;

        padding-bottom: 28px;

    }

    .aurexo-mobile-book-btn,
    .aurexo-mobile-whatsapp-btn {

        height: 50px;

        min-height: 50px;

        font-size: 14px !important;

    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .aurexo-mobile-menu-panel {

        width: min(390px, 92vw);

    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

    .aurexo-mobile-menu-panel {

        width: 92vw;

    }

}