:root{
  --tecsa-cat-gap:8px;
  --tecsa-cat-size:126px;
  --tecsa-cat-item-width:150px;
}

.tecsa-cat-slider{
  display:flex;
  gap:var(--tecsa-cat-gap);
  overflow-x:auto;
  overflow-y:hidden;
  padding-top:10px;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  cursor:grab;
  touch-action: pan-x pan-y;
}

.tecsa-cat-slider.is-dragging{
  cursor:grabbing;
  scroll-snap-type:none;
  scroll-behavior:auto;
  user-select:none;
}

/* Mobile/tablet: full-bleed category strip (no side padding) */
@media (max-width: 1023px) {
  .tecsa-cat-slider-wrap {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 0;
    padding-right: 0;
  }
}

/* Mobile: native touch scroll (no custom pointer drag) — smoother swipe */
@media (max-width: 1023px) {
  .tecsa-cat-slider{
    scroll-snap-type:x mandatory;
    scroll-padding-inline:0;
  }

  .tecsa-cat-item{
    scroll-snap-align:center;
    scroll-snap-stop:normal;
  }
}

.tecsa-cat-item{
  flex:0 0 auto;
  width:var(--tecsa-cat-item-width);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  user-select:none;
  transition: transform .25s ease;
  -webkit-user-drag:none;
}

@media (min-width:768px){
  :root{
    --tecsa-cat-gap:14px;
    --tecsa-cat-size:170px;
    --tecsa-cat-item-width:208px;
  }
}

.tecsa-cat-circle{
  width:var(--tecsa-cat-size) !important;
  height:var(--tecsa-cat-size) !important;
  margin:0 auto;
  overflow:hidden;
  border:0;
  background:transparent;
  box-shadow:none;
  /* Reserve ring space so hover ring never flashes through the browser default outline */
  outline:2px solid transparent;
  outline-offset:2px;
  transition:border-radius .28s ease, box-shadow .28s ease, outline-color .2s ease;
}

/* Mobile: keep round thumbnails; no ring or “floating disk” until hover on desktop */
@media (max-width:1023px){
  .tecsa-cat-circle{
    border-radius:9999px;
  }
}

@media (min-width:1024px){
  .tecsa-cat-circle{
    border-radius:18px;
  }
}

@media (min-width:1200px){
  :root{
    --tecsa-cat-gap:18px;
    --tecsa-cat-size:182px;
    --tecsa-cat-item-width:222px;
  }
}

.tecsa-cat-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:none !important;
  opacity:1 !important;
  -webkit-user-drag:none;
  user-select:none;
}

.tecsa-cat-label{
  margin-top:12px;
  font-weight:600;
  font-size:14px;
  line-height:1.2;
  color:#111827;
  white-space:normal;
  transition: color .25s ease;
}

.tecsa-cat-nav{
  width:38px;
  height:38px;
  border-radius:9999px;
  border:1px solid rgba(17,24,39,.12);
  background:#fff;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  line-height:1;
  color:#111827;
  transition:transform .12s ease, background-color .12s ease;
}

.tecsa-cat-nav:hover{
  background:#f9fafb;
  transform:translateY(-1px);
}

.tecsa-cat-nav:active{
  transform:scale(.96);
}

@media (hover:hover) and (min-width:1024px){
  .tecsa-cat-item:hover{
    transform: translateY(-5px) scale(1.015);
  }

  .tecsa-cat-item:hover .tecsa-cat-circle{
    border-radius:9999px;
    box-shadow:0 16px 26px -14px rgba(0,0,0,.42);
    outline-color:rgba(0,170,236,.55);
  }

  .tecsa-cat-item:hover .tecsa-cat-label{
    color:#00aaec;
  }
}

