@import url(fontawesome-all.min.css);
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,700,900");
@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400;700&display=swap');

/* resetter */
  html, body, div, span, applet, object,
  iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
  pre, a, abbr, acronym, address, big, cite,
  code, del, dfn, em, img, ins, kbd, q, s, samp,
  small, strike, strong, sub, sup, tt, var, b,
  u, i, center, dl, dt, dd, ol, ul, li, fieldset,
  form, label, legend, table, caption, tbody,
  tfoot, thead, tr, th, td, article, aside,
  canvas, details, embed, figure, figcaption,
  footer, header, hgroup, menu, nav, output, ruby,
  section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;}

  article, aside, details, figcaption, figure,
  footer, header, hgroup, menu, nav, section {
    display: block;}

  body {
    line-height: 1;
    -webkit-text-size-adjust: none;
    -ms-overflow-style: scrollbar;
  }

  ol, ul {
    list-style: none;
  }

  blockquote, q {
    quotes: none;
  }

    blockquote:before, blockquote:after, q:before, q:after {
      content: '';
      content: none;
    }

  table {
    border-collapse: collapse;
    border-spacing: 0;
  }

  mark {
    background-color: transparent;
    color: inherit;
  }

  input::-moz-focus-inner {
    border: 0;
    padding: 0;
  }

  input, select, textarea {
    -moz-appearance: none;
    -webkit-appearance: none;
    -ms-appearance: none;
    appearance: none;
  }

/* basic */
  @-ms-viewport {
    width: device-width;
  }

  body {
    background: #ffffff;
  }

  html {
    box-sizing: border-box;
  }

  *, *:before, *:after {
    box-sizing: inherit;
    min-height: 0; /* 20210224 | fix initial zooming */
    min-width: 0; /* 20210224 | fix initial zooming */
  }


/* type */
  body, input, select, textarea {
    color: #222;
    font: 300 16px/normal "Source Sans Pro", Helvetica, sans-serif;
  }

  a {
    transition: color 0.2s ease;
    text-decoration: none;
    color: #222;
  }
    a:hover {
      border-bottom-color: transparent;
      color: #3170A9;
    }

  .link {
    font-weight: 700;
    color: #3170A9;
  }

  strong, b {
    font-weight: 900;
  }

  em, i {
    font-style: italic;
  }

  p {
    margin: 0 0 0.5rem;
  }

  h1 {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.025rem;
    margin: 0 0 0.5rem;
    font-family: 'Roboto Slab', serif;
  }

    h1 a {
      color: inherit;
    }

    @media screen and (max-width: 768px) {
      h1 {
        font-size: 1.25rem;
        margin: 0 0 0.5rem;
      }
    }

  h2, h3, h4, h5, h6 {
    font-family: 'Roboto Slab', serif;
    font-weight: 700;
    line-height: 1.5;
    margin: 0 0 2em 0;
    text-transform: uppercase;
    letter-spacing: 0.35em;
  }

    h2 a, h3 a, h4 a, h5 a, h6 a {
      color: inherit;
    }

  h2 {
    font-size: 1.1em;
  }

  h3 {
    font-size: 1em;
  }

  h4 {
    font-size: 0.8em;
  }

  h5 {
    font-size: 0.8em;
  }

  h6 {
    font-size: 0.8em;
  }

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

    h1 br, h2 br, h3 br, h4 br, h5 br, h6 br {
      display: none;
    }

  }

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

    h2 {
      font-size: 1rem;
      letter-spacing: 0.1rem;
    }

  }

  sub {
    font-size: 0.8em;
    position: relative;
    top: 0.5em;
  }

  sup {
    font-size: 0.8em;
    position: relative;
    top: -0.5em;
  }

  blockquote {
    border-left: solid 4px #c9c9c9;
    font-style: italic;
    margin: 0 0 2em 0;
    padding: 0.5em 0 0.5em 2em;
  }

  code {
    background: rgba(144, 144, 144, 0.075);
    border-radius: 4px;
    border: solid 1px #c9c9c9;
    font-family: "Courier New", monospace;
    font-size: 0.9em;
    margin: 0 0.25em;
    padding: 0.25em 0.65em;
  }

  pre {
    -webkit-overflow-scrolling: touch;
    font-family: "Courier New", monospace;
    font-size: 0.9em;
    margin: 0 0 2em 0;
  }

    pre code {
      display: block;
      line-height: 1.75;
      padding: 1em 1.5em;
      overflow-x: auto;
    }

  hr {
    border: 0;
    border-bottom: solid 1px #c9c9c9;
    margin: 2em 0;
  }

    hr.major {
      margin: 3em 0;
    }

  .align-left {
    text-align: left;
  }

  .align-center {
    text-align: center;
  }

  .align-right {
    text-align: right;
  }

  input[type="radio"],
  input[type="checkbox"],
  .hidden {
    display: none !important;
  }

  .show {
    display: block;
  }

  .page-wrapper {
    min-height: 100vh;
    display: grid;
    /* 20210122 | Fixed category bar */
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
  }

  .heading-wrapper {
    margin-bottom: 1.5rem;
  }

  .inner {
    padding: 0 0.875rem;
  }

  img {
    max-width: 100%;
    border: 0;
  }

/* input */
  input[type="text"],
  input[type="number"],
  input[type="password"],
  input[type="email"],
  textarea {
    width: 100%;
    padding: 0.5rem;
    border: solid 1px #eaeaea;
    -webkit-appearance: none;
    transition: all .3s linear;
  }
    input[type="text"]:focus,
    input[type="number"]:focus,
    input[type="password"]:focus,
    input[type="email"]:focus,
    textarea:focus {
      outline: none !important;
      border: solid 1px #d8d8d8;
      box-shadow: 0 2px 6px -8px rgba(34,34,34, .45);
    }
    /* 20210122 | disabled input */
    input[type="text"].input--disable,
    input[type="number"].input--disable,
    input[type="password"].input--disable,
    input[type="email"].input--disable,
    textarea.input--disable {
      color: #eaeaea;
      background-color: #c9c9c9 !important;
      border: solid 1px #c9c9c9 !important;
      pointer-events: none !important;
    }
  input[type="number"] {
    -webkit-appearance: textfield;
    -moz-appearance: textfield;
    appearance: textfield;
  }
    input[type=number]::-webkit-inner-spin-button,
    input[type=number]::-webkit-outer-spin-button {
      -webkit-appearance: none;
    }
  input::-webkit-calendar-picker-indicator {
    display: none;
  }
  textarea {
    resize: none;
  }
    input:-webkit-autofill,
    input:-webkit-autofill:hover,
    input:-webkit-autofill:focus,
    textarea:-webkit-autofill,
    textarea:-webkit-autofill:hover,
    textarea:-webkit-autofill:focus,
    select:-webkit-autofill,
    select:-webkit-autofill:hover,
    select:-webkit-autofill:focus {
      border: 1px solid green;
      -webkit-text-fill-color: green;
      -webkit-box-shadow: 0 0 0px 1000px #000 inset;
      transition: background-color 5000s ease-in-out 0s;
    }
  .input-row {
    position: relative;
    margin-bottom: 2rem;
  }
    .input-row label {
      position: absolute;
      top: calc(50% - 7px);
      left: 0;
      opacity: 0;
      transition: all .3s ease;
    }
    .input-row input:not(:placeholder-shown) {
      padding: 0.5rem;
    }
    .input-row input:not(:placeholder-shown) + label {
      transform: translateY(-2.125rem);
      opacity: .7;
    }
    .input-row.error {
      border: solid 1px #d03845 !important; /* 20210224 | red color adjustment */
    }
    .input-row.disable label,
    .input-row.disable input {
      pointer-events: none;
    }
    .input-row.disable input {
      color: #878787;
      background-color: #eaeaea;
      border: solid 1px #eaeaea;
    }

  .input-quantity-wrapper {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    position: relative;
  }
  .input-quantity {
    padding: 0 0.5rem;
    font-weight: 700;
    text-align: center;
    max-width: 3.5rem;
    border: none !important;
    /* 20210122 | whatsapp button adjustment */
    margin: 0 0.5rem;
  }
    .input-quantity__button {
      display: flex;
      flex: 0 0 auto;
      justify-content: center;
      align-items: center;
      background-color: transparent;
      color: #222;
      width: 32px;
      height: 32px;
      border-radius: 50%;
      font: 700 1.5rem/normal 'Roboto Slab';
      border: solid 1px #222;
    }
      /* 20210122 | disabled button */
      .input-quantity__button.input--disable {
        color: #c9c9c9;
        border-color: #c9c9c9;
        pointer-events: none;
      }

  .checkradio-row {
    display: inline-flex;
    align-items: center;
  }
    .checkradio-row .checkradio-label {
      position: relative;
      top: auto;
      left: auto;
      opacity: 1;
      padding: 0 0 0 2rem;
    }
    .checkradio-row .checkradio-label a {
      color: #3170A9;
    }
    .checkradio-row input[type="checkbox"]:checked + .custom-checkbox {
      border: solid 1px #222;
    }
    .checkradio-row input[type="checkbox"]:checked + .custom-checkbox i {
      opacity: 1;
      visibility: visible;
    }

  .custom-checkbox {
    position: absolute;
    left: 0;
    display: inline-flex;
    border: solid 1px #eaeaea;
    width: 1.5rem;
    height: 1.5rem;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    margin: 0 .5rem 0 0;
    background-color: #fff;
    transition: all 0.2s ease;
  }
    .custom-checkbox i {
      color: #3170A9;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: all 0.2s ease;
    }

/* button */
  button:active, button:focus, button:hover {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
  }

  .button {
    position: relative;
    display: inline-block;
    font: 700 1rem/normal 'Roboto Slab', serif;
    color: #222;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 0.1em;
    padding: 0.75rem 1rem;
    border: solid 1px transparent;
    cursor: pointer;
    border-radius: 4px;
    transition: all 0.2s ease-out;
    box-shadow: 0px, 0, 0px, 0, rgba(17, 17, 17, 0.3);
  }
    .button:focus {
      outline-width: 0px;
    }
    .button.mini {
      font-size: 0.75rem;
      padding: 0.5rem;
    }
    .button.button-outline {
      color: #222;
      background-color: transparent;
      border: 1px solid #F7C026;
    }
      .button.button-outline:hover {
        color: #F7C026;
      }

    .button.button--yellow {
      color: #222;
      background-color: #F7C026;
      border: 1px solid #F7C026;
    }
      .button.button--yellow:hover {
        background-color: rgba(247, 192, 38, 0.7);
        border-color: rgba(247, 192, 38, 0.7);
      }
    /* 20210122 | whatsapp button adjustment */
    .button.button--whatsapp {
      color: #075E54;
      background-color: transparent;
      border: 1px solid #075E54;
    }
      /* 20210122 | whatsapp button adjustment */
      .button.button--whatsapp::before {
        content: '\f232';
        font-family: 'Font Awesome 5 Brands';
        font-size: 1.375rem;
        /* 20220213 | Adjust product card into two columns in mobile view */
        margin: auto;
        /*position: absolute;
        left: 0.4rem;
        top: 0.2rem;*/
      }
      /* 20210122 | whatsapp button adjustment */
      .button.button--whatsapp::hover {
        background-color: #128C7E;
        border-color: #128C7E;
      }

    /* 20210122 | disabled button */
      .button.button--disable {
        pointer-events: none;
        color: #eaeaea;
        background-color: #c9c9c9;
        border: 1px solid #c9c9c9;
      }
        .button.button--disable::hover {
          background-color: #c9c9c9;
          border-color: #c9c9c9;
        }


/* header */
  .header {
    position: fixed;
    top : 0;
    width: 100%;
    height: 48px;
    z-index: 5;
    background-color: #FFF;
  }
    .header .inner {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 0 0.5rem;
      height: inherit;
    }
    .header .logo-wrapper {
      display: flex;
      flex: 1 1 auto;
      align-items: center;
      justify-content: flex-start;
      padding: 0.5rem;
      transition: opacity 0.2s ease;
    }
    .header .menu-icon-wrapper,
    .header .back-icon-wrapper,
    .header .cart-icon-wrapper {
      display: flex;
      flex: 0 0 auto;
      align-items: center;
      justify-content: center;
    }
    .header .menu-icon,
    .header .back-icon,
    .header .cart-icon {
      position: relative;
      font-size: 1.125rem;
      padding: 4px;
    }
    .header .page-title-wrapper {
      padding: 0 0.5rem;
      flex: 1 1 auto;
      justify-self: flex-start;
    }
    .header .page-title {
      letter-spacing: 0.1rem;
      margin: 0;
      line-height: normal;
    }

/* footer */
  .footer {
    background-color: #FFF;
  }
  .copyright {
    padding: 1rem 0;
    font-size: 0.875rem;
  }

/* overlay */
  .page-overlay {
    position: fixed;
    z-index: 6;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: none;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s ease;
    background-color: rgba(34, 34, 34, 0.5);
  }

/* navigation menu */
  .menu-active {}
    .menu-active .page-overlay {
      opacity: 1;
      visibility: visible;
      display: block;
    }
    .menu-active .menu-wrapper {
      opacity: 1;
      visibility: visible;
      transform: translate3d(0, 0, 0);
    }

  .menu-wrapper {
    position: fixed;
    z-index: 7;
    top: 0;
    left: 0;
    bottom: 0;
    width: 80vw;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    transform: translate3d(-50%, 0, 0);
    transition: all 0.2s ease;
  }
    .menu-wrapper .logo-wrapper {
      margin: 0 0 2rem;
    }
    .menu-wrapper .logo {
      width: 176px;
      height: 64px;
    }
  .menu-inner-wrapper {
    display: flex;
    height: 100%;
    flex-flow: column nowrap;
    justify-content: space-between;
    padding: 2rem 1.5rem;
    background-color: #fff;
    overflow-y: auto;
  }

  .authentication-menu-row {
    display: flex;
    flex-flow: row wrap;
  }
    .authentication-menu-row .button {
      margin: 0.5rem 0.5rem 0.5rem 0;
    }

  .navigation-menu-wrapper {
    display: flex;
    flex-flow: column wrap;
    margin: 0 0 32px;
  }
  .navigation-menu-list {
    position: relative;
    padding: 0.875rem 0;
  }
    .navigation-menu-list::before {
      content: '';
      display: none;
      width: 5px;
      height: auto;
      background-color: #F7C026;
      position: absolute;
      left: -12px;
      top: 0.875rem;
      bottom: 0.875rem;
    }
    .navigation-menu-list.active-page::before {
      display: block;
    }

  .navigation-menu {
    font: 400 1.5rem/normal 'Roboto Slab', serif;
  }

/* profile */
  .profile-row {
    margin: 0 0 2rem;
  }
  .profile-greet {
    font: 300 1.5rem/normal "Source Sans Pro", arial, sans-serif;
  }
    .profile-greet .profile-name {
      font-weight: 700;
    }


/* logo */
  .logo {
    width: 88px;
    height: 32px;
  }
    .logo img {
      max-width: 100%;
      height: auto;
    }

/* badge */
  .badge-wrapper {
    position: absolute;
    top: 2px;
    right: -4px;
    opacity: 1;
    pointer-events: none;
    transition: opacity 0.3s ease;
  }
  .badge {
    display: block;
    padding: 2px 4px;
    min-width: 1rem;
    font-size: 10px;
    text-align: center;
    color: #fff;
    background-color: #D03845; /* 20210224 | red color adjustment */
    border-radius: 50%;
  }

/* main */
  .main {
    padding: 48px 0 0;
    background-color: #FFF;
  }

/* search */
  .search-active {}
    .search-active .logo-wrapper {
      flex: 0;
      display: none;
      opacity: 0;
      pointer-events: none;
    }
    .search-active .search-wrapper {
      padding: 0.5rem;
      flex: 1 1 auto;
    }
    .search-active .search-field {
      border: none;
      color: #222;
      background-color: #f2f2f2;
      padding: 0.5rem 0.875rem 0.5rem 2.25rem;
    }
    .search-active .search-form .search-icon {
      left: 0.5rem;
      transform: translate3d(0, -50%, 0);
    }
    .search-active .search-field::placeholder {
      color: inherit;
    }

  .search-wrapper {
    padding: 0.5rem 0;
    margin: 0 0.5rem 0 0;
    flex: 0 1 32px;
    transition: opacity 0.2s ease;
  }
  .search-form {
    position: relative;
  }
    .search-form .search-icon {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate3d(-50%, -50%, 0);
      font-size: 1.125rem;
      padding: 4px;
      opacity: 1;
      color: #222;
      transition: all 0.2s ease;
    }
  .search-field {
    padding: 0.5rem;
    color: transparent;
    background-color: transparent;
    border-radius: 1rem;
    width: 100%;
    height: 32px;
    line-height: 32px;
    border: none !important;
  }
    .search-field:focus + .search-icon {
      color: #3170A9;
    }
    .search-field::placeholder {
      color: transparent;
    }

/* authentication */
.authentication .form {
  padding: 1.5rem 0 2rem;
}
  .authentication .form__cta-section {
    justify-content: center;
    display: flex;
    flex-flow: column nowrap;
  }
  .login .forgot-link {
    display: inline-block;
    margin: 1rem 0 0;
  }

/* product tab navigations */
  .tab-navigation-bar {
    /* 20210122 | Fixed category bar */
    position: sticky;
    z-index: 3;
    top: 48px;
    background-color: #fff;
    width: 100%;
    padding: 0.875rem 0;
  }
    .tab-navigation-bar::after,
    .tab-navigation-bar::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      width: 1.125rem;
      height: 100%;
      pointer-events: none;
      z-index: 1;
    }
    .tab-navigation-bar::after {
      right: 0;
      background: linear-gradient(270deg, #FFF 0%, transparent 100%);
    }
    .tab-navigation-bar::before {
      left: 0;
      background: linear-gradient(90deg, #FFF 0%, transparent 100%);
    }
  .tab-navigation-scroller {
    overflow-y: hidden;
    height: 36px;
  }
    .tab-navigation-scroller__scroll-area {
      -webkit-overflow-scrolling: touch;
      display: -ms-flexbox;
      display: flex;
      overflow-x: auto;
      width: auto;
      transform: translate3d(0, 0, 0);
      padding-bottom: 12px;
    }
    .tab-navigation-scroller__scroll-content {
      position: relative;
      display: -ms-flexbox;
      display: flex;
      -ms-flex: 1 0 auto;
      flex: 1 0 auto;
      flex-wrap: wrap;
      -webkit-transform: none;
      -ms-transform: none;
      transform: none;
      will-change: transform;
    }
  .tab-nav {
    position: relative;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-family: 'Roboto Slab', serif;
    font-size: .875rem;
    line-height: 2.25rem;
    font-weight: 400;
    letter-spacing: .1rem;
    text-decoration: none;
    text-transform: uppercase;
    padding: 0;
    position: relative;
    display: -ms-flexbox;
    display: flex;
    -ms-flex: 1 0 auto;
    flex: 1 0 auto;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0 24px;
    border: none;
    outline: none;
    background: none;
    text-align: center;
    white-space: nowrap;
    cursor: pointer;
    -webkit-appearance: none;
    z-index: 1;
    transition: all 0.2s ease;
  }
    .tab-nav::after {
      content: '';
      display: block;
      opacity: 0;
      pointer-events: none;
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translate3d(-50%, 0, 0);
      width: 10px;
      height: 2px;
      background-color: #F7C026;
    }
    .tab-nav:hover {
      color: #D03845; /* 20210224 | red color adjustment */
    }
    .tab-nav.active {
      font-weight: 700;
      color: #D03845; /* 20210224 | red color adjustment */
    }
    .tab-nav.active::after {
      opacity: 1;
    }

/* product index */
  /* 20210122 | Fixed category bar */
  .product-index {
    grid-template-rows: 1fr auto;
  }
  .tab-container {
    padding: 0.875rem 0;
  }
  .tab-content {
    display: none;
    -webkit-animation: fade-in .3s;
    animation: fade-in .3s;
  }
    .tab-content.active {
      display: grid;
    }

  .tab-pane {
    display: grid;
    /* 20210122 | whatsapp button adjustment */
    /* 20220213 | Adjust product card into two columns in mobile view */
    place-self: auto;
    grid-template-columns: repeat(auto-fill, minmax(144px, 1fr));
    grid-gap: 16px;
  }
    /* 20220213 | Adjust product card into two columns in mobile view */
    @media screen and (min-device-width: 768px) and (max-device-width: 1024px) {
      .tab-pane {
        grid-template-columns: repeat(auto-fill, minmax(176px, 1fr));
      }
    }
    @media screen and (min-device-width: 1024px) {
      .tab-pane {
        /* 20220213 | Adjust product card into two columns in mobile view */
        grid-template-columns: repeat(auto-fill, minmax(192px, 1fr));
        grid-gap: 24px 16px;
      }
    }

/* product card */
  .product-card {
    background-color: #fff;
    border-radius: 4px;
    box-shadow: 0 1px 8px rgba(34,34,34,0.34);
    transition: all 0.3s cubic-bezier(.25,.8,.25,1);
    /* 20210122 | whatsapp button adjustment */
    display: grid;
    grid-template-rows: 1fr auto;
  }
    /* 20210122 | Product Card: Sold Out & New */
    .product-card.product-card--sold-out .product-card__sold-out-badge-wrapper,
    .product-card.product-card--new .product-card__new-badge-wrapper {
      opacity: 1;
      visibility: visible;
    }
    .product-card__main-container {
      position: relative;
      display: flex;
      width: 100%;
      flex-direction: column;
    }
    /* 20210122 | Product Card: Sold Out & New */
    .product-card__sold-out-badge-wrapper {
      width: 76px;
      height: 76px;
      position: absolute;
      z-index: 1;
      overflow: hidden;
      top: -4px;
      left: -4px;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }
      /* 20210122 | Product Card: Sold Out & New */
      .product-card__sold-out-badge-wrapper::before, .product-card__sold-out-badge-wrapper::after {
        position: absolute;
        z-index: -1;
        content: '';
        display: block;
        border: 2px solid #eaeaea;
        border-top-color: transparent;
        border-left-color: transparent;
      }
      /* 20210122 | Product Card: Sold Out & New */
      .product-card__sold-out-badge-wrapper::before {
        top: 0;
        right: 0;
      }
      /* 20210122 | Product Card: Sold Out & New */
      .product-card__sold-out-badge-wrapper::after {
        bottom: 0;
        left: 0;
      }
    /* 20210122 | Product Card: Sold Out & New */
    .product-card__sold-out-badge {
      position: absolute;
      display: block;
      width: 142px;
      padding: 0.5rem;
      color: #fff;
      background-color: #c9c9c9;
      font: 700 0.75rem/normal 'Roboto Slab', serif;
      text-transform: uppercase;
      text-align: center;
      right: -22px;
      top: 12px;
      transform: rotate(-45deg);
    }
    /* 20210122 | Product Card: Sold Out & New */
    .product-card__new-badge-wrapper {
      width: 58px;
      height: 58px;
      padding: 10px;
      position: absolute;
      z-index: 1;
      overflow: hidden;
      top: -10px;
      right: -10px;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }
    /* 20210122 | Product Card: Sold Out & New */
    .product-card__new-badge {
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: #d03845; /* 20210224 | red color adjustment */
      color: #fff;
      width: 38px;
      height: 38px;
      position: relative;
      font: 700 0.75rem/normal 'Roboto Slab', serif;
      text-transform: uppercase;
      text-align: center;
      z-index: 1;
    }
      /* 20210122 | Product Card: Sold Out & New */
      .product-card__new-badge > * {
        position: relative;
        z-index: 1;
      }
      /* 20210122 | Product Card: Sold Out & New */
      .product-card__new-badge:before,
      .product-card__new-badge:after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        height: 38px;
        width: 38px;
        background-color: #d03845; /* 20210224 | red color adjustment */
      }
      /* 20210122 | Product Card: Sold Out & New */
      .product-card__new-badge:before {
        transform: rotate(30deg);
      }
      /* 20210122 | Product Card: Sold Out & New */
      .product-card__new-badge:after {
        transform: rotate(60deg);
      }

    .product-card__image-wrapper {
      position: relative;
      display: inline-block;
      width: 100%;
      height: 0;
      padding-top: 100%;
      border-radius: 4px 4px 0 0;
      background-color: #fff;
      overflow: hidden;
    }
      .product-card__image-wrapper img {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate3d(-50%, -50%, 0);
        width: auto;
        height: auto;
        max-height: 100%;
        object-fit: cover;
        object-position: center;
      }
    .product-card__info-wrapper {
      padding: 0.5rem;
    }
    .product-card__title {
      font-size: 0.8rem; /* 20220221 | Adjust product card font-size */
      letter-spacing: 0.075rem;
      margin: 0;
      color: #3170A9;
    }
    .product-card__cta-container {
      position: relative;
      padding: 0.5rem;
      display: flex;
      flex-flow: row wrap;
      justify-content: space-between;
      align-items: center;
      gap: 16px; /* 20220213 | Adjust product card into two columns in mobile view */
    }
    /* 20220213 | Adjust product card into two columns in mobile view */
    .product-card__cta-stack {
      display: flex;
      flex: 1 1 auto;
      gap: 8px;
    }
    .product-card__cta-cart {
      font-size: 0.875rem;
      font-weight: 700;
      color: #3170A9;
      flex: 1 1 auto;
    }
      /* 20210122 | whatsapp button adjustment */
      /* 20220213 | Adjust product card into two columns in mobile view */
      .product-card .button--whatsapp {
        flex: 0 1 40px;
        /*margin-right: 12px;*/
        /*margin-left: auto;*/
      }
      /* 20220213 | Adjust product card into two columns in mobile view */
      @media screen and (max-device-width: 412px) {
        .product-card__cta-cart {
          letter-spacing: 0rem;
        }
      }
    .discount {
      padding: 0 0.25rem;
      font: 700 0.875rem/normal "Source Sans Pro", arial, sans-serif;
      color: #fff;
      background-color: #d03845; /* 20210224 | red color adjustment */
      margin: 0 0.25rem 0 0;
    }
    .original-price {
      font: 300 0.875rem/normal "Source Sans Pro", arial, sans-serif;
      color: #878787;
      text-decoration: line-through;
    }
    .product-card__price {
      position: relative;
      font: 700 1.5rem/1.5rem "Source Sans Pro", arial, sans-serif;
      color: #222222;
      margin: 0 12px 0 0;
      padding: 12px 0 0;
    }
      .product-card__price::before {
        position: absolute;
        top: 0;
        left: 0;
        content: 'IDR';
        font: 300 0.75rem/normal "Source Sans Pro", arial, sans-serif;
      }
      @media screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation:portrait) {
        .product-card__price {
          font-size: 1.275rem;
        }
      }
    .product-card:hover {
      box-shadow: 0 0 2px rgba(34,34,34,0.24);
    }

/* product details */
  .product-details {}
    /* 20210122 | Product Card: Sold Out & New */
    .product-details--new .product-details__new-badge,
    .product-details--sold-out .product-details__sold-out-badge {
      display: inline-block;
      margin: 0 0.5rem 0.5rem 0;
    }
    .product-details .main .inner {
      padding: 0;
    }
    .product-details__gallery {
      width: auto;
      padding: 0;
      margin: 0 0 24px;
      /* 20210224 | fix initial zooming */
      display: grid;
      grid-template-rows: 1fr;
    }
      .product-details__gallery .slick-dots {
        position: absolute;
        display: flex;
        left: 50%;
        transform: translate3d(-50%, 0, 0);
        bottom: 12px;
      }
        .product-details__gallery .slick-dots li {
          margin: 0 8px;
        }
        .product-details__gallery .slick-dots li button {
          text-indent: -9999px;
          overflow: hidden;
          outline: none;
          border: 1px solid #F7C026;
          background-color: #F7C026;
          border-radius: 50%;
          width: 12px;
          height: 12px;
          padding: 0;
          opacity: 0.5;
        }
        .product-details__gallery .slick-dots li.slick-active button {
          opacity: 1;
        }
    .product-details__single-image-container {
      max-width: 100vw; /* 20210224 | fix initial zooming */
      position: relative;
    }
    .product-details__image-wrapper {
      background-color: #fff;
      /* 20210224 | fix initial zooming */
      position: relative;
      display: grid !important;
      max-width: 100vw;
      max-height: 65vh;
      grid-template-columns: 1fr;
      grid-template-rows: 1fr;
      justify-items: center;
      align-items: center; /* 20220221 | Vertical align for the product image */
    }
      /* 20210225 | embed video */ /* 20210225 | remove old syntax */
      .product-details__image-wrapper::before {
        content: "";
        display: block;
        padding-bottom: 100%; /* 20220213 | Mods product image aspect ratio into 1:1 */
      }
      /* 20210225 | embed video */ /* 20210225 | remove old syntax */
      .product-details__image-wrapper > :first-child {
        position: absolute;
        width: inherit !important;
        height: inherit !important;
        max-height: 100%;
        max-width: 100%;
        object-fit: scale-down;
      }
    .product-details .slick-arrow {
      position: absolute;
      top: 50%;
      width: 35px;
      height: 42px;
      padding: 10px;
      z-index: 1;
      background: none;
      outline: none;
      border: none;
      transform: translate3d(0, -50%, 0);
      background-color: rgba(255, 255, 255, 0.1); /* 20210225 | embed video */
    }
      .product-details .slick-arrow::before {
        font: 900 1.5rem/normal 'Font Awesome\ 5 Free';
        display: block;
        color: #222;
      }
    .product-details .prev {
      left: 0;
    }
      .product-details .prev::before {
        content: '\f053';
      }
    .product-details .next {
      right: 0;
    }
      .product-details .next::before {
        content: '\f054';
      }
    .product-details__info-container {
      width: 100%; /* 20210224 | fix initial zooming */
      position: relative;
      padding: 0 0.875rem 3rem;
    }
    .product-details__new-badge {
      display: none;
      font: 700 0.75rem/normal 'Roboto Slab', serif;
      color: #fff;
      background-color: #d03845; /* 20210224 | red color adjustment */
      padding: 0.5rem;
      /* 20210122 | Product Card: Sold Out & New */
      text-transform: uppercase;
      border-radius: 0.5rem;
    }
    /* 20210122 | Product Card: Sold Out & New */
    .product-details__sold-out-badge {
      display: none;
      font: 700 0.75rem/normal 'Roboto Slab', serif;
      color: #fff;
      background-color: #c9c9c9;
      padding: 0.5rem;
      text-transform: uppercase;
      border-radius: 0.5rem;
    }
    .product-details__product-name {
      position: relative;
      font-size: 1.125rem;
      letter-spacing: 0.05rem;
      margin: 0 0 1rem;
    }
    .product-details__product-code {
      font: 300 0.875rem/normal "Source Sans Pro", Helvetica, sans-serif;;
      letter-spacing: 0.05rem;
    }
      .product-details__product-code::before {
        content: '\A';
        white-space: pre;
      }
    .product-details__form {
      display: flex;
      flex-flow: row wrap;
      justify-content: space-between;
      margin: 0 0 24px;
    }
    .product-details__form-cta-wrapper {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2;
      background: #fff;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 0 0.75rem;
      height: 48px;
      gap: 16px; /* 20220213 | Create media placeholder within the product description */
    }
      /* 20210122 | whatsapp button adjustment*/
      /* 20220213 | Create media placeholder within the product description */
      .product-details__form-cta-wrapper .button--whatsapp {
        /*margin: 0 12px 0 0;
        height: 34px;
        width: 34px;*/
        padding: 0.25rem 0.5rem;
      }
      .product-details__form-cta-wrapper .product-details__add-to-cart {
        flex: 1 1 auto;
      }

    .product-details__product-price {
      position: relative;
      font: 700 1.5rem/1.5rem "Source Sans Pro", arial, sans-serif;
      color: #222222;
      padding: 12px 0 0;
      flex: 0 0 auto;
    }
      .product-details__product-price::before {
        position: absolute;
        top: 0;
        left: 0;
        content: 'IDR';
        font: 300 0.75rem/normal "Source Sans Pro", arial, sans-serif;
      }
    .product-details__additional-infos {
      padding: 24px 0 24px 18px;
      border-top: solid 1px #d3d3d3;
      list-style: disc;
    }
      .product-details__additional-infos li {
        margin: 0 0 12px;
      }
      .product-details__additional-infos li:last-child {
        margin: 0;
      }
    /*20220213 | Create media placeholder within the product description*/
    .product-details__media-stack {
      display: grid;
      padding: 0 0 24px;
      grid-gap: 16px;
      grid-template-columns: repeat(auto-fill, minmax(640px, 1fr));
    }
      @media screen and (max-device-width: 412px) {
        .product-details__media-stack {
          grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
        }
      }
    .product-details__media-wrapper {
      position: relative;
      display: grid;
      max-width: 100%;
      grid-template-columns: 1fr;
      grid-template-rows: 1fr;
      justify-items: center;
    }
      .product-details__media-wrapper::before {
        content: "";
        display: block;
        padding-bottom: calc(100% / (16/9));
      }
      .product-details__media-wrapper > :first-child {
        position: absolute;
        width: 100%;
        height: 100%;
        max-height: 100%;
        max-width: 100%;
        object-fit: scale-down;
      }


/* cart */
  .order-form {
    padding: 0 0 6rem;
  }
    .order-form.order-summary-expanded {
      padding: 0 0 9rem;
    }
    .order-form.order-summary-expanded .cart__order-summary-body {
      padding: 0 0 0.5rem;
      height: auto;
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }
    .order-form.order-summary-expanded .cart__order-summary-header .icon-angle::before {
      content: '\f0d7';
    }

  .cart__items-section {
    position: relative;
    padding: 1.125rem 0 2rem;
  }
    .cart__items-section .heading,
    .cart__invoice-section .heading {
      margin-bottom: 0;
    }

  .product-cart {
    background-color: #fff;
    border-radius: 4px;
    padding: 0.875rem;
    box-shadow: 0 1px 8px rgba(34,34,34,0.34);
    transition: all 0.3s cubic-bezier(.25,.8,.25,1);
    display: flex;
    flex-flow: column nowrap;
    margin: 0 0 1.125rem;
  }
    .product-cart:last-child {
      margin: 0;
    }
    .product-cart__main-container {
      display: flex;
      flex-flow: row nowrap;
      margin: 0 0 1rem;
    }
    .product-cart__image-wrapper {
      position: relative;
      display: inline-block;
      flex: 0 0 32%;
      height: 0;
      padding-top: 32%;
      background-color: #fff;
      overflow: hidden;
      border: solid 1px #eaeaea;
    }
      .product-cart__image-wrapper img {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate3d(-50%, -50%, 0);
        width: auto;
        height: auto;
        max-height: 100%;
        object-fit: cover;
        object-position: center;
      }
    .product-cart__info-wrapper {
      padding: 0 0.5rem;
      flex: 1 1 auto;
    }
      @media screen and (min-device-width: 412px) {
        .product-cart__info-wrapper {
          padding: 0 0.5rem 0 1rem;
        }
      }
    .product-cart__product-name {
      font-size: 0.875rem;
      letter-spacing: 0.075rem;
      margin: 0;
    }
    .product-cart__product-code {
      display: inline-block;
      font-size: 0.875rem;
      margin: 0 0 0.5rem;
    }
    .product-cart__product-price,
    .product-cart__product-total-price {
      position: relative;
      font: 700 1.125rem/1.125rem "Source Sans Pro", arial, sans-serif;
      color: #222222;
      padding: 12px 0 0;
    }
      .product-cart__product-price::before,
      .product-cart__product-total-price::before {
        position: absolute;
        top: 0;
        left: 0;
        content: 'IDR';
        font: 300 0.75rem/normal "Source Sans Pro", arial, sans-serif;
      }
    .product-cart__product-price {
      margin: 0 0 0.5rem;
    }
    .product-cart__product-total-price {
      font-size: 1.375rem;
      padding: 16px 0 0;
    }
      .product-cart__product-total-price::before {
        content: 'TOTAL (IDR)';
      }
    .product-cart__calculation-wrapper {
      display: flex;
      flex-flow: column nowrap;
      margin: 0;
      position: relative;
    }
      .product-cart__calculation-wrapper .input-quantity-wrapper {
        margin: 0 0 0.5rem;
      }
      .product-cart__calculation-wrapper .input-quantity {
        flex: 0 0 auto;
        width: auto;
      }
    .product-cart__remove-button {
      font-size: 0.875rem;
      font-weight: 700;
      color: #d03845; /* 20210224 | red color adjustment */
      margin: 0 0 0 1rem;
    }
      .product-cart__remove-button:hover,
      .product-cart__remove-button:active {
        color: #AC371E;
      }
    .product-cart__messages-field {
    }

  .cart__invoice-section {
    margin: 0 -0.875rem;
    padding: 1.125rem 0.875rem 2rem;;
    background-color: #f2f2f2;
  }
    .cart__invoice-section .heading-wrapper {
      margin: 0 0 2rem;
    }

  .cart__total-section {
    position: fixed;
    bottom: 48px;
    left: 0;
    right: 0;
    z-index: 2;
    background: #fff;
    display: flex;
    flex-flow: column nowrap;
    justify-content: space-between;
    align-items: flex-end;
    padding: 0 0.75rem 0.5rem;
    height: auto;
  }
    .cart__order-summary-container,
    .cart__order-summary-body {
      display: flex;
      flex-flow: column nowrap;
      width: 100%;
    }
    .cart__order-summary-body {
      padding: 0;
      height: 0;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: all 0.2s linear;
    }
    .cart__order-summary-row {
      display: flex;
      justify-content: space-between;
      margin-bottom: 0.25rem;
    }
      .cart__order-summary-row:last-child {
        margin-bottom: 0;
      }
    .cart__order-summary-label,
    .cart__order-summary-value {
      font-size: 0.875rem;
    }
    .cart__order-summary-value {
      font-weight: 700;
    }
    .cart__order-summary-header {
      cursor: pointer;
      position: relative;
      text-align: center;
      font: 700 0.875rem/normal "Source Sans Pro", arial, sans-serif;
      color: #3170A9;
      padding: 0.5rem 0;
    }
      .cart__order-summary-header .icon-angle {
        margin: 0 0 0 0.5rem;
      }
      .cart__order-summary-header .icon-angle::before {
        content: '\f0d8';
      }
    /* 20210122 | Alignment adjustment of 'Total Payment' */
    .cart__total-section .product-cart__product-total-price {
      text-align: left;
      width: 100%;
    }
    /* 20210122 | Alignment adjustment of 'Total Payment' */
    .cart__total-section .product-cart__product-total-price::before {
      left: 0;
      right: 0;
      content: 'TOTAL PAYMENT';
    }

  .cart__cta-section {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
    background: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 0.75rem;
    height: 48px;
  }
    .cart__cta-section .button {
      flex: 1 1 auto;
    }

/* 20210226 | Pagination */
.pagination-container {
  padding: 0.5rem 0.875rem;
  position: sticky;
  bottom: 0;
  background-color: #fff;
  z-index: 2;
}
.pagination {
  display: flex;
  flex-wrap: wrap;
  border-radius: .25rem;
}
.pagination-item:first-child .pagination-link{
  border-radius: 0.25rem 0 0 0.25rem;
}
.pagination-item:last-child .pagination-link{
  border-radius: 0 0.25rem 0.25rem 0;
}
.pagination-item.disabled .pagination-link{
  pointer-events: none;
  color: #c9c9c9;
}
.pagination-item.current .pagination-link,
.pagination-item.more .pagination-link  {
  pointer-events: none;
  color: #222;
}
.pagination-link {
  position: relative;
  display: block;
  padding: .5rem .75rem;
  line-height: 1.25;
  color: #3170A9;
  margin-left: -1px;
  background-color: #fff;
  border: 1px solid #dee2e6;
  opacity: 1;
  cursor: pointer;
  pointer-events: auto;
}



/* alert */
  .alert-wrapper {
    position: fixed;
    top: 52px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    z-index: 5;
    pointer-events: none;
  }
  .alert {
    pointer-events: auto;
    cursor: pointer;
    margin: 0.25rem 0.75rem;
    padding: 0.875rem;
    border-radius: 5px;

    font: 300 0.875rem/normal "Source Sans Pro", arial, sans-serif;
    letter-spacing: 1px;
  }
  .alert::before {
    padding-right: 12px;
  }
  .alert-info {
    color: #00529B;
    background-color: #BDE5F8;
    border: 1px solid darken(#BDE5F8, 15%);
  }
  .alert-info::before {
    content: '\f05a';
    font-family: 'FontAwesome';
  }
  .alert-warn {
    color: #9F6000;
    background-color: #FEEFB3;
    border: 1px solid darken(#FEEFB3, 15%);
  }
  .alert-warn::before {
    content: '\f071';
    font-family: 'FontAwesome';
  }
  .alert-error {
    color: #D8000C;
    background-color: #FFBABA;
    border: 1px solid darken(#FFBABA, 15%);
  }
  .alert-error::before {
    content: '\f057';
    font-family: 'FontAwesome';
  }
  .alert-success {
    color: #4F8A10;
    background-color: #DFF2BF;
    border: 1px solid darken(#DFF2BF, 15%);
  }
  .alert-success::before {
    content: '\f058';
    font-family: 'FontAwesome';
  }

/* animation */
  @-webkit-keyframes fade-in {
    0% {opacity: 0}
    100% {opacity: 1}
  }

  @-moz-keyframes fade-in {
    0% {opacity: 0}
    100% {opacity: 1}
  }

  @keyframes fade-in {
    0% {opacity: 0}
    100%{opacity: 1}
  }

  @-o-keyframes fade-in {
    0% {opacity: 0}
    100%{opacity: 1}
  }
