:root {
    --spanish-gray: hsl(0, 0%, 60%);
    --sonic-silver: hsl(0, 0%, 47%);
    --eerie-black: hsl(0, 0%, 13%);
    --main-col: #A6587C;
    --sandy-brown: hsl(29, 90%, 65%);
    --main-col-dark: #7D405C;
    --ocean-green: hsl(152, 51%, 52%);
    --davys-gray: hsl(0, 0%, 33%);
    --cultured: hsl(0, 0%, 93%);
    --white: hsl(0, 100%, 100%);
    --onyx: hsl(0, 0%, 27%);


    --fs-1: 1.563rem;
    --fs-2: 1.375rem;
    --fs-3: 1.25rem;
    --fs-4: 1.125rem;
    --fs-5: 1rem;
    --fs-6: 0.938rem;
    --fs-7: 0.875rem;
    --fs-8: 0.813rem;
    --fs-9: 0.75rem;
    --fs-10: 0.688rem;
    --fs-11: 0.625rem;

    --weight-300: 300;
    --weight-400: 400;
    --weight-500: 500;
    --weight-600: 600;
    --weight-700: 700;


    --border-radius-md: 10px;
    --border-radius-sm: 5px;


    --transition-timing: 0.2s ease;

}

/* ---------------- reset ---------------- */

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

a {
    text-decoration: none;
}

li {
    list-style: none;
}

button {
    background: none;
    font: inherit;
    border: none;
    cursor: pointer;
}

img,
ion-icon,
button,
a {
    display: block;
}

span {
    display: inline-block;
}

html {
    font-family: "Poppins", sans-serif;
    -ms-scroll-chaining: none;
    overscroll-behavior: contain;
}

input {
    display: block;
    width: 100%;
    font: inherit;
}

input::-webkit-input-placeholder {
    font: inherit;
}

input::-moz-placeholder {
    font: inherit;
}

input:-ms-input-placeholder {
    font: inherit;
}

input::-ms-input-placeholder {
    font: inherit;
}

input::placeholder {
    font: inherit;
}

body {
    background: var(--white);
}

/* ----------------- scrollbar style ----------------- */


body::-webkit-scrollbar {
    width: 15px;
}

body::-webkit-scrollbar-track {
    background: var(--white);
    border-left: 1px solid var(--cultured);
}

body::-webkit-scrollbar-thumb {
    background: hsl(0, 0%, 80%);
    border: 3px solid var(--white);
    -webkit-border-radius: 10px;
    border-radius: 10px;
}

body::-webkit-scrollbar-thumb:hover {
    background: hsl(0, 0%, 70%);
}

/* ---------------- common css ---------------- */


.container {
    padding: 0 15px;
}

.has-scrollbar {
    padding-bottom: 5px;
}

.has-scrollbar::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}

.has-scrollbar::-webkit-scrollbar-thumb {
    background: transparent;
    border: 3px solid var(--white);
    -webkit-border-radius: 20px;
    border-radius: 20px;
}

.has-scrollbar:hover::-webkit-scrollbar-thumb {
    background: hsl(0, 0%, 90%);
}

.has-scrollbar::-webkit-scrollbar-thumb:hover {
    background: hsl(0, 0%, 80%);
}

.title {
    color: var(--eerie-black);
    font-size: var(--fs-4);
    font-weight: var(--weight-600);
    letter-spacing: 0.4px;
    text-transform: capitalize;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--cultured);
    margin-bottom: 30px;
}

.sub-heading {
    font-size: var(--fs-2);
    color: var(--main-col-dark);
    font-weight: var(--weight-600);
    letter-spacing: 0.4px;
    text-transform: capitalize;
    padding-bottom: 10px;
}

.sub-title {
    font-size: var(--fs-5);
    color: var(--davys-gray);
    font-weight: var(--weight-600);
    letter-spacing: 0.4px;
    padding-bottom: 10px;
}

/* --------------------------- overlay --------------------------- */

 .overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: hsla(0, 0%, 0%, 0.5);
    opacity: 0;
    pointer-events: none;
    z-index: 15;
    -webkit-transition: 0.5s ease;
    -o-transition: 0.5s ease;
    transition: 0.5s ease;
  }
  
  .overlay.active {
    opacity: 1;
    pointer-events: all;
  }

/* -------------------- header & navbar -------------------- */

.header-user-actions,
.desktop-navigation-menu {
    display: none;
}

.header-main {
    padding: 20px 0;
    border-bottom: 1px solid var(--cultured);
    margin-bottom: 1rem;
}


.header-logo img {
    margin: auto;
    object-fit: contain;
    transform: scale(1.5);
}

.header-main .container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

.navigation-sec {
    position: relative;
    display: flex;
    gap: 1.5rem;
}

.ham-icon {
    display: none;
}

@media (max-width: 800px) {
    .ham-icon {
        display: block;
    }

    .navigation-sec {
        display: none;
    }
}

.navigation-sec .nav-item a {
    color: var(--davys-gray);
    transition: all var(--transition-timing);
}

.navigation-sec .nav-item a:hover {
    color: var(--onyx);
}


.search-field::-webkit-search-cancel-button {
    display: none;
}

.search-btn {
    background: var(--white);
    position: absolute;
    top: 50%;
    right: 2px;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    color: var(--onyx);
    font-size: 18px;
    padding: 8px 15px;
    -webkit-border-radius: var(--border-radius-md);
    border-radius: var(--border-radius-md);
    -webkit-transition: color var(--transition-timing);
    -o-transition: color var(--transition-timing);
    transition: color var(--transition-timing);
}

.search-btn:hover {
    color: var(--main-col);
}

.mobile-bottom-navigation {
    background: var(--white);
    position: fixed;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%;
    max-width: 500px;
    margin: auto;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 5px 0;
    -webkit-box-shadow: 0 0 10px hsla(0, 0%, 0%, 0.25);
    box-shadow: 0 0 10px hsla(0, 0%, 0%, 0.25);
    z-index: 5;
}

.mobile-bottom-navigation .action-btn {
    position: relative;
    font-size: 26px;
    color: var(--eerie-black);
    padding: 10px;
}

.mobile-bottom-navigation .count {
    background: var(--main-col-dark);
    color: var(--white);
    position: absolute;
    top: 0;
    right: 0;
    font-size: 12px;
    font-weight: var(--weight-500);
    line-height: 1;
    padding: 2px 4px;
    -webkit-border-radius: 20px;
    border-radius: 20px;
}

.mobile-navigation-menu {
    background: var(--white);
    position: fixed;
    top: 0;
    left: -100%;
    width: 100%;
    max-width: 320px;
    height: 100vh;
    padding: 20px;
    -webkit-box-shadow: 0 0 10px hsla(0, 0%, 0%, 0.1);
    box-shadow: 0 0 10px hsla(0, 0%, 0%, 0.1);
    overflow-y: scroll;
    -ms-scroll-chaining: none;
    overscroll-behavior: contain;
    visibility: hidden;
    -webkit-transition: 0.5s ease;
    -o-transition: 0.5s ease;
    transition: 0.5s ease;
    z-index: 20;
}

.mobile-navigation-menu.active {
    left: 0;
    visibility: visible;
}

.menu-top {
    padding-bottom: 15px;
    margin-bottom: 10px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    border-bottom: 2px solid var(--cultured);
}

.menu-top .menu-title {
    color: var(--main-col);
    font-size: var(--fs-4);
    font-weight: var(--weight-600);
}

.menu-close-btn {
    color: var(--eerie-black);
    font-size: 22px;
}

.menu-close-btn ion-icon {
    --ionicon-stroke-width: 50px;
}

.mobile-menu-category-list {
    margin-bottom: 30px;
}

.menu-category .accordion-menu {
    width: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

.mobile-menu-category-list .menu-category {
    border-bottom: 1px solid var(--cultured);
}

.mobile-menu-category-list .menu-title {
    color: var(--onyx);
    font-size: var(--fs-6);
    font-weight: var(--weight-500);
    padding: 12px 0;
}

.accordion-menu>div {
    font-size: 14px;
}

.accordion-menu ion-icon {
    color: var(--onyx);
    --ionicon-stroke-width: 90px;
}

.accordion-menu.active .add-icon,
.accordion-menu .remove-icon {
    display: none;
}

.accordion-menu .add-icon,
.accordion-menu.active .remove-icon {
    display: block;
}

.menu-category .submenu-category-list {
    margin-left: 10px;
}

.submenu-title {
    padding: 6px 0;
    font-size: var(--fs-6);
    color: var(--sonic-silver);
    font-weight: var(--weight-300);
}

.submenu-title:hover {
    color: var(--davys-gray);
}

.submenu-category-list {
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
    -webkit-transition: 0.5s ease-in-out;
    -o-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
}

.submenu-category-list.active {
    max-height: 148px;
    visibility: visible;
}

.menu-bottom .menu-category-list {
    margin-bottom: 20px;
}

.menu-bottom .menu-category {
    border-bottom: none;
}

.menu-bottom .menu-title {
    font-size: var(--fs-6);
    font-weight: var(--weight-500);
    color: var(--eerie-black);
    padding: 12px 0;
}

.accordion-menu.active .caret-back {
    -webkit-transform: rotate(-0.25turn);
    -ms-transform: rotate(-0.25turn);
    transform: rotate(-0.25turn);
}

.menu-bottom .submenu-category-list {
    border: 1px solid var(--cultured);
    -webkit-border-radius: var(--border-radius-md);
    border-radius: var(--border-radius-md);
    padding: 0 15px;
    margin-left: 0;
    -webkit-box-shadow: 0 0 10px hsla(0, 0%, 0%, 0.05);
    box-shadow: 0 0 10px hsla(0, 0%, 0%, 0.05);
}

.menu-bottom .submenu-category:not(:last-child) {
    border-bottom: 1px solid var(--cultured);
}

.menu-social-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 10px;
}

.menu-social-container .social-link {
    background: var(--cultured);
    color: var(--eerie-black);
    font-size: 20px;
    padding: 10px;
    -webkit-border-radius: var(--border-radius-md);
    border-radius: var(--border-radius-md);
}