/* ============================================================
   VELVETY — Shop page specific styles (after styles.css + about.css)
   ============================================================ */

/* ---------- SHOP HERO / HEADER ---------- */
.shop-hero{width:100%;padding:calc(84px + 44px) var(--gutter) 96px;display:flex;flex-direction:column;background:var(--c0)}
.shop-hero__head{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;margin-bottom:48px}
.shop-hero__title{font-family:var(--serif);font-weight:300;font-size:clamp(48px,7vw,96px);line-height:1.15;letter-spacing:.5px;color:var(--g100)}

/* ---------- FILTER BAR ---------- */
.filterbar{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative}
.filter-tabs{display:flex;gap:12px;overflow-x:auto;flex:1;scrollbar-width:none;scroll-behavior:smooth;padding-right:8px;mask-image:linear-gradient(to right,#000 92%,transparent)}
.filter-tabs::-webkit-scrollbar{display:none}
.filter-tabs .pill{flex:0 0 auto}
.filter-actions{display:flex;gap:12px;flex:0 0 auto}
.filter-dd{position:relative}
.filter-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:60;min-width:220px;
  background:var(--white);border:1px solid var(--border);box-shadow:0 24px 48px -20px rgba(16,28,16,.28);
  padding:8px;display:flex;flex-direction:column;gap:2px;
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s}
.filter-dd.open .filter-menu{opacity:1;visibility:visible;transform:none}
.filter-dd.open .filter-btn svg:last-child{transform:rotate(180deg)}
.filter-btn svg:last-child{transition:transform .3s var(--ease)}
/* sort options */
.fm-opt{text-align:left;padding:12px 16px;font-size:16px;color:var(--g100);border-radius:2px;transition:background .2s var(--ease),color .2s}
.fm-opt:hover{background:var(--surface)}
.fm-opt.is-active{background:var(--surface);font-weight:600}
/* filter panel */
.filter-menu--wide{min-width:280px;padding:20px 20px 16px;gap:18px}
.fm-group{display:flex;flex-direction:column;gap:8px}
.fm-title{margin:0 0 4px;font-size:14px;letter-spacing:.5px;text-transform:uppercase;color:var(--g40)}
.fm-check{display:flex;align-items:center;gap:10px;font-size:16px;color:var(--g100);cursor:pointer;padding:2px 0}
.fm-check input{appearance:none;width:18px;height:18px;border:1.5px solid var(--g40);border-radius:4px;cursor:pointer;position:relative;transition:.2s;flex:0 0 auto}
.fm-check input:checked{background:var(--g100);border-color:var(--g100)}
.fm-check input:checked::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--c0);border-width:0 2px 2px 0;transform:rotate(45deg)}
.fm-actions{display:flex;gap:10px;border-top:1px solid var(--border);padding-top:14px}
.fm-clear{flex:1;height:40px;border:1px solid var(--border);color:var(--g100);font-size:14px;transition:background .25s}
.fm-clear:hover{background:var(--surface)}
.fm-apply{flex:1;height:40px;background:var(--g100);color:var(--c0);font-size:14px;transition:background .3s}
.fm-apply:hover{background:var(--pressed)}
.filter-btn{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 24px;border:1px solid var(--border);border-radius:40px;color:var(--g100);font-size:16px;transition:background .3s var(--ease),color .3s var(--ease)}
.filter-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6}
.filter-btn:hover{background:var(--surface)}
.fm-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:22px;background:var(--g100);color:var(--c0);font-size:13px;font-weight:600;line-height:1}
.tabs-scroll{flex:0 0 auto;width:36px;height:36px;border-radius:100px;background:var(--surface);display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease),background .3s}
.tabs-scroll[hidden]{display:none}
.tabs-scroll:hover{background:var(--g100);transform:scale(1.08)}
.tabs-scroll svg{width:18px;height:18px;stroke:var(--g100);fill:none;stroke-width:2}
.tabs-scroll:hover svg{stroke:var(--c0)}

/* ---------- COUNT ---------- */
.shop-count{margin:40px 0 16px;font-size:18px;color:var(--g60)}

/* ---------- PRODUCT GRID ---------- */
.shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:transparent}
.shop-grid .shop-card{border:1px solid var(--border);margin:-1px 0 0 -1px}
.shop-card{background:var(--c0);display:flex;flex-direction:column;min-height:450px;position:relative;transition:background .4s var(--ease)}
.shop-card:hover{background:#eef3ea}
.shop-card__img{margin:24px 24px 0;background:var(--surface);flex:1 1 auto;min-height:0;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.shop-card__img::before{content:"";position:absolute;width:70%;aspect-ratio:1/1;border-radius:50%;
  background:radial-gradient(circle at 50% 42%, rgba(255,255,255,.4), rgba(197,213,190,.22) 55%, transparent 72%);}
.shop-card__img .bottle{position:absolute;inset:10px 0 50px;z-index:2;object-fit:cover;object-position:center top;filter:drop-shadow(0 22px 15px rgba(16,28,16,.32));transition:transform .6s var(--ease),filter .6s var(--ease)}
/* quick add-to-cart button (injected per card) */
.card-add{position:absolute;left:16px;right:16px;bottom:16px;z-index:5;height:44px;border:none;
  background:var(--g100);color:var(--c0);font-size:15px;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(10px);transition:opacity .3s var(--ease),transform .3s var(--ease),background .3s var(--ease)}
.shop-card:hover .card-add{opacity:1;transform:none}
.card-add:hover{background:var(--pressed)}
.card-add.added{background:var(--g80)}
@media(hover:none){.card-add{opacity:1;transform:none}}
.shop-card:hover .shop-card__img .bottle{transform:scale(1.05)}
.shop-card__desc{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:24px}
.shop-card__name{display:flex;flex-direction:column;gap:10px}
.shop-card__name h3{font-family:var(--sans);font-weight:300;font-size:22px;line-height:1.4;color:var(--g100)}
.shop-card__price{display:flex;gap:8px;align-items:baseline;font-size:22px}
.shop-card__price .old{color:var(--g40);text-decoration:line-through;font-weight:300}
.shop-card__price .now{color:var(--g100);font-weight:700}
.shop-card__rating{display:flex;align-items:center;gap:8px}
.shop-card__rating{flex:0 0 auto}
.shop-card__rating .stars{display:flex;gap:4px;flex:0 0 auto}
.shop-card__rating .stars img{width:20px;height:20px;flex:0 0 auto}
.shop-card__rating .rnum{font-size:22px;color:var(--g80);font-weight:300}

/* ---------- PAGINATION ---------- */
.pagination{display:flex;align-items:center;justify-content:center;gap:24px;padding:56px 0 8px}
.pagination__nums{display:flex;align-items:center;gap:16px}
.page-num{width:32px;height:32px;border-radius:100px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--g80);transition:background .3s var(--ease),color .3s var(--ease)}
.page-num:hover{background:var(--surface)}
.page-num.is-active{background:var(--g100);color:var(--c0)}
.page-dots{color:var(--g40);padding:0 4px}
.page-arrow{width:30px;height:18px;opacity:.85;transition:opacity .25s,transform .25s var(--ease)}
.page-arrow img{width:30px}
.page-arrow:hover{opacity:1;transform:scale(1.12)}
.page-arrow.next img{transform:scaleX(-1)}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1100px){
  .shop-grid{grid-template-columns:repeat(2,1fr)}
}
/* mobile: stack categories on top, Filter/Sort row below */
@media(max-width:720px){
  .filterbar{flex-direction:column;align-items:stretch;gap:16px}
  .filter-tabs{mask-image:none;-webkit-mask-image:none;padding-right:0}
  .tabs-scroll{display:none}
  .filter-actions{gap:12px}
  .filter-dd{flex:1}
  .filter-btn{width:100%;justify-content:center}
  .filter-menu{left:0;right:0;min-width:0;width:100%}
}
/* smaller rating on narrow cards so stars don't collide with name/price */
@media(max-width:768px){
  .shop-card__rating{gap:6px}
  .shop-card__rating .stars{gap:2px}
  .shop-card__rating .stars img{width:14px;height:14px}
  .shop-card__rating .rnum{font-size:14px}
  .shop-card__name h3{font-size:18px}
  .shop-card__price{font-size:18px}
}
@media(max-width:560px){
  .shop-grid{grid-template-columns:repeat(2,1fr)}
  .shop-card{min-height:340px}
  .shop-card__desc{flex-direction:column;align-items:flex-start;gap:8px}
  .shop-card__name h3,.shop-card__price,.shop-card__rating .rnum{font-size:16px}
  .shop-card__rating .stars img{width:13px;height:13px}
  .filter-actions .filter-btn{padding:0 16px}
}
