@font-face {
  font-family: 'OpenSans';
  src: url('/assets/fonts/OpenSans-VariableFont_wdth,wght.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
}
@font-face {
  font-family: 'OpenSans';
  src: url('/assets/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf') format('truetype');
  font-style: italic;
  font-weight: 100 900;
}
@font-face {
  font-family: 'Roboto';
  src: url('/assets/fonts/Roboto-VariableFont_wdth,wght.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
}
@font-face {
  font-family: 'Roboto';
  src: url('/assets/fonts/Roboto-Italic-VariableFont_wdth,wght.ttf') format('truetype');
  font-style: italic;
  font-weight: 100 900;
}
@font-face {
  font-family: 'Archivo';
  src: url('/assets/fonts/Archivo-VariableFont_wdth,wght.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
}
@font-face {
  font-family: 'Archivo';
  src: url('/assets/fonts/Archivo-Italic-VariableFont_wdth,wght.ttf') format('truetype');
  font-style: italic;
  font-weight: 100 900;
}

:root{
  --color-primary: #0B88C8;
  --color-primary-contrast: #ffffff; /*Use it for text on primary color backgrounds*/
  --color-secondary: #7D7D7D;
  --color-secondary-contrast: #ffffff; /*Use it for text on secondary color backgrounds*/
  
  --color-background: #ecf0f1;
  --color-background-dark: #333333;
  --color-background-light: #ffffff;

  --color-menu-background: #333333;
  --color-menu-text: #ffffff;
  
  --color-error: #f78787;
  --color-error-contrast: #000000; /*Use it for text on error color backgrounds*/
  --color-success: #2ecc71;
  --color-success-contrast: #ffffff; /*Use it for text on success color backgrounds*/
  --color-info: #3498db;
  --color-info-contrast: #ffffff; /*Use it for text on info color backgrounds*/

  --color-text: #000000;
  --radius: 5px;

  /* jQuery UI theme variables */
  --ui-bg-header: var(--color-menu-background);
  --ui-bg-content: var(--color-background);
  --ui-bg-default: var(--color-menu-background);
  --ui-bg-hover: var(--color-primary);
  --ui-bg-active: var(--color-primary);
  --ui-bg-highlight: var(--color-primary);
  --ui-bg-error: #ffa9a9;
  --ui-bg-overlay: #aaaaaa;
  --ui-bg-shadow: #666666;

  --ui-border-header: var(--color-secondary);
  --ui-border-content: var(--color-secondary);
  --ui-border-default: var(--color-secondary);
  --ui-border-hover: var(--color-primary);
  --ui-border-active: var(--color-primary);
  --ui-border-highlight: var(--color-primary);
  --ui-border-error: red;

  --ui-text-header: var(--color-menu-text);
  --ui-text-content: var(--color-text);
  --ui-text-default: var(--color-menu-text);
  --ui-text-hover: var(--color-primary-contrast);
  --ui-text-active: var(--color-primary-contrast);
  --ui-text-highlight: var(--color-primary-contrast);
  --ui-text-error: red;

  --ui-icon-header: var(--color-menu-text);
  --ui-icon-content: var(--color-text);
  --ui-icon-default: var(--color-menu-text);
  --ui-icon-hover: var(--color-primary-contrast);
  --ui-icon-active: var(--color-primary-contrast);
  --ui-icon-highlight: var(--color-primary-contrast);
  --ui-icon-error: red;

  --ui-radius: 5px;
  --ui-shadow: 0px 0px 5px var(--ui-bg-shadow);
}


body{
  display: grid;
  grid-template-columns: minmax(300px,400px)auto;
  grid-template-areas: "header header" "menu content" "footer footer";
  background-color: var(--color-background-light);
  margin:0;
}

button{
  background: var(--color-primary);
  color: var(--color-primary-contrast);
  border: none;
  cursor: pointer;
  font-weight: 600;
  border-radius: 5px;
  padding: 0.5rem 1rem;

  i {
    color: inherit;
  }

  &.danger{
    background: var(--color-error);
    color: var(--color-error-contrast);

    &:hover{
      filter: brightness(0.95);
    }
  }
}
input[type="submit"]{
  background: var(--color-primary);
  color: var(--color-primary-contrast);
  border: none;
  padding: 0.5rem 1rem;
  cursor: pointer;
  font-weight: 600;

  i {
    color: inherit;
  }
}

#email2, #time {
  display: none;
}


i {
  color: var(--color-primary);
}

* {
  box-sizing: border-box;
  color: var(--color-text);
  font-family: 'Archivo', sans-serif;
  text-decoration: none;
}

#select2-language-switcher-container > span,
#select2-language-switcher-results > li > span {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem;
}

#select2-currency-switcher-container > span,
#select2-currency-switcher-results > li > span {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem;
}

.select2-container .img-icon {
  max-width: 18px;
  height: auto;
}


header{
  grid-area: header;
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 2rem;
  box-shadow: 0px 0px 20px rgba(0,0,0,0.1);
  margin-bottom: 1rem;

  #logo-wrap {
    &.logo-small{
      display: grid;
      grid-template-areas: "logo title" "logo subtitle";
      align-items: center;
      gap: 0.2rem;
  
      * {
        text-decoration: none;
        color: inherit;
      }
  
      & > a{
        grid-area: logo;
      }
      & > h1{
        grid-area: title;
        margin: 0;
        color: var(--color-primary);
        font-weight: 700;
        font-size: 2rem;
      }
      & > h4{
        grid-area: subtitle;
        margin: 0;
        color: var(--color-secondary);
        font-weight: 700;
        font-size: 1rem;
      }
    }
    /*&.logo-big{

    }*/
  }

  #search{
    display: flex;
    flex-flow: row nowrap;
    min-width: 300px;

    input {
      width: 75%;
      padding: 6px 15px;
      border-radius: 10px 0 0 10px;
      border: 2px solid rgba(0,0,0,0.2);
    }

    button{
      width: 25%;
      min-width: 85px;
      font-size: 18px;
      font-weight: 700;
      border-radius: 0 10px 10px 0;
      * {
        color:inherit;
      }
    }
  }

  .header-group{
    display: flex;
    flex-flow: column;
    gap: 0.5rem;
  }

  #user-zone{
    display: flex;
    gap: 0.5rem;
  }

  #language-zone{
    min-width: 150px;

    & > form {
      min-width: 150px;
      .select2-container {
        width: 100% !important;
      }
    }
  }
}



body > nav{
  grid-area: menu;

  ul {
    list-style: none;
    padding: 1rem 2rem;
    margin: 0;
    display: flex;
    flex-flow: column;
    gap: 0.5rem;

    li {
      a {
        display: block;
        width: 100%;
        background-color: var(--color-menu-background);
        color: var(--color-menu-text);
        border-radius: 5px;
        padding: 0.5rem 1rem;

      }

      &.title{
        font-weight: 700;
        margin: 20px 0 10px 15px;
        font-size: 20px;
      }
      
    }
  
  }

}

      
body > nav ul.active {
  margin: 1rem 2rem;
  padding: 1rem 0;
  gap: 0.5rem;
  background: #046391;  
  border-radius: 5px;

  li {
    a {
      background: transparent;
      padding: 0.1rem 1rem;
      }
    }
       
}
          
body > nav ul.active li:first-child {
  a {      
    margin: 0 0 0.5rem 0;
    font-weight: 700;
    font-size: 18px;
  }
}


ul.breadcrumbs{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;

  li:not(:first-child)::before {
    font-family: var(--fa-family-classic);
    font-weight: 900;
    content: "\f105";
    margin: 0 0.5rem;
  }
}
div.pagination{
  display: flex;
  gap: 0.5rem;
  align-self: center;
  align-items: center;
}

main{
  grid-area: content;
  display: flex;
  flex-flow: column;
  gap: 1rem;
  padding: 1rem 2rem;
  border-radius: 5px;
  margin: 1rem 0;
  min-height: 80vh;
  
  h1 {
    font-size: 35px;
    margin: 1rem 0;
    
    .fa {
    color: var(--color-text);
    font-size:25px;
    }
    
  }

  ul.active{
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.5rem;

    li {
      background-color: white;
      color: var(--color-text);
      border: 2px solid rgba(0,0,0,0.1);
      text-align: left;
      border-radius:5px;
      align-content: center;
      display: flex;

      > a {
        width: 100%;
        padding: 0.5rem 1rem;
      }

      * {
        color: inherit;
      }
    }

    li:first-child{
      display: none;
    }
  }


  #home-slider {
    width: 100%;
    max-width: 100%;
    min-width: 0;

    .splide__track {
      overflow: hidden;

      .splide__slide {
        display: flex;
        align-items: center;      /* vertical center */
        justify-content: center;  /* horizontal center */
        position: relative;       /* needed for text positioning */

        img {
          max-width: 100%;
          max-height: 100%;
          width: auto;
          height: auto;
          display: block;
        }

        .slider-text {
          position: absolute;
          bottom: 30px;
          left: 50%;
          transform: translateX(-50%);
          
          text-align: center;
          color: #fff;
          padding: 12px 20px;
          background: rgba(0, 0, 0, 0.5);
          border-radius: 4px;
        }
      }
    }
  }

  .product-list{
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
  
    .product-item{
      display:flex;
      flex-flow: column;
      background: var(--color-background-light);
      border-radius: 5px;
      border: 2px solid rgba(0,0,0,0.1);
      padding: 1rem 1.5rem;

      h3{
        margin: 5px 0 0 0;
      }
      
      .product-params {
        text-align:center;
      }

      .product-params * {
        color:gray;
        padding:0.5rem 0;
      }
      a {
        max-width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        max-height: 300px;
        height: 100%;
        padding: 0px;
        color: black;
        font-size: 1.2rem;
        line-height: 1.2;
        text-align: center;
      }
    }

    img {
      max-width: 90%;
      height: auto;
      max-height: 80%;
      border: 1px solid rgba(0,0,0,0.3);
      box-shadow: 1px 2px 5px rgba(0,0,0,0.2);
    
    }

    
    h3 a {
      color: var(--color-primary);
    }

    #product-id {
      font-size: 0.8rem;
      color: var(--color-secondary);
    }

    .cart {
      margin-top: auto;
      form {
        display: flex;
        justify-content: space-between;
        align-items: center;
  
        .price {
          font-size: 20px;
          font-weight: 700;
        }
        button {
          padding: 0.5rem;
          font-size: 1.2rem;
          border-radius: 5px;
        }
      }
    }
  }

  
  #filters{
    margin-top:10px;
  }

  #filters,
  #filters form {
    display: flex;
    flex-direction: column;
    gap: 1em;
    background: #f2f2f2;
    padding: 1rem;
    border-radius: 5px;


    .filter-group {
      display: grid;
      grid-template-columns: max-content 1fr;
      gap: 1rem;
      margin: 0;
    }
    
    .filter-group > strong {
      white-space: nowrap;
      min-width: 10em;
    }
    
    .filter-options {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0.5rem 1rem;
    }
    
    .filter {
      display: flex;
      align-items: center;

      img{
        padding: 0 5px;
        max-height: 25px;
      }
    }

    input[type="submit"] {
      border-radius: 5px;
      width: fit-content;
      margin: 10px auto 0 auto;
    }
  }
  
  #order{
    display:flex;
    flex-flow: row nowrap;
    align-items: center;
    gap: 1.5rem;
    background-color: #f2f2f2;
    padding: 0.7rem 1rem;
    border-radius: 5px;

    * {
      color: var(--color-text);
    }
  }

}

main#product-details{
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 1rem;
  height: fit-content;
  grid-template-rows: min-content min-content min-content;

  * {
    grid-column: 1/-1;
    
  }
  
  main#product-details .param {
    padding:0.1rem 0;
  }

  #product-images{
    grid-column: 1/2;
    background: var(--color-background-light);
    border-radius: 5px;
    
    #splide-big-track {
      padding:2rem 5rem !important;
    }

    #splide-big {
      li {
        aspect-ratio: 1 / 1;          /* change to 4/3, 3/2, etc. */
      }

      img{
        width: 100%;
        height: 100%;
        object-fit: contain;           /* use 'cover' if you prefer cropping */
        display: block;
      }
    }

    #splide-nav {
        display: flex;
        margin: 1rem auto 0;
        padding: 0;
        justify-content: center;
        li {
          overflow: hidden;
          list-style: none;
          margin: 0 0.2rem;
          cursor: pointer;
      
          img {
            width: 100%;
            height: auto;
        }
      }
    }
  }

  #product-info {
    grid-column: 2/3;
    background: #f2f2f2;
    padding: 2rem;
    border-radius: 5px;
  }

  #product-info .product-params .param {
    padding: 0.3rem 0;
  }
  
  .cart {
    margin-top: 2rem;
    form {
      display: flex;
      justify-content: flex-start;
      gap: 1rem;
      align-items: center;

      .price {
        font-size: 1.5rem;
        font-weight: 700;
      }
      button {
        padding: 0.5rem;
        font-size: 1.2rem;
        border-radius: 5px;
      }
    }
  }
  
  #product-id{
    font-size: 0.9rem;
    color: var(--color-secondary);
    font-family: Courier;
    float: right;
  }
}

main.order-confirmation{
 
  .bank-details{
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: fit-content;
    gap: 0.5rem;
  }
}

main.full{
  grid-column: 1 / -1;
}

footer{
  grid-area: footer;
  margin-top: auto;
}


/* Cart */
main{
  button[name=cancel_cart]{
    padding: 0.5rem 2rem;
    float: right;
  }

  button.next-step, button[name=summary] {
    width: fit-content;
    justify-self: flex-end;
  }
  button.prev-step {
    width: fit-content;
    justify-self: flex-start;
  }

  #cart-accordion {
    margin-top: 1rem;
    
    .step {
      overflow: hidden;
      max-height: 0;
      opacity: 0;
      transition: max-height 1000ms ease, opacity 1000ms ease;
    }

    .step.active {
      /*max-height: 2000px; /* big enough for content */
      max-height: fit-content;
      opacity: 1;
      border-radius: 5px;
      border: 2px solid rgba(0,0,0,0.075);
      padding: 1.5rem;
    }

    .cart-products {
      display: grid;
      grid-template-columns: 3fr 1fr 1fr;
      gap: 0.5rem;
    
      .divider {
        grid-column: 1/-1;
        height: 1px;
        background-color: var(--color-secondary);
        margin: 0.5rem 0;
      }
  
      & > * {
        margin: 0;
      }
      
      h3 {
        font-size: 16px;
        font-weight: 600;
        display: flex;
        align-items: center;
      }

      .quantity {
        display: flex;
        flex-flow: row nowrap;
        gap: 0.5rem;
        align-items: center;

        button {
          padding: 0.5rem;
          font-size: 0.5rem;
        }
        *:disabled {
          opacity: 0.5;
          cursor: not-allowed;
        }
      }

      .price {
        display: flex;
        align-items: center;
        justify-content: space-between;
      }
    }

    .shipping-and-payment {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
      
      .shipping {
        display: flex;
        flex-flow: column;
        gap: 1rem;
      
        .delivery{
          display: flex;
          flex-flow: row nowrap;
          align-items: center;
          gap: 0.5rem;
          cursor: pointer;
          background: var(--color-background-light);
          color: var(--color-text);
          border-radius: 5px;
          padding: 0.5rem 1rem;
          border: 2px solid rgba(0,0,0,0.075);
          min-height: 44px; /* for alignment*/
  
          * {
            margin: 0;
            color: var(--color-text);
          }
          & > p {
            margin-left: auto;
          }
          & > img {
            max-height: 30px;
          }

          &.shipping-selected{
            margin-top: auto;
            cursor: default;
            background: #e2ffe7;
            color: var(--color-text);
            font-weight: 700;
            
            p {
            margin-left:0px;
            }
            
            span {
              font-weight: 400;
            }
            
            * {
              color: var(--color-text);
            }
          }
          &.country-selection{
            background: none;
            border:none;

            label {
              color: var(--color-text);
              font-weight: 600;
            }
            .select2{
              flex-grow: 1;
            }
            .select2 * {
              color: initial;
            }
          }
        }
      }
  
      .payments {
        display: flex;
        flex-flow: column;
        gap: 1rem;
      
        .payment{
          display: flex;
          flex-flow: row nowrap;
          align-items: center;
          gap: 0.5rem;
          cursor: pointer;
          background: var(--color-background-light);
          color: var(--color-text);
          border-radius: 5px;
          padding: 0.5rem 1rem;
          border: 2px solid rgba(0,0,0,0.075);
          min-height: 44px; /* for alignment*/
  
          *{
            margin: 0;
            color: var(--color-text);
          }

          & > p {
            margin-left: auto;
          }

          & > img {
            max-height: 30px;
          }

          &#shipping-price{
            margin-top: auto;
            background: var(--color-background-light);
            justify-content: flex-end;
            border:none;

            * {
              color: var(--color-text);
            }
          }
          &.empty{
            visibility: hidden;
            cursor: default;
          }
        }
      }
    }


    .billing {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1rem;

      .sub-billing, .sub-shipping {
        display: grid;
        grid-template-columns: 1fr 2fr;
        grid-template-rows: repeat(10, min-content);
        gap: 1rem;
      }

      h4, .note {
        grid-column: 1/-1;
      }

      .note {
        font-size: 0.9rem;
        color: var(--color-secondary);
        line-height: 2rem;
      }

      i.required{
        color: red;
      }
      
      input {
        font-size: 16px;
        padding: 4px 6px;
        border-radius: 5px;
        border: 1px solid rgba(0,0,0,0.25);
      }

      #dummy_billing_toggle, #dummy_shipping_toggle {
        margin-right: auto;
      }
      
    }

    .summary {
      display: grid;
      grid-template-columns: 1fr max-content max-content;
      column-gap: 1rem;
      row-gap: .35rem;

      padding: 1rem;
      border: 1px solid var(--color-secondary);
      border-radius: .5rem;

      > * {
        margin: 0;
        min-width: 0; /* lets long product names wrap */
      }
      .w-3 {
        grid-column: 1 / -1;
        text-align: left;           /* center usually looks odd for summaries */
        font-weight: 700;
        font-size: 1rem;
        padding: .25rem 0 .5rem;
      }
      h5.w-1 {
        grid-column: 1;
        font-weight: 600;
        line-height: 1.2;
      }

      .quantity {
        grid-column: 2;
        justify-self: end;
        opacity: .8;
        white-space: nowrap;
      }
      .w-1:not(h5, .quantity) {
        grid-column: 3;
        justify-self: end;
        white-space: nowrap;
        text-align: right;
        &[name=cancel_recap] {
          grid-column: 1;
          justify-self: start;
        }
      }
      .w-2 {
        grid-column: 1 / span 2;
        opacity: .9;
      }
      .divider {
        grid-column: 1 / -1;
        height: 1px;
        background: var(--color-secondary);
        margin: .6rem 0;
      }
      .total {
        font-weight: 800;
        font-size: 1.05rem;
      }

    }

  }
}


.no-frame img {
border:none !important;
box-shadow:none !important;
}
