/* ============================= */
/* GLOBAL SAFETY FOR THE SLIDER  */
/* ============================= */

.tstm, .tstm *, .tstm *::before, .tstm *::after{
  box-sizing:border-box;
}

/* ============================= */
/* SLIDER CONTAINER              */
/* ============================= */

.tstm{
  position:relative;
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;

  overflow:hidden;
  border-radius:14px;

  padding-bottom: clamp(18px, 1vw, 14px);

  overflow-wrap:anywhere;
  word-break:break-word;

  isolation:isolate;
}

/* ============================= */
/* VIEWPORT + TRACK              */
/* ============================= */

.tstm__viewport{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow:hidden;
}

.tstm__track{
  display:flex;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;

  transform:translate3d(0,0,0);
  transition:transform 420ms cubic-bezier(0.22,0.61,0.36,1);
  will-change:transform;
}

/* ============================= */
/* TESTIMONIAL ITEMS             */
/* ============================= */

.tstm__item{
  flex:0 0 100%;
  width:90% !important;
  max-width:100% !important;
  min-width:0 !important;

  padding: clamp(10px, 2.5vw, 18px);

  overflow-wrap:anywhere;
  word-break:break-word;
}

/* ============================= */
/* TABLE FIXES INSIDE TESTIMONIALS */
/* ============================= */

.tstm__item table{
  width:100% !important;
  max-width:100% !important;
  border-collapse:collapse;
  table-layout:fixed;
}

.tstm__item td,
.tstm__item th{
  min-width:0 !important;
  max-width:100% !important;
  vertical-align:top;

  overflow-wrap:anywhere;
  word-break:break-word;
}

.tstm__item table table{
  width:100% !important;
  max-width:100% !important;
}

/* images scale */
.tstm__item img{
  max-width:100% !important;
  height:auto !important;
  display:block;
}

/* long links break */
.tstm__item a{
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* ============================= */
/* CONTROLS (ARROWS + DOTS)      */
/* ============================= */

.tstm__arrow,
.tstm__dots{
  position:absolute;
  z-index:5;
  pointer-events:auto;
}

/* arrows */

.tstm__arrow{
  bottom: 1px;
  transform:translateY(-50%);

  width:clamp(30px, 8vw, 38px);
  height:clamp(30px, 8vw, 38px);

  border-radius:999px;
  border:0;
  cursor:pointer;
  display:grid;
  place-items:center;

  background:rgba(0,0,0,.10);
  color:inherit;

  user-select:none;
  -webkit-tap-highlight-color:transparent;
}

.tstm__arrow:hover{
  background:rgba(0,0,0,.16);
}

.tstm__arrow--prev{
  left: clamp(6px, 2vw, 8px);
}

.tstm__arrow--next{
  right: clamp(6px, 2vw, 8px);
}

/* dots */

.tstm__dots{
  left:50%;
  bottom: clamp(8px, 2.5vw, 10px);
  transform:translateX(-50%);

  display:flex;
  gap:8px;
}

.tstm__dot{
  width:20px;
  height:20px;
  border-radius:10px;
  border:0;
  cursor:pointer;
  
  background:currentColor;
  background: rgba(180, 0, 180, 0.2);
}

.tstm__dot.is-active{
  background: rgba(180, 0, 180, 0.8);;
}

/* ============================= */
/* OPTIONAL TYPOGRAPHY           */
/* ============================= */

.tstm__quote{
  font-size:clamp(16px,2.5vw,20px);
  line-height:1.45;
}

.tstm__who{
  margin-top:10px;
  font-size:14px;
  opacity:.8;
}