
.ng-shop{
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
  align-items: start;
}

@media (max-width:1024px){
  .ng-shop{ grid-template-columns: 1fr; }
}

/* -----------------------------
   Sidebar
------------------------------ */
.ng-sidebar{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:12px;
  padding:16px;
  position: sticky;
  top:16px;
}

@media (max-width:1024px){
  .ng-sidebar{
    position: relative;
    top: auto;
  }
}

.ng-filter-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-weight:700;
  font-size:14px;
  margin:0 0 10px;
}

.ng-filter-block{
  margin:12px 0 18px;
  padding-top:12px;
  border-top:1px solid rgba(0,0,0,.06);
}

.ng-filter-block:first-child{
  border-top:0;
  padding-top:0;
}

.ng-filter-block h4{
  font-size:13px;
  margin:0 0 8px;
  font-weight:700;
  text-transform:none;
}

.ng-filter-list{
  display:grid;
  gap:8px;
  margin:0;
}

.ng-check{
  display:flex;
  gap:8px;
  align-items:center;
  font-size:13px;
  line-height:1.2;
  user-select:none;
}

.ng-check input{ transform: translateY(1px); }

.ng-count{
  margin-left:auto;
  opacity:.65;
  font-size:12px;
}

/* -----------------------------
   Top bar
------------------------------ */
.ng-toolbar{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:flex-end;
  margin-bottom:12px;
  flex-wrap:wrap;
}

.ng-search{
  display:flex;
  gap:10px;
  align-items:center;
  flex:1;
  min-width:240px;
}

.ng-search input[type="search"]{
  width:100%;
  border:1px solid rgba(0,0,0,.15);
  border-radius:10px;
  padding:10px 12px;
  font-size:14px;
  outline:none;
}

.ng-search button{
  border:0;
  border-radius:10px;
  padding:10px 14px;
  cursor:pointer;
}

.ng-sort{
  display:flex;
  gap:10px;
  align-items:center;
}

.ng-sort select{
  color:#000;
  text-align:right;
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:22px;
  font-weight:600;
  line-height:141.2%;
  letter-spacing:-0.88px;
}

.ng-clear-filters{
  font-size:13px;
  text-decoration:none;
  padding:8px 10px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:10px;
}

/* -----------------------------
   Grid
------------------------------ */
.ng-grid{
  display:grid;
  gap:16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width:1200px){
  .ng-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:768px){
  .ng-grid{ grid-template-columns: 1fr; }
}

@media (max-width:640px){
  .ng-grid{ grid-template-columns: 1fr; }
}

/* -----------------------------
   Card
------------------------------ */
.ng-card{
  display:flex;
  flex-direction:column;
  width:320px;
  max-width:100%;
  padding:10px;
  gap:16px;
  border-radius:7.24px;
  background:#F2EEEB;
  border:0;
  overflow:hidden;
  transform:translateY(0);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.ng-card:hover{ transform: translateY(-2px); }

/* Thumbnail */
.ng-thumb{
  width:100%;
  display:block;
  padding:0;
  background:transparent;
  border-radius:7.24px;
  overflow:hidden; /* ensures rounded corners clip image when needed */
}

.ng-thumb img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
      background-image: linear-gradient(180deg, #A8A8A8 0%, #393939 100%);
}

/* Body */
.ng-card-body{
  width:100%;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* Typography */
.ng-title,
.ng-meta,
.ng-price,
.ng-buy,
.ng-plus{
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-style:normal;
}

.ng-title{
  color:#000;
  font-size:22px;
  font-weight:600;
  line-height:141.2%;
  letter-spacing:-1.04px;
  margin:0;
}

.ng-meta{
  color:rgba(0,0,0,.80);
  font-size:16px;
  font-weight:400;
  line-height:141.2%;
  letter-spacing:-0.64px;
}

.ng-price{ width:100%; }

.ng-price,
.ng-price *{
  color:#000 !important;
  text-align:start;
  font-size:22px;
  font-weight:600;
  line-height:141.2%;
  letter-spacing:-0.88px;
}

/* Actions */
.ng-actions{
  width:100%;
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:6px;
}

.ng-buy,
.ng-plus{
  text-decoration:none;
  border:0;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.ng-buy{
  width:236px;
  height:58.53px;
  padding:6.945px 27.782px;
  background:#C52B1A;
  color:#fff;
  font-size:16px;
  font-weight:600;
  line-height:1;
}

@media (max-width: 767px){
    .ng-buy{
        width:160px;
    }
}

.ng-buy:hover{ background:#000000; }
.ng-buy:active{
  transform: translateY(1px);
  background:#8F1F12;
}

.ng-buy:hover{
    color: white !important;
}

a:active, a:hover{
    color: #ffffff;
}

.ng-plus{
  width:57px;
  height:59px;
  padding:0;
  background:#fff;
  color:#000;
  font-size:22px;
  font-weight:600;
  border:1px solid rgba(0,0,0,.10);
}

.ng-plus:hover{
  background:#F3F3F3;
  border-color:rgba(0,0,0,.16);
}

.ng-plus:active{
  transform: translateY(1px);
  background:#EAEAEA;
}

/* -----------------------------
   Pagination
------------------------------ */
.ng-pagination{
  display:flex;
  gap:8px;
  justify-content:center;
  margin-top:18px;
  flex-wrap:wrap;
}

.ng-pagination a,
.ng-pagination span{
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.12);
  font-size:13px;
  text-decoration:none;
}

.ng-pagination span.is-current{ font-weight:700; }

/* -----------------------------
   Loading state
------------------------------ */
.ng-shop.is-loading .ng-results{
  opacity:.55;
  pointer-events:none;
  position:relative;
}

.ng-shop.is-loading .ng-results::after{
  content:"Loading...";
  position:absolute;
  top:10px;
  right:10px;
  font-size:12px;
  padding:6px 10px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
}

/* -----------------------------
   Mobile / responsive tweaks
------------------------------ */
@media (max-width:768px){
  /* Equal-height cards + image crop only on mobile */
  .ng-card{ height:100%; }

  .ng-thumb{
    aspect-ratio: 1 / 1;
  }

  .ng-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
        background-image: linear-gradient(180deg, #A8A8A8 0%, #393939 100%);
  }

  .ng-card-body{
    flex: 1 1 auto;
  }

  .ng-title{ margin-bottom:6px; }
  .ng-price{ margin-bottom:10px; }

  .ng-actions{
    margin-top:auto;
    gap:10px;
  }
}

@media (max-width:420px){
  .ng-card{ width:100%; }
  .ng-actions{ gap:10px; }
  .ng-buy{ width: calc(100% - 67px); }
}



