:root{
    --panel:#f6f8f6;
    --text:#111111;
    --muted:#6f6f6f;
    --line:#e8e1d8;
    --deep:#111111;
    --shadow:0 10px 30px rgba(0,0,0,.06);
  }

  img{display:block;max-width:100%}

  .page{
      max-width: 1100px;
      margin: 0 auto;
      width: 100%;
  }

  /* =========================
     title
  ========================= */
  .heroHead{
    display:grid;
    grid-template-columns:1fr auto;
    gap:20px;
    align-items:end;
    margin-bottom:24px;
    padding-bottom:20px;
    border-bottom:1px solid var(--line);
  }

  .heroTitle h1{
    margin:0 0 10px;
    font-size:44px;
    line-height:1;
    letter-spacing:.08em;
    font-weight:700;
  }

  .heroTitle p{
    margin:0;
    max-width:760px;
    font-size:14px;
    line-height:1.8;
    color:var(--muted);
  }

  .heroMeta{
    font-size:12px;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.08em;
    text-align:right;
  }

  /* =========================
     toolbar
  ========================= */
  .toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
    margin-bottom:30px;
  }

  .filterBar{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
  }

  .filterBtn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:0 16px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#fff;
    color:#222;
    font-size:13px;
    transition:all .25s ease;
  }

  .filterBtn:hover{
    background:#f1ece4;
    transform:translateY(-1px);
  }

  .filterBtn.active{
    background:#111;
    color:#fff;
    border-color:#111;
  }

  .toolbarRight{
    font-size:13px;
    color:var(--muted);
  }

  /* =========================
     product grid
  ========================= */
  .productGrid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:26px;
  }

  .card{
    position:relative;
    background:var(--panel);
    border-radius:20px;
    overflow:hidden;
    box-shadow:var(--shadow);
    transition:transform .35s ease, box-shadow .35s ease;
  }

  .card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 42px rgba(0,0,0,.10);
  }

  .tag{
    position:absolute;
    top:14px;
    left:14px;
    z-index:3;
    padding:6px 10px;
    border-radius:999px;
    font-size:11px;
    line-height:1;
    letter-spacing:.06em;
    background:rgba(255,255,255,.90);
    color:#111;
    backdrop-filter:blur(8px);
  }

  .thumb{
    position:relative;
    display:block;
    aspect-ratio:4 / 4;
    background:#eee;
    overflow:hidden;
  }

  .thumb img{
    width:100%;
    height:auto;
    object-fit:cover;
    transition:transform .7s ease, filter .35s ease;
  }

  .thumb::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(to bottom, rgba(0,0,0,.03), rgba(0,0,0,.18));
    opacity:.75;
    transition:opacity .35s ease;
  }

  .card:hover .thumb img{
    transform:scale(1.08);
    filter:contrast(1.03) saturate(1.03);
  }

  .card:hover .thumb::before{
    opacity:.45;
  }

  .quickView{
    position:absolute;
    left:50%;
    bottom:18px;
    z-index:2;
    transform:translate(-50%,16px);
    padding:10px 18px;
    border-radius:999px;
    background:rgba(255,255,255,.95);
    color:#111;
    font-size:13px;
    white-space:nowrap;
    opacity:0;
    transition:all .3s ease;
  }

  .card:hover .quickView{
    opacity:1;
    transform:translate(-50%,0);
  }

  .info{
    padding:18px 1px 20px 10px;
  }

  .nameRow{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
    margin-bottom:8px;
    ine-height:1.55;
  }

  .name{
    margin:0;
    font-size:18px;
    letter-spacing:.08em;
    font-weight:500;
    line-height:1.55;
    margin-bottom:10px;
  }

  .price{
    font-size:18px;
    font-weight:700;
    white-space:nowrap;
  }

  .sub{
    margin:0 0 8px;
    color:var(--muted);
    font-size:13px;
    text-transform:lowercase;
    letter-spacing:.04em;
  }

  .size{
    margin:0 0 14px;
    font-size:13px;
    color:#333;
  }

  .bottomRow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }

  .dotline{
    flex:1;
    height:1px;
    background:linear-gradient(to right, var(--line), transparent);
  }

  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:98px;
    height:38px;
    padding:0 16px;
    border:none;
    border-radius:999px;
    background:#111;
    color:#fff;
    font-size:13px;
    transition:all .25s ease;
  }

  .buy {
    cursor: pointer;
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 5px 20px 5px 20px;
    display: inline-block;
    transition: all 0.2s ease;
    background:#1e1e1e; color:#fff;
  }

  .buy:hover {
    border-color: #999;
    background-color: #673d1f;
  }

  .btnRow { display:flex; gap:12px; margin:18px 0; }
  .btnAdd { flex:1; border-radius:40px; height:48px; font-size:14px; font-weight:600; border:none; cursor:pointer; transition:0.2s; }
  .btnCart { background:#fff; color:#111; border:1px solid #111; }
  .btnBuy { background:#1e1e1e; color:#fff; }
  .btnAdd:hover { opacity:0.85; transform:translateY(-1px); }

  .add-to-cart-btn {
    cursor: pointer;
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 8px 16px;
    display: inline-block;
    transition: all 0.2s ease;
  }

  .add-to-cart-btn:hover {
    border-color: #999;
    background-color: #f9f9f9;
  }

  .empty{
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    text-align:center;
    color:var(--muted);
    padding:50px 20px;
  }

  @media (max-width:1200px){
    .productGrid{
      grid-template-columns:repeat(3,minmax(0,1fr));
    }
  }

  @media (max-width:860px){
    .heroHead{
      grid-template-columns:1fr;
    }
    .heroMeta{
      text-align:left;
    }
    .productGrid{
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .heroTitle h1{
      font-size:34px;
    }
  }

  @media (max-width:560px){
    .page{
      padding:20px 14px 50px;
    }
    .heroTitle h1{
      font-size:28px;
    }
    .productGrid{
      grid-template-columns:1fr;
      gap:18px;
    }
  }