/* ===== Блоки отзывов — общие стили (Команда Старостина) ===== */
.tm-avatar{width:52px;height:52px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:19px}
.tm-g1{background:linear-gradient(140deg,var(--blue),var(--violet))}
.tm-g2{background:linear-gradient(140deg,var(--violet),var(--indigo))}
.tm-g3{background:linear-gradient(140deg,var(--indigo),#5566d8)}
.tm-g4{background:linear-gradient(140deg,#6f8fd6,var(--violet))}
.tm-g5{background:linear-gradient(140deg,var(--violet),#c98fd0)}
.tm-g6{background:linear-gradient(140deg,var(--blue),var(--indigo))}
.tm-who b{font-size:15px;font-weight:800;display:block}
.tm-who span{font-size:12.5px;color:var(--muted)}

/* ----- Marquee (вариант 1) ----- */
.tm-marquee{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.tm-row{display:flex;gap:20px;width:max-content;padding:10px 0}
.tm-row.r1{animation:tmL 40s linear infinite}
.tm-row.r2{animation:tmR 48s linear infinite;margin-top:4px}
.tm-marquee:hover .tm-row{animation-play-state:paused}
@keyframes tmL{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes tmR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.tm-card{width:360px;flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 18px 40px -28px rgba(42,56,161,.3)}
.tm-card .q{font-size:14.5px;line-height:1.55;color:var(--ink);margin-bottom:18px}
.tm-card .h{display:flex;align-items:center;gap:13px}

/* ----- Compact slider (вариант 2, авто + стрелки + ручное) ----- */
.tm-slider{max-width:760px;margin:0 auto;position:relative}
.tm-slide-box{background:#fff;border:1px solid var(--line);border-radius:24px;padding:38px 40px;box-shadow:0 26px 54px -32px rgba(42,56,161,.32);min-height:200px;display:flex;flex-direction:column;justify-content:center}
.tm-slide-box .q{font-size:19px;line-height:1.45;font-weight:600;letter-spacing:-.2px;min-height:110px}
.tm-slide-box .h{display:flex;align-items:center;gap:13px;margin-top:18px}
.tm-fade{animation:tmFade .45s var(--ease)}
@keyframes tmFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tm-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:22px}
.tm-arrow{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:var(--indigo)}
.tm-arrow:hover{border-color:var(--violet);transform:translateY(-2px)}
.tm-arrow svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2}
.tm-dots{display:flex;gap:8px}
.tm-dots i{width:9px;height:9px;border-radius:50%;background:var(--line);cursor:pointer;transition:all .3s}
.tm-dots i.on{background:var(--violet);width:26px;border-radius:6px}

/* ----- Video reviews gallery ----- */
.tm-vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.tm-vcard{position:relative;aspect-ratio:3/4;border-radius:18px;overflow:hidden;background:linear-gradient(160deg,var(--violet),var(--indigo));display:block;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s}
.tm-vcard:hover{transform:translateY(-5px);box-shadow:0 26px 50px -26px rgba(42,56,161,.4)}
.tm-vcard img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92}
.tm-vcard .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.tm-vcard .play i{width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:transform .25s}
.tm-vcard:hover .play i{transform:scale(1.1)}
.tm-vcard .play svg{width:22px;height:22px;fill:var(--indigo);margin-left:3px}
.tm-vcard .cap{position:absolute;left:0;right:0;bottom:0;padding:30px 16px 14px;background:linear-gradient(transparent,rgba(13,16,36,.85));color:#fff}
.tm-vcard .cap b{font-size:14px;font-weight:700;display:block}
.tm-vcard .cap span{font-size:12px;opacity:.85}

/* ----- Cases (наставничество) ----- */
.tm-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tm-case{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;position:relative;overflow:hidden}
.tm-case .ab{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:12.5px;font-weight:700}
.tm-case .ab .from{color:var(--muted)}.tm-case .ab .ar{color:var(--violet)}.tm-case .ab .to{color:var(--indigo)}
.tm-case .res{font-size:28px;font-weight:900;letter-spacing:-1px;color:var(--indigo);margin-bottom:10px}
.tm-case .q{font-size:14px;color:var(--muted);line-height:1.5;margin-bottom:16px}
.tm-case .h{display:flex;align-items:center;gap:12px}

/* ----- Photo gallery (выездной) ----- */
.tm-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
.tm-gallery img{width:100%;height:100%;object-fit:cover;border-radius:16px;display:block}
.tm-gallery .wide{grid-column:span 2}
.tm-gallery .tall{grid-row:span 2}

@media(max-width:880px){
  .tm-vgrid{grid-template-columns:1fr 1fr}
  .tm-cases{grid-template-columns:1fr}
  .tm-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:160px}
  .tm-gallery .wide{grid-column:span 2}
}
@media(max-width:600px){
  .tm-card{width:300px}
  .tm-slide-box{padding:28px 24px}.tm-slide-box .q{font-size:17px}
  .tm-vgrid{grid-template-columns:1fr 1fr}
}
