/* ============ Formulario de testimonios ============ */
.tm-card{max-width:680px}
.tm-card h1{margin:.1rem 0 .5rem}
.tm-card fieldset{border:0;margin:0;padding:0}
.tm-card legend{font-weight:800;font-size:.85rem;color:var(--navy);margin-bottom:.4rem;padding:0}
.tm-card small{display:block;color:var(--muted);font-weight:600;font-size:.78rem;line-height:1.4}
.tm-two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.tm-stars{display:inline-flex;flex-direction:row-reverse;gap:.15rem}
.tm-stars input{position:absolute;opacity:0;pointer-events:none}
.tm-stars label{display:block;cursor:pointer;font-size:2.1rem;line-height:1;color:#dcd6c6;transition:color .15s,transform .15s}
.tm-stars label:hover,.tm-stars label:hover~label,.tm-stars input:checked~label{color:#f0b429}
.tm-stars label:hover{transform:scale(1.15) rotate(-6deg)}
.tm-stars input:focus-visible+label{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
.tm-rating-text{display:inline-block;margin-left:.8rem;font-weight:800;color:var(--navy);vertical-align:middle}
.tm-count{text-align:right}
.tm-photo-label{display:block;font-weight:800;font-size:.85rem;color:var(--navy);margin-bottom:.5rem}
.tm-photo-row{display:flex;align-items:center;gap:1.1rem}
.tm-preview{display:grid;place-items:center;flex:none;width:96px;height:96px;overflow:hidden;border-radius:50%;background:var(--sky);border:4px solid #fff;box-shadow:0 0 0 3px #cfe3e8;color:#9dbcc4;font-size:3.6rem}
.tm-preview img{width:100%;height:100%;object-fit:cover}
.tm-file{cursor:pointer;margin-bottom:.4rem}
.tm-consent{display:flex!important;align-items:flex-start;gap:.7rem;padding:.9rem 1rem;border-radius:16px;background:#fef0cf;font-weight:600!important;line-height:1.45}
.tm-consent input{flex:none;width:20px;height:20px;margin-top:.15rem;accent-color:var(--navy)}
.tm-consent em{display:block;margin-top:.3rem;font-style:normal;font-size:.82rem;color:var(--muted)}
.tm-consent a{color:var(--blue);font-weight:800;text-decoration:underline}
.tm-thanks{text-align:center}
.tm-thanks-img{width:180px;height:auto;margin:0 auto 1rem;animation:enroll-float 4s ease-in-out infinite}
.tm-thanks .ok{margin:1rem 0 1.4rem}
@media (max-width:640px){.tm-two{grid-template-columns:1fr}.tm-stars label{font-size:2.4rem}}

/* ============ Sección de testimonios en el home ============ */
.voices{position:relative;max-width:1320px;margin:3rem auto;padding:3.2rem 1.6rem 3rem;border-radius:44px;background:linear-gradient(160deg,#dceff5 0%,#fdf3dc 55%,#fde3dc 100%);overflow:hidden}
.voices::before,.voices::after{content:"";position:absolute;border-radius:50%;pointer-events:none;background:#fff;opacity:.5}
.voices::before{width:260px;height:260px;left:-90px;top:-100px}
.voices::after{width:170px;height:170px;right:-50px;bottom:-60px}
.voices-head{position:relative;max-width:640px;margin:0 auto 2rem;text-align:center}
.voices-head h2{margin:.2rem 0 .5rem;font-size:clamp(1.8rem,3.4vw,2.6rem)}
.voices-head p{margin:0;color:var(--ink)}
.voice:nth-child(3n+1){transform:rotate(-1.2deg)}
.voice:nth-child(3n+2){transform:rotate(.8deg)}
.voice:nth-child(3n){transform:rotate(-.4deg)}
.voice:hover{transform:translateY(-6px) rotate(0)}
.voice-quote{position:absolute;top:-1.1rem;left:1.4rem;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--c,#f9897b);color:#fff;font-size:1.3rem;box-shadow:0 4px 0 rgba(41,51,69,.15)}
.voice-stars{display:flex;gap:.15rem;color:#f0b429;font-size:1.05rem}
.voice-stars .off{color:#e6e0d0}
.voice blockquote{margin:0;flex:1;font-size:1rem;line-height:1.65;color:var(--ink)}
.voice figcaption{display:flex;align-items:center;gap:.8rem;padding-top:.9rem;border-top:2px dotted #e3ebed}
.voice-avatar{display:grid;place-items:center;flex:none;width:52px;height:52px;overflow:hidden;border-radius:50%;background:var(--c,#51aab3);color:#fff;font:600 1.3rem var(--serif);border:3px solid #fff;box-shadow:0 0 0 2px var(--c,#51aab3)}
.voice-avatar img{width:100%;height:100%;object-fit:cover}
.voice figcaption b{display:block;color:var(--navy);line-height:1.2}
.voice figcaption small{display:block;color:var(--muted);font-size:.8rem;line-height:1.3}
.voices-note{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;margin:1rem auto 0;padding:.5rem 1rem;max-width:44em;border:2px dashed #cfa000;border-radius:14px;background:rgba(255,255,255,.7);font-size:.82rem;font-weight:700;color:#8a6d00;text-align:center}
@media (max-width:1000px){.voices{margin:2rem 1rem;padding:2.4rem 1rem 2rem;border-radius:34px}}
@media (prefers-reduced-motion:reduce){.voice,.voice:hover{transition:none}.tm-thanks-img{animation:none}}

/* Carrusel: 3 tarjetas en escritorio, 2 en tablet, 1 en celular */
.voices-carousel{position:relative;--gap:1.4rem;--per:3}
.voices-track{display:flex;gap:var(--gap);overflow-x:auto;padding:1.6rem .5rem 1.8rem;scroll-snap-type:x mandatory;scroll-padding:0 .5rem;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.voices-track::-webkit-scrollbar{display:none}
.voices-track:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:24px}
.voice{margin:0;position:relative;flex:0 0 calc((100% - var(--gap) * (var(--per) - 1) - 1rem) / var(--per));scroll-snap-align:start;display:flex;flex-direction:column;gap:.9rem;padding:2.6rem 1.5rem 1.4rem;border:3px solid #fff;border-radius:30px;background:#fff;box-shadow:0 8px 0 rgba(41,51,69,.07);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.voice:nth-child(3n+1){transform:rotate(-1.2deg)}
.voice:nth-child(3n+2){transform:rotate(.8deg)}
.voice:nth-child(3n){transform:rotate(-.4deg)}
.voice:hover{transform:translateY(-6px) rotate(0)}
.vc-btn{position:absolute;top:calc(50% - 1.6rem);z-index:2;display:grid;place-items:center;width:48px;height:48px;border:3px solid var(--navy);border-radius:50%;background:#fff;color:var(--navy);font-size:1.3rem;cursor:pointer;box-shadow:0 4px 0 var(--navy);transition:transform .15s,box-shadow .15s,background .15s}
.vc-btn:hover{background:var(--yellow);transform:translateY(-2px);box-shadow:0 6px 0 var(--navy)}
.vc-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--navy)}
.vc-btn:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.vc-prev{left:-1.1rem}
.vc-next{right:-1.1rem}
.vc-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-top:.2rem}
.vc-dot{width:11px;height:11px;padding:0;border:0;border-radius:999px;background:#c5d3d8;cursor:pointer;transition:width .25s,background .25s}
.vc-dot.is-on{width:30px;background:var(--navy)}
.vc-dot:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.voices-carousel.is-single .vc-btn,.voices-carousel.is-single .vc-dots{display:none}
@media (max-width:1000px){.voices-carousel{--per:2}.vc-prev{left:-.4rem}.vc-next{right:-.4rem}}
@media (max-width:640px){.voices-carousel{--per:1;--gap:1rem}.vc-btn{width:42px;height:42px;top:auto;bottom:-.4rem}.vc-prev{left:calc(50% - 130px)}.vc-next{right:calc(50% - 130px)}.vc-dots{min-height:42px;align-items:center}}
@media (prefers-reduced-motion:reduce){.voices-track{scroll-behavior:auto}}
