:root{
	--pi-green: #25d943;
	--pi-green-dark: #18a936;
	--pi-green-soft: #153b20;
	--pi-dark: #f1f6f3;
	--pi-text: #e5eeea;
	--pi-muted: #91a29c;
	--pi-border: #263936;
	--pi-bg: #0c1514;
	--pi-white: #14211f;
	--pi-shadow: 0 8px 25px rgba(0, 0, 0, .30);
	/*--pi-radius: 16px;*/
}
[data-theme='light'] {
	--pi-green:#16c438;
	--pi-green-dark:#0d7d27;
	--pi-green-soft:#eaf9ed;
	--pi-dark:#102522;
	--pi-text:#26343a;
	--pi-muted:#7a878c;
	--pi-border:#e7ece9;
	--pi-bg:#f7faf8;
	--pi-white:#fff;
	--pi-shadow:0 8px 25px rgba(16,37,34,.08);
}
/* CATALOG */
.catalog{
	display:grid;
	grid-template-columns: 1fr;
	/*grid-template-columns: minmax(210px, 245px) minmax(0, 1fr);*/
	gap: var(--space-lg);
	align-items: start;
}
.catalog-main {
	min-width: 0;
	width: 100%;
}
.category-wrapper {
	background: var(--bg-card);
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	height:max-content;
	display: none;
}
.category-wrapper .category-section {
	padding:var(--space-sm);
}
.category-wrapper .category-section .title{
	display:flex;
	align-items:center;
	justify-content:space-between;
	font-size:13px;
	font-weight:800;
	padding: 10px;
}
.category-wrapper .category-section .category{
	display: block;
}
.category-wrapper .category-section .category a {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	padding:10px;
	border-radius:var(--radius-sm);
	color:#5d6a6c;
	font-size:12px;
	cursor:pointer;
	margin-bottom:3px;
}
.category-wrapper .category-section .category a:hover, 
.category-wrapper .category-section .category.active a {
	background:var(--bg-card-hover);
	color:var(--text);
}
.category-wrapper .category-section .category .count{
	color:#9aa4a5;
	font-size:10px
}

.mobile-sidebar .navbar-nav {
	margin-bottom: 0;
}
.mobile-category {
	background: var(--bg-card);
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	height:max-content;
	padding: var(--space-sm);
    position: relative;
    width: 100%;
}
.mobile-category .dropdown-item {
	display: flex;
	justify-content:space-between;
}

.category-select {
    width: 100%;
    height: 48px;
    padding: 0 15px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: #fff;
    border: 1px solid #dee5e1;
    border-radius: 10px;

    color: #26343a;
    font-size: 14px;
    font-weight: 500;

    cursor: pointer;
}

.category-arrow {
    font-size: 18px;
    transition: .2s;
}

.mobile-category.open .category-arrow {
    transform: rotate(180deg);
}

.category-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;

    z-index: 1000;

    margin: 0;
    padding: 6px;

    list-style: none;

    background: #fff;
    border: 1px solid #e5ebe7;
    border-radius: 10px;

    box-shadow: 0 8px 25px rgba(0, 0, 0, .10);

    display: none;
}

.mobile-category.open .category-dropdown {
    display: block;
}

.category-dropdown li {
    margin: 0;
    padding: 0;
}

.category-dropdown li a {
    display: block;
    padding: 11px 12px;

    border-radius: 7px;

    color: #53615d;
    font-size: 13px;

    text-decoration: none;

    transition: .15s;
}

.category-dropdown li a:hover {
    background: #eaf9ed;
    color: #0d7d27;
}

.category-dropdown li.active a {
    background: #eaf9ed;
    color: #0d7d27;
    font-weight: 700;
}

    /* PRODUCTS */
    .catalog-main{min-width:0}
    .catalog-head{
      display:flex;
      justify-content:space-between;
      align-items:end;
      margin-bottom:16px;
    }
    .catalog-head h2{
      font-size:25px;
      color:var(--pi-dark);
      letter-spacing:-.5px;
    }
    .product-count{
      display:inline-block;
      padding:4px 9px;
      border-radius:20px;
      background:var(--pi-green-soft);
      color:var(--pi-green-dark);
      font-size:10px;
      font-weight:800;
      margin-left:5px;
      vertical-align:middle;
    }
    .sort{
      border:1px solid var(--pi-border);
      background:#fff;
      padding:10px 13px;
      border-radius:9px;
      color:#586466;
      font-size:11px;
      outline:none;
    }
    .products{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap: 10px;
    }
    .product{
      background:var(--pi-bg);
      border:1px solid var(--pi-border);
      border-radius:15px;
      overflow:hidden;
      position:relative;
      transition:.25s;
    }
    .product:hover{
      transform:translateY(-5px);
      box-shadow:var(--pi-shadow);
      border-color:#cde8d2;
    }
    .product-top{
      position:relative;
      background:linear-gradient(145deg,#f8faf9,#eef3f0);
      display:flex;
      align-items:center;
      justify-content:center;
    }
    .badge{
      position:absolute;
      top:12px;
      left:12px;
      z-index:2;
      border-radius:20px;
      padding:5px 9px;
      color:#fff;
      background:var(--pi-green);
      font-size:9px;
      font-weight:800;
    }
    .heart{
      position:absolute;
      right:12px;
      top:10px;
      width:29px;height:29px;
      border-radius:50%;
      border:1px solid #dfe6e2;
      background:#fff;
      cursor:pointer;
      color:#70807b;
    }
    .product-img{
      width:100%;
      border-radius:5px;
      background:#fff;
      box-shadow:0 12px 22px rgba(0,0,0,.12);
      padding: 100% 14px 0 14px;
    }
    .product-canvas {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      align-items:center;
      justify-content:center;
      text-align:center;
      display: flex;
      	overflow: hidden;
    }
    .product-img img {
    	max-width: 95%;
    }
    .product:nth-child(2) .product-img{color:#079fa4}
    .product:nth-child(3) .product-img{color:#126f34}
    .product:nth-child(4) .product-img{color:#087e7b}
    .product:nth-child(5) .product-img{color:#d79d21}
    .product:nth-child(6) .product-img{color:#743f24}
    .product-body{padding:14px}
    .product h3{
      font-size:13px;
      color:var(--pi-dark);
      margin-bottom:4px;
    }
.category-name{font-size:10px;color:#9aa4a4;margin-bottom:7px}
.rating{font-size:10px;color:#eab000;margin-bottom:7px}
.rating span{color:#75817f;margin-left:4px}
.price{font-size:15px;font-weight:900;color:var(--pi-dark);margin-bottom:5px}
.stock{font-size:10px;color:#6f7b79;margin-bottom:12px}
.stock::before{
	content:"";
	width:7px;height:7px;
	display:inline-block;
	border-radius:50%;
	background:#17b93a;
	margin-right:5px;
}
.button-go{
	width:100%;
	padding:3px 10px;
	border: 1px solid var(--pi-green);
	border-radius:8px;
	/*background:var(--pi-green);*/
	color: var(--pi-green);
	font-size:11px;
	font-weight:800;
	cursor:pointer;
	transition:.2s;
}
.button-go:hover {
	background:#0fab2c; 
	color: var(--pi-white);
}
.pagination {
	display:flex;
	justify-content:flex-end;
	align-items:center;
	gap:7px;
	margin-top:20px;
}
.page-item {
	width:31px;
	height:31px;
	border:1px solid var(--pi-border);
	border-radius:8px;
	background:#fff;
	cursor:pointer;
	color:#71807b;
}

.page-item.active {
	background:var(--pi-green);
	color:#fff;
	border-color:var(--pi-green)
}

/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) {
}



/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
	.category-wrapper {
		display: block;
	}
	.mobile-category {
		display: none;
	}
	.catalog {
		grid-template-columns: minmax(210px, 245px) minmax(0, 1fr);
	}
}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
	.products{
      	grid-template-columns:repeat(3, minmax(0,1fr));
    }
}

/* X-Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
	.products{
      	grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

/* XX-Large devices (larger desktops, 1400px and up) */
@media (min-width: 1400px) {

}

    /* =========================
   1200px
   Laptop / small desktop
========================= * /

@media (max-width: 1250px) {

    .catalog {
        grid-template-columns: 220px minmax(0, 1fr);
    }

    .products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

}


/* =========================
   1000px
========================= * /

@media (max-width: 1050px) {

    .container {
        width: 94%;
    }

    .catalog {
        grid-template-columns: 200px minmax(0, 1fr);
    }

    .products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}


/* =========================
   TABLET
   ========================= * /

@media (max-width: 768px) {

    .catalog {
        display: flex;
        flex-direction: column;

        width: 100%;
    }

    /*
       Category pindah ke atas.
    * /
    .sidebar {
        display: block;

        width: 100%;
        height: auto;

        overflow: hidden;
    }

    /*
       Category dibuat horizontal
       supaya tidak makan tinggi layar.
    * /
    .sidebar .side-section {
        padding: 15px;
    }

    .sidebar .side-section:nth-child(2) {
        display: none;
    }

    .sidebar .side-section:first-child {
        border-bottom: 0;
    }

    .sidebar .side-title {
        margin-bottom: 10px;
    }

    /*
       Category horizontal scroll
    * /
    .sidebar .category {
        display: inline-flex;

        width: auto;
        min-width: max-content;

        margin-right: 5px;
        margin-bottom: 0;

        padding: 9px 13px;

        border: 1px solid var(--pi-border);
        border-radius: 10px;
    }

    /*
       Container category
       dibuat bisa scroll horizontal
    * /
    .sidebar .side-section:first-child {
        overflow-x: auto;
        scrollbar-width: none;
    }

    .sidebar .side-section:first-child::-webkit-scrollbar {
        display: none;
    }


    /* PRODUCT AREA * /

    .catalog-main {
        width: 100%;
        min-width: 0;
    }

    .catalog-head {
        width: 100%;
    }

    .products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}


/* =========================
   MOBILE
========================= * /

@media (max-width: 560px) {

    .container {
        width: 94%;
    }

    .catalog {
        width: 100%;
    }


    /* =====================
       CATEGORY
    ===================== * /

    .sidebar {
        width: 100%;
        border-radius: 14px;
    }

    .sidebar .side-section:first-child {
        padding: 14px;
    }

    .sidebar .category {
        font-size: 11px;
        padding: 8px 11px;
    }


    /* =====================
       HEADER PRODUCT
    ===================== * /

    .catalog-head {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    .catalog-head h2 {
        font-size: 21px;
    }

    .sort {
        width: 100%;
    }


    /* =====================
       PRODUCT
    ===================== * /

    .products {
        grid-template-columns: 1fr 1fr;
    }

    /*.product-top {
        height: 170px;
        padding: 14px;
    }*/

    /*.product-img {
        width: 105px;
        height: 125px;

        font-size: 17px;
    }* /

    .product-body {
        padding: 11px;
    }

    .product h3 {
        font-size: 11px;
    }

    .category-name {
        font-size: 9px;
    }

    .rating {
        font-size: 9px;
    }

    .rating span {
        font-size: 8px;
    }

    .price {
        font-size: 12px;
    }

    .stock {
        font-size: 9px;
    }

    .cart {
        padding: 8px 5px;
        font-size: 9px;
    }

    .badge {
        top: 8px;
        left: 8px;

        padding: 4px 7px;
        font-size: 8px;
    }

    .heart {
        top: 7px;
        right: 7px;

        width: 26px;
        height: 26px;
    }

}


/* =========================
   VERY SMALL PHONE
   ========================= * /

@media (max-width: 380px) {

    .products {
        grid-template-columns: 1fr;
    }

    /*.product-top {
        height: 200px;
    }*/
/*
    .product-img {
        width: 1;
        height: 150px;
    }* /

    .product h3 {
        font-size: 13px;
    }

    .price {
        font-size: 14px;
    }

    .cart {
        font-size: 10px;
        padding: 9px;
    }

}