/* TechSoko catalogue layout — intentionally loaded after legacy shared styles. */
.catalog-page{min-height:0;padding-top:34px;padding-bottom:56px}
.catalog-breadcrumb{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:12px;line-height:1.3}
.catalog-breadcrumb b{font-weight:700;color:#3f3743}
.catalog-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 20px}
.catalog-heading>div{min-width:0}
.catalog-heading .kicker{display:block;margin-bottom:8px}
.catalog-heading h1{margin:0;font:800 clamp(30px,3.6vw,44px)/1.08 Montserrat,sans-serif;letter-spacing:-1.8px}
.catalog-heading p{max-width:760px;margin:12px 0 0;color:#6e6672;font-size:14px;line-height:1.55}
.catalog-heading>small{flex:0 0 auto;display:inline-flex;align-items:center;min-height:34px;padding:8px 12px;border:1px solid #e5e0e7;border-radius:999px;background:#faf9fb;color:#534b57;font-size:11.5px;font-weight:800;white-space:nowrap}

.catalog-filter.enhanced-catalog-filter{display:block;width:100%;margin:0 0 22px;padding:0;gap:0;overflow:hidden;border:1px solid #e3dee6;border-radius:15px;background:#fff;box-shadow:0 9px 28px rgba(37,21,45,.05)}
.catalog-filter .catalog-filter-toggle{display:none}
.catalog-filter-body{display:block;width:100%;padding:17px 18px}
.catalog-filter-primary{display:grid;grid-template-columns:minmax(260px,2fr) minmax(180px,1.15fr) minmax(160px,.9fr) minmax(175px,1fr);gap:12px;align-items:end}
.catalog-filter-primary>*{min-width:0}
.catalog-filter label{min-width:0;margin:0}
.catalog-filter label>span,.catalog-price-range legend{display:block;margin:0 0 6px;padding:0;color:#514953;font-size:11px;font-weight:800;line-height:1.25}
.catalog-filter input,.catalog-filter select{display:block;width:100%;min-width:0;height:44px;margin:0;padding:0 12px;border:1px solid #dcd6df;border-radius:9px;background:#fff;color:#211c27;font:500 13px Inter,sans-serif;outline:0;box-shadow:none}
.catalog-filter select{padding-right:34px;text-overflow:ellipsis}
.catalog-filter input::placeholder{color:#908994}
.catalog-filter input:focus,.catalog-filter select:focus{border-color:#6a1a91;box-shadow:0 0 0 3px rgba(82,7,121,.085)}
.catalog-filter-secondary{display:grid;grid-template-columns:minmax(330px,1.25fr) minmax(220px,.85fr) auto;align-items:end;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid #eee9f0}
.catalog-price-range{min-width:0;margin:0;padding:0;border:0}
.catalog-price-range legend{width:100%}
.catalog-price-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:9px;align-items:end}
.catalog-price-range legend{grid-column:1/-1}
.catalog-price-range label{min-width:0}
.catalog-price-range label>span{font-size:10px;margin-bottom:5px;color:#7a727e}
.catalog-price-range>i{align-self:end;display:grid;place-items:center;height:44px;color:#918995;font-size:11px;font-style:normal}
.catalog-filter .filter-check{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;min-height:44px;padding:0 12px;border:1px solid #e5e0e7;border-radius:9px;background:#faf9fb;cursor:pointer}
.catalog-filter .filter-check input{width:17px;height:17px;min-width:17px;margin:0;padding:0;accent-color:#54077a}
.catalog-filter .filter-check>span{display:grid;margin:0!important;line-height:1.2}
.catalog-filter .filter-check b{font-size:11.5px;color:#3f3743}
.catalog-filter .filter-check small{margin-top:2px;color:#817986;font-size:10px}
.catalog-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0;padding:0;border:0;white-space:nowrap}
.catalog-filter-actions .filter-clear{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid #ded8e1;border-radius:9px;color:#5e5662;font-size:11.5px;font-weight:800;background:#fff}
.catalog-filter-actions button{min-width:132px;height:44px;margin:0;padding:0 18px;border:0;border-radius:9px;background:#4d086e;color:#fff;font:800 12px Inter,sans-serif;cursor:pointer;box-shadow:0 8px 18px rgba(77,8,110,.15)}
.catalog-filter-actions button:hover{background:#3e055a}
.catalog-filter-actions button:disabled{opacity:.65;cursor:wait}

#catalogResults{min-width:0;scroll-margin-top:130px}
.catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr));border-radius:14px;overflow:hidden}
.catalog-page .empty-state{min-height:210px;margin:0;padding:34px 20px;border:1px dashed #ddd5e1;border-radius:14px;background:#fbfafc}
.catalog-page .empty-state>.ui-icon{width:38px;height:38px;color:#75299a}
.catalog-page .empty-state h2{margin:10px 0 5px;font-size:21px}
.catalog-page .empty-state p{margin:0 0 17px;font-size:13px}
.catalog-page .empty-state .btn{min-height:42px;padding:10px 17px}
.catalog-answer{margin-top:24px}

@media(max-width:1050px){
  .catalog-filter-primary{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}
  .catalog-filter-secondary{grid-template-columns:minmax(300px,1.2fr) minmax(210px,.8fr) auto}
}

@media(max-width:860px){
  .catalog-page{padding-top:26px;padding-bottom:46px}
  .catalog-heading{align-items:flex-start;margin-bottom:17px}
  .catalog-heading h1{font-size:34px}
  .catalog-filter-primary{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}
  .catalog-filter-primary>*{grid-column:auto!important}
  .catalog-filter-secondary{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .catalog-price-range{grid-column:1/-1}
  .catalog-filter-actions{justify-content:flex-end}
  .catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:700px){
  .catalog-page{padding-top:20px;padding-bottom:36px}
  .catalog-breadcrumb{margin-bottom:11px}
  .catalog-heading{display:block;margin-bottom:14px}
  .catalog-heading .kicker{margin-bottom:6px;font-size:9.5px}
  .catalog-heading h1{font-size:30px;letter-spacing:-1.2px}
  .catalog-heading p{margin-top:8px;font-size:13px;line-height:1.45}
  .catalog-heading>small{margin-top:10px;min-height:30px;padding:6px 10px;font-size:10.5px}
  .catalog-filter.enhanced-catalog-filter{margin-bottom:16px;border-radius:13px}
  .catalog-filter .catalog-filter-toggle{display:flex;width:100%;min-height:58px;padding:10px 13px;border:0;background:#fff;align-items:center;gap:10px;text-align:left;color:#29212d;box-shadow:none}
  .catalog-filter .catalog-filter-toggle>.ui-icon{flex:0 0 auto;width:19px;height:19px;color:#5a0b7c}
  .catalog-filter .catalog-filter-toggle>span{display:grid;gap:2px;min-width:0}
  .catalog-filter .catalog-filter-toggle b{font-size:13px}
  .catalog-filter .catalog-filter-toggle small{color:#807784;font-size:10px;font-weight:500}
  .catalog-filter .catalog-filter-toggle em{margin-left:auto;padding:5px 8px;border-radius:20px;background:#f3edf6;color:#5a0b7c;font-size:9.5px;font-style:normal;white-space:nowrap}
  .catalog-filter-body{display:none;padding:13px}
  .enhanced-catalog-filter.open .catalog-filter-body{display:block}
  .catalog-filter-primary{grid-template-columns:1fr 1fr;gap:10px}
  .catalog-filter-primary .filter-search{grid-column:1/-1!important}
  .catalog-filter input,.catalog-filter select{height:43px;font-size:13px}
  .catalog-filter-secondary{grid-template-columns:1fr;margin-top:12px;padding-top:12px;gap:10px}
  .catalog-price-range{grid-column:auto}
  .catalog-filter .filter-check{min-height:48px}
  .catalog-filter-actions{width:100%;display:grid;grid-template-columns:auto 1fr}
  .catalog-filter-actions button{width:100%;min-width:0}
  .catalog-page .empty-state{min-height:185px;padding:28px 16px}
  .catalog-page .empty-state h2{font-size:19px}
  .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:460px){
  .catalog-filter-primary{grid-template-columns:1fr}
  .catalog-filter-primary .filter-search{grid-column:auto!important}
  .catalog-price-range{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);column-gap:5px}
  .catalog-filter-actions .filter-clear{padding:0 12px}
  .catalog-grid{grid-template-columns:1fr 1fr}
}

/* v1.11.4 — paginated catalogue and premium responsive product cards */
.catalog-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  overflow:visible;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  align-items:stretch;
}
.catalog-grid .product-card,
.catalog-grid .product-card:last-child{
  min-width:0;
  min-height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #e7e2e9 !important;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 22px rgba(31,18,38,.055);
}
.catalog-grid .product-card:hover{
  transform:translateY(-2px);
  box-shadow:0 13px 30px rgba(31,18,38,.09);
}
.catalog-grid .product-img{
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  padding:12px;
  background:linear-gradient(145deg,#fbfafc,#f1eef3);
}
.catalog-grid .product-img img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.catalog-grid .product-info{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  padding:15px;
}
.catalog-grid .product-info>small:first-child{
  display:block;
  overflow:hidden;
  color:#837b87;
  font-size:8.5px;
  letter-spacing:1px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.catalog-grid .product-info h3{
  height:auto;
  min-height:43px;
  margin:7px 0 8px;
  font-size:13.5px;
  line-height:1.42;
}
.catalog-grid .product-info h3 a{
  -webkit-line-clamp:2;
}
.catalog-grid .rating{margin-bottom:1px;font-size:10px;white-space:nowrap}
.catalog-grid .price{margin:9px 0 7px;font-size:15px}
.catalog-grid .price del{font-size:10px}
.catalog-grid .stock{margin-top:auto}
.catalog-grid .product-info>small:last-of-type{min-height:15px;font-size:10px}
.catalog-grid .add{
  width:100%;
  min-height:42px;
  margin-top:10px;
  padding:8px 7px;
  opacity:1;
  transform:none;
  font-size:12px;
}
.catalog-grid .heart{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:50%;
  background:rgba(255,255,255,.88);
}

.catalog-pagination-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:24px;
  padding:15px 17px;
  border:1px solid #e6e0e8;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 22px rgba(31,18,38,.045);
}
.catalog-pagination-wrap>p{margin:0;color:#716a75;font-size:11.5px;line-height:1.4}
.catalog-pagination-wrap>p b{color:#2c252f}
.catalog-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.catalog-page-numbers{display:flex;align-items:center;gap:5px}
.catalog-page-number,.catalog-page-arrow,.catalog-page-ellipsis{
  min-width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:9px;
  font-size:11.5px;
  font-weight:800;
}
.catalog-page-number,.catalog-page-arrow{border:1px solid #ddd7e0;background:#fff;color:#4f4753}
.catalog-page-number:hover,.catalog-page-arrow:hover{border-color:#7b339d;color:#5a087d;background:#faf6fc}
.catalog-page-number.current{border-color:#4d086e;background:#4d086e;color:#fff;box-shadow:0 7px 16px rgba(77,8,110,.18)}
.catalog-page-arrow{min-width:auto;padding:0 12px;gap:6px}
.catalog-page-arrow.disabled{opacity:.42;cursor:not-allowed}
.catalog-page-ellipsis{min-width:22px;color:#8c8490}

@media(max-width:860px){
  .catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .catalog-pagination-wrap{align-items:flex-start;flex-direction:column}
  .catalog-pagination{width:100%;justify-content:space-between}
}

@media(max-width:700px){
  .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .catalog-grid .product-card,
  .catalog-grid .product-card:last-child{border-radius:12px;box-shadow:0 4px 14px rgba(31,18,38,.05)}
  .catalog-grid .product-card:hover{transform:none}
  .catalog-grid .product-img{aspect-ratio:4/3;padding:8px}
  .catalog-grid .badge{top:8px;left:8px;max-width:calc(100% - 52px);padding:4px 6px;font-size:7.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .catalog-grid .heart{top:5px;right:5px;width:36px;height:36px;font-size:20px}
  .catalog-grid .product-info{padding:10px}
  .catalog-grid .product-info>small:first-child{font-size:7.5px;letter-spacing:.75px}
  .catalog-grid .product-info h3{min-height:52px;margin:6px 0 7px;font-size:12.5px;line-height:1.38}
  .catalog-grid .product-info h3 a{-webkit-line-clamp:3}
  .catalog-grid .rating{font-size:9px;letter-spacing:-.45px}
  .catalog-grid .price{margin:7px 0 6px;font-size:13.5px;line-height:1.3}
  .catalog-grid .price del{font-size:9px}
  .catalog-grid .stock{height:3px;margin-bottom:5px}
  .catalog-grid .product-info>small:last-of-type{min-height:14px;font-size:9px}
  .catalog-grid .add{min-height:40px;margin-top:8px;padding:7px 4px;font-size:11px;border-radius:8px}
  .catalog-pagination-wrap{gap:12px;margin-top:18px;padding:13px 11px}
  .catalog-pagination-wrap>p{width:100%;text-align:center;font-size:10.5px}
  .catalog-pagination{gap:5px}
  .catalog-page-number,.catalog-page-arrow,.catalog-page-ellipsis{min-width:34px;height:36px;border-radius:8px;font-size:11px}
  .catalog-page-arrow{padding:0 9px}
}

@media(max-width:460px){
  .catalog-grid{gap:8px}
  .catalog-grid .product-img{padding:7px}
  .catalog-grid .product-info{padding:9px}
  .catalog-grid .product-info h3{font-size:12px;min-height:50px}
  .catalog-grid .price{font-size:13px}
  .catalog-pagination{justify-content:center}
  .catalog-page-arrow{min-width:36px;padding:0}
  .catalog-page-arrow span{display:none}
  .catalog-page-numbers{gap:3px}
  .catalog-page-number,.catalog-page-ellipsis{min-width:32px;height:34px}
}

/* v1.14.3 — session-based recently viewed products */
.recently-viewed-section{margin-top:34px;padding-top:28px;border-top:1px solid #e8e2ea}
.recently-viewed-heading{align-items:flex-end;margin-bottom:18px}
.recently-viewed-heading h2{margin-bottom:0}
.recently-viewed-heading p{margin:7px 0 0;color:#746c78;font-size:12.5px;line-height:1.5}
.recently-viewed-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.product-recently-viewed{margin-top:0}
.product-recently-viewed .recently-viewed-section{margin-top:0;padding-top:38px}
.payment-row.payment-row-single{justify-content:flex-start}
.payment-row.payment-row-single .footer-payment-methods{width:100%}
@media(max-width:860px){.recently-viewed-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.recently-viewed-section{margin-top:25px;padding-top:22px}.recently-viewed-heading{align-items:flex-start;margin-bottom:14px}.recently-viewed-heading h2{font-size:22px}.recently-viewed-heading p{font-size:11.5px}.recently-viewed-heading>a{font-size:10.5px}.recently-viewed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-recently-viewed{width:min(100% - 28px,1180px)}}


/* v1.15.5 — compact catalogue header and click-to-open filters */
.catalog-page{
  padding-top:10px;
  padding-bottom:42px;
}
.catalog-breadcrumb{
  margin-bottom:6px;
  font-size:10.5px;
}
.catalog-heading{
  align-items:center;
  margin-bottom:9px;
  gap:14px;
}
.catalog-heading .kicker{
  margin-bottom:3px;
  font-size:8.5px;
}
.catalog-heading h1{
  font-size:clamp(25px,3vw,34px);
  line-height:1.05;
  letter-spacing:-1.2px;
}
.catalog-heading p{
  max-width:720px;
  margin-top:5px;
  font-size:11.5px;
  line-height:1.35;
}
.catalog-heading>small{
  min-height:29px;
  padding:5px 10px;
  font-size:10px;
}
.catalog-filter.enhanced-catalog-filter{
  margin-bottom:11px;
  border-radius:11px;
  box-shadow:0 5px 16px rgba(37,21,45,.045);
}
.catalog-filter .catalog-filter-toggle{
  display:flex;
  width:100%;
  min-height:44px;
  padding:7px 11px;
  border:0;
  background:#fff;
  align-items:center;
  gap:9px;
  text-align:left;
  color:#29212d;
  box-shadow:none;
  cursor:pointer;
}
.catalog-filter .catalog-filter-toggle>.ui-icon{
  flex:0 0 auto;
  width:18px;
  height:18px;
  color:#5a0b7c;
}
.catalog-filter .catalog-filter-toggle>span{
  display:grid;
  gap:0;
  min-width:0;
}
.catalog-filter .catalog-filter-toggle b{
  font-size:12.5px;
  line-height:1.2;
}
.catalog-filter .catalog-filter-toggle small{
  color:#807784;
  font-size:9.5px;
  line-height:1.25;
  font-weight:500;
}
.catalog-filter .catalog-filter-toggle em{
  margin-left:auto;
  padding:4px 8px;
  border-radius:999px;
  background:#f3edf6;
  color:#5a0b7c;
  font-size:9px;
  font-style:normal;
  white-space:nowrap;
}
.catalog-filter-body{
  display:none;
  padding:14px 15px;
  border-top:1px solid #eee9f0;
}
.enhanced-catalog-filter.open .catalog-filter-body{
  display:block;
}
@media(max-width:700px){
  .catalog-page{padding-top:6px;padding-bottom:30px}
  .catalog-breadcrumb{margin-bottom:4px;font-size:9.5px}
  .catalog-heading{display:flex;align-items:flex-end;margin-bottom:7px}
  .catalog-heading .kicker{display:none}
  .catalog-heading h1{font-size:24px;letter-spacing:-.8px}
  .catalog-heading p{display:none}
  .catalog-heading>small{margin:0 0 1px auto;min-height:25px;padding:4px 8px;font-size:9px}
  .catalog-filter.enhanced-catalog-filter{margin-bottom:8px;border-radius:10px}
  .catalog-filter .catalog-filter-toggle{min-height:42px;padding:6px 10px}
  .catalog-filter .catalog-filter-toggle small{display:none}
  .catalog-filter-body{padding:11px}
}
@media(max-width:430px){
  .catalog-heading h1{font-size:22px}
  .catalog-heading>small{max-width:44%;overflow:hidden;text-overflow:ellipsis}
}
