/* config */

:root {
  --v3-primary-color: #82B338;
  --v3-secondary-color: #4E8028;
  --v3-secondary-color-hover: #4E8028;
  --v3-highlight-color: #00b4ff;
  --v3-cta-color: #f49919;
  --v3-cta-color-hover: color-mix(in srgb, var(--v3-cta-color) 90%, white);
  --v3-cta-text-color: #fff;
  --v3-cta-passive-color: #f6f6f6;
  --v3-cta-passive-text-color: #767676;
  --v3-benefitbar-bg-color: #f4f4f4;
  --v3-benefitbar-color: #f6f6f6;
  --v3-text-color: #767676;
  --v3-text-color-dark: #4d4d4d;
  --v3-divider-color: #ddd;
  --v3-promo-color: #4E8028;

  --v4-neutral-color-1: #4d4d4d;
  --v4-neutral-color-2: #767676;
  --v4-neutral-color-3: #ddd;
  --v4-neutral-color-4: #f6f6f6;

  --v3-container-max-w: 1200px;
  --v3-container-min-w: 340px;
  --v3-font-family: 'Open Sans New', serif;
  --v3-vw-tablet: 550px;
  --v3-vw-desktop: 960px;
  --v3-border-radius-box: 10px;

  --filter-v3-text-color: brightness(0) saturate(100%) invert(56%) sepia(0%) saturate(373%) hue-rotate(174deg) brightness(81%) contrast(83%);
}

@font-face {
  font-family: 'Open Sans New';
  src: url('https://xxlpix-all.b-cdn.net/fonts/opensans-variable.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'playfair';
  src: url('https://xxlpix-all.b-cdn.net/fonts/playfair-variable.woff2') format('woff2');
  font-display: swap;
}

p.t-center,
.t-center p {
  margin-inline: auto;
}

.hide-mobile {
  @media (width <=768px) {
    & {
      display: none;
    }
  }
}

.hide-desktop {
  @media (width >768px) {
    & {
      display: none;
    }
  }
}



/* header */



.mobile-menu .icon {
  font-size: 24px;
}

@media (width >=1200px) {
  .mobile-menu {
    display: none;
  }
}


#page .promotion-header {
  padding: 10px 0 12px 0;
  background-color: var(--v3-promo-color);
}

.cicon {
  background-color: var(--v3-text-color);
}

html {
  font-size: min(18px, 1vw);
  line-height: 1.5;
}

body.page,
body.ref-FME {
  #site-header {
    background-color: #fff;
    border-bottom: 1px solid var(--v4-neutral-color-3);
    height: auto;

    img {
      vertical-align: top;
    }

    >.wrap {
      display: flex;
      flex-flow: row;
      gap: 4.6rem;
      align-items: center;
      max-width: var(--v3-container-max-w);
      margin-inline: auto;
      padding-block: 1rem;

      @media (width < 1200px) {
        & {
          padding-inline: 1rem;
          gap: 0.6rem;
        }
      }
    }
  }

  #logo {
    padding: 0.6rem;
    flex-grow: 1;

    img {
      height: 40px;
    }

    @media (width <=768px) {
      & {
        padding-inline: 0;

        img {
          max-width: 80%;
        }
      }
    }
  }

  .mobile-menu .icon {
    font-size: 24px;
  }

  @media (width >=1200px) {
    .mobile-menu {
      display: none;
    }
  }


  .top-nav {
    .close {
      display: none;
    }

    >ul {
      display: flex;
      flex-flow: row;
      align-content: center;
      gap: max(1.5rem, 10px);

      >li {
        margin: 0;
        color: inherit;

        a {
          margin: 0;
          color: inherit;
        }
      }
    }
  }

  #page:has(#main-nav.active)::after,
  #page:has(#main-nav.active)::after {
    content: "";
    width: 100vw;
    height: 100vh;
    z-index: 999998;
    background: rgb(0, 0, 0, 0.5);
    display: block;
    position: fixed;
    top: 0;
    left: 0;
  }

  #main-nav {
    @media (width < 1200px) {
      &:not(.active) {
        /*display: none;*/
        visibility: hidden;
        pointer-events: none;
      }

      &.active {
        left: 0;
      }

      & {
        position: fixed;
        top: 0;
        left: -100%;
        z-index: 999999;
        width: clamp(200px, 300px, 80%);
        height: 100%;
        background: #fff;
        padding: max(1rem, 15px);
        transition: all 0.3s ease;

        .close {
          display: block;
          text-align: right;
          font-size: max(2rem, 24px);
          margin-bottom: max(1rem, 10px);
        }

        >ul {
          display: flex;
          flex-flow: column;
          gap: 0;

          li {
            border-top: 1px solid var(--v4-neutral-color-3);

            a {
              padding-block: max(0.5rem, 10px);
              display: block;
              text-decoration: none;
            }
          }
        }
      }
    }
  }

  #meta-nav {
    ul {
      justify-content: right;
      gap: 1.5rem;
      padding: 0;
      display: flex;
      flex-flow: row;

      @media (width < 1200px) {
        margin-right: 0;
      }

      li {
        margin: 0;
        position: relative;

        &:not(:last-child)::after {
          background: var(--v4-neutral-color-3);
          content: "";
          height: 0.75rem;
          width: 2px;
          position: absolute;
          right: -0.8rem;
          top: 0.4rem;
        }

        @media (width < 1200px) {
          &:not(:last-child)::after {
            height: 22px;
          }
        }

        a {
          @media (width < 1200px) {
            & {
              font-size: 0;
            }
          }

          &::before {
            aspect-ratio: 1;
            font-family: unset;
            content: "";
            width: 1.5em;
            display: inline-block;
            background-size: contain;
            background-repeat: no-repeat;
            background-color: #7b7b7b;
            margin: 0;
            vertical-align: top;
          }

          @media (width < 1200px) {
            &::before {
              width: 22px;
              margin-inline: 3px;
            }
          }
        }

        &:nth-child(1) a::before {
          mask: url("https://xxlpix-all.b-cdn.net/icons-huge/chatting.svg") no-repeat center / contain;
          margin-right: 5px;
        }

        &:nth-child(2) a::before {
          mask: url("https://xxlpix-all.b-cdn.net/icons-huge/chatting.svg") no-repeat center / contain;
        }

        &:nth-child(3) a::before {
          mask: url("https://xxlpix-all.b-cdn.net/icons-huge/shopping-cart-02.svg") no-repeat center / contain;
        }
      }

      .js-count-cart {
        font-size: 12px;
        line-height: 20px;
        position: absolute;
        top: -10px;
        right: -10px;
        width: 20px;
        height: 20px;
        background: #e13333;
        color: #fff;
        text-align: center;
        font-weight: bold;
        border-radius: 100%;
      }

      .js-count-cart:empty {
        display: none;
      }

      span:not(.js-count-cart) {
        display: none;
      }
    }
  }
}

#site-header {
  padding: 0;
}