 /* slider.css */
:root{
    --w: min(92vw, 420px);
    --h: calc(var(--w) * 1.05);
    --arrow:#bcbfb6;       /* gris verdoso */
    --dot:#c7cbc2;
    --dot-active:#8b8f84;
  }
  
  * { box-sizing: border-box; }
  
  .slider{
    width: var(--w);
    margin: 24px auto;
    position: relative;
    user-select: none;
    touch-action: pan-y;
    font-family: system-ui, sans-serif;
  }
  
  .viewport{
    width: 100%;
    height: var(--h);
    overflow: hidden;
    border-radius: 10px;
    background: #f6f6f6;
    box-shadow: 0 4px 18px rgba(0,0,0,.08);
  }
  
  .track{
    display: flex;
    width: 100%;
    height: 100%;
    transform: translateX(0);
    transition: transform .45s ease;
  }
  
  .slide{
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
  }
  
  .slide img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  
  /* Flechas */
  .nav{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px; height: 42px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,.85);
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
    color: var(--arrow);
    font-size: 30px;
    line-height: 42px;
    cursor: pointer;
    z-index: 3;
    transition: background .2s, transform .2s;
  }
  .nav:hover{ background:#fff; transform: translateY(-50%) scale(1.04); }
  .prev{ left: -18px; }
  .next{ right: -18px; }
  
  /* Dots */
  .dots{
    display:flex; gap:8px;
    justify-content:center;
    margin-top:12px;
  }
  .dots button{
    width:8px; height:8px; border-radius:50%;
    background: var(--dot); border:none; padding:0;
  }
  .dots button.active{ background: var(--dot-active); }
  
  /* Zonas de tap (móviles) */
  .tap{
    position:absolute; top:0; bottom:0; width:45%;
    z-index:2; background:transparent;
  }
  .tap-left{ left:0; }
  .tap-right{ right:0; }
  
  /* Swipe feedback (opcional) */
  .slider.swiping .track{ transition: none; }

  