/* V4 extensions only: original visual system remains unchanged. */
.v4-testimonials{background:#f2f8ff;color:#081a31;padding:100px 0 105px;border-top:1px solid #d8e9fa}
.v4-testimonials .eyebrow{color:#1a83dc;font-weight:800;letter-spacing:.15em}
.v4-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:32px}
.v4-title h2{font-size:clamp(2rem,4vw,3.7rem);font-weight:900;letter-spacing:-.04em;line-height:1.06;margin:.4em 0 .3em}
.v4-title p{color:#47627f;font-size:1.05rem}
.v4-title .btn{flex-shrink:0}
.v4-quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.v4-quote{background:#fff;border-radius:20px;min-width:0;padding:24px;border:1px solid #d5e6fa;box-shadow:0 12px 30px #0a448010;position:relative;transition:transform .25s}
.v4-quote:hover{transform:translateY(-6px)}
.v4-quote img{width:82px;height:82px;object-fit:cover;border-radius:100%;border:4px solid #d6edff;margin-bottom:18px}
.v4-quote-mark{display:block;font-size:50px;font-weight:900;color:#2b99ec;height:33px;line-height:1}
.v4-quote p{font-size:1.03rem;line-height:1.7;color:#183651;margin:12px 0 22px;min-height:84px}
.v4-quote strong{display:block;font-weight:900;color:#07172e;margin-bottom:3px}
.v4-quote small{font-size:10px;font-weight:800;color:#4a88bd;letter-spacing:.08em}
.v4-empty{grid-column:1/-1;padding:40px;text-align:center}
.v4-testimony-form{margin-top:45px;background:#071c37;color:white;border-radius:24px;display:grid;grid-template-columns:45% 55%;overflow:hidden;box-shadow:0 15px 45px #062b5a30}
.v4-form-intro{padding:50px;background:radial-gradient(circle at 80% 90%,#2077bc99,transparent 54%),linear-gradient(140deg,#073b7a,#061f43);position:relative;overflow:hidden}
.v4-form-intro h3{font-size:clamp(2rem,3.6vw,3.3rem);line-height:1.05;letter-spacing:-.03em;margin:28px 0}.v4-form-intro h3 em{color:#8ad8ff;font-style:normal}
.v4-form-intro p{color:#c4ddf4;max-width:350px;line-height:1.8}.v4-form-icon{font-size:150px;line-height:1;text-align:right;opacity:.12;margin-top:30px}
.v4-form{padding:35px;display:flex;flex-direction:column;gap:14px}.v4-form>label:not(.v4-agree){display:flex;flex-direction:column;gap:8px;color:inherit;font-size:13px;font-weight:800;letter-spacing:.04em}.v4-form label small{font-size:11px;color:#95bbd9;font-weight:500}
.v4-form input:not([type=checkbox]):not([type=file]),.v4-form textarea{width:100%;display:block;background:#f7fbff;border:1px solid #c7def5;color:#11243d;padding:13px 15px;border-radius:9px;font:inherit;font-size:15px;min-height:46px}.v4-form textarea{resize:vertical;line-height:1.5}
.v4-form input:focus,.v4-form textarea:focus{outline:2px solid #57c8ff;outline-offset:2px}
.v4-photo-actions{display:flex;gap:10px;flex-wrap:wrap}.v4-photo-actions button{background:#d7ecff;color:#024c89;border:1px solid #77baf3;border-radius:9px;font-size:11px;letter-spacing:.06em;font-weight:900;cursor:pointer;padding:13px}.v4-photo-actions button:hover{background:#b9dffc}.v4-file-field{position:absolute!important;width:1px;height:1px;opacity:0;pointer-events:none}
.v4-photo-preview{display:flex;align-items:center;gap:13px;background:#0d3361;border-radius:10px;padding:10px 15px}.v4-photo-preview[hidden],.v4-camera-panel[hidden],.v4-pwa-banner[hidden]{display:none!important}.v4-photo-preview img{width:65px;height:65px;object-fit:cover;border-radius:9px}
.v4-camera-panel{background:#031124;border-radius:12px;padding:12px}.v4-camera-panel video{display:block;max-width:100%;max-height:300px;margin:0 auto 10px;border-radius:12px;transform:scaleX(-1)}.v4-camera-panel button{background:#1599ed;color:white;padding:12px;border:0;border-radius:8px;margin:5px;cursor:pointer}
.v4-agree{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.5;color:#c7d9f0}.v4-agree a{color:#85d9ff;text-decoration:underline}.v4-agree input{accent-color:#56c7ff;width:17px;height:17px;flex-shrink:0}.v4-form>.btn{align-self:flex-start;cursor:pointer}.v4-form>small{color:#a6c8e5;line-height:1.6}
.v4-contact-form{display:grid;grid-template-columns:1fr 1.3fr;gap:50px;padding:35px 0 100px}.v4-contact-form h2{font-size:2.5rem}.v4-contact-form .v4-form{background:#102b4d;border-radius:20px}
.v4-footer-app{display:flex;align-items:center;gap:20px;border-top:1px solid #ffffff22;padding-top:20px!important;padding-bottom:20px!important;flex-wrap:wrap}.v4-footer-app img{border-radius:15px}.v4-footer-app>div{display:flex;flex-direction:column;flex:1;min-width:195px;gap:5px}.v4-footer-app strong{font-size:17px;color:white}.v4-footer-app small{color:#bdd4e9;font-size:12px}
.v4-footer-app button,.v4-pwa-banner button[data-install]{border:none;border-radius:9px;background:#26a6ff;color:#032242;font-weight:900;padding:13px 17px;cursor:pointer;font-size:12px}.v4-footer-app button[data-push-subscribe]{background:transparent;color:#cfeeff;border:1px solid #75bce7}
.v4-pwa-banner{position:fixed;left:18px;bottom:20px;z-index:400;max-width:540px;display:flex;align-items:center;gap:12px;background:#f5faff;border:1px solid #94c8f5;box-shadow:0 10px 40px #05233f88;color:#081f3e;border-radius:14px;padding:11px 14px}.v4-pwa-icon img{width:56px;height:56px;border-radius:12px}.v4-pwa-banner>div:nth-child(2){flex:1}.v4-pwa-banner strong{font-size:13px;display:block}.v4-pwa-banner small{display:block;font-size:11px;color:#456078;margin-top:5px}.v4-pwa-banner .v4-pwa-close{background:none;color:#172d45;border:none;font-size:22px;cursor:pointer}
.v4-admin-summary{margin-bottom:16px}.v4-admin-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.v4-admin-numbers>div{background:#e7f4ff;border-radius:13px;padding:16px}.v4-admin-numbers strong{display:block;color:#0963a8;font-size:30px;font-weight:900}.v4-admin-numbers small{color:#4c789b;font-size:10px;font-weight:800}
.v4-admin-config{margin-bottom:20px}.v4-admin-config>label{display:block;margin:15px 0}.v4-admin-config label.checkline{display:flex;align-items:center}.v4-admin-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.v4-admin-filters a{background:#dbeeff;color:#155480;border-radius:40px;padding:10px 17px;font-weight:800;font-size:13px}.v4-admin-filters a.v4-active{background:#075fbc;color:#fff}
.v4-admin-testimonials{display:grid;gap:12px}.v4-admin-testimony{display:grid;grid-template-columns:95px 1fr;gap:20px}.v4-admin-testimony>img{width:90px;height:90px;border-radius:13px;object-fit:cover}.v4-admin-testimony p{line-height:1.6;margin:12px 0}.v4-admin-testimony span{font-size:12px;color:#5480a4}.v4-admin-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.v4-admin-buttons{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:12px}.v4-admin-buttons form{margin:0}.v4-admin-buttons button{cursor:pointer}.v4-message{margin-bottom:14px}.v4-message p{white-space:pre-wrap;line-height:1.6}.v4-graph{height:190px;display:flex;align-items:flex-end;gap:5px;padding:12px 0;border-bottom:2px solid #9eb6cc}.v4-graph>div{min-width:7px;flex:1;background:linear-gradient(#49c3ff,#0664cb);border-radius:5px 5px 0 0;position:relative}.v4-graph>div span{position:absolute;bottom:100%;font-size:9px;color:#064b84;left:0;opacity:0}.v4-graph>div:hover span{opacity:1}.v4-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.v4-metric{display:flex;justify-content:space-between;border-bottom:1px solid #d7e8f8;padding:11px 0;gap:8px;overflow-wrap:anywhere}.v4-metric span{min-width:0}.v4-admin-app{display:flex;align-items:center;gap:25px}.v4-admin-app img{border-radius:23px}
.v4-legal-amendment{margin-top:50px;border-top:1px solid #bed5e6;padding-top:30px}
@media(max-width:850px){.v4-quotes{grid-template-columns:1fr 1fr}.v4-testimony-form{grid-template-columns:1fr}.v4-form-intro{padding:32px}.v4-form-icon{display:none}.v4-title{align-items:start;flex-direction:column}.v4-contact-form{grid-template-columns:1fr}.v4-analytics-grid{grid-template-columns:1fr}}
@media(max-width:580px){.v4-testimonials{padding:65px 0}.v4-quotes{grid-template-columns:1fr}.v4-quote p{min-height:0}.v4-form{padding:25px 19px}.v4-footer-app{align-items:flex-start}.v4-footer-app button{width:100%}.v4-pwa-banner{left:10px;right:10px;bottom:10px;max-width:none}.v4-admin-testimony{grid-template-columns:1fr}.v4-admin-numbers{grid-template-columns:1fr 1fr}.v4-admin-app{flex-direction:column;align-items:flex-start}}

/* Testimonios: modal, calificaciones y tarjetas (sin afectar otras secciones). */
.v4-testimony-modal[hidden]{display:none!important}
.v4-testimony-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;isolation:isolate}
.v4-testimony-backdrop{position:absolute;inset:0;background:rgba(1,13,32,.8);backdrop-filter:blur(7px);z-index:-1}
.v4-testimony-dialog{width:min(100%,1020px);max-height:calc(100dvh - 40px);overflow-y:auto;position:relative;border-radius:24px;box-shadow:0 24px 90px #0008;overscroll-behavior:contain}
.v4-testimony-dialog .v4-testimony-form{margin:0}
.v4-testimony-close{position:sticky;float:right;top:12px;margin:12px 14px -54px 0;z-index:3;width:42px;height:42px;display:grid;place-items:center;background:#fff;color:#0b3157;border:0;border-radius:50%;font-size:29px;cursor:pointer;box-shadow:0 3px 13px #0004}
body.v4-modal-open{overflow:hidden}
.v4-rating-field{margin:1px 0 4px;padding:0;border:0;min-width:0}
.v4-rating-field legend{font-size:13px;font-weight:800;color:#fff;margin-bottom:9px}
.v4-rating-field legend span{font-weight:400;color:#a6c8e5}
.v4-rating-picker{display:flex;gap:6px;flex-wrap:wrap}
.v4-rating-picker label{cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;position:relative}
.v4-rating-picker input{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer}
.v4-rating-picker label>span:first-of-type{font-size:34px;color:#7892aa;transition:color .15s,transform .15s;line-height:1.2}
.v4-rating-picker label.is-active>span:first-of-type{color:#f7b928;text-shadow:0 1px 8px #ffce5570}
.v4-rating-picker label:hover>span:first-of-type{transform:scale(1.16)}
.v4-rating-picker input:focus-visible+span{outline:2px solid #fff;outline-offset:3px;border-radius:3px}
.v4-rating-label{font-size:10px;color:#cce3f9}
.v4-quote{padding:28px;border-radius:23px;border:1px solid #d4e6f7;box-shadow:0 10px 30px #062d5414,0 2px 7px #062d5408;background:linear-gradient(160deg,#ffffff 0%,#ffffff 70%,#f4f9ff 100%);display:flex;flex-direction:column;gap:12px}
.v4-quote>img{width:64px;height:64px;margin:0;border:3px solid #d6edff;box-shadow:0 5px 14px #0c448026}
.v4-quote-content{display:flex;flex-direction:column;flex:1;min-width:0}
.v4-quote-stars{color:#edaa17;font-size:21px;letter-spacing:3px;margin:0 0 8px;text-shadow:0 1px 1px #cf8a1b36}
.v4-quote-mark{font-size:42px;height:26px;color:#4aa8ed}
.v4-quote p{flex:1;font-size:.99rem;line-height:1.75;margin:14px 0 22px;min-height:0;overflow-wrap:anywhere}
.v4-quote strong{padding-top:14px;border-top:1px solid #e4eef8}
.v4-quote small{margin-top:5px;letter-spacing:.06em}
.v4-admin-stars{color:#e6a110;font-size:20px;letter-spacing:2px;margin-top:8px}
@media(max-width:850px){.v4-testimony-modal{padding:12px}.v4-testimony-dialog{max-height:calc(100dvh - 24px)}.v4-testimony-dialog .v4-testimony-form{grid-template-columns:1fr}}
@media(max-width:580px){.v4-testimony-modal{padding:7px}.v4-testimony-dialog{max-height:calc(100dvh - 14px);border-radius:17px}.v4-testimony-dialog .v4-form-intro{padding:24px}.v4-testimony-dialog .v4-form-intro h3{font-size:1.85rem;margin:14px 0}.v4-testimony-dialog .v4-form-intro p{line-height:1.5}.v4-testimony-close{top:7px;margin:8px 9px -48px 0}}
