*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --primary:#1a73e8;
  --primary-hover:#1558b0;
  --bg:#f4f6f8;
  --card:#fff;
  --text:#222;
  --text-light:#555;
  --border:#e0e0e0;
  --star:#f5a623;
  --shadow:0 2px 8px rgba(0,0,0,.1);
  --radius:12px;
}

body{font-family:'Roboto',sans-serif;background:var(--bg);color:var(--text);line-height:1.6}

/* ---------- HEADER ---------- */
header{position:sticky;top:0;z-index:100;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);padding:16px 20px;box-shadow:0 4px 20px rgba(0,0,0,.3)}
.header-inner{max-width:1200px;margin:auto;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.logo{color:#fff;font-size:1.6rem;white-space:nowrap;font-weight:800;letter-spacing:3px;text-transform:uppercase;background:linear-gradient(90deg,#e2e2e2,#ffffff,#e2e2e2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 0 6px rgba(255,255,255,.15))}
.search-wrap{flex:1;min-width:200px;position:relative}
.search-wrap::before{content:'\1F50D';position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:.95rem;z-index:1;opacity:.5}
#searchBar{width:100%;padding:12px 16px 12px 40px;border:2px solid transparent;border-radius:25px;font-size:1rem;outline:none;background:rgba(255,255,255,.95);transition:border-color .3s,box-shadow .3s}
#searchBar:focus{border-color:#e94560;box-shadow:0 0 12px rgba(233,69,96,.3)}

/* ---------- PRODUCT GRID ---------- */
.product-grid{max-width:1200px;margin:30px auto;padding:0 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}

.product-card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;cursor:pointer}
.product-card:hover{transform:translateY(-4px);box-shadow:0 6px 18px rgba(0,0,0,.14)}

.product-card img{width:100%;height:200px;object-fit:contain;background:#f9f9f9;padding:8px}
.card-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:8px}
.card-body h2{font-size:1.1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-body h2.expanded{-webkit-line-clamp:unset;overflow:visible}
.name-toggle{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.8rem;font-weight:600;padding:0;align-self:flex-start}
.card-body .price{font-size:1.25rem;font-weight:700;color:var(--primary)}
.card-body .desc{font-size:.88rem;color:var(--text-light);flex:1}

.card-actions{display:flex;gap:10px;padding:0 16px 16px}
.btn{flex:1;padding:10px 0;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}
.btn-review{background:#eef3fb;color:var(--primary)}
.btn-review:hover{background:#dce6f7}
.btn-buy{background:var(--primary);color:#fff;text-decoration: none;text-align: center;}
.btn-buy:hover{background:var(--primary-hover)}

/* ---------- STARS ---------- */
.stars{display:inline-flex;gap:2px;color:var(--star);font-size:1rem}

/* ---------- MODAL ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}
.modal-overlay.hidden{display:none}
.modal{background:#fff;border-radius:var(--radius);width:100%;max-width:540px;max-height:85vh;overflow-y:auto;position:relative;padding:28px 24px;box-shadow:0 10px 30px rgba(0,0,0,.25);animation:fadeUp .25s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.modal-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--text-light);line-height:1}
.modal h3{margin-bottom:6px}
.modal .modal-product-info{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:20px}
.modal .modal-product-info img{width:120px;height:120px;object-fit:contain;border-radius:8px;flex-shrink:0;background:#f9f9f9;padding:4px}
.modal .modal-product-info .info{flex:1;min-width:160px}
.modal .modal-product-info .info .price{font-size:1.2rem;font-weight:700;color:var(--primary);margin-top:4px}

.review-card{background:var(--bg);border-radius:8px;padding:14px;margin-bottom:12px}
.review-card .reviewer-name{font-weight:600;margin-bottom:4px;display:flex;align-items:center;gap:8px}
.review-card .review-text{font-size:.9rem;color:var(--text-light);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.review-card .review-text.expanded{display:block;-webkit-line-clamp:unset;overflow:visible}
.see-more-btn{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.85rem;font-weight:600;padding:4px 0;margin-top:4px}

.no-results{text-align:center;padding:60px 20px;color:var(--text-light);font-size:1.1rem;grid-column:1/-1}

/* ---------- RESPONSIVE ---------- */
@media(max-width:600px){
  .header-inner{flex-direction:column;gap:10px}
  .logo{font-size:1.2rem}
  .product-grid{grid-template-columns:1fr;gap:16px}
  .modal{padding:20px 16px}
  .modal .modal-product-info img{width:90px;height:90px}
}
