/* Testimonials section */
.testi{padding:84px 0;background:var(--paper,#F7F7F4);overflow:hidden}
.testi .thead{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px 28px;
  margin-top:14px;
}
.testi h2.sec{
  font-size:clamp(30px,4.4vw,50px);
  font-weight:800;
  line-height:1.04;
  letter-spacing:-.02em;
  margin:0;
  flex:1 1 auto;
  min-width:0;
}
.testi .sec .y{color:var(--ink,#111);display:inline-block;line-height:1.2;background-image:linear-gradient(var(--yellow,#F3E733),var(--yellow,#F3E733));background-repeat:no-repeat;background-position:left bottom;background-size:100% var(--y-line,0.26em);padding:0 3px 0.28em}

/* Heading arrows — CTA arrow icon in circles */
.testi .tarrows{
  display:flex;
  align-items:center;
  gap:10px;
  flex:none;
  margin-bottom:4px;
}
.testi .tarw{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid var(--ink,#111);
  background:transparent;
  color:var(--ink,#111);
  cursor:pointer;
  padding:0;
  display:grid;
  place-items:center;
  flex:none;
  transition:background .2s,color .2s,border-color .2s,transform .2s;
}
.testi .tarw svg{
  width:20px;
  height:20px;
  display:block;
}
.testi .tarw-prev svg{transform:scaleX(-1)}
.testi .tarw:hover,
.testi .tarw:focus-visible{
  background:var(--ink,#111);
  color:#fff;
  border-color:var(--ink,#111);
}
.testi .tarw:focus-visible{
  outline:3px solid var(--yellow,#F3E733);
  outline-offset:2px;
}
.testi .tarw:active{transform:scale(.96)}
@media(prefers-reduced-motion:reduce){
  .testi .tarw{transition:none}
  .testi .tarw:active{transform:none}
}

/* Google + testimonials row — bleeds to right viewport edge */
.trow{
  display:flex;
  align-items:stretch;
  gap:20px;
  margin-top:48px;
  width:calc(50vw + 50%);
  max-width:none;
  box-sizing:border-box;
}

/* Google rating card — width set in JS; height synced to testimonial cards */
.tgoogle{
  flex:0 0 auto;
  min-width:0;
  align-self:stretch;
  background:#fff;
  border-radius:16px;
  border:1px solid var(--line,#e7e7e2);
  box-shadow:0 8px 28px rgba(0,0,0,.04);
  padding:24px 20px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  overflow:hidden;
}
.tgoogle .tg-score{
  font-size:clamp(48px,5vw,64px);
  font-weight:400;
  line-height:1;
  letter-spacing:-.04em;
  color:var(--ink,#111);
}
.tgoogle .tg-label{font-size:13px;color:#000;font-weight:500;margin:0 0 18px}
.tgoogle .tg-logo{display:block;line-height:0}
.tgoogle .tg-logo img{display:block;width:80%;height:auto;margin:0 auto;max-width:80%}

/* Star row (image icons) */
.stars{display:inline-flex;align-items:center;gap:3px;margin:10px 0 14px;line-height:0}
.tgoogle .stars{justify-content:center;margin:12px 0 14px}
.tcard .stars{margin:0 0 14px}
.stars img{width:14px;height:14px;display:block;flex:none}
.stars_img{
  width:100%;
  display:flex;
  justify-content:center;
  margin:22px 0;
}
.stars_img img{max-width:55%;height:auto;display:block}

/* Testimonial track — fills to right edge, rounded on the left */
.tslider{
  flex:1 1 auto;
  min-width:0;
  align-self:stretch;
  display:flex;
  flex-direction:column;
}
.tviewport{
  overflow:hidden;
  flex:1 1 auto;
  width:100%;
  height:100%;
  scrollbar-width:none;
  cursor:grab;
  background:transparent !important;
  border-radius:24px 0 0 24px;
  border:1px solid var(--line,#e7e7e2);
  border-right:0;
  box-shadow:0 8px 28px rgba(0,0,0,.04);
  box-sizing:border-box;
}
.tviewport::-webkit-scrollbar{display:none}
.tviewport.is-dragging{
  cursor:grabbing;
  user-select:none;
}
.ttrack{
  display:flex;
  align-items:stretch;
  width:max-content;
  height:100%;
  /* JS toggles transition only while animating — keeps loop jump invisible */
  transition:none;
  will-change:transform;
}
.ttrack.is-jumping{transition:none !important}

/* Width set in JS to match Google card */
.tslide{
  flex:0 0 auto;
  display:flex;
  margin:0;
  padding:0;
  box-sizing:border-box;
  height:100%;
  align-self:stretch;
}

.tcard{
  flex:1;
  width:100%;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:28px 24px 28px 28px;
  display:flex;
  flex-direction:column;
  border-left:1px solid #e4e3dd;
  box-sizing:border-box;
}
.tslide:first-child .tcard{border-left:0}
.tcard .ttitle{
  font-family:inherit;
  font-size:30px;
  font-weight:500;
  letter-spacing:-.02em;
  text-transform:none;
  color:var(--ink,#111);
  margin:0 0 10px;
  line-height:1.15;
}
.tcard .ttitle::before{content:"\201C"}
.tcard .ttitle::after{content:"\201D"}
.tcard blockquote{
  margin:0;
  font-size:13.5px;
  line-height:1.55;
  color:#5a5a5a;
  font-weight:400;
  flex:1;
}
.tperson{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:auto;
  padding-top:18px;
  border-top:1px solid #e4e3dd;
}
.tperson img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:0;background:#f1f1ec;flex:none;border: 1.5px solid #f3e734;}
.tperson .who b{font-weight:700;font-size:14px;display:block;line-height:1.25;color:var(--ink,#111)}
.tperson .who span{color:var(--gray,#6c6c6c);font-size:12.5px;margin-top:2px;display:block}

.tnav{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
  margin-top:20px;
  padding-left:0;
}
.tdots{display:none;gap:7px;flex-wrap:wrap;justify-content:flex-start;max-width:100%}
.tdots button{width:8px;height:8px;border-radius:50%;border:0;background:#d4d4cd;cursor:pointer;padding:0;transition:.25s}
.tdots button.on{background:var(--ink,#111);width:22px;border-radius:5px}
.tdots button:focus-visible{outline:2px solid var(--yellow,#F3E733);outline-offset:2px}

@media(max-width:900px){
  .testi{overflow:visible}
  .testi .thead{
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
  }
  .testi .tarrows{margin-bottom:0}
  .trow{
    flex-direction:column;
    gap:20px;
    width:100%;
    margin-right:0;
  }
  .tgoogle{
    flex:none;
    width:100%;
    max-width:none;
    min-height:240px;
    padding:28px 20px;
  }
  .tslider{
    width:100%;
  }
  .tviewport{
    border-radius:20px;
    border-right:1px solid var(--line,#e7e7e2);
  }
  .tcard{padding:24px 20px;border-left:0;border-top:1px solid #e4e3dd}
  .tslide:first-child .tcard{border-top:0}
  .tnav{padding-left:0;justify-content:center}
}
@media(max-width:760px){
  .testi{padding:60px 0}
}
@media(max-width:620px){
  .testi{padding:52px 0}
  .tcard{padding:20px 16px}
  .tgoogle .tg-score{font-size:48px}
}

@media(prefers-reduced-motion:reduce){
  .ttrack{transition:none}
}
.tgoogle{
  display: none !important;
}