:root{
  --theme-primary: #003F7E;  
  --theme-primary-alpha: #003F7E80;
  --theme-primary-light: #ededed;
  --theme-secondary: #e7af20;
  --themeblack: #1a1a1a;
  --themered: crimson;
  --fontsize-base: 16px;
  --theme-transition-dur: 0.3s;
}

.c-primary { color: var(--theme-primary); }

@media screen and (max-width:480px){
  :root {
    --fontsize-base: 18px;
  }
}

::-webkit-scrollbar {
  width: 6px;
  height: 3px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1; 
}
 
::-webkit-scrollbar-thumb {
  background: #666; 
}

::-webkit-scrollbar-thumb:hover {
  background: #777; 
}

#breadcrumb ::-webkit-scrollbar {
  height: 1px;
}
#breadcrumb ::-webkit-scrollbar-thumb {
  background: #dadada;
}


html {  
  font-size: var(--fontsize-base);
}

*:not(i[class*="fa-"]) {
  font-family: 'Titillium Web', sans-serif !important;  
}

a {
  color: var(--themeblack);
  font-size: 1rem;
  transition-duration: var(--theme-transition-dur);  
}
  a:hover {
    color: var(--theme-primary);
    text-decoration: underline;
  }
  a > i {
    margin-right: 10px;
    color: var(--theme-primary);
  }

p {
  color: var(--themeblack);
  font-size: 1rem;
  line-height: 1.4;
}
  

/* FOOTER */
@media (max-width: 767px)
{
  footer {
    padding: 5vw;
  }
}
@media (min-width: 768px)
{
  footer {
    padding: 2vw 5vw;
  }
}
footer {
  background-color: var(--themeblack);
  color: white;
  border-top: 1px dashed #555;
}
footer ul {
  list-style: none;
  padding: 0;
}
  footer ul > li{
    margin-bottom: 5px auto;
    padding: 5px 0;
    border-bottom: 1px dotted #444;
  }

footer a {
  color: white;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 200;
  transition-duration: var(--theme-transition-dur);
}
  footer a:hover {
    color: white;
    text-decoration: underline;
  }
  footer a > i {
    margin-right: 10px;
    color: var(--theme-secondary);
  }


/* HEADER */
#header-logo {
  height: 80px;
  padding: 5px 0;
}

#header-icons > a {
  margin: 0 0 0 15px;
  color: var(--themeblack);
  text-decoration: none;
  font-size: 0.9rem;
}
  #header-icons > a > i {
    font-size: 1.5rem;
    color: var(--theme-primary);
  }

#cart-units {
  width: 1.25rem;
  text-align: center;
  color: var(--themeblack);
  position: absolute;
  left: 0.45rem;
  top: -0.30rem;
  font-size: 1.1rem;
  font-weight: 600;
}

@media screen and (max-width: 768px){
  #header-logo {
    width: 180px;
    max-width: initial;
  }
  #header-icons > a {
    font-size: 0.9rem;
    margin: 0;
    position: relative;
    top:4px;
  }
  #header-icons > a > i {
    font-size: 1.2rem;
  }
  #cart-units {
    width: 1.3rem;
    left: 0.2rem;
    top: -0.35rem;
    font-size: 1rem;
  }
  header > div:nth-child(2) {
    margin-top: 0;
  }
}

header {
  background: white;
  color: var(--themeblack);
  z-index: 10;
  position: sticky;
  top: 0;
}

/*
@media screen and (max-width:768px) {
  header {
    position: sticky;
    top: 0;
  }
}
*/

header input#search {
  width: 100%;
  padding: 4px 8px;
  border-radius: 4px;
  border: none;
  font-size: 1.2rem;
}

#search-modal-wrapper {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 10px;
  background: #00000077;
}
#search-modal-wrapper > div {
  width: 500px;
  max-width: 100%;
  background: white;
  padding: 5px;
  position: relative;
}
#search-close-btn {
  position: absolute;
  width: 1.7rem;
  height: 1.7rem;
  display: inline-block;
  padding: 5px;
  line-height: 1;
  top: 10px;
  right: 10px;
  background: var(--theme-primary);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-decoration: none;
  border-radius: 2px;
}
  #search-close-btn > i {
    color: white;
    margin: 0;
  }

#search-modal {
  left:0;
  top: 100%;
  max-height: 80vh;
  overflow-y: auto;
  width: 100%;
}
  #search-modal a {
    font-weight: initial;
  }



/* HEADER MENU */
#header-menu {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  opacity: 0;  
  margin: 0;  
  list-style: none;
  background: white;
  pointer-events: none;
  position: absolute;
  left: 0;
  top: 100%;
  transition-duration: var(--theme-transition-dur);
  transform: translateX(-100%);
  z-index: 1;
  width: 100vw;
  box-shadow: 0px 30px 20px -10px rgb(0 0 0 / 30%);
  max-height: 80vh;
}
#header-menu.active {
  opacity: 1;
  pointer-events: all;
  transform: translateX(0);
}
  #header-menu > nav {
    overflow-y: scroll;
    width: 100%;
  }
  #header-menu > nav > ul,
  #header-menu > div.subnav > ul {
    list-style: none;
    padding: 0;    
    margin: 0;
  }
  #header-menu > div.subnav {
    width: 100%;
  }  
  #header-menu > nav > ul > li {
    position: relative;
  }
  #header-menu > nav > ul > li > span {
    display: inline-block;
    color: var(--theme-primary);
    position: absolute;
    right: 0;
    top: 0;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    width: 2rem;
    height: 2.1rem;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;    
  }
    #header-menu > nav > ul > li > span  > i {
      transition-duration: var(--theme-transition-dur);      
    }
    #header-menu > nav > ul > li > span.expanded > i {
      transform: rotate(-180deg);
    }
  #header-menu > nav ul > li > a {
    display: block;
    padding: 0.6rem 0 0.6rem 0.6rem;
    line-height: 1;
    transition-duration: unset;  
    font-weight: 400;  
  }
  #header-menu > nav > ul > li > a {
    background: #f5f5f5;
    border-bottom: 1px solid #dedede;
    font-weight: 600;
  }
  #header-menu > nav > ul > li > ul {
    padding: 0;
    display: none;
  }    
  #header-menu > nav > ul > li > ul > li {
    position: relative;
  }
  #header-menu > nav > ul > li > ul > li > a {
    border-bottom: 1px solid #f5f5f5;
    padding-left: 1.3rem;
  }
    #header-menu > nav > ul > li > ul > li > a:after {
      content: '\f054';
      font-family: 'Font Awesome 6 Pro';
      display: inline-block;
      color: var(--theme-primary);
      position: absolute;
      left: 0.6rem;
      top: 0.75rem;
      font-size: 0.6rem;
      font-weight: 600;
    }
  #header-menu > div.subnav > ul > li {
    padding: 0.4rem 0.8rem;
  }  
  #header-menu > div.subnav > ul > li {
    border-bottom: 1px dotted #444;
  }
  #header-menu.active > nav ul > li > a,
  #header-menu > div.subnav ul > li > a {
    text-decoration: none;
    font-size: 1rem;
  }
  #header-menu > div.subnav ul > li > a:not(:hover) {
   color: white;
  }
  #header-menu > div.subnav ul > li > a:hover {
    color: var(--theme-secondary);
  }
  #header-menu > div.subnav ul > li > a > i {
    color: var(--theme-secondary);
  }

a.invc { color: var(--theme-primary); }
a.invc:hover { background: #e2e2e2 !important; }

#header-menu > div.subnav {  
  background: var(--themeblack);
}
  
@media screen and (min-width:575px) {
  #header-menu {
    transform: translateX(0);
    width: 400px;
    max-height: 85vh;
  }  
}

#nav-menu-toggle > i { position: relative; top: 4px; font-size: 1.4rem; }

/* BUTTONS */
a.button,
button.cart-add {
  display: inline-block;
  background-color: var(--theme-primary);
  color: white;
  border-radius: 2px;
  padding: 0.4rem;
  text-decoration: none;
  transition-duration: var(--theme-transition-dur);
  width: 100%;
  text-align: center;
  font-size: 1rem;
  border: none;
  /* outline: 2px solid var(--themeblack); */
  text-decoration: none;
}
  a.button > i,
  button.cart-add > i {
    color: white;
    font-size: 14px;    
  }  
  a.button:hover,
  button.cart-add:hover {
    /* outline: 2px solid var(--theme-primary); */
    background-color: var(--themeblack);
  }

a.button-alt {
  background-color: white;  
  outline: 2px solid var(--theme-primary);
  color: var(--themeblack);
}
  a.button-alt > i {
    color: var(--themeblack);
    font-size: 14px;
  }  
  a.button-alt:hover {
    background-color: var(--theme-primary);
    outline: 2px solid var(--theme-primary);
  }

a.button-alt-2 {
  background-color: white;
  font-weight: 600;
  color: var(--themeblack);
  /* outline: 2px solid var(--theme-primary); */
}
  a.button-alt-2:hover {
    background-color: white;
    color: var(--theme-primary);    
  }

#order-confirm > i {
  color: white;
}


/* SEARCH MODAL */
#search-modal {
  position: absolute;
  top: calc( 2.2rem + 8px);
  left: 0.8rem;
  width: calc(100% - 4rem);
  background: white;
  z-index: 2;
  box-shadow: 0 10px 8px -6px rgb(0 0 0 / 10%);  
}
  #search-modal ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid #f5f5f5; }
  #search-modal p  { font-size: 16px; margin: 0 0 0 5px; }  
  #search-modal p > small { font-size: 15px; color: var(--theme-primary); display: block; }
  #search-modal p > small > span.before { font-size: 14px; text-decoration: line-through; color: #f44336; margin-left: 0.5rem; }
  #search-modal img { width: 40px; }
  #search-modal li  { padding: 5px; border: 1px solid #f3f3f3; border-top: none; }
  #search-modal a   { text-decoration: none; color: #333; }
  #search-modal li:nth-child(even) { background: #f5f5f5; }
  #search-modal li:hover { background: var(--theme-primary-light); }
  #search-modal table { width: 100%; }
  #search-modal li table tr > td:first-child{ width: 50px; }

@media screen and (max-width:768px) {
  #search-modal {   
    top: calc( 1.7rem + 8px );
    max-height: 80vh;
    overflow-y: auto;
    width: calc(100% - 1.6rem);
  }
}


/* ALERT MODAL */
#alert-modal {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  flex-direction: column;  
  z-index: 999;
  background: rgba(0,0,0,0.25);
}
  #alert-modal > div {
    min-width: 300px;    
    max-width: 100%;
    max-height: calc(80% - 2rem);
    margin: 10px;
    padding: 15px;
    background: white;
    box-shadow: 5px 5px 10px -6px rgba(0,0,0,0.25);
    overflow-y: auto;
  }
  #alert-modal .title {
    color: var(--theme-primary);
    font-size: 1.1rem;
  }
  #alert-modal .message {
    font-size: 1rem;
    margin-bottom: 0.5rem;
  }


/* GRID SHOWCASE ITEMS */
.grid-showcase .grid-showcase-item .card {
  overflow: hidden;
  border-radius: 0.25rem;
  box-shadow: 4px 4px 4px -6px rgba(0,0,0,0.25);
  margin-bottom: 20px;
}
.grid-showcase .grid-showcase-item .card-body {
  background: var(--theme-primary-light);
}
.grid-showcase .grid-showcase-item p.item-name {
  font-size: 1rem;
  line-height: 1rem;
  height: 3.25rem;
  margin-bottom: .75rem;
  font-weight: 400;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.item-name > a {
  text-decoration: none;
  color: inherit;
}
.grid-showcase .grid-showcase-item p.item-code {
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
  color: var(--themeblack);
  font-weight: 600;
}  
.grid-showcase .grid-showcase-item p > small {
  /* float: right; */
  margin-left: 0.5rem;
  text-decoration: line-through;
  color: #f44336;
}
.grid-showcase .img-wrapper {
  position: relative;
}
.grid-showcase .grid-showcase-item .pl_perc_off { 
  float: right;
  padding: 0.125rem 0.5rem;
  background-color: white;
  color: var(--theme-primary);
  border-radius: 0.2rem;
}
.grid-showcase .label-info {
  position: absolute;
  right: 0;
  top: 0;
  width: 33%;
}
  .grid-showcase .label-info span {
    z-index: 2;
    color: white;
    font-weight: 600;
    position: relative;
    right: 0;
    top: 0;
    padding: 0.6rem 0.5rem;
    font-size: 1rem;
    width: 100%;
    aspect-ratio: 1 / 1;
    pointer-events: none;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    flex-direction: column;
    line-height: 1;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.25);
  }
    .grid-showcase .label-info span > i {
      font-style: normal;
      font-size: 0.8rem;
    }
    .grid-showcase .label-info span:before {
      content: ' ';
      position: absolute;
      top: 0;
      right: 0;
      width: 7rem;
      aspect-ratio: 1 / 1;
      transform: translate(50%, -50%) rotate(45deg);
      background: var(--theme-primary);
      z-index: -4;
    }
  
.grid-showcase-item .label-info > img{ aspect-ratio: 2.318 / 1; }
.grid-showcase-item a > img{ aspect-ratio: 1 / 1; }


/* NEWSLETTER BOX */
#newsletter-box {
  padding: 30px;
  background: var(--theme-primary-light);
  /* background: #fff3da; */
}
#newsletter-box a {
  /* background-color: white; */
  max-width: 300px;
}
#newsletter-box a:hover {
  background-color: var(--theme-primary);
}


/* BREADCRUMB */
#breadcrumb {
  /* background: var(--theme-primary-light); */
  background: #f5f5f5;
}
  #breadcrumb nav {
    overflow-x: auto;
    white-space: nowrap;
  }
  #breadcrumb nav > a {
    display: inline-block;
    line-height: 1;
    font-size: 0.9rem;
    padding: 10px 15px;
    color: var(--themeblack);
    position: relative;
    text-decoration: none;
    font-weight: 400;
  }
  #breadcrumb nav > a:hover {
    text-decoration: underline;
  }
  
  #breadcrumb nav > a:not(:last-child):after {
    content: '\f054';
    font-family: 'Font Awesome 6 Pro';
    display: inline-block;
    color: var(--theme-primary);
    position: absolute;
    right: -0.25rem;
    top: 0.7rem;
    font-size: 0.7rem;
    font-weight: 600;
  }
  #breadcrumb nav a:last-child {
    font-weight: 600;
    pointer-events: none;
  }


/* FORM INPUTS*/
form.form input,
form.form select {
  padding: 5px 10px;
  border: 2px solid var(--themeblack);
  border-radius: 3px;
  text-align: center;
  font-size: 1rem;
}
  form.form input.has-error,
  form.form select.has-error {
    border: 2px solid var(--themered);
  }
form.form input[type="file"] {
  border: none;
  margin: 0.5rem auto 0 auto;
}
form.form label {
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 0.1rem;
}
  form.form label.condition {
    font-weight: 400;
    margin-bottom: 0.1rem;
    line-height: 1.2;
    display: inline-block;
    position: relative;
    top: -0.2rem;
    margin-bottom: 0.5rem;
  }
form.form button {
  color: white;
  background: var(--themeblack);
  /* padding: 5px 10px; */
  padding: 0.3rem;
  border: 2px solid var(--themeblack);
  border-radius: 3px;
  width: 100%;
  font-size: 1rem;
  font-weight: 400;
  transition-duration: var(--theme-transition-dur);
}
  form.form button:hover {
    background: var(--theme-primary);
    border: 2px solid var(--theme-primary);
  }
form.form input[type="checkbox"] {
  display: inline-block;
  margin-right: 5px;
  width: 1rem;
  height: 1rem;
  accent-color: var(--themeblack);
}
form.form table.conditions {
  margin: 0 auto;
  text-align: left;
}
  form.form table.conditions td {
    vertical-align: top;
  }
form .form-check-input {
  width: 1rem;
  height: 1rem;
  padding: 0.3rem !important;  
}
form .form-check-input:checked {
  background-color: var(--themeblack);
}
  
span.error {
  font-size: 0.9rem;
  color: var(--themered);
}



/* CUSTOM MODAL */
#custom-modal {
  display: flex;
  position: fixed;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0,0,0,0.25);
  z-index: 99;
}
  #custom-modal > div {
    width: 600px;
    max-width: calc( 100% - 20px );
    padding: 10px;
    background: white;
    border-radius: 4px;
  }
  #custom-modal-content {
    max-height: calc( 90vh - 60px );
    overflow-y: auto;
    padding: 10px;
    margin-bottom: 10px;
  }

#custom-modal ::-webkit-scrollbar {
  width: 4px;
}
#custom-modal ::-webkit-scrollbar-thumb {
  background: #dadada;
}

/* CART MODAL */
#cart-modal {
  display: flex;
  position: fixed;
  visibility: hidden;
  opacity: 0;
  justify-content: center;
  align-items: flex-end;
  flex-direction: column;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0,0,0,0.25);
  z-index: 99;
}
#cart-modal.open {
  visibility: visible;
  opacity: 1;
}
  #cart-modal > div {
    max-width: 340px;
    width: 100%;
    height: 100%;
    padding: 10px;
    background: white;
    transform: translateX(100%);
    transition-duration: 0.4s;
  }
    #cart-modal.open > div {
      transform: translateX(0);
    }
  #cart-modal-content {
    /*height: calc( 100% - 8.2rem );*/
    height: calc( 100% - 19.8rem );
    overflow-y: auto;
    margin-bottom: 10px;
  }

#cart-modal ::-webkit-scrollbar {
  width: 4px;
}
#cart-modal ::-webkit-scrollbar-thumb {
  background: #dadada;
}

#cart-modal-content > ul {  
  list-style: none;
  margin-right: 10px;
}
#cart-modal-content > ul > li {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #dadada;
}
#cart-modal-content .cart-sum,
#cart-modal-content .cart-sub {
  display: inline-block;
  background-color: var(--themeblack);
  color: white;
  border: none;
  border-radius: 2px;
  padding: 0;
  text-decoration: none;
  transition-duration: var(--theme-transition-dur);
  width: 2.2rem;
  height: 2.2rem;
  text-align: center;
  font-size: 1rem;
  line-height: 1;
}
  #cart-modal-content .cart-sum:hover,
  #cart-modal-content .cart-sub:hover {
    background: var(--theme-primary);
  }
#cart-modal-content .cart-item-controls {
  display: flex;
  justify-content: end;
  align-items: center;
  flex-direction: column;
}
#cart-modal-content .units-control {
  margin-bottom: 0.5rem;
}
#cart-modal-content input.units {
  width: calc( 100% - 4.4rem - 8px);
  padding: 4px 8px;
  border-radius: 2px;
  border: 2px solid var(--themeblack);
  display: inline-block;
  text-align: center;
}
#cart-modal-content .cart-item {
  overflow: hidden;
}
#cart-modal-content small {
  display: inline-block;
  line-height: 1;
}

#line-carousel {
  white-space: nowrap;
  overflow: hidden;
  margin: 0 10px;  
}
#line-carousel > div {
  display: inline-block;
  position: relative;
}

@keyframes spin {
  from { transform:rotate(0deg);   }
  to   { transform:rotate(360deg); }
}
.spin{
  animation: spin 3s infinite linear;
}
.label-info {
  pointer-events: none;
}
.premium-label {
  width: 100%;
  border-radius: 2px;
  pointer-events: none;
}
#minicart-summary {
  border-radius: 8px;
  background: #fafafa;
  width: 90%;
  margin: auto;
  padding: 10px 20px;
}
  #minicart-summary table {
    width: 100%;
  }
  #minicart-summary table th {
    border-bottom: 1px solid #dadada;
  }
  #minicart-summary table tr:not(:last-child) {
    border-bottom: 1px solid #dadada;
  }
  #minicart-summary table td {
    padding: 5px 0;
  }
  #minicart-summary table td:nth-child(1) {
    font-weight: 600;
  }
  #minicart-summary table td:nth-child(2) {
    text-align: right;
  }