/*--------------------------------------------------------------
Logo and Navigation
--------------------------------------------------------------*/
#masthead {
  background-image: linear-gradient(to right, var(--color-accent-darker), var(--color-accent-darker));
  width: 100%;
  position: relative;
  z-index: 50;
}

#nav {
  width: 90%;
  max-width: 1280px;
  margin: 0 auto;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 0;
}

/*----------------------------------------
Brand – Logo & Name
----------------------------------------*/
#nav .brand {
  text-decoration: none;
  width: min(40%, 18.88em);
  align-items: center;
  margin: 0;
}

.brand .logo {
  width: min(4em, 20%);
  aspect-ratio: 1/1;
}

.brand .name {
  width: min(100%, 80%);
  color: #fff;
  font-weight: 600;
  font-size: var(--text-lg);
  line-height: 1.15;
  font-family: var(--font-secondary);
}

.brand .name span {
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  display: block;
  font-weight: 400;
  margin-top: var(--space-xxs)
}

/*----------------------------------------
Nav – Menu
----------------------------------------*/
#popout {
  width: 70%;
}

#menu {
  float: right;
}

#menu,
#menu ul,
#menu ul ul {
  list-style: none;
  margin: 0;
  padding: 0
}

.menu_item {
  position: relative;
}

.menu_item > a {
  color: #fff;
  font-size: var(--text-base-size);
  display: block;
  padding: var(--space-lg) var(--space-sm);
  text-decoration: none;
}

.active.menu_item a::after {
  width: 100%
}

/* add extra space if menu item contains dropdown */
.dropdown.menu_item {
  margin-right: 10px
}

/* deletes right space of last menu item */
.menu_item:last-child a {
  margin-right: 0;
}

.menu_item svg {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  color: #fff;
  opacity: .5;
}

.menu_item > svg {
  display: none
}

.menu_item a svg {
  right: -5px;
  opacity: 1;
}

/*------------------------------  
Dropdown Submenus
------------------------------*/
#menu .dropdown_menu {
  position: absolute;
  transition: var(--transition);
  -webkit-transform: scaleY(0);
  -ms-transform: scaleY(0);
  transform: scaleY(0);
  opacity: 0;
  left: 15%;
  width: 15em;
  padding: 0;
  max-height: 450px;
  background-color: #fff;
  box-shadow: var(--box-shadow-white);
  z-index: 1;
  -webkit-transform-origin: top;
  transform-origin: top;
  border-radius: 0 0 10px 10px;
  border-style: solid;
  border-width: 0 1px 1px 1px;
  border-color: var(--color-primary-lightest);
  overflow: hidden;
}

/* move dropdown menu further to the left on last two menu items */
#menu .menu_item:nth-last-child(-n+2) .dropdown_menu {
  left: -135%;
}

#menu .dropdown_menu .menu_item {
  transition: var(--transition)
}

#menu .dropdown_menu a {
  color: var(--color-primary-darkest);
  opacity: 0;
  transition: var(--transition);
  /*transition-delay: .125s;*/
  padding: 1em
}

#menu .dropdown:hover .dropdown_menu {
  -webkit-transform: scaleY(1);
  -ms-transform: scaleY(1);
  transform: scaleY(1);
  opacity: 1;
}

#menu .dropdown:hover .dropdown_menu a {
  opacity: 1;
}

/*------------------------------ 
Menu item hover effect 
------------------------------*/
.menu_item a::after {
  content: '';
  display: block;
  width: 0;
  height: 3px;
  background-image: var(--gradient-cta);
  transition: var(--transition);
  position: relative;
  bottom: -3px
}


.dropdown_menu .menu_item a::after {
  display: none;
}

.menu_item a:hover::after {
  width: 100%;
}

.dropdown_menu .menu_item:hover {
  background-color: var(--color-primary);
}

#menu .dropdown_menu .menu_item:hover a {
  color: #fff
}

/* current/active child menu item */
#menu .active.menu_item .active.menu_item a {
  background-color: var(--color-primary-light);
  color: #fff
}

/*--------------------------------------------------------------
Footer
--------------------------------------------------------------*/

/*----------------------------------------
footer
----------------------------------------*/
footer {
  background-image: linear-gradient(to bottom, var(--color-primary), var(--color-primary-dark));
  padding: var(--space-xl) 0 1em;
}

footer :is(.title, p) {
  color: #fff
}

footer .title svg {
  color: var(--color-secondary);
  margin-right: var(--space-xxs);
}

/*----------------------------------------
footer top
----------------------------------------*/
.footer_top .about p {
  font-family: var(--font-secondary);
  font-style: italic;
}

.footer_top .menu ul {
  -webkit-columns: 2;
  -moz-columns: 2;
  columns: 2;
  margin: 0;
  padding: 0 0 0 2.5em;
  list-style: none;
}

.footer_top .menu .menu-item a {
  display: block;
  color: #fff;
  text-decoration: none;
}

.footer_top .menu .menu-item a:hover {
  color: var(--color-secondary);
}

/*----------------------------------------
footer bottom
----------------------------------------*/
footer .copyright p {
  margin: var(--space-xxl) auto 0;
  text-align: center;
  font-size: var(--text-sm);
  opacity: .5;
}

/*-----------------------
Social media icons
------------------------*/
.sm_icons {
  width: min(100%, 12em);
  margin: 0;
  -webkit-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
}

.sm_icons a {
  display: block;
  width: 3.25em;
  aspect-ratio: 1/1;
  border-radius: 100%;
  background-color: var(--color-primary-light);
  box-shadow: inset 0 0 1px #fff;
  transition: var(--transition);
  position: relative;
  color: #fff;
}

.sm_icons a svg {
  font-size: 1.25em;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.facebook:hover {
  background-color: #1877f2;
}

.youtube:hover {
  background-color: #ff0000;
}

.telegram:hover {
  background-color: #0088cc;
}

/*--------------------------------------------------------------
Live Search
--------------------------------------------------------------*/
.live_search {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100vw;
  background-color: rgba(255, 255, 255, .965);
  opacity: 0;
  visibility: hidden;
  z-index: 100;
  transition: var(--transition);
  transition-duration: .35s;
}

.live_search.active {
  opacity: 1;
  visibility: visible
}

/* search trigger and close buttons */
.search_trigger,
.live_search .btn_close {
  height: 35px;
  width: 35px;
  border-radius: 100%;
  border: 1px solid #fff;
  background-image: var(--gradient-cta);
  transition: var(--transition)
}

.search_trigger > svg,
.live_search .btn_close > svg {
  color: #fff;
  font-size: 17px;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

/* search trigger button */
.search_trigger {
  position: relative;
  margin-left: var(--space-sm)
}

/* search close button */
.live_search .btn_close {
  position: absolute;
  z-index: 2;
  top: var(--space-md);
  right: var(--space-xl);
  cursor: pointer;
  padding: 0
}

.search_trigger:hover,
.live_search .btn_close:hover {
  transform: translateY(calc(-1 * var(--box-hover-move))) scale(var(--box-hover-scale));
}

.search_trigger:active,
.live_search .btn_close:active {
  transform: translateY(var(--box-hover-move)) scale(1);
}

/*------------------------------
Search Overlay Top
------------------------------*/
.live_search .search_form {
  background-color: #fff;
  padding-top: var(--space-xl)
}

.live_search form {
  width: min(90%, 40em);
  position: relative;
  margin: 0 auto;
}


/* search input field */
#search_term {
  width: 100%;
  padding: var(--space-xs);
  margin: 0 auto;
  display: block;
  border: none;
  border-bottom: 3px solid var(--color-accent);
  background-color: transparent;
  border-radius: 0;
  font-size: var(--text-xl);
  font-weight: 600;
  color: var(--color-primary-dark);
  font-family: var(--font-primary);
}

#search_term:focus-visible {
  outline: none;
}

/*------------------------------
Search Results
------------------------------*/
#search_results {
  height: 75vh;
  margin: 0 auto;
  overflow-x: hidden;
  overflow-y: auto;
  padding: var(--space-lg) 0;
  background-color: var(--color-primary-lightest);
}

#search_results .product_cards {
  --grid-space: var(--space-sm)
}

/* hide scroll on body */
.body_no_scroll {
  overflow: hidden;
}

/*------------------------------
Spinner
------------------------------*/
@-webkit-keyframes chakraSpinner {
  from {
    transform: rotate(0deg)
  }

  to {
    transform: rotate(1turn)
  }
}

@keyframes chakraSpinner {
  from {
    transform: rotate(0deg)
  }

  to {
    transform: rotate(1turn)
  }
}

.spinner_loader {
  border-radius: 0.5em;
  box-shadow:
    1.5em 0 0 0 var(--color-accent-light),
    1.1em 1.1em 0 0 var(--color-accent),
    0 1.5em 0 0 var(--color-accent-dark),
    -1.1em 1.1em 0 0 var(--color-accent-light),
    -1.5em 0 0 0 var(--color-accent),
    -1.1em -1.1em 0 0 var(--color-accent-light),
    0 -1.5em 0 0 var(--color-accent),
    1.1em -1.1em 0 0 var(--color-accent-light);
  display: block;
  font-size: .925em;
  width: 1em;
  height: 1em;
  margin: var(--space-lg) auto;
  opacity: .75;

  -moz-animation: chakraSpinner 2.5s infinite linear;
  -webkit-animation: chakraSpinner 2.5s infinite linear;
  animation: chakraSpinner 2.5s infinite linear
}

/*----------------------------------------------------------
Responsive Styles
----------------------------------------------------------*/
@media only screen and (max-width: 1200px) {
  /* @1200px */


  /*----------------------------------------
  live search
  ----------------------------------------*/
  #search_results .container {
    flex-direction: column;
  }

  #search_results .container > .col {
    width: min(100%, 40em);
    margin: 0 auto;
    padding-inline: 0;
  }

  #search_results .product_cards li {
    width: calc(100% / 3);
  }

}

@media only screen and (min-width: 1025px) {

  #toggle {
    display: none;
  }

}

/* #1025 */

@media only screen and (max-width: 1024px) {

  body:not(.page-template-login_page, .page-template-coming-soon, .woocommerce-cart, .woocommerce-checkout) {
    margin-top: var(--nav-height)
  }

  /*------------------------- 
  masthead
  -------------------------*/
  #masthead {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 99;
    height: var(--nav-height)
  }

  #nav {
    position: relative;
    top: 12px;
  }

  .brand {
    width: min(100%, 12em);
  }

  .brand .name {
    font-size: var(--text-md)
  }

  #toggle {
    position: fixed;
    top: 12px;
    right: 20px;
    width: 35px;
    height: 45px;
    z-index: 9999;
  }

  #toggle .line {
    display: block;
    height: 4px;
    width: 30px;
    border-radius: 50px;
    background-color: #fff;
    position: absolute;
    transition: var(--transition);
    -webkit-transform-origin: left;
    -ms-transform-origin: left;
    transform-origin: left;
  }

  #toggle .line:nth-child(1) {
    top: 25%
  }

  #toggle .line:nth-child(2) {
    top: 50%;
  }

  #toggle .line:nth-child(3) {
    top: 75%;
  }

  .iconClose .line:nth-child(2) {
    opacity: 0
  }

  #toggle.iconClose .line:nth-child(1),
  #toggle.iconClose .line:nth-child(3) {
    background-color: var(--color-accent-light)
  }

  #toggle.iconClose .line:nth-child(1) {
    -webkit-transform: rotate(var(--toggle-rotate));
    -ms-transform: rotate(var(--toggle-rotate));
    transform: rotate(var(--toggle-rotate));
  }

  #toggle.iconClose .line:nth-child(3) {
    -webkit-transform: rotate(calc(-1 * var(--toggle-rotate)));
    -ms-transform: rotate(calc(-1 * var(--toggle-rotate)));
    transform: rotate(calc(-1 * var(--toggle-rotate)));
  }

  /*--------------------
  Popout
  --------------------*/
  #content_cnt,
  #popout {
    transition-timing-function: ease-in;
    transition-duration: .5s;
    will-change: transform
  }

  #popout {
    position: fixed;
    z-index: 100;
    height: 100vh;
    width: var(--rspv-nav-width);
    background-color: #fff;
    box-shadow: 10px 0 20px rgba(0, 0, 0, .1);
    -webkit-flex-direction: column;
    flex-direction: column;
    top: 0;
    left: 0;
    overflow: scroll;
    -webkit-transform: translateX(calc(-1 * var(--rspv-nav-width)));
    -ms-transform: translateX(calc(-1 * var(--rspv-nav-width)));
    transform: translateX(calc(-1 * var(--rspv-nav-width)));
  }

  #popout_logo {
    display: block;
    width: 90%;
    height: var(--nav-height);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    margin: 0 auto;
  }

  /*------------------------- 
  nav and content transition
  -------------------------*/
  #popout,
  #popout.nav_hide {
    -webkit-transform: translateX(calc(-1 * var(--rspv-nav-width)));
    -ms-transform: translateX(calc(-1 * var(--rspv-nav-width)));
    transform: translateX(calc(-1 * var(--rspv-nav-width)));
  }

  #popout.nav_show,
  #content_cnt.content_show {
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
  }

  /* hides nav with and resizes content size*/
  #content_cnt.content_hide {
    -webkit-transform: translateX(var(--rspv-nav-width));
    -ms-transform: translateX(var(--rspv-nav-width));
    transform: translateX(var(--rspv-nav-width));
    max-height: 100vh;
    max-width: 100vw;
    overflow: hidden;
    position: fixed;
    width: 100%;
  }

  /* creates content container mask */
  #content_cnt::after {
    content: "";
    display: block;
    background-color: var(--color-primary-darkest);
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    visibility: hidden;
    z-index: 10
  }

  /* shows mask */
  #content_cnt.content_hide::after {
    opacity: .85;
    visibility: visible
  }

  /*--------------------
  Main Nav
  --------------------*/
  .menu_container {
    width: 100%;
    height: calc(100vh - var(--nav-height));
    overflow: scroll;
    margin: var(--space-sm) 0 0;
  }

  #menu {
    -webkit-flex-direction: column;
    flex-direction: column;
    width: 100%;
    float: none;
  }

  #menu li::after {
    content: "";
    display: block;
    height: 1px;
    width: 100%;
    background-color: var(--color-primary);
    opacity: .0925
  }

  #menu li {
    width: 100%;
    margin: 0 auto;
    z-index: 2;
  }

  #menu .menu_item > a {
    width: 100%;
    padding: 16px 18px 16px 48px;
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-body);
    text-align: left;
    position: relative;
  }

  /* left icons */
  .menu_item > svg {
    left: 20px;
    display: block;
    top: 28px;
    color: var(--color-accent-light)
  }

  /* angle/arrow icon */
  .menu_item a svg {
    right: 25px;
    color: var(--color-accent-dark)
  }

  .menu_item a:hover::after,
  .active.menu_item a::after {
    width: 0
  }

  /* current/active parent menu item */
  #menu > .active.menu_item::before {
    content: "";
    display: block;
    position: absolute;
    height: var(--space-lg);
    width: 7px;
    background-color: var(--color-accent);
    top: 12px;
    right: 5px;
    border-radius: 30px;
  }

  #menu .active.menu_item .active.menu_item a {
    background-color: var(--color-primary);
  }

  /*--------------------
  Submenus
  --------------------*/
  #menu .dropdown_menu,
  #menu .menu_item:nth-last-child(-n+2) .dropdown_menu {
    position: relative;
    width: 100%;
    max-height: 0;
    padding: 0;
    background-color: var(--color-primary-light);
    left: 0;
    box-shadow: none;
    border-radius: 0;
    margin: 0 auto;
    z-index: 1;
    opacity: 0;
  }

  #menu .dropdown_menu.open,
  #menu .menu_item:nth-last-child(-n+2) .dropdown_menu.open {
    -webkit-transform: scaleY(1);
    -ms-transform: scaleY(1);
    transform: scaleY(1);
    opacity: 1;
  }

  #menu .dropdown_menu li::after {
    display: none
  }

  #menu .dropdown_menu .menu_item > a {
    width: 100%;
    font-size: var(--text-base-size);
    color: #fff;
    opacity: 1;
  }

  /*------------------------- 
  live search
  -------------------------*/
  .search_trigger {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }

  .search_trigger {
    right: 3.5em;
    top: 63%;
  }


}

/* #1024px */

@media only screen and (max-width: 900px) {

  /*------------------------- 
  footer
  -------------------------*/
  .footer_top {
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }

  .footer_top > .col {
    width: min(100%, 40em);
    margin: 0 auto;
  }

}

/* #768px */

@media only screen and (max-width: 600px) {}

/* #600px */

@media only screen and (max-width: 480px) {

  /*----------------------------------------
  live search
  ----------------------------------------*/
  #search_results .post_cards_list li {
    flex-direction: column;
  }

  #search_results .post_cards_list :is(.image, .content) {
    width: 100%;
  }

  #search_results .product_cards li {
    width: 50%;
  }

}

/* #480px */

@media only screen and (max-width: 400px) {}

/* #400px */